INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH
|
|
- Judyta Leśniak
- 8 lat temu
- Przeglądów:
Transkrypt
1 INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Informatyka poziom rozszerzony Algorytmy porządkowania danych Iwona i Ireneusz Bujnowscy Człowiek - najlepsza inwestycja Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
2 Tytuł: Algorytmy porządkowania danych Autor: Iwona i Ireneusz Bujnowscy Redaktor merytoryczny: prof. dr hab. Maciej M. Sysło Materiał dydaktyczny opracowany w ramach projektu edukacyjnego Informatyka mój sposób na poznanie i opisanie świata. Program nauczania informatyki z elementami przedmiotów matematyczno-przyrodniczych infoplus@wwsi.edu.pl Wydawca: Warszawska Wyższa Szkoła Informatyki ul. Lewartowskiego 17, Warszawa rektorat@wwsi.edu.pl Projekt graficzny: Marzena Kamasa Warszawa 2013 Copyright Warszawska Wyższa Szkoła Informatyki 2013 Publikacja nie jest przeznaczona do sprzedaży Człowiek - najlepsza inwestycja 2 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
3 SCENARIUSZ TEMATYCZNY Algorytmy porządkowania danych INFORMATYKA poziom rozszerzony OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Streszczenie Nowa podstawa programowa kształcenia ogólnego zakłada, że uczeń po zakończeniu nauki będzie potrafił rozwiązywać problemy, podejmować decyzje z wykorzystaniem komputera i zastosowaniem podejścia algorytmicznego. W treściach nauczania wymieniono algorytmy, których znajomość i umiejętność analizy działania jest kluczowa w procesie edukacji: wskazano tam m.in. algorytmy dotyczące porządkowania danych sortowanie bąbelkowe, przez wybór, przez wstawianie liniowe i binarne, przez scalanie, sortowanie szybkie i kubełkowe. W przedstawionych scenariuszach skupimy się na najprostszych algorytmach sortowania danych, takich, od których rozpoczyna się naukę analizy algorytmów w zakresie złożoności: na sortowaniu bąbelkowym, sortowaniu przez wybieranie oraz sortowaniu przez zliczanie. W kolejnych scenariuszach, które będą tworzone w trakcie trwania projektu zostaną opracowane pozostałe algorytmy wymienione w podstawie programowej. Czas realizacji 4 x 45 minut Tematy lekcji 1. Algorytmy sortowania danych. Algorytm sortowania bąbelkowego (2 x 45 minut) 2. Sortowanie przez wybieranie analiza działania i implementacja (1 x 45 minut) 3. Sortowanie przez zliczanie (1 x 45 minut) 3
4 Podstawa programowa Etap edukacyjny IV, przedmiot: informatyka (poziom rozszerzony) Cele kształcenia wymagania ogólne III. Rozwiązywanie problemów i podejmowanie decyzji z wykorzystaniem komputera, z zastosowaniem podejścia algorytmicznego. Treści nauczania wymagania szczegółowe poziom rozszerzony 5. Rozwiązywanie problemów i podejmowanie decyzji z wykorzystaniem komputera, stosowanie podejścia algorytmicznego. Uczeń: 1) analizuje, modeluje i rozwiązuje sytuacje problemowe z różnych dziedzin; 2) stosuje podejście algorytmiczne do rozwiązywania problemu; 3) formułuje przykłady sytuacji problemowych, których rozwiązanie wymaga podejścia algorytmicznego i użycia komputera; 4) dobiera efektywny algorytm do rozwiązania sytuacji problemowej i zapisuje go w wybranej notacji; 5) posługuje się podstawowymi technikami algorytmicznymi; 6) ocenia własności rozwiązania algorytmicznego (komputerowego), np. zgodność ze specyfikacją, efektywność działania; 7) opracowuje i przeprowadza wszystkie etapy prowadzące do otrzymania poprawnego rozwiązania problemu: od sformułowania specyfikacji problemu po testowanie rozwiązania; 11) opisuje podstawowe algorytmy i stosuje b) algorytmy wyszukiwania i porządkowania informacji algorytmy sortowania ciągu liczb: bąbelkowy, przez wybór, przez wstawianie. Cel Zapoznanie uczniów z wybranymi algorytmami porządkowania danych. Słowa kluczowe sortowanie, sortowanie bąbelkowe, sortowanie przez zliczanie, sortowanie przez wybór 4
5 LEKCJA NR 1 TEMAT: Sortowanie bąbelkowe Co przygotować y Prezentacja 1 Sortowanie bąbelkowe MATERIAŁ TEORETYCZNY Algorytmy dotyczące porządkowania danych kojarzą się przede wszystkim z sortowaniem. Wiele problemów algorytmicznych da się rozwiązać porządkując elementy rosnąco lub malejąco. Tematyka związana z sortowaniem danych jest na tyle ciekawa, że doczekała się wielu opracowań. Wymyślono i opublikowano sporą liczbę różnych algorytmów różniących się od siebie ideą, złożonością czy skomplikowaniem kodu. Sortowanie bąbelkowe Nasze rozważania zacznijmy od opisu działania i kodu jednego z najbardziej łatwego do zrozumienia i zakodowania algorytmu sortowania bąbelkowego. Algorytm sortowania bąbelkowego opiera się na porównywaniu kolejnych sąsiednich par elementów i sprawdzaniu, czy ich wzajemne położenie w tablicy jest odpowiednie z punktu widzenia wymaganego końcowego uporządkowania. Poniższy fragment kodu ilustruje główną część tego algorytmu: 1. for (int i=0; i<n-1; i++) 2. if (t[i] > t[i+1]) swap(t[i], t[i+1]); Instrukcja pętli zawarta w wierszu 1 wymusza zmianę zmiennej i począwszy od wartości 1 do wartości n-2. Zawarta w linii 2 instrukcja warunkowa porównuje w każdej iteracji pętli element o indeksie i z elementem następnym, czyli takim, który ma indeks i+1. Jeśli wartość elementu następnego jest mniejsza od tego, który go poprzedza, to następuje ich zamiana. Warto zauważyć, że po zrealizowaniu przedstawionej pętli po raz pierwszy największy element przesunie się z dowolnej zajmowanej dotychczas pozycji na miejsce ostatniego elementu w tablicy. Gdyby pętla wraz z instrukcją warunkową wykonała się powtórnie, to kolejny, co do wielkości element trafi na właściwą pozycję w tablicy. Po kolejnej realizacji tego kodu na właściwych pozycjach będą już więc co najmniej dwa elementy itd. Stąd już niedaleko do zapisu pełnego kodu sortowania bąbelkowego: 1. for (int p=1; p<n; p++) 2. for (int i=0; i<n-1; i++) 3. if (t[i] > t[i+1]) swap(t[i], t[i+1]); Pętla ze zmienną sterującą p odlicza kolejną realizację omówionych wcześniej instrukcji, a jednocześnie zmienna p otrzymuje wartość wskazującą, co najmniej ile elementów będzie na właściwych pozycjach w tablicy po wykonaniu instrukcji z wierszy 2 i 3. Gdy p ma wartość 1, to po wykonaniu instrukcji z wierszy 2 i 3. jeden z elementów z całą pewnością zajmie miejsce właściwe. Gdy p będzie miało wartość 2, to po wykonaniu instrukcji z wierszy 2 i 3 już co najmniej dwa elementy będą na właściwych pozycjach itd. Oczywiście po n-1 krotnym wykonaniu instrukcji z wierszy linii 2 i 3. wszystkie elementy będą na właściwych miejscach w tablicy. 5
6 Opisane instrukcje działają skutecznie, ale nieoptymalnie i można poprawić ich działanie. Po przyjrzeniu się ostatniemu kodowi, łatwo zauważyć, że instrukcja warunkowa wykona się około n2 razy. Takie algorytmy, gdzie instrukcja dominująca jest wykonywana ok. n2 razy, oznacza się symbolem O(n2). W jaki sposób można poprawić działanie zaproponowanego algorytmu? Można to zrobić na kilka sposobów. Najczęściej stosowane są dwa: a)można skrócić działanie drugiej pętli (ze zmienną sterującą i) w ten sposób, aby nie były już sprawdzane te elementy, które trafiły już na właściwe pozycje, b)można również sprawdzać, czy w trakcie realizacji instrukcji w wierszach 2 i 3 nastąpiła choć jednokrotna zamiana elementów. Gdyby takiej zamiany nie było, to z całą pewnością można stwierdzić, że tablica jest posortowana. Tab.1. Działanie algorytmu na tablicy 10-elementowej. W kolejnych wierszach tablicy 1 znaleźć można zawartość tablicy t po kolejnych pełnych realizacjach instrukcji z pętli z wierszu 2. Widać tu, że pełne posortowanie tablicy nastąpiło już przy p = 7. Spróbujmy teraz zapisać kod powyższego algorytmu, który po każdym przebiegu pętli ze zmienną sterującą p będzie zmniejszał liczbę porównywanych par sąsiednich elementów tak, by elementy, które są na właściwej pozycji nie były wielokrotnie sprawdzane: 1. for (int p=1; p<n; p++) 2. for (int i=0; i<n-p; i++) 3. if (t[i] > t[i+1]) 4. swap(t[i], t[i+1]); Mała modyfikacja w wierszu drugim spowodowała, że teraz ostatnimi elementami porównywanymi w tablicy są elementy o indeksach n p oraz n p + 1. Dzięki temu pętla wewnętrzna dla różnych (coraz większych) wartości zmiennej p będzie wykonywała się coraz mniejszą liczbę razy. Teraz przykładowy wariant sortowania bąbelkowego, który przerywa działanie algorytmu, gdy podczas wykonywania pętli wewnętrznej nie nastąpiła żadna zamiana elementów: 6
7 1. for (int p=1; p<n; p++) 2. { 3. lzamian=0; 4. for (int i=0; i<n-p; i++) 5. if (t[i] > t[i+1]) 6. { 7. lzamian++; 8. swap(t[i], t[i+1]); 9. } 10. if (lzamian == 0) break; 11. } Program działa w ten sposób, że w każdym obiegu pętli wewnętrznej zliczana jest liczba zamian elementów sąsiednich. Jeśli po którejś pętli zmienna lzamian ma wartość 0, to oznacza, że wszystkie elementy są już uporządkowane i algorytm zostaje przerwany instrukcją break. Zaproponowane ulepszenia algorytmu, choć dla pewnych danych poprawiają działanie, nie zmieniają ogólnej złożoności. Pesymistyczna złożoność, dla danych złośliwych, pozostaje niezmieniona i wynosi O(n2). Wczytywanie danych do programu Bardzo przydatną umiejętnością jest wczytywanie danych do programu, zwłaszcza wtedy, gdy jest ich bardzo dużo. Ręczne wpisywanie z klawiatury np. 100 liczb jest uciążliwe, więc przy testowaniu programu warto uzupełnić powyższe instrukcje o czytanie danych: a)wczytywanie danych ze schowka jeśli dane testowe są w jakimś pliku, lub zapisane w postaci komentarza na końcu pliku z programem, to do ich wczytania możemy wykorzystać schowek systemowy. Umieszczamy dane w schowku. Po uruchomieniu programu wymagającego wczytania danych pojawi się czarne okienko (okienko służące do komunikacji z programem). Dane można wczytać klikając prawym przyciskiem myszy na pasku tytułowym tego okna, po wybraniu opcji Edytuj, a potem opcji Wklej z menu kontekstowego. 7
8 b) wczytanie danych z pliku wykorzystując strumienie: 1. #include <iostream> 2. #include <fstream> 3. using namespace std; int t[100]; 6. int main() 7. { 8. // wczytywanie danych z pliku 9. ifstream plik1 ( dane.in ); 10. for (int i=0;i<100;i++) 11. plik1 >> t[i]; 12. plik1.close(); //zapis wyniku w pliku 15. ofstream plik2 ( wyniki.out ); 16. for (int i=0;i<100;i++) 17. plik2 << t[i]; 18. plik2.close(); } W wierszu 2 zawarta jest instrukcja dołączająca bibliotekę odpowiedzialną za strumienie plikowe. W wierszach 9-12 zapisane są instrukcje, które wykorzystując mechanizm strumieni wczytują dane z pliku dane. in. Analogiczne instrukcje, powodujące zapis wyniku do pliku, zawarte są w wierszach Wymienione dwa sposoby wczytywania danych do programu, przez schowek i z pliku, warto stosować przy rozwiązywaniu zadań, bowiem umożliwiają wielokrotne testowanie i poprawianie (debugowanie) działania zastosowanego algorytmu i jego komputerowej realizacji (implementacji). 8
9 Przebieg zajęć Czynności organizacyjne (5 minut) Sprawdzenie obecności, podanie tematu, określenie celów lekcji. Wprowadzenie (10 minut) Omówienie materiału teoretycznego przygotowanego do lekcji prezentacja: sortowanie bąbelkowe, wczytywanie danych do programu z wykorzystaniem schowka, wczytywanie danych do programu z wykorzystaniem plików. Praca zespołowa (20 minut) Uczniowie pracując w grupach rozwiązują proste zadania (programy) wymagające sortowania danych. Ćwiczenie 1.1 Napisz program, który posortuje dane zawarte w pliku posortuj.dat i zapisze je do pliku posortowane.dat. Dyskusja podsumowująca (5 minut) Pisząc programy w C++ możemy wczytywać i wypisywać dane wykorzystując strumienie plikowe i schowek. Dzięki temu można wielokrotnie testować program na tych samych, nieraz rozbudowanych zestawach danych. Omówienie z uczniami występujących trudności i sposobów unikania w przyszłości popełnianych błędów. Praca domowa (5 minut) Ćwiczenie 1.2 Napisz program, który wczyta dane do tablicy zawartość pliku posortuj.dat oraz zliczy liczbę porównań elementów sąsiednich, wykonywanych podczas sortowania bąbelkowego w wersji bez optymalizacji. Ćwiczenie 1.3 Napisz program, który wczyta dane zawarte w pliku posortuj.dat i obliczy liczbę zamian elementów, wykonywanych przez zoptymalizowaną wersję algorytmu sortowania bąbelkowego. Sprawdzanie wiedzy Sprawdzenie wiedzy na podstawie testu. Ocenianie Ocena pracy na podstawie rozwiązanych ćwiczeń. Dostępne pliki 1. Prezentacja 2. Zadania 3. Test 4. Filmy 9
10 LEKCJA NR 2 TEMAT: Sortowanie przez wybieranie Co przygotować y Prezentacja 2 Sortowanie przez wybieranie MATERIAŁ TEORETYCZNY Algorytmy porządkowania danych są idealnym problemem, na podstawie którego można pokazać różnorodność sposobów podejścia do rozwiązania zadania. W sposób przystępny da się przy okazji przedstawić, czym jest złożoność algorytmów i jak ją mierzyć. Po sortowaniu bąbelkowym, kolejnym algorytmem sortowania, z którym warto zapoznać uczniów jest algorytm sortowania przez wybieranie, czyli SelectionSort. Znajdowanie minimum w tablicy Nim przejdziemy do algorytmu sortowania przez wybieranie warto pokazać (czasem przypomnieć) algorytm wyszukiwania elementu najmniejszego (minimalnego) w tablicy lub fragmencie tablicy. Popatrzmy na poniższy kod: 1. emin = t[0]; 2. for (int i=1; i<n-1; i++) 3. if (t[i]< emin) emin = t[i]; Ostatni wiersz mógłby wyglądać np. tak: 3. emin = min(emin, t[i]); co może się bardziej podobać, ale nie zmienia to ogólnego działania algorytmu. Efektem działania przedstawionego kodu jest zapisanie w zmiennej emin najmniejszej wartości występującej w tablicy pomiędzy indeksami 0, a n 1. Ten algorytm można nieco zmodyfikować: zamiast szukać najmniejszej wartości można po prostu pamiętać, gdzie w tablicy taka wartość występuje: 1. pmin = 0; 2. for (int i=1; i<n-1; i++) 3. if (t[i]< t[pmin]) pmin = i; Zmienna pmin na początku działania algorytmu wskazuje na element spod indeksu 0, który jest z założenia kandydatem na element najmniejszy. W wierszach 2-3 znajduje się pętla, w której sprawdzane są kolejne elementy i porównywane z elementem z pozycji pmin. Jeśli testowany element jest mniejszy, to od tego momentu zmienna pmin wskazuje na jego indeks. 10
11 Sortowanie przez wybieranie Chcąc nauczyć się programować, czy budować działające algorytmy warto spróbować opisywać słownie ich działanie. Dla algorytmu sortowania przez wybieranie prawdziwe są przynajmniej dwa sformułowania: 1. W wyniku działania algorytmu na kolejne pozycje i w tablicy wybierane są najmniejsze elementy z pozycji od i do n W sortowanej tablicy wyróżniamy dwie jej części posortowaną lewą i nieposortowaną prawą. Początkowo lewa część jest pusta, lecz w kolejnym kroku jest powiększana o jeden element, najmniejszy wybrany spośród wszystkich elementów z nieposortowanej części tablicy. Wizualizacja sortowania przez wybieranie: Przykład: tablica do posortowania Znaleziony najmniejszy element to 1 nic nie zamieniamy, bo jest na swoim miejscu Od drugiego elementu poszukujemy najmniejszego to Zamieniamy miejscami drugi element, czyli 7, ze znalezionym najmniejszym. Efekt to: Dwa elementy są już na swoich miejscach, poszukujemy najmniejszego elementu począwszy od trzeciego to 3: Zamieniamy miejscami. 11
12 Po zamianie: Trzy elementy są już na swoich miejscach; najmniejszy element licząc od czwartego to 4: Po zamianie (cztery elementy na miejscu) Najmniejszy element na białym tle to 7 i jest na swoim miejscu brak zamiany Kolejny najmniejszy element to 8. Po zamianie, ostatni element jest już na swoim miejscu: tablica posortowana Złożoność algorytmu sortowania przez wybieranie wynosi również O(n2). Teraz już czas na przedstawienie kodu omówionego algorytmu: 5. for (int p=0; p<n-1; p++) 6. { 7. pmin = p; 8. for (int i=p+1; i<n; i++) 9. if (t[i]< t[pmin]) pmin = i; 10. swap(t[i], t[pmin]) 11. } 12
13 Przebieg zajęć Czynności organizacyjne (5 minut) Sprawdzenie obecności, podanie tematu, określenie celów lekcji. Wprowadzenie (10 minut) Omówienie materiału teoretycznego przygotowanego do lekcji prezentacja: sortowanie przez wybieranie, przypomnienie wczytywania danych do programu z wykorzystaniem schowka, przypomnienie jak wczytać dane z plików. Praca zespołowa (20 minut) Uczniowie pracując w grupach rozwiązują proste zadania (programy) wymagające sortowania danych. Ćwiczenie 2.1 Napisz program, który posortuje dane zawarte w pliku posortuj.dat i zapisze je do pliku posortowane. dat. Do rozwiązania zadania wykorzystaj sortowanie przez wybieranie. Dyskusja podsumowująca (5 minut) Porównanie prędkości działania algorytmu sortowania bąbelkowego i sortowania przez wybieranie. Warto razem z młodzieżą przeanalizować działanie algorytmu sortowania, gdy dane są uporządkowane rosnąco oraz gdy są uporządkowane malejąco. Podczas analizy wariantu sortowania uzależniającego kolejne przebiegi algorytmu od liczby dokonanych wcześniej zamian okazuje się, że przy próbie posortowania ciągu rosnącego algorytm wykona jedynie ok. n operacji, co daje złożoność liniową O(n), a to znaczy, że działa jak najszybszy algorytm sortujący. W przypadku analizy działania sortowania przez wybierania dla identycznych danych złożoność jest kwadratowa O(n2). Omówienie z młodzieżą występujących trudności i sposobów unikania w przyszłości popełnianych błędów. Praca domowa (5 minut) Ćwiczenie 2.2 Napisz program, który wczyta dane do tablicy zawartość pliku posortuj.dat oraz zliczy liczbę porównań elementów sąsiednich wykonywanych przez algorytm sortowania przez wybieranie. Ćwiczenie 2.3 Napisz program, który umożliwi porównanie czasów działania algorytmu dla danych zawartych w plikach posortuj*.dat. Możesz to zrobić wczytując dane strumieniami z pliku, tak by czas wczytania nie miał wielkiego wpływu na ogólny czas działania algorytmu. Uwaga: środowisko CodeBlocks po uruchomieniu i zakończeniu programu zawsze wyświetla czas działania: 13
14 Sprawdzanie wiedzy Sprawdzenie wiedzy na podstawie testu. Ocenianie Ocena pracy na podstawie rozwiązanych ćwiczeń. Dostępne pliki 1. Prezentacja 2. Zadania 3. Test 4. Filmy 14
15 LEKCJA NR 3 TEMAT: Sortowanie przez zliczanie Co przygotować y Prezentacja 3 Sortowanie przez zliczanie MATERIAŁ TEORETYCZNY Przedstawione dotychczas algorytmy sortowania działały stosunkowo wolno. Zarówno sortowanie bąbelkowe, jak i sortowanie przez wybieranie były klasy O(n2), to znaczy, że aby wykonać sortowanie n elementów, należy w najgorszym razie wykonać około n2 operacji dominujących (porównań). Do analizy działania algorytmów możemy założyć, że współczesne komputery potrafią wykonać ok operacji arytmetycznych na sekundę. Gdyby tak było w rzeczywistości, to wymienione algorytmy sortowania do uporządkowania 106 elementów potrzebowałyby wykonania 1012 operacji. To w połączeniu z prędkością komputera oznaczałoby czas sortowania na około 1000s. Aby móc posortować tak dużo danych, warto skorzystać z algorytmów działających szybciej. Okazuje się, że przy spełnieniu pewnych ograniczeń można wykonać sortowanie liniowo tzn. o złożoności, która jest proporcjonalna do liczby elementów O(n). Posortowanie 106 elementów zajmowałoby ok. 1/1000-1/100s. Sortowanie przez zliczanie Jedną z takich metod sortowania, działającą w czasie proporcjonalnym do liczby elementów, jest sortowanie przez zliczanie. Metodę tę można stosować wtedy, gdy naszym zadaniem jest posortowanie liczb całkowitych o wartościach z pewnego małego zakresu: aby móc policzyć wystąpienia elementów, należy stworzyć dodatkową, pomocniczą tablicę, w której zlicza się wystąpienia elementów w tablicy, którą chcemy posortować. Jak działa sortowanie przez zliczanie? Najłatwiej prześledzić to analizując konkretny przykład: Należy posortować tablicę T[n] daną poniżej, n=8. T[0] T[1] T[2] T[3] T[4] T[5] T[6] T[7] Tablica jest wypełniona elementami całkowitymi dodatnimi z zakresu od 2 do 9. Dla ułatwienia zakres liczb, który wpływa na rozmiar tablicy pomocniczej z można przyjąć jako <0,9>. 1. Mając już wczytaną tablicę T tworzymy pomocniczą tablicę Pom. 2. Wypełniamy tablicę Pom zerami. Poniższy fragment kodu ilustruje początkową część tego algorytmu: 1. for (int i=0; i<z; i++) 2. Pom[i]=0; 15
16 Instrukcja pętli zawarta w wierszach 1-2 umożliwia przypisanie wszystkim elementom tablicy Pom wartości 0: Pom[0] Pom[1] Pom[2] Pom[3] Pom[4] Pom[5] Pom[6] Pom[7] Pom[8] Pom[9] Następnie poszczególne wartości tablicy T traktujemy jako indeksy komórek tablicy Pom, które należy powiększyć o 1 w razie ich każdorazowego wystąpienia w tablicy T. 3. for (int k=0; k<n; k++) 4. Pom[T[k]]++; Poniżej przedstawiona jest wizualizacja ilustrująca jak zmienia się tablica pomocnicza Pom w trakcie działania powyższej pętli: dla k=0 T[0]=3 Pom[T[0]] zwiększa się o 1, a więc Pom[3]=1 dla k=1 T[1]=4 Pom[T[1]] zwiększa się o 1, a więc Pom[4]=1 dla k=2 T[2]=2 Pom[T[2]] zwiększa się o 1, a więc Pom[2]=1 dla k=3 T[3]=4 Pom[T[3]] zwiększa się o 1, a więc Pom[4]=2 itd. 16
17 Tablice Pom po zakończeniu działania powyższej pętli wygląda następująco: Pom[0] Pom[1] Pom[2] Pom[3] Pom[4] Pom[5] Pom[6] Pom[7] Pom[8] Pom[9] Po zliczeniu liczby wystąpień elementów w tablicy T i wypełnieniu tablicy Pom należy przeprowadzić operację polegającą na wypełnieniu odpowiednimi liczbami komórek tablicy T na podstawie zawartości tablicy Pom. 6. for (int j=0; j<z; j++) 7. for (int l=0; l<pom[j]; l++) 8. cout<<j<<ʺ ʺ; Pom[0] Pom[1] Pom[2] Pom[3] Pom[4] Pom[5] Pom[6] Pom[7] Pom[8] Pom[9] Czyli dla j=0 Pom[0]=0 instrukcja 7 nie zostanie wykonana: dla j=1 pom[1]=0 instrukcja 7 nie zostanie wykonana; dla j=2 pom[2]=3 instrukcja 7 zostanie wykonana 3 razy; dla j=3 pom[3]=1 instrukcja 7 zostanie wykonana 1 raz; 3. dla j=4 pom[4]=2 instrukcja 7 zostanie wykonana 2 razy; 4 4 dla j=5 pom[5]=0 instrukcja 7 nie zostanie wykonana; dla j=6 pom[6]=0 instrukcja 7 nie zostanie wykonana; dla j=7 pom[7]=0 instrukcja 7 nie zostanie wykonana; dla j=8 pom[8]=1 instrukcja 7 zostanie wykonana 1 raz; 8 dla j=9 pom[9]=1 instrukcja 7 zostanie wykonana 1 raz; 9 końcowy efekt to: Należy zwrócić uwagę, że powyższy kod wypisał wprawdzie posortowane elementy rosnąco, ale nie zapisał tego w tablicy. Jak należałoby zmienić kod, aby posortowane elementy znalazły się w tablicy? Jak należałoby zmienić kod, by elementy były wypisywane malejąco? Wady i zalety sortowania przez zliczanie: y Zaleta: działa w czasie liniowym (jest szybki); złożoność O(n) n to liczba elementów y Wada: może sortować wyłącznie liczby całkowite, a nie nadaje się zupełnie do sortowania takich typów jak liczby rzeczywiste czy zmienne tekstowe y Wada: wymaga dodatkowej pamięci na tablicę pomocniczą 17
18 Powyższy kod porządkował liczby całkowite nieujemne. Jak należałoby zmienić kod, aby sortował liczby całkowite dodatnie oraz niedodatnie. Przebieg zajęć Czynności organizacyjne (5 minut) Sprawdzenie obecności, podanie tematu, określenie celów lekcji. Wprowadzenie (10 minut) Omówienie materiału teoretycznego przygotowanego do lekcji prezentacja: sortowanie przez zliczanie. Praca zespołowa (20 minut) Uczniowie pracując w grupach rozwiązują proste zadania (programy) wymagające sortowania danych metodą przez zliczanie. Ćwiczenie 3.1 Napisz program, który posortuje dane zawarte w pliku posortuj.dat i zapisze je do pliku posortowane.dat. Dyskusja podsumowująca (5 minut) Omówienie z uczniami występujących trudności i sposobów unikania w przyszłości popełnianych błędów. Praca domowa (5 minut) Ćwiczenie 3.2 Napisz program, który wczyta dane do tablicy zawartość pliku posortuj.dat oraz zapisze posortowane rosnąco przez zliczanie elementy do tablicy. Ćwiczenie 3.3 Zmodyfikuj program z Ćwiczenia 3.2, tak by elementy w tablicy docelowej były posortowane malejąco. Sprawdzanie wiedzy Sprawdzenie wiedzy na podstawie testu. Ocenianie Ocena pracy na podstawie rozwiązanych ćwiczeń. Dostępne pliki 1. Prezentacja 2. Zadania 3. Test 4. Filmy 18
19 Człowiek - najlepsza inwestycja Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH
INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Informatyka poziom rozszerzony Razem można więcej podstawy pracy
INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH
INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Informatyka poziom rozszerzony Pomysł, przepis, program... i co dalej
Część I. Uwaga: Akceptowane są wszystkie odpowiedzi merytorycznie poprawne i spełniające warunki zadania. Zadanie 1.1. (0 3)
Uwaga: Akceptowane są wszystkie odpowiedzi merytorycznie poprawne i spełniające warunki zadania. Część I Zadanie 1.1. (0 3) 3 p. za prawidłową odpowiedź w trzech wierszach. 2 p. za prawidłową odpowiedź
SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa
Autorzy scenariusza: SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH
Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.
Zadania do wykonania Rozwiązując poniższe zadania użyj pętlę for. 1. apisz program, który przesuwa w prawo o dwie pozycje zawartość tablicy 10-cio elementowej liczb całkowitych tzn. element t[i] dla i=2,..,9
KONSPEKT ZAJĘĆ KOŁA INFORMATYCZNEGO LUB MATEMATYCZNEGO W KLASIE III GIMNAZJUM LUB I LICEUM ( 2 GODZ.)
Joanna Osio asiaosio@poczta.onet.pl Nauczycielka matematyki w Gimnazjum im. Macieja Rataja w Żmigrodzie KONSPEKT ZAJĘĆ KOŁA INFORMATYCZNEGO LUB MATEMATYCZNEGO W KLASIE III GIMNAZJUM LUB I LICEUM ( 2 GODZ.)
Lekcja 3: Pierwsze kroki z Pythonem. Pętle
#SuperKoderzy www.superkoderzy.pl Mikrobitowcy Autorzy: Filip Kłębczyk Lekcja 3: Pierwsze kroki z Pythonem. Pętle Podczas lekcji uczniowie zapoznają się z dwoma rodzajami pętli - for i while - analizując
Programowanie w VB Proste algorytmy sortowania
Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich
EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA
EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA POZIOM ROZSZERZONY FORMUŁA OD 2015 ( NOWA MATURA ) ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ ARKUSZ MIN-R1,R2 MAJ 2018 Uwaga: Akceptowane są wszystkie odpowiedzi
Zapisywanie algorytmów w języku programowania
Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym
SCENARIUSZ LEKCJI. Dzielenie wielomianów z wykorzystaniem schematu Hornera
Autorzy scenariusza: SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH
Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011
Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Załóżmy, że uprawiamy jogging i chcemy monitorować swoje postępy. W tym celu napiszemy program, który zlicza, ile czasu
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność
SCENARIUSZ LEKCJI. Autorzy scenariusza: Krzysztof Sauter (informatyka), Marzena Wierzchowska (matematyka)
SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Autorzy scenariusza:
Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych
Temat 2. Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych Cele edukacyjne Usystematyzowanie podstawowych pojęć: algorytm z warunkami, iteracja, algorytm iteracyjny, zmienna sterująca.
INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH
INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Informatyka poziom rozszerzony Strukturalnie czy obiektowo czyli
Programowanie i techniki algorytmiczne
Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej
Lekcja : Tablice + pętle
Lekcja : Tablice + pętle Wprowadzenie Oczywiście wiesz już jak dużo można osiągnąć za pomocą tablic oraz jak dużo można osiągnąć za pomocą pętli, jednak tak naprawdę prawdziwe możliwości daje połączenie
Wymagania edukacyjne z informatyki dla uczniów klas VI SP nr 53 w Krakowie w roku szkolnym 2019/2020
Prowadzący: Elwira Kukiełka Ewa Pawlak-Głuc 1 Opracowano na podstawie: 1. Podstawa programowa(dz.u. z 017r. poz. ) Rozporządzenie Ministra Edukacji Narodowej z dnia 1 lutego 017 r. w sprawie podstawy programowej
Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI
1 Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI 1. Obliczenia w arkuszu kalkulacyjnym Rozwiązywanie problemów z wykorzystaniem aplikacji komputerowych obliczenia w arkuszu kalkulacyjnym wykonuje
Sortowanie przez wstawianie Insertion Sort
Sortowanie przez wstawianie Insertion Sort Algorytm sortowania przez wstawianie można porównać do sposobu układania kart pobieranych z talii. Najpierw bierzemy pierwszą kartę. Następnie pobieramy kolejne,
Algorytmy sortujące i wyszukujące
Algorytmy sortujące i wyszukujące Zadaniem algorytmów sortujących jest ułożenie elementów danego zbioru w ściśle określonej kolejności. Najczęściej wykorzystywany jest porządek numeryczny lub leksykograficzny.
znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.
Przedstawiamy algorytmy porządkowania dowolnej liczby elementów, którymi mogą być liczby, jak również elementy o bardziej złożonej postaci (takie jak słowa i daty). Porządkowanie, nazywane również często
Wymagania na poszczególne oceny szkolne dla klasy VI. (na podstawie Grażyny Koba, Teraz bajty. Informatyka dla szkoły podstawowej.
1 Wymagania na poszczególne oceny szkolne dla klasy VI (na podstawie Grażyny Koba, Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI ) 2 1. Obliczenia w arkuszu kalkulacyjnym słucha poleceń nauczyciela
Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119
Tablice Tablica to struktura danych, która może przechowywać wiele wartości tego samego typu. Na przykład tablica może zawierać: 10 wartości typu int opisujących liczbę studentów przyjętych na kierunek
Autorski program nauczania
Grzegorz Kaczorowski Innowacja pedagogiczna: Algorytmika i programowanie Typ innowacji: programowa Autorski program nauczania poziom edukacyjny: PONADGIMNAZJALNY Realizatorzy innowacji: uczniowie klas
INFORMATYKA SORTOWANIE DANYCH.
INFORMATYKA SORTOWANIE DANYCH http://www.infoceram.agh.edu.pl SORTOWANIE Jest to proces ustawiania zbioru obiektów w określonym porządku. Sortowanie stosowane jest w celu ułatwienia późniejszego wyszukania
lekcja 8a Gry komputerowe MasterMind
lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych
SCENARIUSZ LEKCJI. Miejsca zerowe funkcji kwadratowej i ich graficzna prezentacja
SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Autorzy scenariusza:
EGZAMIN MATURALNY 2011 INFORMATYKA
Centralna Komisja Egzaminacyjna w Warszawie EGZAMIN MATURALNY 2011 INFORMATYKA POZIOM PODSTAWOWY MAJ 2011 2 Zadanie 1. a) (0 1) Egzamin maturalny z informatyki poziom podstawowy CZĘŚĆ I Obszar standardów
Temat 20. Techniki algorytmiczne
Realizacja podstawy programowej 5. 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych problemów; 2) formułuje ścisły opis prostej sytuacji problemowej, analizuje
Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej
Zajęcia nr 5 Algorytmy i wskaźniki dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Plan Zapis i odczyt z plików tekstowych O tablicach ciąg dalszy Referencje
Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny
Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady
Sposoby przedstawiania algorytmów
Temat 1. Sposoby przedstawiania algorytmów Realizacja podstawy programowej 5. 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych problemów; 2) formułuje ścisły
Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99
Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99 Techniki algorytmiczne realizowane przy pomocy grafiki żółwia w programie ELI 2,0. Przedmiot: Informatyka
Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.
Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Grażyna Koba MIGRA 2019 Spis treści (propozycja na 2*32 = 64 godziny lekcyjne) Moduł A. Wokół komputera i sieci komputerowych
SCENARIUSZ TEMATYCZNY. Prawa Keplera (fizyka, informatyka poziom rozszerzony)
Autorzy scenariusza: SCENARIUSZ TEMATYCZNY OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH
Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI
1 Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI Opis założonych osiągnięć ucznia przykłady wymagań na poszczególne oceny szkolne dla klasy VI Grażyna Koba Spis treści 1. Obliczenia w arkuszu
Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )
SORTOWANIE 1 SORTOWANIE Proces ustawiania zbioru elementów w określonym porządku. Stosuje się w celu ułatwienia późniejszego wyszukiwania elementów sortowanego zbioru. 2 Definicja Ciąg wejściowy: a 1,
PDF stworzony przez wersję demonstracyjną pdffactory Pro Program 15
Program 15 Program zawierający następujące funkcje: funkcję wczytującą elementy do tablicy liczb całkowitych podanej jako parametr (długość tablicy również ma być podana jako parametr); funkcję wypisującą
Laboratorium nr 7 Sortowanie
Laboratorium nr 7 Sortowanie 1. Sortowanie bąbelkowe (BbS) 2. Sortowanie przez wstawianie (IS) 3. Sortowanie przez wybieranie (SS) Materiały Wyróżniamy następujące metody sortowania: 1. Przez prostą zamianę
SCENARIUSZ LEKCJI. Autorzy scenariusza: Krzysztof Sauter (informatyka), Marzena Wierzchowska (matematyka)
SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Moduł interdyscyplinarny:
Innowacja pedagogiczna dla uczniów pierwszej klasy gimnazjum Programowanie
Innowacja pedagogiczna dla uczniów pierwszej klasy gimnazjum Programowanie Opracował Ireneusz Trębacz 1 WSTĘP Dlaczego warto uczyć się programowania? Żyjemy w społeczeństwie, które coraz bardziej się informatyzuje.
SCENARIUSZ LEKCJI. TEMAT LEKCJI: Projektowanie rozwiązania prostych problemów w języku C++ obliczanie pola trójkąta
SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Autorzy scenariusza:
Podstawowe algorytmy i ich implementacje w C. Wykład 9
Wstęp do programowania 1 Podstawowe algorytmy i ich implementacje w C Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Element minimalny i maksymalny zbioru Element minimalny
Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.
Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na
Scenariusz lekcji Ozobot w klasie: Tabliczka mnożenia
Scenariusz lekcji Ozobot w klasie: Tabliczka mnożenia Opracowanie scenariusza: Richard Born Adaptacja scenariusza na język polski: mgr Piotr Szlagor Tematyka: Informatyka, matematyka, obliczenia, algorytm
Algorytmy. 1. Sortowanie 2. Statki i okręty. programowanie cz.7. poniedziałek, 2 marca 2009
Algorytmy. Sortowanie 2. Statki i okręty programowanie cz. ALGORYTMY SORTUJĄCE A. Przez zamianę (bąbelkowe) B. Przez wybieranie Najpopularniejsze metody sortowania C. Przez wstawianie Przez zamianę (sortowanie
Materiały: kartki papieru (5 x 5 kolorów), piłeczki pingpongowe (5 x 5 kolorów), worek (nieprzeźroczysty).
Pudełkowy komputer Materiały: kartki papieru (5 x 5 kolorów), piłeczki pingpongowe (5 x 5 kolorów), worek (nieprzeźroczysty). Budowa komputera: każdy uczeń składa proste pudełko metodą orgiami Zobacz:
Podstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Kolokwium ze wstępu do informatyki, I rok Mat. (Ściśle tajne przed godz. 10 : grudnia 2005.)
Kolokwium ze wstępu do informatyki, I rok Mat. (Ściśle tajne przed godz. 10 : 15 1 grudnia 005.) 1. Program w C 1 zawiera deklaracje 1 void P1 ( int a, int b) { int i ; 3 for ( i =0;i
Algorytmy i Struktury Danych, 2. ćwiczenia
Algorytmy i Struktury Danych, 2. ćwiczenia 2017-10-13 Spis treści 1 Optymalne sortowanie 5 ciu elementów 1 2 Sortowanie metodą Shella 2 3 Przesunięcie cykliczne tablicy 3 4 Scalanie w miejscu dla ciągów
Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba
Programowanie od pierwszoklasisty do maturzysty Grażyna Koba Krąg trzydziestolecia nauki programowania C++, Java Scratch, Baltie, Logo, Python? 2017? Informatyka SP, GIMN, PG 1987 Elementy informatyki
Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!
Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)! Pseudokod: silnia(n): jeżeli n == 0 silnia = 1 w przeciwnym
INFORMATYKA POZIOM ROZSZERZONY
EGZAMIN MATURALNY W ROKU SZKOLNYM 2016/2017 FORMUŁA OD 2015 ( NOWA MATURA ) INFORMATYKA POZIOM ROZSZERZONY ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ ARKUSZ MIN-R1, R2 MAJ 2017 Uwaga: Akceptowane są wszystkie odpowiedzi
Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady
Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy
Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II
Zespół TI Instytut Informatyki Uniwersytet Wrocławski ti@ii.uni.wroc.pl http://www.wsip.com.pl/serwisy/ti/ Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II Rozkład wymagający
Scenariusz lekcji. rozpoznać prawidłową deklarację tablicy; podać odwołanie do określonego elementu tablicy.
Scenariusz lekcji 1 TEMAT LEKCJI: Zmienne tablicowe 2 CELE LEKCJI: 2.1 Wiadomości: Uczeń potrafi: podać definicję tablicy; podać definicję indeksu; wymienić cechy tablicy w VB.NET; podać postać deklaracji
Podstawy Programowania Podstawowa składnia języka C++
Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include
Sortowanie bąbelkowe - wersja nr 1 Bubble Sort
Sortowanie bąbelkowe - wersja nr 1 Bubble Sort Algorytm Algorytm sortowania bąbelkowego jest jednym z najstarszych algorytmów sortujących. Można go potraktować jako ulepszenie opisanego w poprzednim rozdziale
PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI
PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY ARKUSZ I STYCZEŃ 2014 Instrukcja dla zdającego 1. Sprawdź, czy arkusz egzaminacyjny zawiera 9 stron (zadania 1 3). Ewentualny brak zgłoś przewodniczącemu
Algorytmika i programowanie usystematyzowanie wiadomości
Temat 1. Algorytmika i programowanie usystematyzowanie wiadomości Cele edukacyjne Usystematyzowanie podstawowych pojęć: algorytm, program, specyfikacja zadania, lista kroków, schemat blokowy, algorytm
znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Temat: Programujemy historyjki w języku Scratch tworzymy program i powtarzamy polecenia.
Prowadzący: Dariusz Stefańczyk Szkoła Podstawowa w Kurzeszynie Konspekt lekcji z informatyki w klasie IV Dział programowy: Programowanie. Podstawa programowa 1. Treści nauczania: Rozumienie, analizowanie
Struktury Danych i Złożoność Obliczeniowa
Struktury Danych i Złożoność Obliczeniowa Zajęcia 2 Algorytmy wyszukiwania, sortowania i selekcji Sortowanie bąbelkowe Jedna z prostszych metod sortowania, sortowanie w miejscu? Sortowanie bąbelkowe Pierwsze
SCENARIUSZ LEKCJI. TEMAT LEKCJI: O czym mówią współczynniki funkcji liniowej? - wykorzystanie arkusza kalkulacyjnego na lekcjach matematyki
SCENARIUSZ LEKCJI OPRACOWANY w RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE i OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Autorzy scenariusza:
Scenariusz zajęć. Moduł VI. Projekt Gra logiczna zgadywanie liczby
Scenariusz zajęć Moduł VI Projekt Gra logiczna zgadywanie liczby Moduł VI Projekt Gra logiczna zgadywanie liczby Cele ogólne: przypomnienie i utrwalenie poznanych wcześniej poleceń i konstrukcji języka
Podstawy Informatyki. Sprawność algorytmów
Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych
Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I
Zespół TI Instytut Informatyki Uniwersytet Wrocławski ti@ii.uni.wroc.pl http://www.wsip.com.pl/serwisy/ti/ Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I Rozkład zgodny
Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej
Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej Spis treści Autor: Marcin Orchel Algorytmika...2 Algorytmika w gimnazjum...2 Algorytmika w liceum...2 Język programowania w
Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia
Podstawy informatyki Elektrotechnika I rok Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Katedra Energoelektroniki i Automatyki Systemów Przetwarzania Energii AGH Kraków 2017 Tematyka
Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to
Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to wprowadzili J. Hartmanis i R. Stearns. Najczęściej przez zasób rozumie się czas oraz pamięć dlatego
KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO
Aleksandra Nogała nauczycielka matematyki w Gimnazjum im. Macieja Rataja w Żmigrodzie olanog@poczta.onet.pl KONSPEKT ZAJĘĆ ( 2 godziny) KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO TEMAT
LEKCJA 2 Program do zdalnego sterowania robotem
LEKCJA 2 Program do zdalnego sterowania robotem Przedmiot: Informatyka Etap: klasa I-III, klasa IV-VI, klasa VII-VIII Czas na realizację: 45min. Autor: Grzegorz Troszyński Redakcja: Joanna Skalska Krótki
Wymagania edukacyjne z informatyki w klasie VIII
Wymagania edukacyjne z informatyki w klasie VIII Wymagania konieczne K dotyczą zagadnień elementarnych, stanowiących swego rodzaju podstawę, powinien je zatem opanować każdy uczeń. Wymagania podstawowe
Analiza algorytmów zadania podstawowe
Analiza algorytmów zadania podstawowe Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r 0 Jaka wartość zostanie zwrócona przez powyższą
Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu danych
INFORMATYKA POZIOM ROZSZERZONY
EGZAMIN MATURALNY W ROKU SZKOLNYM 2015/2016 FORMUŁA DO 2014 ( STARA MATURA ) INFORMATYKA POZIOM ROZSZERZONY ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ ARKUSZ MIN-R1, R2 MAJ 2016 Uwaga: Akceptowane są wszystkie odpowiedzi
INFORMATYKA POZIOM ROZSZERZONY
EGZAMIN MATURALNY W ROKU SZKOLNYM 2015/2016 FORMUŁA DO 2014 ( STARA MATURA ) INFORMATYKA POZIOM ROZSZERZONY ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ ARKUSZ MIN-R1, R2 MAJ 2016 Uwaga: Akceptowane są wszystkie odpowiedzi
Jeszcze o algorytmach
Jeszcze o algorytmach Przykłady różnych, podstawowych algorytmów 11.01.2018 M. Rad Plan Powtórka Znajdowanie najmniejszego elementu Segregowanie Poszukiwanie przez połowienie Wstawianie Inne algorytmy
Pętle. Dodał Administrator niedziela, 14 marzec :27
Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać
EGZAMIN MATURALNY OD ROKU SZKOLNEGO
EGZAMIN MATURALNY OD ROKU SZKOLNEGO 2014/2015 INFORMATYKA POZIOM ROZSZERZONY ROZWIĄZANIA ZADAŃŃ I SCHEMATY PUNKTOWANIA (A1, A2, A3, A4, A6, A7) GRUDZIEŃ 2013 Zadanie 1. Test (0 5) Wymagania ogólne I. [
Temat: ANALIZA PRÓBNEGO EGZAMINU GIMNAZYJNEGO DIAGRAM PUDEŁKOWY
Jolanta Dobrzyńska Gimnazjum nr 1 w Sochaczewie SCENARIUSZ LEKCJI 11.03.2003r. Temat: ANALIZA PRÓBNEGO EGZAMINU GIMNAZYJNEGO DIAGRAM PUDEŁKOWY Program nauczania: Matematyka 2001. Czas trwania lekcji: 45
Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE
Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE 6. Ćwiczenia komputerowe Ćwiczenie 6.1
Temat 7. Najlżejsze i najcięższe algorytmy sortowania
Temat 7 Najlżejsze i najcięższe algorytmy sortowania Streszczenie Komputery są często używane porządkowania różnych danych, na przykład nazwisk (w porządku alfabetycznym), terminów spotkań lub e-maili
Temat 1. Więcej o opracowywaniu tekstu
Temat 1. Więcej o opracowywaniu tekstu Cele edukacyjne Celem tematu 1. jest uporządkowanie i rozszerzenie wiedzy uczniów na temat opracowywania dokumentów tekstowych (m.in. stosowania tabulatorów, spacji
Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI 2 CELE LEKCJI. 2.1 Wiadomości. 2.2 Umiejętności 3 METODY NAUCZANIA 4 ŚRODKI DYDAKTYCZNE
1 TEMAT LEKCJI Algorytmy rozwiązujące problemy liczbowe 2 CELE LEKCJI 2.1 Wiadomości Uczeń potrafi: wymienić przykłady klasycznych algorytmów służących rozwiązywaniu problemów liczbowych; opisać algorytm
INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki
INFORMATYKA Z MERMIDONEM Programowanie Moduł 5 / Notatki Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego. Realizator projektu: Opracowano w ramach projektu
Tablice cz. I Tablice jednowymiarowe, proste operacje na tablicach
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Tablice cz. I Tablice jednowymiarowe, proste operacje na tablicach Tablice Powiedzmy, że chcemy zapamiętać w programie
Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe
I. Struktury sterujące.bezpośrednie następstwo (A,B-czynności) Wykład _2 Algorytmy sortowania tablic Sortowanie bąbelkowe Elementy języka stosowanego do opisu algorytmu Elementy Poziom koncepcji Poziom
SCENARIUSZ LEKCJI. TEMAT LEKCJI: Budowa atomu. Układ okresowy pierwiastków chemicznych. Promieniotwórczość naturalna i promieniotwórczość sztuczna
SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Autorzy scenariusza:
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
SCENARIUSZ LEKCJI: TEMAT LEKCJI: Postać kanoniczna funkcji kwadratowej. Interpretacja danych w arkuszu kalkulacyjnym
Autorzy scenariusza: SCENARIUSZ LEKCJI: OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH
Programowanie - wykład 4
Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include
WYMAGANIA EDUKACYJNE Z INFORMATYKI dla klasy III gimnazjalnej, Szkoły Podstawowej w Rychtalu
WYMAGANIA EDUKACYJNE Z INFORMATYKI dla klasy III gimnazjalnej, Szkoły Podstawowej w Rychtalu 1 Algorytmika i programowanie Rozwiązywanie problemów i podejmowanie decyzji z wykorzystaniem komputera, stosowanie
Algorytmy sortujące. sortowanie kubełkowe, sortowanie grzebieniowe
Algorytmy sortujące sortowanie kubełkowe, sortowanie grzebieniowe Sortowanie kubełkowe (bucket sort) Jest to jeden z najbardziej popularnych algorytmów sortowania. Został wynaleziony w 1956 r. przez E.J.
8. Wektory. Przykłady Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana.
8. Wektory Przykłady 8.1. Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana. Uwaga! Kod poniżej. To zadanie można rozwiązać przy użyciu wiedzy
Algorytmika i pseudoprogramowanie
Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Programowanie Strukturalne i Obiektowe Klasa: druga Dział Dopuszczający Dostateczny Dobry
Karta pracy do doświadczeń
1 Karta pracy do doświadczeń UWAGA: Pola z poleceniami zapisanymi niebieską czcionką i ramkami z przerywaną linią wypełniają uczniowie uczestniczący w zajęciach. A. Temat w formie pytania badawczego lub