PODRĘCZNIK DO INFORMATYKI DLA KLASY ÓSMEJ SZKOŁY PODSTAWOWEJ

Wielkość: px
Rozpocząć pokaz od strony:

Download "PODRĘCZNIK DO INFORMATYKI DLA KLASY ÓSMEJ SZKOŁY PODSTAWOWEJ"

Transkrypt

1 8 PODRĘCZNIK DO INFORMATYKI DLA KLASY ÓSMEJ SZKOŁY PODSTAWOWEJ

2

3 8 Grażyna Koba PODRĘCZNIK DO INFORMATYKI DLA KLASY ÓSMEJ SZKOŁY PODSTAWOWEJ

4 Podręcznik dopuszczony do użytku szkolnego przez ministra właściwego do spraw oświaty i wychowania i wpisany do wykazu podręczników przeznaczonych do kształcenia ogólnego do nauczania informatyki, na podstawie opinii rzeczoznawców: dr. Tomasza Huka, dr. Jacka Stańdo, dr. Krzysztofa Kaszewskiego. Etap edukacyjny: II Typ szkoły: szkoła podstawowa Rok dopuszczenia: 2018 Numer ewidencyjny w wykazie MEN: 847/5/2018 Nabyta przez Ciebie publikacja jest dziełem twórcy i wydawcy. Prosimy o przestrzeganie praw, jakie im przysługują. Zawartość publikacji możesz udostępnić nieodpłatnie osobom bliskim lub osobiście znanym, ale nie umieszczaj jej w internecie. Jeśli cytujesz jej fragmenty, to nie zmieniaj ich treści i koniecznie zaznacz, czyje to dzieło. Możesz skopiować część publikacji jedynie na własny użytek. Szanujmy cudzą własność i prawo. Więcej na Copyright by Nowa Era Sp. z o.o ISBN Copyright by MIGRA Sp. z o.o., Wrocław 2018 Konsultacja merytoryczno-dydaktyczna: Marta Skała-Kowalczyk, Michał Łętowski, Piotr Babij. Redakcja i korekta językowa: dr Halina Kubicka. Nadzór artystyczny: Kaia Juszczak. Opieka graficzna: Ewa Kaletyn. Projekt okładki: Maciej Galiński, ULTRA Agency. Projekt layoutu: ULTRA Agency. Opracowanie graficzne: Maciej Galiński, Klaudia Jarocka, Ewa Kaletyn, Michał Kołakowski. Realizacja projektu graficznego: Studio Grafiki INCOLOR Roman Jankowski. Fotografie: BE&W ALAMY LIMITED s. 237 (komputer ZX Spectrum), ALAMY LIMITED/Photo Researchers s. 231 (maszyna Schickarda), ALLPIX PRESS/áSunset Box s. 237 (komputer Apple), GRANGER COLLECTION s. 231 (kalkulator Leibnitza); East News Science Photo Library/Science Museum s. 238 (komputer IBM PC 5150), SSPL/Stock pictures s. 232 (maszyna analityczna Babbage a), s. 237 (komputer ZX81); Getty Images Bettmann s. 234 (komputer Harvard Mark I), 235 (komputer ENIAC), Future Publishing/Mark Madeo s. 237 (komputer Altair 8800), Hulton Archive/Apic/RETIRED s. 236 (mikrokontroler 4004), s. 238 (komputer Macintosh), istock/getty Images Plus/pacopole s. 230 (abakus); Michał Koba s. 194, 215, 224, 225; Panthermedia Peter Schmalfeldt s. 233 (komputer Z3); Shutterstock Mauvries s.194, Neveshkin Nikolay s. 231 (liczydło), Nor Gal s. 231 (japońskie sorobany); Wikimedia/smial (talk) s. 236 (procesor). Nowa Era Sp. z o.o. Aleje Jerozolimskie 146 D, Warszawa nowaera@nowaera.pl, tel Druk i oprawa: Drogowiec-PL Kielce,

5 Spis treści 1. Algorytmika i programowanie 1.1. Zapisywanie algorytmów na liczbach naturalnych w języku Scratch Algorytmy wyszukiwania i porządkowania Wprowadzenie do programowania w języku C Stosowanie funkcji i tablic do zapisania algorytmów porządkowania i wyszukiwania w języku C Wprowadzenie do programowania w języku Python Stosowanie funkcji i list do zapisania algorytmów porządkowania i wyszukiwania w języku Python Obliczenia w arkuszu kalkulacyjnym 2.1. Komórka, adres, formuła Projektowanie tabeli i stosowanie funkcji arkusza kalkulacyjnego Arkusz kalkulacyjny, czyli kalkulacje Więcej o pracy w arkuszu kalkulacyjnym Przedstawianie danych w postaci wykresu Wstawianie tabel i wykresów arkusza kalkulacyjnego do dokumentów tekstowych Zastosowanie arkusza kalkulacyjnego Dokumentacja imprezy sportowej projekt Internet 3.1. Tworzenie strony internetowej z wykorzystaniem języka HTML Systemy zarządzania treścią Podróż z internetem dookoła świata projekt Projekty multimedialne 4.1. Prezentacje multimedialne i filmy Historia i rozwój informatyki projekt Indeks najważniejszych terminów

6 Poznaj swój podręcznik Sposób Zestawienie informacji Ciekawostki Pytania i polecenia Zadania Zadania

7 Algorytmika i programowanie

8 1.1. Zapisywanie algorytmów na liczbach naturalnych w języku Scratch Warto powtórzyć 1. Czym jest algorytm? 2. Czym jest specyfikacja problemu (zadania)? 3. Na czym polega przedstawienie algorytmu w postaci listy kroków? 4. W jaki sposób przedstawiamy w schemacie blokowym sytuację warunkową? 5. Na czym polega iteracja? 6. Jak tworzymy program w języku Scratch? 7. Jak tworzymy zmienną w programie Scratch? 8. Jakich poleceń używamy w języku Scratch, aby wprowadzić wartości zmiennej za pomocą klawiatury? 9. Za pomocą jakiego polecenia realizujemy w języku Scratch sytuację warunkową? W języku Scratch możemy programować historyjki i gry, tworzyć kompozycje z figur geometrycznych, a także korzystać ze zmiennych, wykonywać na nich obliczenia i wyświetlać wyniki na ekranie. Na pierwszych zajęciach przypomnimy polecenia języka Scratch poznane w poprzednich klasach i wykonamy kilka ćwiczeń. Poznamy też nowe polecenia. Na lekcjach informatyki w klasie ósmej poznamy podstawowe algorytmy, które będziemy zapisywać w języku programowania. Pierwsze algorytmy zapiszemy w języku Scratch. W tym temacie: 1. utworzysz programy w języku Scratch, stosując zmienne, polecenia warunkowe i iteracyjne, 2. dowiesz się, jak działa algorytm Euklidesa w wersji z odejmowaniem i zapiszesz ten algorytm w języku Scratch, 3. zbadasz podzielność liczb i zapiszesz algorytm badania podzielności liczb w języku Scratch, 4. dowiesz się, jak działa algorytm Euklidesa w wersji z dzieleniem i zapiszesz ten algorytm w języku Scratch, 5. poznasz algorytm wyodrębniania cyfr danej liczby i zapiszesz go w języku Scratch. 6

9 1.1. Zapisywanie algorytmów na liczbach naturalnych w języku Scratch 1 Tworzenie programów w języku Scratch Aby utworzyć program w języku Scratch, należy umieścić odpowiednie polecenia w obszarze tworzenia programu. Połączone ze sobą polecenia tworzą skrypt. Program może zawierać więcej niż jeden skrypt. Skrypt uruchamiamy, klikając jego dowolny element. Jeśli na początku skryptu umieścimy polecenie kiedy kliknięto, będziemy mogli uruchomić skrypt (skrypty), klikając ikonę zielonej flagi. Utworzony program możemy zapisać w pliku, następnie otworzyć go, poprawić lub uzupełnić i ponownie zapisać pod tą samą lub inną nazwą. W języku Scratch możemy tworzyć zmienne, których będziemy używali w obliczeniach. Zmiennej możemy przypisać wartość bezpośrednio w programie lub wprowadzić ją z klawiatury po uruchomieniu programu. W pierwszych ćwiczeniach będziemy wprowadzać wartość zmiennej z klawiatury, a wynik obliczeń wyświetlać na ekranie. ustaw nazwa_zmiennej na. na Czujniki. Dane 7

10 Dział 1. Algorytmika i programowanie ustaw zapytaj. Ćwiczenie 1. Tworzymy zmienne i stosujemy je w obliczeniach 1. Utwórz trzy zmienne o nazwach a, b i suma (rys. 1.). 2. Utwórz program obliczający sumę dwóch liczb wprowadzanych z klawiatury (rys. 2.). 3. Wynik obliczeń wyświetlaj na ekranie. Program powinien wyświetlać również odpowiedni komunikat (rys. 3.). 4. Zapisz program w pliku pod nazwą Obliczenia1. powiedz suma powtórz powtórz 10 razy. Po uruchomieniu programu utworzonego w ćwiczeniu 1. otrzymujemy wynik dla jednej pary liczb. Zmodyfikujmy program z ćwiczenia 1., aby obliczał sumę kilku par liczb. powtórz powtórz Polecenia, które chcemy powtarzać, umieszczamy wewnątrz elementu powtórz. Liczbę powtórzeń określamy, zmieniając liczbę w polu tekstowym elementu powtórz. W polu tym możemy również umieścić zmienną, a jej wartość wprowadzać z klawiatury po uruchomieniu programu. 8

11 1.1. Zapisywanie algorytmów na liczbach naturalnych w języku Scratch powtórz powtórz powtórz Ćwiczenie 2. Stosujemy polecenie powtórz 1. Otwórz program Obliczenia1 zapisany w ćwiczeniu Odszukaj w panelu poleceń element reprezentujący polecenie powtórz. Zmodyfikuj program tak, aby po uruchomieniu programu obliczenia powtarzały się dla pięciu par liczb a i b. 3. Utwórz nową zmienną o nazwie różnica. Uzupełnij skrypt pokazany na rysunku 5. o obliczanie różnicy liczb a i b oraz wyświetlanie wyniku na ekranie. 4. Zapisz program w pliku pod tą samą nazwą. Wskazówka: Wewnątrz elementu powtórz dodaj polecenie ustaw z wyrażeniem obliczającym różnicę liczb a i b oraz dwa polecenia powiedz (z odpowiednim komunikatem i nazwą zmiennej różnica). Po uruchomieniu programu utworzonego w ćwiczeniu 2. otrzymujemy sumę i różnicę pary liczb. Zmodyfikujmy program tak, aby konkretne działanie wykonywał zależnie od naciśniętego klawisza na klawiaturze. W tym celu należy zastosować polecenie warunkowe (instrukcję warunkową). warunek to w przeciwnym razie kolejne_polecenie warunek to kolejne_polecenie 9

12 Dział 1. Algorytmika i programowanie - warunek - to warunek w przeciwnym razie - kolejne_ polecenie W języku Scratch instrukcję warunkową reprezentuje element z napisem jeżeli to (rys. 7.). Warunek tworzymy, korzystając z elementów z grupy Wyrażenia. zapytaj klawisz Dane s klawisz s a i b. klawisz Ćwiczenie 3. Stosujemy polecenie warunkowe jeżeli w uproszczonej wersji 1. Otwórz program Obliczenia1 zapisany w ćwiczeniu Utwórz nową zmienną o nazwie klawisz. Znajdź w panelu poleceń element reprezentujący polecenie jeżeli. Zmodyfikuj program, tak aby wykonał odpowiednie obliczenia zależnie od wprowadzonej wartości zmiennej klawisz: jeśli klawisz = s dodawanie (rys. 7.), a jeśli klawisz = r odejmowanie (rys. 8a). 3. Zapisz program w pliku pod tą samą nazwą. 4. Uruchom program i sprawdź jego działanie dla różnych danych. Wprowadzaj również litery inne niż s i r. Odpowiedz na pytanie: Jakie polecenie komputer wykona po wprowadzeniu litery innej niż s i r? Działanie pełnej wersji polecenia warunkowego (instrukcji warunkowej) jeżeli sprawdzimy w ćwiczeniu 4. 10

13 1.1. Zapisywanie algorytmów na liczbach naturalnych w języku Scratch Ćwiczenie 4. Stosujemy polecenie warunkowe jeżeli w pełnej wersji klawisz s, r - Jakie polecenia program wyko- i 5. zapytaj klawisz - W dotychczasowych ćwiczeniach z góry określaliśmy liczbę powtórzeń w programie. Zdarza się jednak, że liczba ta zależy od spełnienia (bądź niespełnienia) warunku, np. polecenia mają być powtarzane do momentu, aż wartość danej zmiennej (np. a) będzie równa podanej liczbie lub będzie większa od wartości innej zmiennej. Większość języków programowania zawiera odpowiednie instrukcje iteracyjne (instrukcje powtarzania) do zapisywania algorytmów, w których liczba iteracji (powtórzeń) zależy od spełnienia (bądź niespełnienia) warunku. W języku Scratch w tym celu stosuje się polecenie powtarzaj aż. 11

14 Dział 1. Algorytmika i programowanie warunek kolejne_polecenie Działanie polecenia powtarzaj aż polega na tym, że komputer wykonuje listę_poleceń do chwili spełnienia warunku. Komputer sprawdza warunek na początku. Jeśli jest on fałszywy, wykonuje listę_poleceń i ponownie sprawdza warunek. Jeśli warunek jest prawdziwy, komputer przechodzi do wykonania kolejnych_poleceń. Jeśli warunek od razu jest prawdziwy, komputer nie wykona listy poleceń ani razu. 12

15 1.1. Zapisywanie algorytmów na liczbach naturalnych w języku Scratch Ćwiczenie 5. Stosujemy polecenie powtarzaj aż do określenia warunków w prostej grze Bramka kwota przypisz kwota kwota < 0 kwota kwota kwota Ćwiczenie 6. Stosujemy polecenie powtarzaj aż do kalkulacji wydatków 1. kwota cena - kwota Zakupy 4. 13

16 Dział 1. Algorytmika i programowanie 2 Realizacja algorytmu Euklidesa w wersji z odejmowaniem NWD Algorytmem, w którym wykorzystamy poznane instrukcje: warunkową jeżeli i iteracyjną powtarzaj aż, jest algorytm Euklidesa. Algorytm Euklidesa służy do znajdowania największego wspólnego dzielnika (NWD) dwóch liczb naturalnych. Na przykład dla liczb a = 10 i b = 25 NWD wynosi 5. Korzystając z algorytmu Euklidesa, obliczamy NWD dla tych liczb w następujący sposób: od większej liczby odejmujemy mniejszą: b a = = 15, zastępujemy większą liczbę otrzymaną różnicą, czyli teraz a = 10, b = 15, od większej liczby odejmujemy mniejszą: b a = = 5, zastępujemy większą liczbę otrzymaną różnicą, czyli teraz a = 10, b = 5, od większej liczby odejmujemy mniejszą (teraz większą liczbą jest liczba a): a b = 10 5 = 5, zastępujemy większą liczbę otrzymaną różnicą, czyli teraz a = 5, b = 5. Kończymy algorytm, ponieważ a = b. Przyjmujemy, że NWD jest równe pierwszej z liczb (czyli liczbie a po obliczeniach). Największy wspólny dzielnik liczb (NWD) możemy wykorzystać do skracania ułamków zwykłych licznik i mianownik dzielimy przez ich NWD. Jeśli licznik i mianownik ułamka podzielimy przez 5, otrzymamy 2 5. Algorytm Euklidesa wersja z odejmowaniem Zadanie: wspólnego dzielnika dwóch niezerowych liczb naturalnych. Dane: Liczby naturalne: a, b (a, b Wynik: a i b: NWD. Lista kroków: 1. Zacznij algorytm. 2. Wprowadź wartość liczby a. 3. Wprowadź wartość liczby b. 4. Sprawdź, czy a = b: jeżeli tak, idź do kroku Jeżeli a > b, to zmiennej a przypisz wartość wyrażenia a b: a = a b; w przeciwnym przypadku zmiennej b przypisz wartość wyrażenia b a: b = b a. 14

17 1.1. Zapisywanie algorytmów na liczbach naturalnych w języku Scratch 6. Idź do kroku Wyprowadź wynik: NWD jest równe a. 8. Zakończ algorytm. Przykłady wykonania algorytmu Dla a = 4 i b = 8 czy a = b? 4 = 8? NIE czy a > b? 4 > 8? NIE b = b a = 8 4 = 4 czy a = b? 4 = 4? TAK NWD = a = 4 Dla a = 25 i b = 15 czy a = b? 25 = 15? NIE czy a > b? 25 > 15? TAK a = a b = = 10 czy a = b? 10 = 15? NIE czy a > b? 10 > 15? NIE b = b a = = 5 czy a = b? 10 = 5? NIE czy a > b? 10 > 5? TAK a = a b = 10 5 = 5 czy a = b? 5 = 5? TAK NWD = a = 5 Ćwiczenie 7. Sprawdzamy działanie algorytmu Euklidesa w wersji z odejmowaniem Sprawdź działanie algorytmu Euklidesa w wersji z odejmowaniem i wyznacz NWD dla liczb: a = 3 i b = 9 oraz a = 16 i b = 12. START Wprowadź (a, b) Pętla algorytmu wracamy do jednego wykonuje wiele razy. TAK Wyprowadź (a) Czy a = b? TAK NIE Czy a > b? NIE Stosujemy dwa bloki warunkowe, w tym jeden. KONIEC a = a - b b = b - a Rys. 12. Schemat blokowy algorytmu Euklidesa w wersji z odejmowaniem 15

18 Dział 1. Algorytmika i programowanie Ćwiczenie 8. Analizujemy schemat blokowy algorytmu Euklidesa w wersji z odejmowaniem Sprawdź działanie schematu blokowego pokazanego na rys. 12. dla przykładowych danych: dla a równego b i dla a różnego od b. Zwróć uwagę na oznaczenie pętli w schemacie. Odpowiedz na pytania: Które polecenia się powtarzają? Jaki jest warunek zakończenia pętli? Algorytm Euklidesa zaprogramujemy w języku Scratch. Zastosujemy polecenie powtarzaj aż, ponieważ w algorytmie powtarzamy polecenia aż do spełnienia warunku (aż liczby będą sobie równe). Wykorzystamy polecenie warunkowe jeżeli (instrukcję warunkową), ponieważ w algorytmie występują sytuacje warunkowe. Użyjemy również zmiennych (rys. 13.). a b i NWD. a i b a b a i b a i b NWD. 16

19 1.1. Zapisywanie algorytmów na liczbach naturalnych w języku Scratch Ćwiczenie 9. Analizujemy i sprawdzamy działanie programu realizującego algorytm Euklidesa w wersji z odejmowaniem 1. Umieść w obszarze roboczym polecenia z rysunku Zapisz program pod nazwą Euklides_odejmowanie. 3. Uruchom program i sprawdź jego działanie dla różnych danych. 4. Odpowiedz na pytanie: Kiedy komputer wykonuje ostatnie polecenie ustaw? Wskazówka: Zakładamy, że wprowadzamy z klawiatury poprawne dane, czyli liczby naturalne różne od zera. Algorytmy, w których wykorzystujemy technikę iteracji (powtarzania tych samych operacji), to algorytmy iteracyjne. 3 Badanie podzielności liczb naturalnych Jeśli reszta z dzielenia dwóch liczb naturalnych jest równa zero, mówimy, że pierwsza z liczb (dzielna) jest podzielna przez drugą (dzielnik). W języku Scratch do obliczania reszty z dzielenia można wykorzystać operator mod (z grupy Wyrażenia). Na przykład: dla a = 21 i b = 4 reszta z dzielenia a przez b wynosi 1: reszta = a mod b = 21 mod 4 = 1, dla a = 42 i b = 7 reszta z dzielenia a przez b wynosi 0: reszta = a mod b = 42 mod 7 = 0, dla a = 245 i b = 8 reszta z dzielenia a przez b wynosi 5: reszta = a mod b = 245 mod 8 = 5, dla a = 8 i b = 16 reszta z dzielenia a przez b wynosi 8: reszta = a mod b = 8 mod 16 = 8. Operator mod Ćwiczenie 10. Obliczamy resztę z dzielenia stosujemy operator mod 1. Utwórz w języku Scratch program obliczający resztę z dzielenia liczby naturalnej a przez liczbę naturalną b i wyświetlający wynik (wartość zmiennej reszta) na ekranie. Liczby a i b należy wprowadzać z klawiatury. 2. Zapisz program w pliku pod nazwą Reszta. 17

20 Dział 1. Algorytmika i programowanie Algorytm badania podzielności liczb Zadanie: a b Dane: a, b b Wynik: a b b a b a Lista kroków: 1. Zacznij algorytm. 2. Wprowadź wartość dzielnej a. 3. Wprowadź wartość dzielnika b. 4. Zmiennej reszta przypisz wartość wyrażenia a mod b: reszta = a mod b. 5. Jeżeli wartość zmiennej reszta jest równa 0, wyprowadź komunikat: b jest dzielnikiem a, w przeciwnym przypadku b nie jest dzielnikiem a. 6. Zakończ algorytm. Przykłady wykonania algorytmu Dla a = 15 i b = 6 reszta = 15 mod 6 = 3 czy reszta = 0? NIE 6 nie jest dzielnikiem 15 Dla a = 18 i b = 6 reszta = 18 mod 6 = 0 czy reszta = 0? TAK 6 jest dzielnikiem 18 Ćwiczenie 11. Zapisujemy w języku Scratch algorytm badania podzielności liczb 1. Zapoznaj się z listą kroków i wykonaj algorytm badania podzielności dla kilku par liczb. 2. Otwórz program Reszta zapisany w ćwiczeniu 10. Zmodyfikuj go tak, aby realizował algorytm badania podzielności liczb zgodnie z podaną listą kroków. Wyświetlaj na ekranie odpowiednie komunikaty. Jaką instrukcję zastosujesz, aby zrealizować punkt 5. listy kroków? Uzasadnij odpowiedź. 3. Zapisz program w pliku pod nazwą Podzielność. 4. Uruchom program i sprawdź jego działanie dla kilku różnych par liczb. Zakładamy, że wprowadzamy prawidłowe dane, czyli dzielna i dzielnik to liczby naturalne i dzielnik jest różny od zera. Wskazówka: Aby wyświetlić na ekranie komunikat b jest dzielnikiem a, należy użyć trzech poleceń powiedz (rys. 15.). 18

21 1.1. Zapisywanie algorytmów na liczbach naturalnych w języku Scratch 4 Realizacja algorytmu Euklidesa w wersji z dzieleniem W omówionej wersji algorytmu Euklidesa odejmowanie posłużyło znalezieniu reszty z dzielenia dwóch liczb. Zamiast odejmowania możemy od razu zastosować dzielenie z resztą. Algorytm Euklidesa w wersji z dzieleniem polega na wykonywaniu kolejnych dzieleń liczby a (dzielnej) przez liczbę b (dzielnik) aż reszta z dzielenia osiągnie wartość 0. Na przykład dla liczb a = 25 i b = 10 NWD obliczamy następująco: dzielimy liczbę a przez b: a / b = 25 / 10 = 2 reszta 5, liczbę a zastępujemy liczbą b, a liczbę b resztą z poprzedniego dzielenia, czyli a = 10, b = 5, dzielimy liczbę a przez b: a / b = 10 / 5 = 2 reszta 0, liczbę a zastępujemy liczbą b, a liczbę b resztą z poprzedniego dzielenia, czyli a = 5, b = 0. Kończymy algorytm, ponieważ b = 0, czyli reszta z dzielenia wynosi 0. Przyjmujemy, że NWD jest równe ostatniej niezerowej reszcie, czyli NWD = a = 5. Do utworzenia programu w języku Scratch wykorzystamy operator mod. Algorytm Euklidesa wersja z dzieleniem Zadanie: Dane: a, b a b Wynik: a b Lista kroków: 1. Zacznij algorytm. 2. Wprowadź wartość liczby a. 3. Wprowadź wartość liczby b. 4. Sprawdź, czy b = 0: jeżeli tak, idź do kroku Zmiennej dzielnik przypisz wartość zmiennej b: dzielnik = b. 6. Zmiennej b przypisz wartość reszty z dzielenia a przez b: b = a mod b. 7. Zmiennej a przypisz wartość zmiennej dzielnik: a = dzielnik. 8. Idź do kroku Wyprowadź wynik: NWD jest równe a. 10. Zakończ algorytm. Uwaga: Zmienna dzielnik przechowuje dzielnik w trakcie wykonywania obliczeń. 19

22 Dział 1. Algorytmika i programowanie Przykłady wykonania algorytmu Dla a = 9 i b = 3 czy b = 0? NIE dzielnik = b = 3 b = a mod b = 9 mod 3 = 0 a = dzielnik = 3 czy b = 0? TAK NWD = a = 3 Dla a = 28 i b = 35 czy b = 0? NIE dzielnik = b = 35 b = a mod b = 28 mod 35 = 28 a = dzielnik = 35 czy b = 0? NIE dzielnik = b = 28 b = a mod b = 35 mod 28 = 7 a = dzielnik = 28 czy b = 0? NIE dzielnik = b = 7 b = a mod b = 28 mod 7 = 0 a = dzielnik = 7 czy b = 0? TAK NWD = a = 7 Uwaga: Jeśli pod tę samą zmienną podstawimy inną wartość, poprzednia wartość znika, dlatego w niektórych przypadkach musimy wartość danej zmiennej przechować w tzw. zmiennej pomocniczej. W omawianym algorytmie jest to zmienna dzielnik, w której pamiętamy aktualny dzielnik. Ćwiczenie 12. Sprawdzamy działanie algorytmu Euklidesa w wersji z dzieleniem Sprawdź działanie algorytmu Euklidesa w wersji z dzieleniem i wyznacz NWD dla liczb: a = 56 i b = 6 oraz a = 16 i b = 24. b 20

23 1.1. Zapisywanie algorytmów na liczbach naturalnych w języku Scratch Ćwiczenie 13. Zapisujemy w języku Scratch algorytm Euklidesa w wersji z dzieleniem 1. Umieść w obszarze roboczym polecenia pokazane na rysunku 16. Uzupełnij je o polecenia wprowadzania z klawiatury danych a i b oraz wyprowadzania wyniku zgodnie z podaną listą kroków algorytmu Euklidesa w wersji z dzieleniem. Utwórz cztery zmienne: a, b, dzielnik i NWD. 2. Zapisz program w pliku Euklides_dzielenie. Wskazówka: Wprowadzanie wartości zmiennych, wyświetlanie wyniku i napisów możesz wzorować na programie realizującym algorytm Euklidesa w wersji z odejmowaniem (rys. 13., str. 16). 5 Wyodrębnianie cyfr danej liczby System dziesiętny opiera się na potęgach liczby 10. Liczbę naturalną w systemie dziesiętnym możemy rozpisać w następujący sposób: 647 = = Cyfry danej liczby możemy wyodrębniać od najmniej znaczącej (dla liczby 647 cyfrą tą jest cyfra jedności 7) lub od najbardziej znaczącej (dla 647 to cyfra setek 6). Do obliczania reszty z dzielenia zastosujemy operator mod. Aby wyodrębnić cyfry danej liczby (od najmniej znaczącej), powtarzamy obliczanie reszty z dzielenia tej liczby przez 10 (pierwsza reszta jest cyfrą jedności), następnie od liczby odejmujemy resztę i wynik dzielimy przez 10, aż do otrzymania wyniku odejmowania równego zero. Przykład wykonania algorytmu wyodrębniania cyfr danej liczby Dla liczba = 647 cyfra = liczba mod 10 = 647 mod 10 = 7 liczba = (liczba cyfra) / 10 = (647 7) / 10 = 64 czy liczba = 0? NIE cyfra = liczba mod 10 = 64 mod 10 = 4 liczba = (liczba cyfra) / 10 = (64 4) / 10 = 6 czy liczba = 0? NIE cyfra = liczba mod 10 = 6 mod 10 = 6 liczba = (liczba cyfra) / 10 = (6 6) / 10 = 0/10 = 0 czy liczba = 0? TAK Uwagi: Zmienna cyfra służy do pamiętania wartości kolejnych cyfr (tu: reszt z dzielenia kolejnych wartości liczby przez 10). Wartość zmiennej liczba, której cyfry wyodrębniamy, zmienia się w czasie wykonywania algorytmu. 21

24 Dział 1. Algorytmika i programowanie Ćwiczenie 14. Piszemy specyfikację zadania i listę kroków algorytmu wyodrębniania cyfr danej liczby 1. Zapoznaj się z opisem algorytmu wyodrębniania cyfr danej liczby i z podanym przykładem. Wykonaj algorytm dla liczby Zapisz w zeszycie przedmiotowym specyfikację zadania i listę kroków tego algorytmu. Wskazówka: Wzoruj się na zapisie specyfikacji zadań i na listach kroków innych algorytmów opisanych w tym temacie. Ćwiczenie 15. Analizujemy i sprawdzamy działanie programu realizującego algorytm wyodrębniania cyfr danej liczby 1. Umieść w obszarze roboczym polecenia pokazane na rysunku Zapisz program pod nazwą Cyfry. 3. Uruchom program i sprawdź jego działanie dla różnych danych. 4. Objaśnij działanie programu, m.in. uzasadnij użycie poszczególnych poleceń. 5. Odpowiedz na pytanie: Ile razy powtarzają się polecenia w pętli powtarzaj aż dla liczby trzycyfrowej, a ile dla jednocyfrowej? Uzasadnij odpowiedź. 22

25 1.1. Zapisywanie algorytmów na liczbach naturalnych w języku Scratch Zapamiętaj Jeśli w algorytmie występuje sytuacja warunkowa, to zapisując go w postaci programu, stosujemy instrukcję warunkową, a jeśli polecenia powtarzają się instrukcje iteracyjne (powtarzania). Jeśli w programie przypiszemy tej samej zmiennej nową wartość (wykonamy instrukcję przypisania w języku Scratch polecenie ustaw), to poprzednia wartość zmiennej znika. Największy wspólny dzielnik (NWD) dwóch liczb naturalnych możemy znaleźć, stosując algorytm Euklidesa. Algorytm ten możemy zrealizować w dwóch wersjach: z odejmowaniem i z dzieleniem. Liczba b jest dzielnikiem liczby a, jeśli reszta z dzielenia a przez b jest równa zero. W programie badania podzielności liczb tworzonym w języku Scratch możemy wykorzystać operator mod do obliczania reszty z dzielenia. W algorytmie wyodrębniania cyfr danej liczby naturalnej wykorzystujemy dzielenie z resztą danej liczby przez dziesięć. Reszty z dzielenia są kolejnymi cyframi liczby. Serwis dla ciekawskich Euklides z Aleksandrii był greckim matematykiem, który ok. 300 lat p.n.e. stworzył swoje główne dzieło pt. Elementy. W dziele tym opisał m.in. sposób obliczania największej wspólnej miary dwóch odcinków (czyli największego wspólnego dzielnika dwóch liczb naturalnych). W tamtym czasie nie znano pojęcia algorytmu, jednak opisana przez Euklidesa metoda dzisiaj mogłaby zostać uznana za algorytm. Elementy były przez wiele wieków jedynym rzetelnym podręcznikiem do nauki geometrii. 23

26 Dział 1. Algorytmika i programowanie OKO W OKO Z MONITOREM Pytania i polecenia Podaj przykład problemu, w którym występuje sytuacja warunkowa. Kiedy stosujemy polecenia powtarzania? Jak w języku Scratch można przypisać zmiennej wartość? Jaką wartość będą miały zmienne x, y, z po wykonaniu poleceń: ustaw x na 10 ustaw y na 20 ustaw z na x ustaw y na x ustaw x na z? Wyjaśnij na przykładzie liczb 36 i 8, dlaczego warunkiem zakończenia algorytmu Euklidesa w wersji z odejmowaniem jest a = b. W jaki sposób można obliczyć w języku Scratch resztę z dzielenia dwóch liczb całkowitych? Podaj przykład. Pamiętaj, że dzielnik nie może być równy zero. Jak sprawdzić, czy liczba y jest dzielnikiem liczby x? Przedstaw na przykładzie. Czym różni się wersja algorytmu Euklidesa z odejmowaniem od wersji z dzieleniem? Wyjaśnij na przykładzie liczb 36 i 8. Na czym opiera się idea algorytmu wyodrębniania cyfr danej liczby? Zadania Uwagi: Listy kroków możesz zapisać w zeszycie przedmiotowym lub w edytorze tekstu. Schematy blokowe możesz rysować w zeszycie przedmiotowym, w edytorze tekstu z wykorzystaniem Kształtów, w edytorze grafiki Paint lub w wybranym darmowym programie pobranym z internetu. Utwórz program obliczający objętość i pole powierzchni sześcianu o boku a. Utwórz zmienne a, V i P. Wartość zmiennej a wprowadzaj z klawiatury, a wyniki V i P wyświetlaj na ekranie. Zapisz program w pliku pod nazwą Sześcian_zad1. Otwórz program zapisany w zadaniu 1. Utwórz zmienną wybór. Zmodyfikuj program tak, aby dla zmiennej wybór równej s obliczał objętość sześcianu, a dla zmiennej wybór równej p pole powierzchni sześcianu. Zapisz program w pliku pod nazwą Sześcian_zad2. 24

27 1.1. Zapisywanie algorytmów na liczbach naturalnych w języku Scratch Zmodyfikuj program z zadania 1. tak, aby wykonał obliczenia dla dziesięciu wartości zmiennej a. Zapisz program w pliku pod nazwą Sześcian_zad3. Napisz program realizujący algorytm: Wprowadzaj liczbę naturalną i wyświetlaj jej kwadrat aż do wprowadzenia liczby równej zero. Zapisz program w pliku pod nazwą Kwadrat liczby. Napisz listę kroków algorytmu sprawdzania, czy dana liczba naturalna jest parzysta. Jeśli liczba jest parzysta, wyświetlaj napis Podana liczba jest parzysta, a gdy nieparzysta Podana liczba jest nieparzysta. Wskazówka: Liczba parzysta jest podzielna przez 2. Narysuj schemat blokowy algorytmu sprawdzania, czy dana liczba naturalna jest parzysta. Na podstawie listy kroków utworzonej w zadaniu 5. i schematu blokowego narysowanego w zadaniu 6. napisz program sprawdzający, czy wprowadzona z klawiatury liczba jest parzysta. Zapisz program w pliku pod nazwą Parzyste. Na podstawie listy kroków podanej w punkcie 3. tematu (str. 18) narysuj schemat blokowy algorytmu badania podzielności liczb. DLA ZAINTERESOWANYCH Zmodyfikuj program Zakupy (zapisany w ćwiczeniu 6., str. 13) w następujący sposób: jeśli spróbujemy przekroczyć dostępną kwotę, czyli wydać więcej, program na to nie pozwoli, tylko zapyta o kolejną wartość zmiennej cena, więc musimy zaplanować zakup czegoś tańszego. Program skończy działać, gdy kwota będzie równa zero. Na podstawie listy kroków podanej w punkcie 4. tematu narysuj schemat blokowy algorytmu Euklidesa w wersji z dzieleniem. Zmodyfikuj program badania podzielności liczb (zapisany w ćwiczeniu 11., str. 18), aby na początku sprawdzał, czy dzielnik jest różny od zera. Jeśli dzielnik jest równy zero, powinien zostać wyświetlony komunikat nie wolno dzielić przez zero. Zapisz program w pliku pod tą samą nazwą. Zastanów się, jak sprawdzić podzielność jednej liczby przez inną bez konieczności obliczania reszty z dzielenia. Zapisz algorytm w postaci listy kroków, schematu blokowego lub programu. Narysuj schemat blokowy algorytmu wyodrębniania cyfr danej liczby. Utwórz program wyodrębniania cyfr danej liczby od najbardziej znaczącej do najmniej znaczącej. Zapisz program w pliku pod nazwą Cyfry1. 25

28 1.2. Algorytmy wyszukiwania i porządkowania Warto powtórzyć 1. Na czym polega iteracja? 2. W jaki sposób zapisujemy iterację w języku Scratch? 3. Jaka jest różnica między poleceniem powtórz a poleceniem powtarzaj aż? Podaj przykład wykorzystania tych poleceń. 4. W jaki sposób przypisujemy zmiennej konkretną wartość, a jak wprowadzamy wartość zmiennej z klawiatury? Podczas rozwiązywania niektórych problemów (z różnych dziedzin nauki i życia codziennego) szukamy w danym zbiorze najmniejszego lub największego elementu, np. najmniejszej liczby, najwyższej osoby. Czasem porządkujemy (w terminologii informatycznej sortujemy) zbiory przedmiotów, np. ustawiamy książki na półce od największej do najmniejszej lub alfabetycznie według nazwisk autorów, ustalamy kolejność wyświetlania plików według nazw lub dat utworzenia. Na danych uporządkowanych (posortowanych) szybciej wykonuje się różne operacje (np. wyszukiwanie). Istnieją różne algorytmy wyszukiwania i porządkowania. W tym temacie: 1. znajdziesz największy element metodą wyszukiwania elementu w zbiorze nieuporządkowanym, 2. zaprogramujesz w języku Scratch algorytm wyszukiwania największego elementu w zbiorze nieuporządkowanym, 3. zastosujesz algorytm wyszukiwania największego elementu w zbiorze do porządkowania elementów metodą przez wybieranie, 4. poznasz algorytm wyszukiwania elementu w zbiorze uporządkowanym metodą przez połowienie, 5. utworzysz w języku Scratch grę w zgadywanie liczby, 6. dowiesz się, jak uporządkować elementy w zbiorze metodą przez zliczanie. 1 Wyszukiwanie elementu w zbiorze nieuporządkowanym Algorytm znajdowania wybranego elementu w zbiorze nieuporządkowanym pokażemy na przykładzie wybierania większej z dwóch liczb, a następnie wyszukiwania największej liczby spośród n liczb. 26

29 1.2. Algorytmy wyszukiwania i porządkowania Zaczniemy od sformułowania zadania, zapisania jego specyfikacji oraz podania listy kroków algorytmu wyboru większej z dwóch liczb naturalnych. Algorytm wyboru większej z dwóch liczb Zadanie: Przedstaw w postaci listy kroków algorytm wyboru większej z dwóch liczb. Dane: Dwie liczby naturalne: a, b (a b). Wynik: Wartość większej z dwóch liczb. Lista kroków: 1. Zacznij algorytm. 2. Wprowadź wartość liczby a. 3. Wprowadź wartość liczby b. 4. Sprawdź, czy liczba a jest większa od liczby b. Jeśli tak, wyprowadź liczbę a, w przeciwnym przypadku wyprowadź liczbę b. 5. Zakończ algorytm. Ćwiczenie 1. Analizujemy algorytm wyboru większej z dwóch liczb 1. Korzystając z podanej listy kroków, sprawdź działanie algorytmu wyboru większej z dwóch liczb dla różnych wartości zmiennych a i b. 2. Zmodyfikuj listę kroków, aby zrealizować algorytm wyboru mniejszej z dwóch liczb. Algorytm wyszukiwania największej liczby spośród n liczb Aby wyszukać największą spośród n liczb, porównujemy kolejne wartości liczb ze zbioru z największą znalezioną do tej pory liczbą (zapamiętaną osobno). Na początku algorytmu przyjmujemy, że pierwsza liczba zbioru jest największa. Porównania liczb powtarzamy, aż sprawdzimy wszystkie liczby zbioru. Zadanie: Przedstaw w postaci listy kroków algorytm znajdowania największej liczby spośród n liczb. Dane: Liczba naturalna n oznaczająca liczbę elementów zbioru, n liczb naturalnych wprowadzanych kolejno i zapamiętywanych w zmiennej a. Wynik: Wartość elementu największego: max. Lista kroków: 1. Zacznij algorytm. 2. Wprowadź liczbę elementów zbioru: n. 3. Wprowadź wartość pierwszej liczby a. 4. Przyjmij, że liczbą największą jest pierwsza liczba ze zbioru zmiennej max przypisz wartość pierwszej liczby: max = a. 27

30 Dział 1. Algorytmika i programowanie 5. Wprowadź wartość kolejnej liczby a. 6. Porównaj kolejną liczbę ze zbioru z max: czy a > max? 7. Jeśli kolejna liczba jest większa od max, to zmiennej max przypisz wartość tej liczby: max = a. 8. Powtarzaj n 1 razy kroki 5., 6. i Wyprowadź wynik: max. 10. Zakończ algorytm. Algorytm wyszukiwania największej liczby spośród n liczb zastosujemy do znajdowania wzrostu najwyższego z n uczniów klasy (gdzie n to liczba uczniów klasy). Sprawdzimy działanie algorytmu dla n = 5. W tabeli na rysunku 1. podaliśmy wzrost uczniów w centymetrach, czyli kolejne wartości a. 160 n Przykład wykonania algorytmu Dla n = 5 a = 160 {wprowadź wzrost pierwszego ucznia} max = 160 {pod zmienną max podstaw wzrost pierwszego ucznia} a = 150 {wprowadź wzrost drugiego ucznia} czy 150 > 160? {porównaj wzrost drugiego ucznia z wartością max} NIE, pozostaw max bez zmian a = 175 {wprowadź wzrost trzeciego ucznia} czy 175 > 160? {porównaj wzrost trzeciego ucznia z wartością max} TAK, max = 175 {pod zmienną max podstaw wzrost trzeciego ucznia} a = 165 {wprowadź wzrost czwartego ucznia} czy 165 > 175? {porównaj wzrost czwartego ucznia z wartością max} 28

31 1.2. Algorytmy wyszukiwania i porządkowania NIE, pozostaw max bez zmian a = 155 {wprowadź wzrost piątego ucznia} czy 155 > 175? {porównaj wzrost piątego ucznia z wartością max} NIE, pozostaw max bez zmian Wynik: Wzrost najwyższego ucznia to 175 cm. Ćwiczenie 2. Sprawdzamy działanie algorytmu wyszukiwania najwyższego ucznia z pięciu uczniów Przygotuj odpowiednie pomoce dydaktyczne (rys. 1.) i przedstaw wspólnie z koleżankami i kolegami z klasy algorytm wyszukiwania najwyższego ucznia z pięciu uczniów. Opisany w liście kroków algorytm znajdowania największego elementu w zbiorze jest przykładem metody nazywanej przeszukiwaniem liniowym. W algorytmie przeszukiwania liniowego sprawdzamy wartość elementów zbioru po kolei, według ustalonego wcześniej porządku. Ćwiczenie 3. Sprawdzamy działanie algorytmu wyszukiwania największej liczby spośród n liczb Sprawdź działanie algorytmu wyszukiwania największej liczby: a) dla zbioru liczb {70, 160, 155, 180, 185}; b) dla zbioru liczb {8, 6, 23, 0, 50, 34, 23}; c) dla dziesięciu wybranych liczb. 2 Zapisywanie w języku Scratch algorytmu wyszukiwania największego elementu w zbiorze nieuporządkowanym Algorytm wyszukiwania największego elementu w zbiorze nieuporządkowanym zapiszemy w języku Scratch. Zaczniemy od prostego programu dla zbioru dwuelementowego. Ćwiczenie 4. Tworzymy program znajdujący większą z dwóch liczb 1. Utwórz program znajdujący większą z dwóch liczb (pierwsza, druga) skorzystaj z listy kroków podanej w punkcie 1. tematu. Komentarz (np. Większa jest liczba: ) i wynik (większą liczbę) wyświetl na ekranie. 2. Zmień tło i postać duszka. Duszek powinien odwracać się w lewo lub w prawo, zależnie od tego, którą liczbę wprowadza lub wyświetla (rys. 2.). 3. Zapisz program w pliku pod nazwą Większa z dwóch. 29

32 Dział 1. Algorytmika i programowanie Na rysunku 3. przedstawiono realizację algorytmu wyszukiwania największej liczby w zbiorze n-elementowym. Program działa zgodnie z listą kroków podaną w punkcie 1. tematu. max n 30

33 1.2. Algorytmy wyszukiwania i porządkowania Ćwiczenie 5. Analizujemy i testujemy program realizujący algorytm wyszukiwania największej liczby w zbiorze n-elementowym 1. Umieść w obszarze roboczym polecenia pokazane na rysunku Zapisz program w pliku pod nazwą Maksimum. 3. Uruchom program i sprawdź jego działanie dla różnych danych, w tym dla danych pokazanych na rysunku Objaśnij działanie programu, m.in. uzasadnij użycie poszczególnych poleceń zgodnie z podaną listą kroków. 5. Odpowiedz na pytanie: Dlaczego w pętli powtórz jest n 1 powtórzeń? Uzasadnij odpowiedź. 6. Sprawdź, jak zmieni się działanie programu, gdy polecenia powiedz umieścimy wewnątrz polecenia powtórz (po innych poleceniach). 3 Porządkowanie elementów zbioru metodą przez wybieranie Do porządkowania elementów często stosujemy metodę porządkowania przez wybieranie. Aby uporządkować elementy od najmniejszego do największego, stosujemy algorytm wyboru elementu najmniejszego. Jeśli chcemy uporządkować elementy od największego do najmniejszego, stosujemy algorytm wyboru elementu największego

34 Dział 1. Algorytmika i programowanie Porządkowanie zbioru liczb metodą przez wybieranie polega na wyszukiwaniu w zbiorze liczby największej (dla porządku malejącego) lub najmniejszej (dla porządku rosnącego), zamienieniu jej miejscami z liczbą, która jest aktualnie na początku zbioru, a następnie powtarzaniu tych czynności z pominięciem liczb już uporządkowanych (rys. 4.). Algorytm porządkowania metodą przez wybieranie wykorzystamy do ustawienia uczniów od najwyższego do najniższego. Algorytm porządkowania metodą przez wybieranie Zadanie: Uporządkuj dziesięcioro uczniów (kolegów i koleżanek z klasy) według wzrostu (od ucznia najwyższego do najniższego), stosując sortowanie przez wybieranie. Dane: Dziesięcioro uczniów ustawionych w przypadkowej kolejności. Wynik: Dziesięcioro uczniów ustawionych w kolejności od najwyższego do najniższego. Lista kroków: 1. Zacznij algorytm. 2. Znajdź najwyższego ucznia. Zapamiętaj, w którym miejscu stoi. 3. Zamień miejscami ucznia najwyższego z uczniem stojącym na pierwszym miejscu. 4. Powtarzaj kroki 2. i 3. (z pominięciem uczniów już ustawionych na miejscach początkowych), aż uporządkujesz wszystkich uczniów. 5. Zakończ algorytm. Ćwiczenie 6. Porządkujemy uczniów według wzrostu metodą przez wybieranie Wybierz z klasy dziesięcioro uczniów. Ustaw wybranych uczniów według wzrostu (od najwyższego do najniższego). Postępuj zgodnie z podaną listą kroków. Ćwiczenie 7. Porządkujemy książki metodą przez wybieranie Opracuj listę kroków algorytmu porządkowania książek od najgrubszej do najcieńszej. 4 Wyszukiwanie elementu w zbiorze uporządkowanym metodą przez połowienie Algorytm poszukiwania przez połowienie jest przykładem metody dziel i zwyciężaj. Polega ona na dzieleniu przeszukiwanego zbioru na dwie części i zawężeniu przeszukiwania do jednej z tych części. Metoda podziału pomaga szybko znaleźć poszukiwany element, czyli zwyciężyć. 32

35 1.2. Algorytmy wyszukiwania i porządkowania Opis algorytmu wyszukiwania przez połowienie (na przykładzie dziesięciu liczb) Dany jest uporządkowany w kolejności od najmniejszej do największej zbiór dziesięciu liczb (rys. 5.). Poszukiwana liczba to 40 (zaznaczona na żółto). Zaczynamy od sprawdzenia środkowego elementu (zaznaczonego czerwoną strzałką). W przypadku, gdy liczba elementów zbioru jest parzysta, jako środkowy wybieramy element, którego wartość jest bliższa wartości szukanego elementu. Jeśli środkowy element jest szukaną liczbą, kończymy poszukiwanie. Jeśli środkowy element jest większy od poszukiwanej liczby, przeszukamy podzbiór na lewo od elementu środkowego. Jeśli środkowy element jest mniejszy od poszukiwanej liczby, przeszukamy podzbiór na prawo od elementu środkowego Ćwiczenie 8. Sprawdzamy działanie algorytmu wyszukiwania liczby w zbiorze uporządkowanym metodą przez połowienie Przygotuj odpowiednie pomoce dydaktyczne (rys. 5.) i przedstaw wspólnie z kolegami i koleżankami z klasy algorytm wyszukiwania liczby w zbiorze uporządkowanym metodą przez połowienie. Wskazówka: Możesz zapisać liczby na kartkach i układać je na stole lub podłodze. 33

36 Dział 1. Algorytmika i programowanie 5 Gra w zgadywanie liczby Algorytm poszukiwania przez połowienie wykorzystuje się w zabawie w zgadywanie liczby. Zabawa polega na odgadywaniu liczby z określonego zakresu. Jedna osoba wybiera liczbę, a druga osoba ją odgaduje. Osoba zgadująca podaje liczbę, a druga osoba udziela odpowiedzi: za mała lub za duża. W ten sposób osoba zgadująca dzieli zbiór liczb, odrzucając część, w której są liczby większe lub mniejsze, aż odgadnie właściwą liczbę. Ćwiczenie 9. Gramy w zgadywanie liczby Zagraj z kolegą lub z koleżanką z klasy w zgadywanie liczby. Przyjmijcie zbiór liczb naturalnych z zakresu od 1 do 100. Algorytm gry w zgadywanie liczby Zadanie: Przedstaw w postaci listy kroków algorytm zgadywania liczby w zbiorze liczb naturalnych z zakresu od 1 do 100. Dane: Szukana liczba pamiętana w zmiennej szukana, liczby naturalne z zakresu od 1 do 100 podawane przez gracza i zapamiętywane kolejno w zmiennej liczba. Wynik: Odgadnięta liczba: szukana. Lista kroków: 1. Zacznij algorytm. 2. Zmiennej szukana przypisz liczbę, którą gracz ma odgadnąć, np. szukana = Wprowadź wartość odgadywanej liczby do zmiennej liczba. 4. Jeżeli liczba = szukana, idź do kroku 8. 34

37 1.2. Algorytmy wyszukiwania i porządkowania 5. Jeżeli liczba > szukana, wyświetl na ekranie napis za duża ; w przeciwnym przypadku wyświetl na ekranie napis za mała, 6. Wprowadź kolejną wartość odgadywanej liczby do zmiennej liczba. 7. Idź do kroku Wyprowadź komunikat Gratulacje! Odgadnięta liczba to i wartość zmiennej szukana. 9. Zakończ algorytm. Ćwiczenie 10. Tworzymy w języku Scratch grę w zgadywanie liczby 1. Zaprogramuj grę w zgadywanie liczby zgodnie z podaną listą kroków. Nie pokazuj wartości zmiennej szukana na ekranie. 2. Uruchom grę i sprawdź jej działanie dla różnych danych (wartości zmiennej szukana). 3. Zmień tło i postać duszka (rys. 6.). Dodatkowo po wyświetleniu napisu Gratulacje! Odgadnięta liczba to i wartości zmiennej szukana duszek dziewczynka ma zagrać w koszykówkę, czyli powtarzać wielokrotnie zmianę kostiumu. 4. Zapisz program w pliku pod nazwą Zgadnij liczbę. 5. Zagraj z kolegą lub koleżanką w zgadywanie liczby. Wpisz szukaną liczbę tak, aby przeciwnik jej nie widział. Uruchom grę na pełnym ekranie. Wskazówka: W programie zastosuj polecenie powtarzaj aż liczba=szukana. Gra będzie ciekawsza, jeśli gracze nie będą znali wcześniej szukanej liczby. Liczbę może wylosować komputer. szukana szukana losuj Ćwiczenie 11. Modyfikujemy grę 1. Otwórz program Zgadnij liczbę zapisany w ćwiczeniu Zmodyfikuj grę tak, aby komputer wybierał losowo szukaną liczbę z przedziału od 1 do Dodaj zliczanie wykonanych prób: utwórz nową zmienną licznik. Na początku programu ustaw jej wartość na 1, a w pętli zwiększaj o 1. Po wyświetleniu napisu Gratulacje! Odgadnięta liczba to i wartości zmiennej szukana, wyświetl napis Liczba wykonanych prób to i wartość zmiennej licznik. 4. Zapisz program w pliku pod tą samą nazwą. 35

38 Dział 1. Algorytmika i programowanie 6 Porządkowanie elementów zbioru metodą przez zliczanie Metodę porządkowania przez zliczanie pokażemy na przykładzie porządkowania liczb całkowitych. Przed rozpoczęciem porządkowania musimy znać najmniejszą i największą wartość w zbiorze. Metoda porządkowania metodą przez zliczanie polega na zliczaniu wystąpień poszczególnych wartości w zbiorze, np. ile mamy jedynek, dwójek, trójek, czwórek, piątek,, dwudziestek w przypadku zbioru liczb zawierających wartości od 1 do 20. Następnie wypisujemy daną liczbę tyle razy, ile wynosi liczba jej wystąpień w zbiorze. W ten sposób otrzymujemy uporządkowany zbiór. Opis algorytmu porządkowania elementów zbioru metodą przez zliczanie (na przykładzie siedmiu liczb) Dany jest zbiór liczb {5, 6, 5, 2, 3, 5, 3}, który zawiera liczby całkowite z przedziału od 2 do 6 (czyli najmniejszą liczbą jest liczba 2, a największą 6). Do zliczania wystąpień wszystkich liczb z tego zakresu musimy przygotować pięć liczników do zliczania wystąpień liczb: 2, 3, 4, 5 i 6. Na rysunku 8. liczniki mają formę pudełek. Na początku wszystkie pudełka liczników są puste (mają wartość 0), ale gdy zaczniemy przeglądać zbiór, wartość liczników będzie się zmieniać. Liczniki przygotowujemy dla wszystkich liczb z przedziału od 2 do 6, nawet dla liczb z tego przedziału, których nie ma w naszym zbiorze. Algorytm porządkowania liczb metodą przez zliczanie zaprogramujemy w tematach 1.3. i raz 2 razy 0 razy 3 razy raz

39 1.2. Algorytmy wyszukiwania i porządkowania Pierwszym elementem zbioru jest liczba 5, czyli licznik piątek zwiększa się o jeden, potem licznik szóstek zwiększa się o jeden, następnie znów licznik piątek zwiększa się o jeden (czyli ma już wartość dwa), potem licznik dwójek zwiększa się o jeden itd. Ostatecznie otrzymujemy następujące wartości kolejnych liczników: 1 licznik wystąpień liczby 2, 2 licznik wystąpień liczby 3, 0 licznik wystąpień liczby 4, 3 licznik wystąpień liczby 5, 1 licznik wystąpień liczby 6. Teraz wystarczy wypisać daną liczbę tyle razy, ile wynosi wartość jej licznika i otrzymamy zbiór liczb uporządkowany od najmniejszej do największej: {2, 3, 3, 5, 5, 5, 6}. Aby zbiór liczb był uporządkowany od największej do najmniejszej, wystarczy zbiór liczników przejrzeć odwrotnie z prawej strony do lewej. Ćwiczenie 12. Porządkujemy liczby od najmniejszej do największej liczby metodą przez zliczanie Przygotuj odpowiednie pomoce dydaktyczne (rys. 8.) i wykonaj wspólnie z kolegami i koleżankami z klasy algorytm porządkowania liczb metodą przez zliczanie dla zbioru składającego się z dziesięciu elementów: { 2, 5, 2, 0, 4, 2, 4, 1, 2, 5}. Liczby uporządkuj od najmniejszej do największej. Zapamiętaj Wybrany element w zbiorze nieuporządkowanym możemy znaleźć, korzystając z algorytmu przeszukiwania liniowego. Wybrany element w zbiorze uporządkowanym możemy znaleźć, korzystając z algorytmu poszukiwania przez połowienie, który jest przykładem realizacji metody dziel i zwyciężaj. Zbiór elementów możemy uporządkować, stosując algorytmy porządkowania, np. metodą przez wybieranie lub zliczanie. W porządkowaniu metodą przez wybieranie wykorzystujemy algorytm wyszukiwania elementu (najmniejszego lub największego) w zbiorze nieuporządkowanym. 37

40 Dział 1. Algorytmika i programowanie OKO W OKO Z MONITOREM Pytania i polecenia Wyjaśnij na przykładzie, w jaki sposób znajduje się największą spośród siedmiu liczb. Dlaczego w programie na rysunku 3. (str. 30) wprowadzaną wartość przypisujemy najpierw zmiennej max? Dlaczego do ustawienia uczniów według wzrostu zastosowaliśmy metodę przez wybieranie? Jakie może być zastosowanie algorytmu poszukiwania przez połowienie? Pokaż na przykładzie. Jaką liczbę najlepiej podać jako pierwszą w grze w zgadywanie liczby w przypadku zbioru liczb od 1 do 100? Uzasadnij odpowiedź. Wskaż przynajmniej dwie różnice między porządkowaniem metodą przez wybieranie a metodą przez zliczanie. Dlaczego w porządkowaniu metodą przez zliczanie należy przygotować liczniki dla wszystkich liczb z danego zakresu, nawet jeśli niektóre liczniki pozostaną zerowe? Zadania Uwagi: Listy kroków możesz zapisać w zeszycie przedmiotowym lub w edytorze tekstu. Schematy blokowe możesz rysować w zeszycie przedmiotowym, w edytorze tekstu z wykorzystaniem Kształtów, w edytorze grafiki Paint lub w wybranym darmowym programie pobranym z internetu. Narysuj schemat blokowy algorytmu znajdowania większej z dwóch liczb. Zmodyfikuj program zapisany w ćwiczeniu 4., uwzględniając przypadek, gdy wprowadzone z klawiatury liczby są równe. Zapisz program w pliku pod tą samą nazwą. Utwórz w języku Scratch program do znajdowania największej z trzech liczb. Zapisz program w pliku pod nazwą Największa z trzech. Wskazówka: Pamiętaj, aby po sprawdzeniu, czy liczba pierwsza jest większa od drugiej, sprawdzić, czy wybrana z pierwszego porównania liczba jest większa od trzeciej. 38

41 1.2. Algorytmy wyszukiwania i porządkowania Na podstawie listy kroków pokazanej w punkcie 1. tego tematu (str ) opracuj listę kroków algorytmu znajdowania najmniejszej liczby spośród dziesięciu liczb. Sprawdź działanie algorytmu dla danych: 5, 78, 15, 0, 1, 100, 155, 50, 22, 30. Zmodyfikuj program Maksimum zapisany w ćwiczeniu 5. (str. 31) tak, aby wyszukiwał element najmniejszy ze zbioru n-elementowego. Zapisz program w pliku pod nazwą Minimum. Dany jest uporządkowany zbiór liczb: 5, 8, 15, 20, 25, 30, 35, 70, 88, 90, 100, 120. Poszukiwana liczba to 70. Przedstaw na rysunku (podobnym do rys. 5., str. 33) sposób znalezienia liczby 70. Dany jest zbiór liczb: 12, 3, 8, 2,12, 5, 8, 4, 10, 4. Przedstaw na rysunku (podobnym do rys. 8., str. 36) uporządkowanie tego zbioru metodą przez zliczanie. Ile liczników musisz przygotować? Ile liczników pozostało pustych? Utwórz w języku Scratch program sumujący n liczb wprowadzanych z klawiatury. Utwórz trzy zmienne suma, liczba i n. Wprowadzane wartości do sumowania pamiętaj w zmiennej liczba. Wskazówka: Aby obliczać sumę n liczb, umieść w pętli powtórz n razy polecenie: ustaw suma na suma + liczba, co oznacza pod zmienną suma podstaw poprzednią wartość zmiennej suma zwiększoną o wartość kolejnej liczby. Na początku programu ustaw wartość zmiennej suma na 0, a wartość zmiennej n na liczbę wartości, które będziesz sumować. DLA ZAINTERESOWANYCH Opracuj listę kroków i zbuduj schemat blokowy algorytmu znajdowania najniższego z trzech uczniów. Opracuj listę kroków algorytmu poszukiwania przez połowienie. Skorzystaj z opisu metody podanego w punkcie 4. tego tematu. Utwórz w języku Scratch program obliczający oddzielnie sumę liczb dodatnich i sumę liczb ujemnych dla n liczb całkowitych wprowadzanych z klawiatury. Wyniki obliczeń wyświetl na ekranie z odpowiednim komunikatem. Zapisz program w pliku pod nazwą Sumy. Utwórz w języku Scratch program zliczający oddzielnie liczby parzyste i nieparzyste spośród n liczb całkowitych wprowadzanych z klawiatury. Wyniki obliczeń wyświetl na ekranie z odpowiednim komunikatem. Zapisz program w pliku pod nazwą Liczby. 39

42 1.3. Wprowadzenie do programowania w języku C++ Warto powtórzyć 1. Co oznaczają pojęcia: algorytm, program komputerowy, język programowania? 2. Jak tworzymy zmienną w programie Scratch? 3. W jaki sposób przypisujemy zmiennej konkretną wartość, a jak wprowadzamy wartość zmiennej z klawiatury w języku Scratch? 4. W jaki sposób wyświetlamy napisy na ekranie monitora w języku Scratch? 5. Za pomocą jakiego polecenia realizujemy sytuację warunkową w języku Scratch? 6. W jaki sposób zapisujemy iterację w języku Scratch? W poprzednich tematach korzystaliśmy ze środowiska programowania Scratch. W środowiskach dydaktycznych uproszczono sposób wprowadzania poleceń, dzięki czemu tworzyliśmy programy bez konieczności pisania poleceń tekstowych zamiast tego wykorzystywaliśmy elementy graficzne. Aby tworzyć programy komputerowe, możemy również korzystać z wyspecjalizowanych pakietów programistycznych. Pakiety takie zawierają m.in. edytor kodu źródłowego, w którym piszemy program w języku programowania, np. w C++. W tym temacie: 1. napiszesz pierwszy program komputerowy w języku C++, 2. dowiesz się, jak stosować zmienne i wykonasz na nich proste obliczenia, 3. zastosujesz instrukcję warunkową do zapisywania algorytmów z warunkami, 4. zapiszesz wybrany algorytm iteracyjny z wykorzystaniem instrukcji iteracyjnej. 1 Pierwszy program komputerowy w języku C++ Program komputerowy może występować w dwóch postaciach: jako program (kod) źródłowy program zrozumiały dla programisty, zapisany jako ciąg instrukcji tekstowych języka programowania wysokiego poziomu, np. języka C++, jako program (kod) wynikowy (maszynowy) program zrozumiały dla komputera, napisany w języku wewnętrznym komputera w postaci ciągu instrukcji dla procesora. 40

43 1.3. Wprowadzenie do programowania w języku C++ Program napisany w języku C++ nie jest od razu zrozumiały dla komputera. Komputer potrafi wykonać tylko instrukcje (rozkazy) zapisane w języku wewnętrznym, zrozumiałym dla procesora. Tłumaczeniem programu źródłowego na kod maszynowy zajmuje się specjalny program kompilator, a proces tłumaczenia nazywa się kompilacją. Wyspecjalizowany pakiet programistyczny zawiera edytor kodu źródłowego, kompilator i inne narzędzia wspomagające programowanie. Taką aplikację (lub zespół aplikacji) określa się też jako zintegrowane środowisko programistyczne. Etapy tworzenia programu w języku C++ 1. W edytorze wbudowanym do środowiska programistycznego wybranego języka programowania piszemy kod źródłowy programu (rys. 1.). 2. Zapisujemy program w pliku (pliki programów w języku C++ mają rozszerzenie cpp). 3. Kompilujemy program, korzystając z opcji Kompiluj (Compile). Przebieg kompilacji obserwujemy w dolnej części okna programu (rys. 1. i 2.). Efektem poprawnie przeprowadzonej kompilacji jest plik z rozszerzeniem exe. 4. Jeśli program został skompilowany, uruchamiamy go, zazwyczaj korzystając z opcji Uruchom (Run). Wynik działania programu pokaże się w osobnym oknie (rys. 3.). Każdy język programowania ma swój zbiór instrukcji. Postać instrukcji jest inna dla różnych języków. Języki programowania posiadają również odpowiednie reguły budowy zdań oraz właściwe słownictwo podobnie jak języki naturalne, którymi posługują się ludzie. Instrukcje języka programowania realizują czynności takie, jak: wprowadzanie danych, wyprowadzanie wyników, wykonywanie obliczeń, określanie warunków czy powtarzanie operacji. W trakcie wykonywania programu procesor rozpoznaje Słowo kluczowe i wykonuje swoje wewnętrzne instrukcje. Uruchomić i wykonać można tylko program poprawnie skompilowany (rys. 1.). Funkcja główna main() rozpoczyna działanie programu. Przed nazwą funkcji powinno się znajdować słowo kluczowe int, informujące, że funkcja main() zwraca wartość liczbową. Instrukcja return 0 na końcu funkcji powoduje zwrócenie do systemu operacyjnego wartości 0, informującej o prawidłowym wykonaniu programu. Jeśli kompilacja programu nie przebiegła prawidłowo (rys. 2.), należy poprawić program i ponownie go skompilować. Poprawnie skompilowany program nie wymaga już powtórnego tłumaczenia na kod maszynowy. 41

44 Dział 1. Algorytmika i programowanie main() return Ćwiczenie 1. Piszemy pierwszy program w języku C++ 1. Napisz program wyświetlający na ekranie napis Jestem na lekcji informatyki (rys. 1.). 2. Zapisz program w pliku pod nazwą Napis. 3. Skompiluj i uruchom program. 4. Jeśli kompilator wykrył błędy, popraw je. Zapisz program w pliku pod tą samą nazwą. Skompiluj i uruchom program ponownie. Wskazówka: Napisy wyświetlane na ekranie należy zapisać w programie w podwójnych apostrofach. 42

45 1.3. Wprowadzenie do programowania w języku C++ Po wykonaniu programu wyniki pojawią się na ekranie monitora w osobnym oknie (oknie wykonania programu) rys. 3. Ćwiczenie 2. Modyfikujemy program w języku C++ 1. Zmodyfikuj program zapisany w ćwiczeniu 1., tak aby w drugim wierszu wyświetlał twoje imię. 2. Zapisz program w pliku pod tą samą nazwą. Skompiluj i uruchom program. Wskazówka: Aby po wyświetleniu napisu kursor przeszedł do drugiego wiersza, należy umieścić zapis \n po pierwszej części napisu. Można to zapisać na kilka sposobów: cout << "Jestem na lekcji informatyki\n"; cout << "Tomek"; lub krócej: cout << "Jestem na lekcji informatyki\n" << Tomek"; lub jeszcze krócej: cout << "Jestem na lekcji informatyki\ntomek"; Zapis \n odpowiada kodowi znaku przejścia do nowego wiersza. W kodzie ASCII znak ten ma symbol LF i kod Stosowanie zmiennych i wykonywanie na nich obliczeń Aby utworzyć zmienną w języku Scratch, określaliśmy jej nazwę. Zmiennej przypisywaliśmy wartość, wprowadzając ją z klawiatury po uruchomieniu programu lub podstawialiśmy pod zmienną konkretną wartość od razu w programie. W każdym języku programowania musimy określić sposób korzystania ze zmiennych i nadawania im wartości. W języku C++ każdą zmienną używaną w programie należy zadeklarować, czyli określić jej nazwę i typ. Typ zmiennej wyznacza Zmienna zbiór wartości, które może ona przyjmować (np. liczby całkowite, liczby rzeczywiste). Zmienną deklarujemy w dowolnym miejscu programu, ale zawsze przed jej pierwszym użyciem. 43

46 Dział 1. Algorytmika i programowanie Na przykład: int liczba; int a, b; deklaracja zmiennej liczba typu całkowitego, deklaracja zmiennych a i b typu całkowitego (w przypadku zmiennych tego samego typu można je wymienić po przecinku), float wzrost, wynik; deklaracja zmiennych wzrost i wynik typu rzeczywistego. W języku C++ małe i wielkie litery w nazwach instrukcji, zmiennych itp. mają różne znaczenie np. liczba i Liczba to dwie różne zmienne. W nazwach zmiennych wolno stosować litery (bez polskich znaków diakrytycznych), cyfry i znak podkreślenia. Nazwa nie może zaczynać się od cyfry. Zmiennej można nadać wartość za pomocą instrukcji przypisania. Znak (operator) = oznacza przypisanie zmiennej zapisanej po lewej stronie znaku wartości umieszczonej po jego prawej stronie. Na przykład: liczba = 20; zmiennej liczba przypisujemy wartość 20, b = 30; zmiennej b przypisujemy wartość 30, wzrost = 165.5; zmiennej wzrost przypisujemy wartość 165,5 (w większości języków programowania część dziesiętną liczby zapisujemy po kropce, a nie po przecinku, jak w matematyce), wynik = ; zmiennej wynik przypisujemy wartość wyrażenia 12,3 + 14,9. W języku C++ można również w jednej instrukcji określić typ zmiennej i nadać jej wartość. Na przykład: int liczba = 20; wzrost = 165.5; Wartość zmiennej można również wprowadzać z klawiatury po uruchomieniu programu. W tym celu stosujemy polecenie cin. Operator >> oznacza wprowadzenie danych do odpowiedniej zmiennej, podanej po prawej stronie. Jeśli chcemy wprowadzić dane do kilku zmiennych, użyjemy operatora >> wielokrotnie. Na przykład: cin >> wzrost; po wprowadzeniu liczby z klawiatury komputer zapamiętuje ją w zmiennej wzrost, cin >> a >> b; po wprowadzeniu dwóch liczb z klawiatury komputer zapamiętuje je kolejno w zmiennych a i b. 44

47 1.3. Wprowadzenie do programowania w języku C++ Operator Działanie Przykład instrukcji przypisania + suma = a + b; roznica = a b; * iloczyn = a * b; / iloraz = a / b; % reszta = a % b; Ćwiczenie 3. Deklarujemy zmienne w programie i wykonujemy na nich obliczenia 1. Program pokazany na rysunku 4. pozwala na wyświetlenie dwóch liczb całkowitych z klawiatury, obliczenie ich sumy i wyprowadzenie wyniku na ekran. Przepisz kod programu pokazanego na rysunku Zapisz program w pliku pod nazwą Suma. Skompiluj i uruchom program. Ćwiczenie 4. Modyfikujemy program 1. Zmodyfikuj program Suma zapisany w ćwiczeniu 3. tak, aby wynik działania programu wyglądał jak na rysunku Zapisz program w pliku pod tą samą nazwą. Skompiluj i uruchom program. 45

48 Dział 1. Algorytmika i programowanie Ćwiczenie 5. Uzupełniamy program 1. W programie zapisanym w ćwiczeniu 4. zadeklaruj nową zmienną typu całkowitego o nazwie iloczyn. Dodaj do programu obliczanie iloczynu liczb a i b oraz wyświetlenie wyniku mnożenia na ekranie (podobnie jak wyniku sumowania w ćwiczeniu 4.). 2. Zapisz program w pliku pod nazwą Działania. Skompiluj i uruchom program. Wskazówka: Aby po wyświetleniu sumy kolejny napis umieścić w nowym wierszu, należy umieścić zapis \n na końcu poprzedniej instrukcji, na przykład w następujący sposób: cout << "a + b = " << suma << "\n"; 3 Stosowanie instrukcji warunkowej do realizacji algorytmów z warunkami Aby w języku programowania napisać program realizujący algorytm z warunkami, stosujemy instrukcję warunkową. W języku C++ instrukcja warunkowa if działa tak samo jak polecenie jeżeli w języku Scratch i również występuje w wersji pełnej (rys. 6a) i uproszczonej (rys. 6b). Jako lista_instrukcji może wystąpić jedna instrukcja (w tym instrukcja warunkowa) lub więcej instrukcji ujętych w blok {}. Warunek musimy ująć w nawiasy okrągłe. if(warunek) lista_instrukcji1; else lista_instrukcji2; kolejna_instrukcja; if(warunek) lista_instrukcji1; kolejna_instrukcja; Komputer sprawdza warunek logiczny jeśli warunek jest spełniony (jest prawdziwy), wykonuje instrukcje (lista_instrukcji1). Jeśli warunek nie jest spełniony (jest fałszywy) wykonuje instrukcje (lista_instrukcji2) po słowie else (rys. 6a), a jeśli brak tej części instrukcji wykonuje od razu kolejną instrukcję (kolejna_instrukcja) po instrukcji warunkowej (rys. 6b). Uwaga: W języku C++ wartość równą 0 uważa się za logiczny fałsz, a wartość różną od 0 za logiczną prawdę. 46

49 1.3. Wprowadzenie do programowania w języku C++ Operatory Określenie Przykład wyrażenia Interpretacja wyrażenia == a == b a b!= a!= b a b Logiczne Porównania < a < b a b > a > b a b >= a >= b a b <= a <= b a b a < -5 a > 5 a a && a > 0 && a < 10 a a!! (a == 5) a Ćwiczenie 6. Stosujemy instrukcję warunkową 1. Otwórz program Działania zapisany w ćwiczeniu Uzupełnij program o obliczenie ilorazu liczb a i b. Iloraz możemy obliczyć tylko dla b różnego od zera jeśli ten warunek nie zostanie spełniony, program powinien wyświetlić odpowiedni napis (rys. 7.). Dodaj do deklaracji zmiennych nową zmienną iloraz i zmień typ wszystkich zmiennych na typ rzeczywisty float. 3. Zapisz program w pliku pod tą samą nazwą. Skompiluj i uruchom program. Wskazówka: Zmiana typu zmiennych a i b na float jest potrzebna ze względu na operator dzielenia /. W przypadku liczb typu całkowitego w wyniku dzielenia z użyciem operatora / otrzymujemy tylko część całkowitą. 47

50 Dział 1. Algorytmika i programowanie Ćwiczenie 7. Stosujemy instrukcję warunkową w wersji uproszczonej 1. Utwórz nowy program, który ma sprawdzać, czy wprowadzona z klawiatury liczba całkowita jest podzielna przez 2, następnie ma sprawdzać, czy liczba jest podzielna przez 5. W każdym przypadku ma wyświetlać odpowiednie komunikaty (rys. 8.). Bez względu na to, czy podana liczba będzie podzielna przez 2 lub przez 5, program ma wyświetlić komunikat Program sprawdził, czy podana liczba jest podzielna przez 2 lub przez Zapisz program w pliku pod nazwą Podzielność_2_5. Skompiluj i uruchom program, a następnie sprawdź jego działanie dla kilku różnych danych. Uwagi: Operator % (obliczenie reszty z dzielenia dwóch liczb całkowitych) odpowiada operatorowi mod w języku Scratch (temat 1.1.). Nie wszystkie znaki wyświetlają się poprawnie na ekranie, więc w tekstach komunikatów używaj słów niezawierających liter typowych dla języka polskiego, czyli ze znakami diakrytycznymi: ą, ć, ę, ł, ń, ó, ś, ź, ż. 4 Stosowanie instrukcji iteracyjnej Aby w języku programowania napisać program realizujący algorytm iteracyjny, korzystamy z instrukcji iteracyjnych (instrukcji pętli). W języku Scratch powtarzające się polecenia zapisywaliśmy, stosując m.in. polecenie powtórz. Liczbę powtórzeń określaliśmy, zmieniając liczbę w polu tekstowym elementu reprezentującego to polecenie. Mogliśmy też umieścić w tym polu element reprezentujący zmienną. W języku C++ jedną z instrukcji iteracyjnych jest instrukcja for. Do określenia liczby kroków iteracji (powtórzeń) stosujemy tzw. zmienną sterującą. for ( _ _ ) lista_instrukcji; for Komputer najpierw wykonuje wyrażenie_początkowe (np. i = 0), zwykle ustalające wartość początkową zmiennej sterującej. Następnie, dopóki spełniony jest warunek, komputer wykonuje listę_instrukcji, a potem oblicza wartość wyrażenia_pętli, służącego zazwyczaj do zwiększenia (lub zmniejszenia) wartości zmiennej sterującej. Jako lista_instrukcji może wystąpić pojedyncza instrukcja (w tym instrukcja pętli) lub więcej instrukcji ujętych w blok {}. 48

51 1.3. Wprowadzenie do programowania w języku C++ Na przykład instrukcja: for(i=0; i<5; i++) { cout << "Podaj liczbe: "; cin >> a; } oznacza, że polecenia ujęte w blok {} program wykona 5 razy. Zmienna sterująca o nazwie i na początku ma wartość 0. Komputer wykonuje polecenia w bloku {}, gdy zmienna i jest mniejsza od 5 (czyli dla zmiennej i równej kolejno: 0, 1, 2, 3, 4). Wyrażenie i++ oznacza zmiennej i przypisz wartość i zwiększoną o 1. Jest to skrót instrukcji przypisania: i = i + 1. W języku Scratch wartość licznika zmienialiśmy w podobny sposób, stosując polecenie zmień, reprezentowane przez element z napisem zmień licznik o 1. max Ćwiczenie 8. Stosujemy instrukcję iteracyjną for 1. Przypomnij sobie algorytm wyszukiwania największej liczby w zbiorze i jego realizację w języku Scratch. 2. Przepisz kod programu pokazany na rysunku 10. Wyjaśnij znaczenie poszczególnych wierszy programu. 3. Zapisz program w pliku pod nazwą Max_5. Skompiluj i uruchom program. 4. Odpowiedz na pytania: a) Jaką instrukcję komputer wykonuje dla zmiennej i różnej od zera? b) Jaka jest wartość zmiennej i na koniec programu? Wskazówka: Aby sprawdzić, jaka jest wartość zmiennej i na koniec programu, wyświetl wartość i na ekranie, umieszczając polecenie cout << i; przed poleceniem return 0. Aby wyświetlić wartość i w nowym wierszu, umieść zapis \n po instrukcji wyprowadzającej wartość max. 49

52 Dział 1. Algorytmika i programowanie Ćwiczenie 9. Wyszukujemy największy element wśród n liczb 1. Zmodyfikuj program Max_5 zapisany w ćwiczeniu 8. tak, aby realizował algorytm wyszukiwania elementu największego w zbiorze n-elementowym (wartość n wprowadź z klawiatury). 2. Zapisz program w pliku pod nazwą Max_n. Skompiluj i uruchom program. 3. Sprawdź działanie programu dla różnych wartości danych n i a. Zapamiętaj Każdy język programowania ma swój zbiór instrukcji, reguły budowy zdań i właściwe słownictwo. Aby utworzyć program w języku C++, piszemy kod źródłowy w odpowiednim edytorze, zapisujemy program w pliku i kompilujemy. Jeśli kompilacja przebiegła prawidłowo, uruchamiamy program. Efektem poprawnie przeprowadzonej kompilacji jest plik z rozszerzeniem exe, który uruchamia się w oddzielnym oknie. Zmienną używaną w programie należy zadeklarować przed pierwszym użyciem: określić jej nazwę i typ. Zmiennej nadajemy wartość za pomocą instrukcji przypisania. W języku C++ do zapisywania algorytmów, w których występują sytuacje warunkowe, stosujemy instrukcję warunkową if. Działanie tej instrukcji jest takie samo jak w języku Scratch. Jeśli w algorytmie występują powtórzenia, możemy zastosować instrukcję iteracyjną for. Liczba powtórzeń (iteracji) jest w niej zwykle z góry określona. Serwis dla ciekawskich Język C++ jest rozwinięciem języka C, wymyślonego na początku lat 70. XX wieku. Język C powstał z kolei na bazie języków BCPL i B. Następna litera w alfabecie ( D ) również jest nazwą języka programowania, wykorzystującego cechy języka C++. Istnieją także języki C# i Objective-C, wykorzystujące niektóre koncepcje języków C i C++. Na świecie istnieje obecnie ponad 1000 różnych języków programowania! 50

53 1.3. Wprowadzenie do programowania w języku C++ OKO W OKO Z MONITOREM Pytania i polecenia Czym różni się program źródłowy od programu wynikowego? Czym się różni operator == od =? Podaj przykłady użycia każdego z tych operatorów. Wyjaśnij zapisy: a) int liczba; b) liczba = 20; c) int liczba = 20; Kiedy komputer wykona instrukcje umieszczone po słowie else w instrukcji warunkowej? Dlaczego zmienną i w pętli for (i = 0; i < 5; i++) cout << i; nazywamy zmienną sterującą? Zadania Zapisz program obliczający sumę i średnią arytmetyczną trzech liczb rzeczywistych wprowadzanych z klawiatury. Wyniki obliczeń i odpowiednie komunikaty wyświetl na ekranie. Zapisz program w pliku pod nazwą Średnia. Napisz program obliczający pole trapezu o bokach a i b oraz wysokości h będących liczbami całkowitymi. Wartości zmiennych a, b i h wprowadzaj z klawiatury. Wyniki obliczeń i odpowiednie komunikaty wyświetl na ekranie. Zapisz program w pliku pod nazwą Trapez. Otwórz program Trapez zapisany w zadaniu 2. i dodaj sprawdzanie, czy wysokość h jest różna od zera. Dla h różnego od zera należy wykonać obliczenia pola i wyświetlić wynik, a w przeciwnym wypadku wyświetlić komunikat błędna dana. Zapisz program w pliku pod tą samą nazwą. Napisz program sprawdzający, która z dwóch liczb całkowitych x i y wprowadzonych z klawiatury jest większa. Wyświetlaj na ekranie odpowiedni napis i wartość większej liczby. Zapisz program w pliku pod nazwą Większa_z_dwóch. Korzystając z programu Działania zapisanego w ćwiczeniu 6., sprawdź, czym się różni wynik dzielenia zależnie od zadeklarowanego typu danych zmiennych a, b i iloraz (całkowitego lub rzeczywistego). Nie zapisuj zmian. 51

54 Dział 1. Algorytmika i programowanie 6 7 Otwórz program Działania zapisany w ćwiczeniu 6. (str. 47). Dodaj do programu możliwość obliczenia różnicy liczb a i b. Zapisz program w pliku pod tą samą nazwą. Napisz program sprawdzający, czy liczba wprowadzona z klawiatury jest podzielna przez 7. Jeśli tak, wyświetlaj komunikat: Podana liczba jest podzielna przez 7. Jeśli nie Podana liczba nie jest podzielna przez 7. Dodatkowo w komunikacie możesz wyświetlać wartość tej liczby. Zapisz program w pliku pod nazwą Podzielność_7. DLA ZAINTERESOWANYCH Zapisz program sprawdzający, która z wprowadzonych trzech liczb całkowitych x, y i z jest największa. Wyświetlaj na ekranie odpowiedni napis i wartość największej liczby. Zapisz program w pliku pod nazwą Większa_z_trzech. Utwórz program sumujący n liczb całkowitych wprowadzanych z klawiatury, gdzie n również jest wprowadzane z klawiatury. Zadeklaruj cztery zmienne całkowite: liczba, suma, n oraz i. Wyświetlaj wynik sumowania na ekranie. Zapisz program w pliku pod nazwą Suma_n. Wskazówka: Aby obliczać sumę n liczb, umieść w pętli for instrukcję przypisania: suma = suma + liczba lub suma += liczba, co oznacza pod zmienną suma podstaw poprzednią wartość zmiennej suma zwiększoną o wartość kolejnej liczby. Na początku programu przypisz zmiennej suma wartość 0. Napisz program realizujący algorytm sprawdzania podzielności liczby całkowitej a przez liczbę całkowitą b. Wartości liczb a i b wprowadzaj z klawiatury. Zapisz program w pliku pod nazwą Podzielność. Zmodyfikuj program Podzielność zapisany w zadaniu 3., tak aby komputer wykonał obliczenia dla n liczb (n wprowadzaj z klawiatury). Zapisz program w pliku pod tą samą nazwą. 52

55 1.5. Wprowadzenie do programowania w języku Python Warto powtórzyć 1. Co oznaczają pojęcia: algorytm, program komputerowy, język programowania? 2. Jak za pomocą języka Scratch wyświetlamy napisy na ekranie? 3. Jak tworzymy zmienną w języku Scratch? 4. W jaki sposób w języku Scratch przypisujemy zmiennej konkretną wartość, a jak wprowadzamy wartość zmiennej z klawiatury? 5. Za pomocą jakiego polecenia realizujemy sytuację warunkową w języku Scratch? 6. W jaki sposób zapisujemy iterację w języku Scratch? W środowisku programowania Scratch tworzyliśmy program, układając w obszarze roboczym polecenia reprezentowane przez elementy graficzne. W języku Python (czyt. pajton) program będziemy pisać w specjalnym edytorze, zawartym w zintegrowanym środowisku programistycznym o nazwie IDLE. W tym temacie: 1. poznasz różnicę pomiędzy kompilacją a interpretacją, 2. poznasz tryb interaktywny pisania poleceń w języku Python, 3. napiszesz program komputerowy w trybie skryptowym w języku Python i zapiszesz program w pliku, 4. dowiesz się, jak stosować zmienne i wykonywać na nich proste obliczenia, 5. użyjesz instrukcji warunkowej do zapisywania algorytmów z warunkami, 6. zapiszesz wybrany algorytm iteracyjny z wykorzystaniem instrukcji iteracyjnej. 1 Kompilacja a interpretacja Program napisany w języku programowania (kod źródłowy) nie jest zrozumiały dla komputera. Komputer wykonuje tylko program napisany w języku wewnętrznym (kod wynikowy). Tłumaczeniem programu zajmuje się specjalny program zwany translatorem, a proces tłumaczenia programu napisanego w języku programowania wysokiego poziomu na język wewnętrzny komputera nazywamy translacją. Może ona przebiegać w formie kompilacji lub interpretacji. 69

56 Dział 1. Algorytmika i programowanie W językach kompilowanych (np. C++) musimy napisać cały program, zapisać go w pliku, skompilować i dopiero po poprawnej kompilacji uruchomić. Jeśli kompilator znajdzie w programie błędy, wskaże je. Wtedy program należy poprawić, zapisać, ponownie skompilować, a następnie uruchomić. W językach interpretowanych (np. Scratch, Python) możemy napisać program składający się z wielu poleceń (tworząc tzw. skrypt), zapisać go w pliku, a następnie uruchomić. Mówimy wówczas, że pracujemy w trybie skryptowym. W odróżnieniu od kompilatora, interpreter wyświetla komunikat o pierwszym znalezionym błędzie. Należy poprawić wskazany błąd, ponownie zapisać program w pliku i uruchomić. Jeśli interpreter nie znajdzie już więcej błędów, komputer wykona cały program. W językach interpretowanych możemy również napisać jedno polecenie i zatwierdzić je (klawiszem Enter lub kliknięciem myszy). Interpreter przetłumaczy to polecenie na język wewnętrzny komputera. Jeśli będzie poprawne, komputer je wykona. Mówimy wówczas, że pracujemy w trybie interaktywnym. Na przykład jeśli w języku Scratch umieścimy w obszarze tworzenia programu polecenie powiedz wyświetlające na ekranie napis Dzień dobry!, a następnie klikniemy element reprezentujący to polecenie, komputer od razu je wykona. Efekt zobaczymy na scenie (rys. 1.). Podobnie komputer wykonuje polecenia w języku Python. Jeśli w specjalnym oknie (rys. 2.) napiszemy polecenie wyświetlające na ekranie napis Dzień dobry! :, następnie zatwierdzimy je klawiszem Enter, komputer również od razu je wykona. Efekt wykonania polecenia zobaczymy w wierszu poniżej polecenia (rys. 2.). Kompilacja Interpretacja Środowisko programistyczne IDLE udostępnia dwa tryby pracy: interaktywny i skryptowy. IDLE zawiera narzędzia ułatwiające pisanie programów, m.in.: edytor kodu źródłowego, interpreter i tzw. powłokę (narzędzie umożliwiające m.in. pracę w trybie interaktywnym). 2 Piszemy polecenia w języku Python w trybie interaktywnym Pierwsze programy w języku Python napiszemy w trybie interaktywnym, w oknie powłoki Pythona (Python Shell) rys. 2. Najpierw jednak przypomnimy sobie, jak pracowaliśmy w trybie interaktywnym w języku Scratch rys

57 1.5. Wprowadzenie do programowania w języku Python Ćwiczenie 1. Wyświetlamy na ekranie napis za pomocą języka Scratch 1. Uruchom program Scratch. 2. Umieść w obszarze roboczym polecenie wyświetlające napis Dzień dobry!. Kliknij je. 3. Umieść w obszarze roboczym polecenie wyświetlające napis Uczymy się programowania. Nie łącz go z pierwszym. Kliknij je. 4. Połącz pierwsze polecenie z drugim, kliknij jeden z elementów. Co zauważasz? Czym różni się wykonanie połączonych poleceń od ich wykonywania, gdy nie były połączone? Wskazówka: W ćwiczeniu należy użyć polecenia powiedz z określeniem czasu, przez jaki napis ma się wyświetlać na ekranie (rys. 1.). Python Shell Enter Aby w języku Python wyświetlać na ekranie komunikaty i wyniki, stosujemy instrukcję wyjścia funkcję. Argumentami funkcji (podanymi w nawiasach) mogą być teksty, wyrażenia arytmetyczne lub zmienne oddzielone przecinkami. 71

58 Dział 1. Algorytmika i programowanie Jeśli argumentem jest wyrażenie, komputer najpierw je oblicza, a następnie wyświetla na ekranie obliczoną wartość. Tekst umieszczamy wewnątrz nawiasu w apostrofach (pojedynczych lub podwójnych). Po wyświetleniu komunikatu lub wyniku następuje przejście do nowego wiersza. Na przykład: komputer wyświetla na ekranie napis Informatyka, komputer wyświetla na ekranie wartość wyrażenia, czyli 40, komputer wyświetla na ekranie wartość zmiennej wzrost, komputer wyświetla na ekranie napis suma liczb 345 i 36 wynosi: i w tym samym wierszu obliczoną wartość wyrażenia (czyli 381). Ćwiczenie 2. Wyświetlamy na ekranie napis w języku Python w trybie interaktywnym 1. Uruchom program IDLE/Python. 2. W otwartym oknie napisz polecenie wyświetlające napis Dzień dobry!. 3. Wpisz kolejne polecenie wyświetlające napis Uczymy się programowania. Wymień podobieństwa i różnice w sposobie wykonania tego zadania w językach Scratch i Python. Język Python, tak jak każdy język programowania, ma swój zbiór instrukcji. Instrukcje realizują czynności takie jak: wprowadzanie danych, wyprowadzanie wyników, wykonywanie obliczeń, określanie warunków czy powtarzanie operacji. Postać instrukcji jest inna dla różnych języków. Język Python, tak jak inne języki programowania, posiada odpowiednie zasady składni oraz właściwe słownictwo podobnie jak języki naturalne, którymi posługujemy się na co dzień. Poza poprawnym zapisaniem instrukcji i słów kluczowych musimy również pamiętać o odpowiednim wstawieniu m.in. nawiasów, przecinków, apostrofów, spacji. Jeśli niepoprawnie zapiszemy instrukcję, komputer jej nie wykona, a interpreter wyświetli komunikat o błędzie (rys. 3.). 72

59 1.5. Wprowadzenie do programowania w języku Python Ćwiczenie 3. Poprawiamy ewentualne błędy 1. Napisz kolejne polecenie wyświetlające napis w języku Python. 2. Wyświetl jeszcze jeden napis według swojego pomysłu. 3. Jeśli interpreter wyświetli komunikat o błędzie, należy poprawić wskazaną instrukcję, ponownie zapisać program w pliku i uruchomić go. W trybie interaktywnym możemy w prosty sposób wykonywać obliczenia na konkretnych wartościach. Zaczniemy od przypomnienia, jak wykonywał obliczenia duszek kot. W języku Scratch wystarczy umieścić w obszarze roboczym element reprezentujący działanie dodawania, wpisać liczby i kliknąć ten element, a wynik pojawi się w chmurce obok (rys. 4a). Można również użyć polecenia powiedz, a wynik wyświetli się na scenie (rys. 4b). Enter powiedz Ćwiczenie 4. Wykonujemy obliczenia w języku Scratch 1. Przypomnij sobie, jak wykonuje się obliczenia w języku Scratch wykonaj działania z rysunków 4a i 4b. 2. Przed umieszczonym poleceniem powiedz umieść drugie, wyświetlające przez 2 sekundy napis: Suma liczb 234 i 856 wynosi:. Scal polecenia i kliknij. 73

60 Dział 1. Algorytmika i programowanie W języku Python w podobny sposób wyświetlamy wyniki obliczeń. Możemy (rys. 5.): wpisać samo działanie lub użyć instrukcji i umieścić wewnątrz nawiasów samo działanie, lub użyć instrukcji i umieścić wewnątrz nawiasów napis i działanie rozdzielone przecinkiem. Instrukcja pozwala łączyć wyświetlanie napisów z wartością wyrażenia. Ćwiczenie 5. Wykonujemy obliczenia w języku Python 1. W oknie powłoki Pythona wpisz polecenia obliczające sumę, pokazane na rysunku Wykonaj w podobny sposób inne obliczenia, używając kolejno wszystkich operatorów podanych w tabeli 1. Operator Wynik + * // / % 74

61 1.5. Wprowadzenie do programowania w języku Python 3 Piszemy program w trybie skryptowym i zapisujemy go w pliku W języku Scratch polecenia mogliśmy łączyć, umieszczając jedno pod drugim. Zestawione polecenia nazywaliśmy skryptem. Program zawierający skrypt zapisywaliśmy na dysku, a następnie uruchamialiśmy. W języku Python również możemy napisać skrypt składający się z wielu instrukcji realizujących konkretne zadanie. Program zawierający skrypt zapisujemy na dysku, a następnie uruchamiamy. Niezależnie od zastosowanego środowiska programistycznego i wykorzystywanego języka programowania ważna jest kolejność instrukcji w programie powinna odpowiadać kolejności operacji realizujących dany algorytm. W trybie interaktywnym języka Python możemy sprawdzić działanie jednego polecenia, np. gdy chcemy od razu zobaczyć wynik czy sprawdzić działanie konkretnej instrukcji. Natomiast do tworzenia programów w języku Python służy tryb skryptowy. Do trybu skryptowego możemy przejść z trybu interaktywnego, z okna powłoki Pythona. Etapy tworzenia programu w języku Python 1. W oknie powłoki Pythona (Python Shell) wybieramy opcję File/New File otworzy się okno edytora kodu źródłowego (rys. 6a). 2. W oknie edytora piszemy program (rys. 6a). 3. Zapisujemy program w pliku, wybierając w oknie edytora kodu źródłowego opcję File/Save As. 4. Uruchamiamy program, wybierając w oknie edytora opcję Run/Run Module (lub naciskając klawisz F5) wynik działania programu pojawi się w oknie powłoki (rys. 6b). Uwaga: Pliki programów w języku Python mają rozszerzenie py. 75

62 Dział 1. Algorytmika i programowanie Ćwiczenie 6. Wyświetlamy napisy na ekranie w trybie skryptowym 1. W trybie skryptowym napisz program wyświetlający na ekranie napis: Jestem na lekcji informatyki.. 2. Zapisz program w pliku pod nazwą Napisy. Uruchom program. 3. Zmodyfikuj program tak, aby w drugim wierszu wyświetlało się zdanie Pracuję w trybie skryptowym., a w trzecim twoje imię. Zapisz i uruchom program. Jeśli interpreter wykrył błędy, popraw je. Zapisz program i ponownie go uruchom. 4. Dodaj jeszcze dwa inne napisy w dwóch kolejnych wierszach. Zapisz program i ponownie go uruchom. 5. Zwróć uwagę na różne kolory czcionki kodu pisanego w edytorze kodu źródłowego i napisów wyświetlanych po uruchomieniu programu. Czy jest w tej różnej kolorystyce jakaś prawidłowość? Wyjaśnij na przykładzie wykonywanego ćwiczenia. Schowka Interpreter tłumaczy program instrukcja po instrukcji. Co to oznacza? Na rysunku 7a pierwsza instrukcja jest poprawna, ale druga zawiera błąd. W takiej sytuacji (po zapisaniu i uruchomieniu programu) interpreter wyświetli odpowiedni komunikat (rys. 7b). Komputer wykona tylko pierwszą instrukcję programu, a drugiej i trzeciej już nie. Komunikaty interpretera mogą pojawiać się w oddzielnym oknie. 76

63 1.5. Wprowadzenie do programowania w języku Python prnt Warto zauważyć, że czcionka kodu programu ma różne kolory, np. w nazwie print jest fioletowa, ale w błędnym zapisie tej instrukcji czarna. Napis wewnątrz nawiasów w instrukcji print jest zielony, ale po wyświetleniu na ekranie tekst jest niebieski. 4 Stosowanie zmiennych i wykonywanie na nich obliczeń Zmienna w programie komputerowym to nazwana część pamięci operacyjnej komputera (RAM) o unikatowym adresie komórka (komórki) pamięci. W każdym języku programowania musimy określić sposób korzystania ze zmiennych i nadawania im wartości. W języku Scratch wystarczy określić nazwę zmiennej. W języku C++ każdą zmienną trzeba zadeklarować, czyli określić jej nazwę i typ (zbiór wartości, które może przyjmować, np. liczby całkowite, liczby rzeczywiste). W języku Python nie trzeba deklarować zmiennych. Nie musimy wcześniej określać typu zmiennej. Interpreter określa typ zmiennej na podstawie rodzaju danych, jaki przypiszemy tej zmiennej. Nie ustanawia jednak typu zmiennej na zawsze, ponieważ przy kolejnym przypisaniu może się on zmienić. Na przykład jeśli na początku programu przypiszemy zmiennej liczba wartość całkowitą (34), to typ zmiennej liczba jest całkowity. Jeśli jednak w dalszej części programu przypiszemy jej wartość rzeczywistą (np. 45,8, którą w języku Python zapisujemy z kropką 45.8), to zmienna liczba będzie już typu rzeczywistego. Podobnie jak w języku C++, w języku Python małe i wielkie litery w nazwach zmiennych (także instrukcji) mają różne znaczenie, np. zmienne Suma i suma to dwie różne zmienne. W nazwach zmiennych można używać tylko liter, znaku podkreślenia i cyfr. Nazwa nie może zaczynać się od cyfry. 77

64 Dział 1. Algorytmika i programowanie Przyjęte jest stosowanie małych liter w nazwach zmiennych. W przypadku nazw kilkuczłonowych zastępujemy spację znakiem podkreślenia. Należy nadawać nazwy, które określają znaczenie danej zmiennej, np. suma, liczba_elementów. Zmiennej możemy w programie nadać konkretną wartość za pomocą instrukcji przypisania. Znak (operator) = oznacza przypisanie zmiennej zapisanej po lewej stronie znaku wartości umieszczonej po jego prawej stronie. Na przykład: zmiennej rok przypisujemy wartość, która jest liczbą całkowitą, czyli zmienna rok jest typu całkowitego (int), zmiennej wzrost przypisujemy wartość, która jest liczbą rzeczywistą, czyli zmienna wzrost jest typu rzeczywistego ( ), zmiennej nazwisko przypisujemy tekst (ciąg znaków), czyli zmienna nazwisko jest typu tekstowego ( ). Uwagi: W języku Python, tak jak w większości języków programowania, część dziesiętną liczby zapisujemy po kropce. W instrukcji przypisania po prawej stronie znaku równości możemy umieścić wyrażenie, np.: (co oznacza: zmiennej rok przypisz wartość zmiennej rok zwiększoną o 1). Ćwiczenie 7. Nadajemy wartości zmiennym 1. W trybie interaktywnym sprawdź, w jaki sposób można przypisać wartość zmiennej. Umieść kolejno następujące polecenia (każde po znaku zachęty : 2. Napisz jeszcze pięć instrukcji przypisania wartości (liczb lub wyrażeń) zmiennym według własnego pomysłu. Wykorzystaj operatory arytmetyczne z tabeli 1. Zmiennej możemy nadać wartość za pomocą instrukcji przypisania, wprowadzając wartość z klawiatury po uruchomieniu programu. W tym celu stosujemy instrukcję wejścia funkcję. 78

65 1.5. Wprowadzenie do programowania w języku Python Argumentem funkcji (podanym w nawiasach) jest tekst (ciąg znaków) zapisany w apostrofach, który pojawi się na ekranie jako swego rodzaju zaproszenie do wpisania ciągu znaków z klawiatury. Jeśli użyjemy funkcji w instrukcji przypisania, wpisany przez użytkownika ciąg znaków komputer zapamięta w zmiennej podanej po lewej stronie: _. Na przykład: jeśli wpiszemy z klawiatury nazwisko Kowalski, komputer w zmiennej nazwisko zapamięta ciąg znaków Kowalski, jeśli wpiszemy z klawiatury liczbę 346, komputer w zmiennej a zapamięta ciąg znaków 346, a nie liczbę 346. Aby komputer mógł zapamiętać wprowadzoną za pomocą instrukcji daną jako liczbę, musimy dodać instrukcję, która zamieni ciąg znaków na liczbę: w przypadku liczb całkowitych, w przypadku liczb rzeczywistych. Na przykład: jeśli wpiszemy z klawiatury liczbę 346, komputer w zmiennej a zapamięta daną wprowadzoną z klawiatury zamienioną na liczbę całkowitą, czyli 346, jeśli wpiszemy z klawiatury liczbę 4.3, komputer w zmiennej srednia zapamięta daną wprowadzoną z klawiatury zamienioną na liczbę rzeczywistą, czyli 4,3. Ćwiczenie 8. Wprowadzamy wartości zmiennych z klawiatury 1. W trybie interaktywnym sprawdź użycie instrukcji. Umieść kolejno po znaku zachęty >>> następujące polecenia (w przypadku zmiennej liczba wprowadź z klawiatury za każdym razem tę samą liczbę, np. 34): Wyjaśnij, dlaczego dla tej samej wartości zmiennej liczba komputer po wykonaniu instrukcji z czwartego i szóstego wiersza wyświetlił dwa różne wyniki. 2. Napisz jeszcze cztery wymyślone przez siebie instrukcje umożliwiające wprowadzenie wartości zmiennych (różnych typów). Wykorzystaj operatory arytmetyczne z tabeli 1. Wskazówka: W przypadku ciągów znaków operator + powoduje złączenie tych ciągów, np. gdy napiszemy instrukcję, komputer wyświetli napis samolot. 79

66 Dział 1. Algorytmika i programowanie Ćwiczenie 9. Piszemy program z użyciem zmiennych wprowadzanych z klawiatury 1. Program pokazany na rysunku 8. pozwala na wprowadzenie z klawiatury dwóch liczb całkowitych a i b, obliczenie ich sumy i wyświetlenie na ekranie wyniku (wartości zmiennej suma). W trybie skryptowym przepisz kod tego programu. 2. Zapisz program w pliku pod nazwą Suma. Uruchom program. Wskazówka: Jeśli zamkniemy okno programu i chcemy ponownie uruchomić program, możemy wybrać w oknie powłoki opcję File/Open. Program otworzy się w oknie edytora kodu źródłowego (rys. 8.). Po uruchomieniu programu (opcja Run/Run Module lub klawisz F5 w oknie edytora) wynik działania programu pokaże się w oknie powłoki Pythona (rys. 9a). Program możemy również uruchomić, klikając dwukrotnie nazwę pliku z zapisanym programem w Eksploratorze Windows (Eksploratorze plików) otworzy się okno, w którym zobaczymy wynik działania programu (rys. 9b). Aby program działał, niezbędny jest interpreter Pythona. 80

67 1.5. Wprowadzenie do programowania w języku Python Aby okno pokazane na rysunku 9b nie zamknęło się automatycznie po wyświetleniu napisu, możemy napisać na końcu programu instrukcję oczekiwania na naciśnięcie klawisza Enter:. W tym przypadku żadnej zmiennej nie przypisujemy wartości funkcji. Umieszczenie zapisu oznacza wstawienie dwóch nowych wierszy. Zapis odpowiada kodowi znaku przejścia do nowego wiersza. Ćwiczenie 10. Modyfikujemy program 1. Zmodyfikuj program Suma zapisany w ćwiczeniu 9., aby wynik działania programu wyglądał jak na rysunku Zapisz program w pliku pod tą samą nazwą. Uruchom program tak, aby wynik pokazał się w oknie takim jak na rysunku 9b. Wskazówka: Jeśli podasz niepoprawną liczbę, okno programu się zamknie. Ćwiczenie 11. Uzupełniamy program 1. Do programu zapisanego w ćwiczeniu 10. dodaj obliczanie iloczynu liczb a i b oraz wyświetlenie wyniku mnożenia na ekranie (podobnie jak wyniku sumowania w ćwiczeniu 10.). 2. Zapisz program w pliku pod nazwą Działania. Uruchom program. 5 Stosowanie instrukcji warunkowej do realizacji algorytmów z warunkami Aby w języku programowania napisać program realizujący algorytm z warunkami, stosujemy instrukcję warunkową. W języku Python instrukcja warunkowa działa tak samo jak w języku Scratch i również występuje w wersjach pełnej i uproszczonej (rys. 11a, 11b). Jako lista_instrukcji1 i lista_instrukcji2 może wystąpić jedna instrukcja (w tym instrukcja warunkowa) lub więcej instrukcji. Po warunku i słowie kluczowym else umieszczamy dwukropek. 81

68 Dział 1. Algorytmika i programowanie if warunek lista_instrukcji1 else lista_instrukcji2; kolejna_instrukcja if warunek lista_instrukcji1 kolejna_instrukcja Komputer sprawdza warunek logiczny jeśli warunek jest spełniony (jest prawdziwy), wykonuje instrukcje (lista_instrukcji1). Jeśli warunek nie jest spełniony (jest fałszywy) wykonuje instrukcje (lista_instrukcji2) po słowie else (rys. 11a), a jeśli brak tej części instrukcji wykonuje od razu kolejną instrukcję (kolejna_instrukcja) po instrukcji warunkowej (rys. 11b). W języku Python ważne są wcięcia w programie listę_instrukcji1 i listę_instrukcji2 należy przesunąć w prawo przynajmniej o jedną spację. Przyjęte jest wcięcie składające się z czterech spacji. Jeśli te listy obejmują więcej instrukcji, wszystkie należy tak przesunąć. Jest to sposób wyróżnienia bloku kodu. Jeśli nie zastosujemy wcięcia, komputer potraktuje listę_instrukcji1 i listę_instrukcji2 jako kolejne_instrukcje i wykona niezależnie od spełnienia warunku. Operatory Określenie Przykład wyrażenia Interpretacja wyrażenia a b Porównania a b < a b > a b a b a b Logiczne a a a a a 82

69 1.5. Wprowadzenie do programowania w języku Python Ćwiczenie 12. Stosujemy instrukcję warunkową 1. Otwórz program Działania zapisany w ćwiczeniu Uzupełnij program o obliczenie ilorazu liczb a i b. Iloraz możemy obliczyć tylko dla b różnego od zera jeśli ten warunek nie będzie spełniony, program powinien wyświetlić odpowiedni napis (rys. 12.). 3. Zapisz program w pliku pod tą samą nazwą. Uruchom program i sprawdź jego działanie dla różnych danych. Uwaga: Wynik dzielenia liczb całkowitych przypisany zmiennej iloraz może nie być liczbą całkowitą. W takiej sytuacji zmienna iloraz będzie miała typ rzeczywisty i również otrzymamy poprawny wynik dzielenia. Ćwiczenie 13. Stosujemy instrukcję warunkową w wersji uproszczonej 1. Utwórz nowy program, który ma sprawdzać, czy wprowadzona z klawiatury liczba całkowita jest podzielna przez 2. Następnie program ma sprawdzać, czy liczba jest podzielna przez 5. W każdym przypadku program ma wyświetlać odpowiednie komunikaty (rys. 13.). Bez względu na to, czy podana liczba będzie podzielna przez 2 lub przez 5, program ma wyświetlić komunikat Program sprawdził, czy podana liczba jest podzielna przez 2 lub przez Zapisz program w pliku pod nazwą Podzielność_2_5. Uruchom program. Sprawdź jego działanie dla kilku różnych danych. Uwaga: Operator % (obliczenie reszty z dzielenia dwóch liczb całkowitych tabela 1.) odpowiada operatorowi mod w języku Scratch (temat 1.1.). 6 Stosowanie instrukcji iteracyjnej Aby w języku programowania napisać program realizujący algorytm iteracyjny, korzystamy z instrukcji iteracyjnych (instrukcji pętli). W języku Python jedną z takich instrukcji jest instrukcja for. 83

70 Dział 1. Algorytmika i programowanie W języku Scratch powtarzające się polecenia zapisywaliśmy, stosując m.in. polecenie powtórz (rys. 14a). Liczbę powtórzeń określaliśmy, zmieniając liczbę w polu tekstowym elementu reprezentującego to polecenie. Mogliśmy też umieścić w tym polu element reprezentujący zmienną. for zmienna in lista_ lista_instrukcji powtórz for Jako lista_instrukcji może wystąpić pojedyncza instrukcja (w tym instrukcja pętli) lub więcej instrukcji (blok instrukcji). Lista_instrukcji musi być przesunięta w prawo przynajmniej o jedną spację. Przyjęte jest wcięcie składające się z czterech spacji. W języku Python liczbę iteracji określa długość listy_wartości po słowie in (rys. 14b). Komputer wykona listę_instrukcji dla wszystkich wartości z listy_wartości. Listę_wartości możemy zapisać w różny sposób. Na przykład: for in oznacza, że komputer wykona instrukcję pięć razy dla listy wartości [0, 1, 2, 3, 4], a zmienna i będzie przyjmować kolejne wartości z tej listy, czyli: 0, 1, 2, 3, 4. for in oznacza, że komputer wykona instrukcję cztery razy dla listy [1, 3, 5, 7], a zmienna i będzie przyjmować kolejne wartości z tej listy, czyli: 1, 3, 5, 7. Nie zawsze chcemy wpisywać wszystkie wartości listy, zwłaszcza dla dużej liczby iteracji. Do utworzenia listy_wartości można użyć funkcji, która tworzy sekwencję wartości całkowitych. Na przykład: Dla jednego argumentu: for in oznacza, że komputer wykona instrukcję pięć razy. Funkcja wygeneruje kolejne liczby całkowite z przedziału <0, koniec), czyli zmienna i będzie przyjmować kolejno następujące wartości: 0, 1, 2, 3, 4. Dla dwóch argumentów:. for in oznacza, że komputer wykona instrukcję czterdzieści razy. Funkcja wygeneruje kolejne liczby całkowite z przedziału <początek, koniec), czyli zmienna i będzie przyjmować kolejno następujące wartości: 15, 16, 17,,

71 1.5. Wprowadzenie do programowania w języku Python Dla trzech argumentów: for in : oznacza, że komputer wykona instrukcję dziesięć razy. Funkcja wygeneruje kolejne liczby całkowite z przedziału <początek, koniec) zmieniające się o krok, czyli zmienna i będzie przyjmować kolejno następujące wartości: 1, 3, 5,, 19. Trzeci argument określa tym samym, o jaką wartość zmienia się zmienna i. Argumentem funkcji może być również zmienna, np.. Wartość zmiennej n możemy wprowadzać z klawiatury. Uwaga ta dotyczy również pozostałych argumentów. Ćwiczenie 14. Stosowanie instrukcji for do obliczenia sumy liczb 1. W trybie interaktywnym sprawdź działanie instrukcji for, korzystając z podanych przykładów. 2. W trybie skryptowym utwórz program sumujący pięć liczb całkowitych (liczba) wprowadzanych z klawiatury. Zastosuj pętlę for. Wyświetl wynik sumowania (suma) na ekranie. 3. Zapisz program w pliku pod nazwą Suma_5. Wskazówki Przed pętlą for przypisz zmiennej suma wartość 0. Do obliczenia sumy zastosuj następującą instrukcję przypisania:. Ćwiczenie 15. Stosujemy instrukcję iteracyjną for 1. Przypomnij sobie algorytm wyszukiwania największej liczby w zbiorze i jego realizację w języku Scratch. 2. Przepisz kod programu pokazany na rysunku 15. Wyjaśnij znaczenie poszczególnych wierszy programu. 3. Zapisz program w pliku pod nazwą Maks_5. Uruchom program. 4. Odpowiedz na pytanie: Jaką instrukcję komputer wykonuje dla wartości zmiennej i różnej od zera? 85

72 Dział 1. Algorytmika i programowanie Ćwiczenie 16. Wyszukujemy największy element wśród n liczb 1. Zmodyfikuj program Maks_5 zapisany w ćwiczeniu 15. tak, aby realizował algorytm wyszukiwania największego elementu w zbiorze n-elementowym (wartość n wprowadzaj z klawiatury). 2. Zapisz program w pliku pod nazwą Maks_n. Uruchom program. 3. Sprawdź działanie programu dla różnych wartości danych n i a. Zapamiętaj Kompilator tłumaczy program w całości na język zrozumiały dla procesora, aby mógł go wykonać komputer. Natomiast interpreter tłumaczy program instrukcja po instrukcji, aby komputer mógł wykonać każdą z nich. Środowisko programistyczne Pythona (IDLE) udostępnia dwa tryby pracy: - Tryb interaktywny, w którym możemy napisać jedno polecenie i zatwierdzić je klawiszem Enter. Jeśli polecenie będzie poprawne, komputer je od razu wykona. - Tryb skryptowy, w którym możemy napisać program, zapisać go w pliku, a następnie uruchomić. Jeśli program będzie poprawny, komputer go wykona. Każdy język programowania ma swój zbiór instrukcji, zasady składni i właściwe słownictwo. Aby wyświetlić komunikaty i wyniki na ekranie, stosujemy instrukcję wyjścia funkcję. W języku Python typ zmiennej określa wartość, jaką przypiszemy zmiennej. Zmiennej możemy nadać wartość za pomocą instrukcji przypisania: - podając w programie konkretną wartość lub - wprowadzając tę wartość z klawiatury po uruchomieniu programu (używając funkcji ). W języku Python do zapisywania algorytmów, w których występują sytuacje warunkowe, stosujemy instrukcję warunkową if. Działanie tej instrukcji jest podobne jak w językach Scratch i C++. Jeśli w algorytmie występują powtórzenia, możemy zastosować instrukcję iteracyjną for. Liczba powtórzeń (iteracji) jest w niej zwykle z góry określona. 86

73 1.5. Wprowadzenie do programowania w języku Python Serwis dla ciekawskich Język Python zaczął powstawać w roku 1989 jako następca języka ABC. Oba mają cechę wyróżniającą wśród innych języków programowania stosowanie wcięć do wydzielania bloków kodu. W innych językach używa się na przykład nawiasów klamrowych {} (w języku C++) lub słów kluczowych (w języku Pascal). W tych językach wcięcia stosuje się, aby zachować przejrzystość kodu, jednak brak wcięcia nie ma znaczenia dla poprawności kodu. Natomiast w języku Python niewstawienie spacji przed instrukcją, np. w pętli for, zmieni sposób działania programu. OKO W OKO Z MONITOREM Pytania i polecenia Czym różni się kompilacja od interpretacji? Jaka będzie wartość zmiennej b po wykonaniu programu w języku Python: Czy po wykonaniu instrukcji przypisania i wprowadzeniu z klawiatury liczby 60 komputer zapamięta w zmiennej waga liczbę 60? Uzasadnij odpowiedź. W jaki sposób w języku Scratch wprowadzaliśmy dane z klawiatury po uruchomieniu programu (jakich używaliśmy poleceń)? Wskaż na konkretnym przykładzie, na czym polega podobieństwo do wprowadzania danych z klawiatury w języku Python. Czym się różni operator od? Podaj przykłady użycia każdego z tych operatorów. Kiedy komputer wykona instrukcje umieszczone po słowie else w instrukcji warunkowej? Ile razy komputer wykona instrukcję? Dla jakich wartości zmiennej i komputer wykona tę instrukcję? for in 87

74 Dział 1. Algorytmika i programowanie Zadania Zapisz program obliczający sumę i średnią arytmetyczną trzech liczb rzeczywistych wprowadzanych z klawiatury. Wyniki obliczeń i odpowiednie komunikaty wyświetl na ekranie. Zapisz program w pliku pod nazwą Średnia. Napisz program obliczający pole trapezu o bokach a i b oraz wysokości h będących liczbami naturalnymi. Wartości zmiennych a, b i h wprowadzaj z klawiatury. Wyniki obliczeń i odpowiednie komunikaty wyświetl na ekranie. Zapisz program w pliku pod nazwą Trapez. Otwórz program Trapez zapisany w zadaniu 2. i dodaj sprawdzanie, czy wysokość h jest różna od zera. Dla h różnego od zera należy wykonać obliczenia pola i wyświetlić wynik, a w przeciwnym wypadku wyświetlić komunikat błędna dana. Zapisz program w pliku pod tą samą nazwą. Napisz program sprawdzający, która z dwóch liczb całkowitych x i y wprowadzonych z klawiatury jest większa. Wyświetl na ekranie odpowiedni napis i wartość większej liczby. Zapisz program w pliku pod nazwą Większa_z_dwóch. Otwórz program Działania zapisany w ćwiczeniu 12. Dodaj do programu możliwość obliczenia różnicy liczb a i b. Zapisz program w pliku pod tą samą nazwą. Utwórz program obliczający resztę z dzielenia liczby naturalnej a przez liczbę naturalną b i wyświetlający wynik (wartość zmiennej reszta) na ekranie. Liczby a i b należy wprowadzaj z klawiatury. Zapisz program w pliku pod nazwą Reszta. Zmodyfikuj program Reszta zapisany w zadaniu 6. tak, aby komputer wykonał obliczenia dla pięciu par liczb a i b. Zapisz program w pliku pod tą samą nazwą. Napisz program sprawdzający, czy wprowadzona z klawiatury liczba jest podzielna przez 7. Jeśli tak, wyprowadź komunikat: Podana liczba jest podzielna przez 7. Jeśli nie Podana liczba nie jest podzielna przez 7. Dodatkowo w komunikacie możesz wyświetlać wartość tej liczby. Zapisz program w pliku pod nazwą Podzielność_7. Zmodyfikuj program Podzielność_7 zapisany w zadaniu 8. tak, aby komputer wykonał obliczenia dla n liczb (n wprowadzaj z klawiatury). Zapisz program w pliku pod tą samą nazwą. Napisz program obliczający iloczyn dziesięciu liczb całkowitych (a) wprowadzanych z klawiatury. Zastosuj pętlę for. Wyprowadź wynik mnożenia (iloczyn) na ekran. Program zapisz w pliku pod nazwą Iloczyn. Wskazówka: Przed pętlą for przypisz zmiennej iloczyn wartość 1. 88

75 1.5. Wprowadzenie do programowania w języku Python DLA ZAINTERESOWANYCH Przypomnij sobie pracę w trybie interaktywnym w języku Logo. Porównaj ją z pisaniem poleceń w takim trybie w języku Python. Wskaż podobieństwa i różnice. Zapisz program sprawdzający, która z wprowadzonych trzech liczb całkowitych x, y i z jest największa. Wyświetl na ekranie odpowiedni napis i wartość największej liczby. Zapisz program w pliku pod nazwą Większa_z_trzech. Utwórz program sumujący n liczb całkowitych a. Liczby a oraz liczbę n wprowadzaj z klawiatury. Wyświetl wynik sumowania (suma) na ekranie. Zapisz program w pliku pod nazwą Suma_n. Wskazówka: Aby obliczać sumę n liczb, umieść w pętli for instrukcję przypisania:, co oznacza pod zmienną suma podstaw poprzednią wartość zmiennej suma zwiększoną o wartość kolejnej liczby. Na początku programu przypisz zmiennej suma wartość 0. Napisz program realizujący algorytm sprawdzania podzielności liczby całkowitej a przez liczbę całkowitą b. Wartości liczb a i b wprowadzaj z klawiatury. Zapisz program w pliku pod nazwą Podzielność. Zmodyfikuj program Podzielność zapisany w zadaniu 4. tak, aby komputer wykonał obliczenia dla n liczb (n wprowadzaj z klawiatury). Zapisz program w pliku pod tą samą nazwą. 89

76 Imię i nazwisko Klasa Rok szkolny Podpis

Algorytm Euklidesa. Największy wspólny dzielnik dla danych dwóch liczb całkowitych to największa liczba naturalna dzieląca każdą z nich bez reszty.

Algorytm Euklidesa. Największy wspólny dzielnik dla danych dwóch liczb całkowitych to największa liczba naturalna dzieląca każdą z nich bez reszty. Algorytm Euklidesa Algorytm ten, jak wskazuje jego nazwa, został zaprezentowany przez greckiego matematyka - Euklidesa, żyjącego w w latach około 300r. p.n.e., w jego podstawowym dziele pt. Elementy. Algorytm

Bardziej szczegółowo

Temat 20. Techniki algorytmiczne

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

Bardziej szczegółowo

Programowanie i techniki algorytmiczne

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

Bardziej szczegółowo

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni, Baltie Zadanie 1. Budowanie W trybie Budowanie wybuduj domek jak na rysunku. Przedmioty do wybudowania domku weź z banku 0. Zadanie 2. Czarowanie sterowanie i powtarzanie W trybie Czarowanie z pomocą czarodzieja

Bardziej szczegółowo

Zapisywanie algorytmów w języku programowania

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

Bardziej szczegółowo

Scenariusz zajęć. Moduł VI. Projekt Gra logiczna zgadywanie liczby

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Warsztaty dla nauczycieli

Warsztaty dla nauczycieli Pingwiny łapiące gwiazdki gra dla dwóch graczy Realizowanie sytuacji warunkowych Utworzymy grę dla dwóch graczy, w której dwa duszki-pingwiny będą łapać gwiazdki. Każdy gracz będzie sterować swoim duszkiem-pingwinem

Bardziej szczegółowo

Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych

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.

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE

WYMAGANIA EDUKACYJNE GIMNAZJUM NR 2 W RYCZOWIE WYMAGANIA EDUKACYJNE niezbędne do uzyskania poszczególnych śródrocznych i rocznych ocen klasyfikacyjnych z INFORMATYKI w klasie II gimnazjum str. 1 1. Algorytmika i programowanie

Bardziej szczegółowo

Z nowym bitem. Informatyka dla gimnazjum. Część II

Z nowym bitem. Informatyka dla gimnazjum. Część II Z nowym bitem. Informatyka dla gimnazjum. Część II Wymagania na poszczególne oceny szkolne Grażyna Koba Spis treści 1. Algorytmika i programowanie... 2 2. Obliczenia w arkuszu kalkulacyjnym... 4 3. Bazy

Bardziej szczegółowo

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

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

Bardziej szczegółowo

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci: 1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci: * Jan Kowalski * * ul. Zana 31 * 3. Zadeklaruj zmienne przechowujące

Bardziej szczegółowo

2.8. Algorytmy, schematy, programy

2.8. Algorytmy, schematy, programy https://app.wsipnet.pl/podreczniki/strona/38766 2.8. Algorytmy, schematy, programy DOWIESZ SIĘ co oznaczają pojęcia: algorytm, schemat blokowy, język programowania, jakie są sposoby obliczania największego

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 4

Algorytmy i struktury danych. Wykład 4 Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych

Bardziej szczegółowo

Wymagania edukacyjne z informatyki dla uczniów klas VI SP nr 53 w Krakowie w roku szkolnym 2019/2020

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

Bardziej szczegółowo

Informatyka klasa III Gimnazjum wymagania na poszczególne oceny

Informatyka klasa III Gimnazjum wymagania na poszczególne oceny Informatyka klasa III Gimnazjum wymagania na poszczególne oceny Algorytmika i programowanie Rozwiązywanie problemów i podejmowanie decyzji z wykorzystaniem komputera, stosowanie podejścia algorytmicznego

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

Sposoby przedstawiania algorytmów

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

Bardziej szczegółowo

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

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

Bardziej szczegółowo

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je. Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie

Bardziej szczegółowo

Wymagania edukacyjne z informatyki w klasie VIII

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

Bardziej szczegółowo

Programowanie w Baltie klasa VII

Programowanie w Baltie klasa VII Programowanie w Baltie klasa VII Zadania z podręcznika strona 127 i 128 Zadanie 1/127 Zadanie 2/127 Zadanie 3/127 Zadanie 4/127 Zadanie 5/127 Zadanie 6/127 Ten sposób pisania programu nie ma sensu!!!.

Bardziej szczegółowo

WHILE (wyrażenie) instrukcja;

WHILE (wyrażenie) instrukcja; INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while

Bardziej szczegółowo

2.1. Duszek w labiryncie

2.1. Duszek w labiryncie https://app.wsipnet.pl/podreczniki/strona/38741 2.1. Duszek w labiryncie DOWIESZ SIĘ, JAK sterować duszkiem, stosować pętlę zawsze, wykorzystywać blok warunkowy jeżeli. Sterowanie żółwiem, duszkiem lub

Bardziej szczegółowo

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności

Bardziej szczegółowo

Ocena dobra. Ocena dostateczna. Uczeń: Uczeń: Uczeń: 1.1 Zapisywanie algorytmów na liczbach naturalnych

Ocena dobra. Ocena dostateczna. Uczeń: Uczeń: Uczeń: 1.1 Zapisywanie algorytmów na liczbach naturalnych Tytuł w podręczniku dopuszczająca dostateczna dobra bardzo dobra Celująca 1.1 Zapisywanie algorytmów na liczbach naturalnych w języku Scratch tworzy zmienne w języku Scratch. tworzy skrypty wykonujące

Bardziej szczegółowo

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 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

Bardziej szczegółowo

4. Plan wynikowy (kryteria edukacyjne)

4. Plan wynikowy (kryteria edukacyjne) 4. Plan wynikowy (kryteria edukacyjne) Tytuł w podręczniku 1.1 Zapisywanie algorytmów na liczbach naturalnych w języku Scratch 1.2. Algorytmy wyszukiwania i porządkowania Numer i temat lekcji 1-2. Algorytmy

Bardziej szczegółowo

Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej. Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1

Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej. Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1 Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1 Etapy rozwiązywania problemu PROBLEM wybór metody rozwiązania ALGORYTM 1.

Bardziej szczegółowo

Wymagania edukacyjne z informatyki kl. VIII

Wymagania edukacyjne z informatyki kl. VIII Wymagania edukacyjne z informatyki kl. VIII Tytuł w podręczniku Numer i temat lekcji Ocena dopuszczająca Ocena dostateczna Ocena dobra Ocena bardzo dobra Ocena celująca 1.1 Zapisywanie algorytmów na liczbach

Bardziej szczegółowo

WHILE (wyrażenie) instrukcja;

WHILE (wyrażenie) instrukcja; INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while

Bardziej szczegółowo

Wymagania na poszczególne oceny szkolne dla klasy VI. (na podstawie Grażyny Koba, Teraz bajty. Informatyka dla szkoły podstawowej.

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

Bardziej szczegółowo

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

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

Bardziej szczegółowo

Wymagania wykraczające (ocena celująca) Uczeń: 1. ALGORYTMIKA I PROGRAMOWANIE 1.1. Zapisywanie algorytmów na liczbach naturalnych w języku Scratch

Wymagania wykraczające (ocena celująca) Uczeń: 1. ALGORYTMIKA I PROGRAMOWANIE 1.1. Zapisywanie algorytmów na liczbach naturalnych w języku Scratch 4 Plan wynikowy zamieszczone w planie wynikowym zostały dostosowane do poszczególnych jednostek lekcyjnych i mają na celu ułatwienie planowania lekcji i oceniania uczniów. Są one propozycją, którą każdy

Bardziej szczegółowo

Temat 5. Programowanie w języku Logo

Temat 5. Programowanie w języku Logo Temat 5. Programowanie w języku Logo 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 sytuacji

Bardziej szczegółowo

Grażyna Koba, Poradnik metodyczny. Informatyka dla gimnazjum Program nauczania wymagania na oceny PRZEDMIOTOWY SYSTEM OCENIANIA KLASA II

Grażyna Koba, Poradnik metodyczny. Informatyka dla gimnazjum Program nauczania wymagania na oceny PRZEDMIOTOWY SYSTEM OCENIANIA KLASA II W rozporządzeniu MEN 1 określono, że Ocenianie osiągnięć edukacyjnych ucznia polega na rozpoznawaniu przez nauczycieli poziomu i postępów w opanowaniu przez ucznia wiadomości i umiejętności w stosunku

Bardziej szczegółowo

1. ALGORYTMIKA i PROGRAMOWANIE

1. ALGORYTMIKA i PROGRAMOWANIE Tytuł w podręczniku 1.1 Zapisywanie na liczbach naturalnych w języku Scratch 1.2. Algorytmy wyszukiwania i Numer i temat lekcji 1. Algorytmy sekwencyjne, i iteracyjne w języku Scratch 2. Realizacja algorytmu

Bardziej szczegółowo

KRYTERIUM OCENIANIA Z INFORMATYKI KL VIII

KRYTERIUM OCENIANIA Z INFORMATYKI KL VIII KRYTERIUM OCENIANIA Z INFORMATYKI KL VIII Tytuł w podręczniku 1.1 Zapisywanie na liczbach naturalnych w języku Scratch 1.2. Algorytmy wyszukiwania i Numer i temat lekcji 1. Algorytmy sekwencyjne, i iteracyjne

Bardziej szczegółowo

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.

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

Bardziej szczegółowo

Zestaw 1-1 Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.cpp)!!!

Zestaw 1-1 Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.cpp)!!! Zestaw 1-1 1. Napisz program pobierający od użytkownika liczbę całkowitą R (R>1) i liczbę rzeczywistą dodatnią S, a następnie informujący ile kolejnych liczb z ciągu 1, R-1, R 2-2, R 3-3, R 4-4, należy

Bardziej szczegółowo

Plan wynikowy dla klasy 8 szkoły podstawowej zgodny z podręcznikiem Lubię to!

Plan wynikowy dla klasy 8 szkoły podstawowej zgodny z podręcznikiem Lubię to! Plan wynikowy dla klasy 8 szkoły podstawowej zgodny z podręcznikiem Lubię to! Wymagania zamieszczone w planie wynikowym zostały dostosowane do poszczególnych jednostek lekcyjnych. Tytuł w podręczniku 1.1

Bardziej szczegółowo

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny ALGORYMY 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

Bardziej szczegółowo

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony. Iteracje Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony. Iteracja inaczej zwana jest pętlą i oznacza wielokrotne wykonywanie instrukcji. Iteracje

Bardziej szczegółowo

lekcja 8a Gry komputerowe MasterMind

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

Bardziej szczegółowo

Warsztaty dla nauczycieli

Warsztaty dla nauczycieli WPROWADZENIE Wyprowadzanie danych: Wyprowadzanie na ekran komunikatów i wyników umożliwia instrukcja wyjścia funkcja print(). Argumentami funkcji (podanymi w nawiasach) mogą być teksty, wyrażenia arytmetyczne

Bardziej szczegółowo

Wymagania podstawowe (ocena dostateczna) Uczeń: 1. ALGORYTMIKA i PROGRAMOWANIE. tworzy skrypty wykonujące działania matematyczne na zmiennych.

Wymagania podstawowe (ocena dostateczna) Uczeń: 1. ALGORYTMIKA i PROGRAMOWANIE. tworzy skrypty wykonujące działania matematyczne na zmiennych. Informatyka klasa VIII nowa podstawa programowa Wymagania na poszczególne oceny Wymagania na każdy stopień wyższy niż dopuszczający obejmują również wymagania na stopień poprzedni. Wymagania na ocenę celującą

Bardziej szczegółowo

if (wyrażenie ) instrukcja

if (wyrażenie ) instrukcja if (wyrażenie ) instrukcja Jeśli wartość wyrażenia jest różna od zera, to jest wykonywana instrukcja, jeśli wartość wyrażenia jest równa 0, to dana instrukcja nie jest wykonywana Wyrażenie testowe podajemy

Bardziej szczegółowo

Rozkład materiału do zajęć z informatyki. realizowanych według podręcznika

Rozkład materiału do zajęć z informatyki. realizowanych według podręcznika Rozkład materiału do zajęć z informatyki realizowanych według podręcznika E. Gurbiel, G. Hardt-Olejniczak, E. Kołczyk, H. Krupicka, M.M. Sysło Informatyka, nowe wydanie z 007 roku Poniżej przedstawiamy

Bardziej szczegółowo

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności

Bardziej szczegółowo

ZADANIE 1. Ważenie (14 pkt)

ZADANIE 1. Ważenie (14 pkt) ZADANIE 1. Ważenie (14 pkt) Danych jest n przedmiotów o niewielkich gabarytach i różnych wagach. Jest też do dyspozycji waga z dwiema szalkami, ale nie ma odważników. Kładąc na wadze przedmioty a i b,

Bardziej szczegółowo

Algorytmika i programowanie usystematyzowanie wiadomości

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

Bardziej szczegółowo

Witaj w klasie 8!... 5

Witaj w klasie 8!... 5 Spis treści Witaj w klasie 8!.......................................... 5 Rozdział 1. Rozumienie, analizowanie i rozwiązywanie problemów.... 7 Lekcja 1. Temat: Algorytmy wyszukiwania i porządkowania.....................

Bardziej szczegółowo

Kilka prostych programów

Kilka prostych programów Ćwiczenie 1 Kilka prostych programów Ćwiczenie to poświęcone jest tworzeniu krótkich programów, pozwalających na zapoznanie się z takimi elementami programowania jak: definiowanie stałych, deklarowanie

Bardziej szczegółowo

Zadania do samodzielnego rozwiązania

Zadania do samodzielnego rozwiązania Zadania do samodzielnego rozwiązania I. Podzielność liczb całkowitych 1. Pewna liczba sześciocyfrowa a kończy się cyfrą 5. Jeśli tę cyfrę przestawimy na miejsce pierwsze ze strony lewej, to otrzymamy nową

Bardziej szczegółowo

Plan wynikowy z informatyki klasa 8

Plan wynikowy z informatyki klasa 8 12 Plan wynikowy Plan wynikowy z informatyki klasa 8 Wymagania Wymagania Wymagania Wymagania 1. ALGORYTMIKA I PROGRAMOWANIE 1.1. Zapisywanie 1. Algorytmy tworzy zmienne w języku tworzy skrypty wykonujące

Bardziej szczegółowo

Algorytmy sortujące i wyszukujące

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.

Bardziej szczegółowo

Wymagania edukacyjne z informatyki w klasie 8 szkoły podstawowej

Wymagania edukacyjne z informatyki w klasie 8 szkoły podstawowej Wymagania edukacyjne z informatyki w klasie 8 szkoły podstawowej 1. W zakresie rozumienia, analizowania i rozwiązywania problemów uczeń: wyjaśnia, czym jest algorytm, wskazuje specyfikację problemu (dane,

Bardziej szczegółowo

Wymagania edukacyjne z informatyki w klasie 8 szkoły podstawowej

Wymagania edukacyjne z informatyki w klasie 8 szkoły podstawowej Wymagania edukacyjne z informatyki w klasie 8 szkoły podstawowej 1. W zakresie rozumienia, analizowania i rozwiązywania problemów uczeń: wyjaśnia, czym jest algorytm, wskazuje specyfikację problemu (dane,

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji. Temat: Technologia informacyjna a informatyka 1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji. Technologia informacyjna (ang.) Information Technology, IT jedna

Bardziej szczegółowo

Warunki logiczne instrukcja if

Warunki logiczne instrukcja if Warunki logiczne instrukcja if Prowadzący: Łukasz Dunaj, strona kółka: atinea.pl/kolko 1. Wejdź na stronę kółka, uruchom edytor i wpisz: use console; def test::main() { var y; y = 1; while (y

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE Z INFORMATYKI NA POSZCZEGÓLNE STOPNIE W KLASIE 6 opracowane na podstawie podręcznika:

WYMAGANIA EDUKACYJNE Z INFORMATYKI NA POSZCZEGÓLNE STOPNIE W KLASIE 6 opracowane na podstawie podręcznika: WYMAGANIA EDUKACYJNE Z INFORMATYKI NA POSZCZEGÓLNE STOPNIE W KLASIE 6 opracowane na podstawie podręcznika: Informatyka Europejczyka. Podręcznik do informatyki dla szkoły podstawowej. Klasa 6 Prowadząca:

Bardziej szczegółowo

PŁOCKA MIĘDZYSZKOLNA LIGA PRZEDMIOTOWA MATEMATYKA klasa V szkoła podstawowa 2012

PŁOCKA MIĘDZYSZKOLNA LIGA PRZEDMIOTOWA MATEMATYKA klasa V szkoła podstawowa 2012 PŁOCKA MIĘDZYSZKOLNA LIGA PRZEDMIOTOWA MATEMATYKA klasa V szkoła podstawowa 202 KARTA PUNKTACJI ZADAŃ (wypełnia komisja konkursowa): Numer zadania Zad. Zad. 2 Zad. 3 Poprawna odpowiedź Zad. 4 Zad. 5 Zad.

Bardziej szczegółowo

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

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

Bardziej szczegółowo

Opis założonych osiągnięć ucznia wymagania na poszczególne oceny szkolne dla klasy VIII. Opracowano w oparciu o pomoce naukowe Migra (

Opis założonych osiągnięć ucznia wymagania na poszczególne oceny szkolne dla klasy VIII. Opracowano w oparciu o pomoce naukowe Migra ( Opis założonych osiągnięć ucznia wymagania na poszczególne oceny szkolne dla klasy VIII Opracowano w oparciu o pomoce naukowe Migra (www.migra.pl) 1. Praca z dokumentem tekstowym 1.1. Rozwiązywanie problemów

Bardziej szczegółowo

Realizacja algorytmu z warunkiem czy Twój uczeń lubi programować? Grażyna Koba

Realizacja algorytmu z warunkiem czy Twój uczeń lubi programować? Grażyna Koba Realizacja algorytmu z warunkiem czy Twój uczeń lubi programować? Grażyna Koba Krok 1 i = 1 Jak zmotywować ucznia? START i = 1 m = 4 TAK Czy Twój uczeń lubi programować? (czy i = m?) NIE i + + Metoda [i]

Bardziej szczegółowo

Moneta 1 Moneta 2 Kostka O, R O,R 1,2,3,4,5, Moneta 1 Moneta 2 Kostka O O ( )

Moneta 1 Moneta 2 Kostka O, R O,R 1,2,3,4,5, Moneta 1 Moneta 2 Kostka O O ( ) Nowa matura kombinatoryka i rachunek prawdopodobieństwa Zadania zamknięte (0 1 pkt) 1. Doświadczenie losowe polega na rzucie dwiema symetrycznymi monetami i sześcienną kostką do gry. Prawdopodobieństwo

Bardziej szczegółowo

Plan wynikowy do realizacji informatyki w gimnazjum (cykl dwuletni, II rok nauczania) opracowany na podstawie podręcznika

Plan wynikowy do realizacji informatyki w gimnazjum (cykl dwuletni, II rok nauczania) opracowany na podstawie podręcznika Plan wynikowy do realizacji informatyki w gimnazjum (cykl dwuletni, II rok nauczania) opracowany na podstawie podręcznika Grażyna Koba, Informatyka dla gimnazjum, MIGRA, Wrocław 2014 1 DRUGI ROK NAUCZANIA

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst. Schematy blokowe I Jeżeli po schematach blokowych będzie używany język C, to należy używać operatorów: '&&', ' ', '!=', '%' natomiast jeśli Ruby to 'and', 'or', '%', '!='. 1. Dostępne bloki: a) początek:

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE. Informatyka Szkoła Podstawowa Klasa 4 NA ŚRÓDROCZNĄ I ROCZNĄ OCENĘ KLASYFIKACYJNĄ

WYMAGANIA EDUKACYJNE. Informatyka Szkoła Podstawowa Klasa 4 NA ŚRÓDROCZNĄ I ROCZNĄ OCENĘ KLASYFIKACYJNĄ WYMAGANIA EDUKACYJNE Informatyka Szkoła Podstawowa Klasa 4 NA ŚRÓDROCZNĄ I ROCZNĄ OCENĘ KLASYFIKACYJNĄ NA ŚRÓDROCZNĄ CELUJĄCA Uczeń otrzymuje ocenę celującą, jeżeli jego wiedza i umiejętności w pełni spełniają

Bardziej szczegółowo

do instrukcja while (wyrażenie);

do instrukcja while (wyrażenie); Instrukcje pętli -ćwiczenia Instrukcja while Pętla while (póki) powoduje powtarzanie zawartej w niej sekwencji instrukcji tak długo, jak długo zaczynające pętlę wyrażenie pozostaje prawdziwe. while ( wyrażenie

Bardziej szczegółowo

KARTA PRACY UCZNIA. Klasa II

KARTA PRACY UCZNIA. Klasa II Dobrze widzi się tylko sercem. Najważniejsze jest niewidoczne dla oczu. KARTA PRACY UCZNIA Klasa II Temat: Budowanie schematu blokowego realizującego prosty algorytm. Czynności: 1. Uruchom komputer, a

Bardziej szczegółowo

2. Graficzna prezentacja algorytmów

2. Graficzna prezentacja algorytmów 1. Uczeń: Uczeń: 2. Graficzna prezentacja algorytmów a. 1. Cele lekcji i. a) Wiadomości zna sposoby graficznego przedstawiania algorytmów, wie w jaki sposób skonstruować schemat blokowy w taki sposób aby

Bardziej szczegółowo

MATEMATYKA WYMAGANIA EDUKACYJNE DLA KLASY V

MATEMATYKA WYMAGANIA EDUKACYJNE DLA KLASY V MATEMATYKA WYMAGANIA EDUKACYJNE DLA KLASY V Na ocenę wyższą uczeń powinien opanować wiedzę i umiejętności na ocenę (oceny) niższą. Dział programowy: LICZBY NATURALNE podać przykład liczby naturalnej czytać

Bardziej szczegółowo

Temat 1. Więcej o opracowywaniu tekstu

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

Bardziej szczegółowo

Dydaktyka matematyki (II etap edukacyjny) II rok matematyki Semestr letni 2016/2017 Ćwiczenia nr 7

Dydaktyka matematyki (II etap edukacyjny) II rok matematyki Semestr letni 2016/2017 Ćwiczenia nr 7 Dydaktyka matematyki (II etap edukacyjny) II rok matematyki Semestr letni 2016/2017 Ćwiczenia nr 7 Zadanie domowe Zadanie domowe Liczby naturalne (Sztuka nauczania matematyki w szkole podstawowej i gimnazjum,

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Publikacja jest dystrybuowana bezpłatnie Program Operacyjny Kapitał Ludzki Priorytet 9 Działanie 9.1 Poddziałanie

Bardziej szczegółowo

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu: ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu: Rys1 Ćwiczenie 2 Podaj jaki ciąg znaków zostanie wypisany po wykonaniu

Bardziej szczegółowo

Edukacja wczesnoszkolna. Zadania. do rozwiązania KLASA1

Edukacja wczesnoszkolna. Zadania. do rozwiązania KLASA1 Edukacja wczesnoszkolna Zadania do rozwiązania KLASA1 Autor Andrzej Pustuła Ilustracje, rysunki Artur Gulewicz Projekt okładki Grzegorz Kozłowski Ilustracja na okładkę Piotr Socha Korekta Beata Pędziwilk

Bardziej szczegółowo

Przedmiotowy system oceniania

Przedmiotowy system oceniania Przedmiotowy system oceniania 1. Ogólne zasady oceniania uczniów 1. Ocenianie osiągnięć edukacyjnych ucznia polega na rozpoznawaniu przez nauczyciela postępów w opanowaniu przez ucznia wiadomości i umiejętności.

Bardziej szczegółowo

Przedmiotowy system oceniania z informatyki dla klasy ósmej szkoły podstawowej

Przedmiotowy system oceniania z informatyki dla klasy ósmej szkoły podstawowej Przedmiotowy system oceniania z informatyki dla klasy ósmej szkoły podstawowej Na podstawie podręcznika Lubię to 1 Ogólne zasady oceniania uczniów 1. Ocenianie osiągnięć edukacyjnych ucznia polega na rozpoznawaniu

Bardziej szczegółowo

Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania Zofia Kruczkiewicz Zakres Podstawowe algorytmy przetwarzania tablic (wypełnianie, porównywanie elementów,

Bardziej szczegółowo

Czy liczby pierwsze zdradzą swoje tajemnice? Czy liczby pierwsze zdradzą swoje tajemnice?

Czy liczby pierwsze zdradzą swoje tajemnice? Czy liczby pierwsze zdradzą swoje tajemnice? Czy liczby pierwsze zdradzą swoje tajemnice? Czy liczby pierwsze zdradzą swoje tajemnice? Wstęp Liczby pierwsze były tematem rozważań uczonych już od wieków. Pierwsze wzmianki na temat liczb pierwszych

Bardziej szczegółowo

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy

Bardziej szczegółowo

Dydaktyka matematyki (II etap edukacyjny) II rok matematyki Semestr letni 2018/2019 Ćwiczenia nr 7

Dydaktyka matematyki (II etap edukacyjny) II rok matematyki Semestr letni 2018/2019 Ćwiczenia nr 7 Dydaktyka matematyki (II etap edukacyjny) II rok matematyki Semestr letni 2018/2019 Ćwiczenia nr 7 Zadanie domowe 0 = 4 4 + 4 4, 2 = 4: 4 + 4: 4, 3 = 4 4: 4 4, 4 = 4 4 : 4 + 4, 6 = 4 + (4 + 4): 4, 7 =

Bardziej szczegółowo

Przedmiotowy system oceniania Informatyka kl 8

Przedmiotowy system oceniania Informatyka kl 8 Przedmiotowy system oceniania Informatyka kl 8 Przedmiotowy system oceniania (PSO) to podstawowe zasady wewnątrzszkolnego oceniania uczniów z danego przedmiotu. PSO powinien być zgodny z podstawą programową

Bardziej szczegółowo

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0, 2 Arytmetyka Niech b = d r d r 1 d 1 d 0 będzie zapisem liczby w systemie dwójkowym Zamiana zapisu liczby b na system dziesiętny odbywa się poprzez wykonanie dodawania d r 2 r + d r 1 2 r 1 d 1 2 1 + d

Bardziej szczegółowo

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

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

Bardziej szczegółowo

Przedmiotowy system oceniania z informatyki w klasach VII i VIII

Przedmiotowy system oceniania z informatyki w klasach VII i VIII Przedmiotowy system oceniania z informatyki w klasach VII i VIII 1. Założenia ogólne. w każdym semestrze uczeń może zgłosić dwa nieprzygotowania do zajęć lekcyjnych zeszyt ucznia jest przedmiotem oceniania

Bardziej szczegółowo

Przedmiotowy system oceniania - Informatyka klasa VIII. 1. Ogólne zasady oceniania uczniów

Przedmiotowy system oceniania - Informatyka klasa VIII. 1. Ogólne zasady oceniania uczniów Przedmiotowy system oceniania - Informatyka klasa VIII 1. Ogólne zasady oceniania uczniów 1. Ocenianie osiągnięć edukacyjnych ucznia polega na rozpoznawaniu przez nauczyciela postępów w opanowaniu przez

Bardziej szczegółowo

Konkursy w województwie podkarpackim w roku szkolnym 2013/2014

Konkursy w województwie podkarpackim w roku szkolnym 2013/2014 ... Pieczątka Organizatora... Tu wpisz swój Kod KONKURS PRZEDMIOTOWY Z INFORMATYKI DLA UCZNIÓW GIMNAZJUM ETAP WOJEWÓDZKI Drogi uczniu, Witaj na III etapie konkursu informatycznego. Przeczytaj uważnie instrukcję

Bardziej szczegółowo

Przedmiotowy system oceniania z informatyki w klasie 8

Przedmiotowy system oceniania z informatyki w klasie 8 Przedmiotowy system oceniania z informatyki w klasie 8 Przedmiotowy system oceniania (PSO) to podstawowe zasady wewnątrzszkolnego oceniania uczniów z danego przedmiotu. Powinien być zgodny z podstawą programową

Bardziej szczegółowo

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne 2 Algorytmy Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn

Bardziej szczegółowo

1. Ogólne zasady oceniania uczniów. 2. Zasady badania wyników nauczania

1. Ogólne zasady oceniania uczniów. 2. Zasady badania wyników nauczania Przedmiotowy system oceniania Przedmiotowy system oceniania (PSO) to podstawowe zasady wewnątrzszkolnego oceniania uczniów z danego przedmiotu. PSO powinien być zgodny z podstawą programową oraz wewnątrzszkolnym

Bardziej szczegółowo

START. Wprowadź (v, t) S:=v*t. Wyprowadź (S) KONIEC

START. Wprowadź (v, t) S:=v*t. Wyprowadź (S) KONIEC GRUPA I Co to jest algorytm, a czym jest program komputerowy? Algorytm: uporządkowany i uściślony sposób rozwiązywania problemu, zawierający szczegółowy opis wykonywanych czynności. Program komputerowy:

Bardziej szczegółowo