Polecenia BEGIN, END, WRITE, WRITELN

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

Download "Polecenia BEGIN, END, WRITE, WRITELN"

Transkrypt

1 Polecenia, END, WRITE, WRITELN Główna część programu (tzw. blok główny) mieści się w dwóch wyrazach. Początek programu zaznaczamy pisząc, koniec natomiast zaznaczamy słówkiem (koniecznie z kropką). Tak więc program, który nic nie robi, wygląda tak: Program się otwiera słówkiem i kończy słówkiem Taki program jest oczywiście całkowicie bezużyteczny. W takim razie trzeba go trochę wzbogacić. Zacznijmy od polecenia WRITE. Rozkazuje ono napisanie jakiegoś tekstu. Przykład tekstu wygląda tak: WRITE('Jakiś tekst niezbyt mądry'); Znasz już zatem polecenie WRITE. Na co należało by zwrócić uwagę? Między innymi na to, że tekst jak sami pewnie zauważyliście objęty jest w cudzysłowie (pojedyncze) i dodatkowo w nawiasy. Nawiasy zawsze będą istnieć przy poleceniu WRITE. Wszystko zostanie napisane co jest w nawiasie. W takim razie, po co jest cudzysłów? No więc, chodzi o to, że to co jest objęte w cudzysłowie zostanie na pewno wyświetlone na ekranie tak jak zostało to napisane. Dziwnie to brzmi, ale zobaczycie później. Komputer interpretuje to po prostu jako tekst i jeżeli chcemy coś zapisać, to zawsze w cudzysłów. I jeszcze jedno. Na końcu (za nawiasem) widnieje średnik. Zawsze trzeba go stosować na końcu polecenia. Inaczej program wskaże błędy. Potem się dowiesz, przy jakich poleceniach nie trzeba go stosować (między innymi przy poznanych już i END). OK. A teraz mała sztuczka, która pokaże wam dwa istotne fakty. Spójrzcie na poniższy program: write('wyraz numer 1'); write('wyraz numer 2'); write('wyraz numer 3); Widzimy tu program, który kolejno wypisze wyrazy. Po pierwsze - spróbujcie włączyć ten program. Na pewno zastanawiacie się, czemu nic się nie pokazało. To normalne. Komputer jest tak szybki, że zdążył pokazać te wyrazy i poleceniem END zamknął program. Zatem tak naprawdę, program zadziałał prawidłowo, ale my tego nie zauważyliśmy. Aby zobaczyć, co też komputer napisał musimy jakoś przerobić w/w kod, aby program zatrzymał się tuż przed jego końcem. Do tego służy polecenie READLN. Zastosowanie tego zostawmy sobie na później. Jak na razie będziemy stosować to tylko po to, abyśmy zobaczyli to co napisaliśmy. Tzn. zatrzymali program, aż do naciśnięcia jakiegoś klawisza. Zatem nasz program będzie wyglądał tak: write('wyraz numer 1'); write('wyraz numer 2'); write('wyraz numer 3'); I jak? Działa? Jak nie to coś pochrzaniłeś. Program powinien wyświetlić takie coś: "wyraz numer 1wyraz numer 2"...i tak dalej Zastanawiasz się pewnie dlaczego tak beznadziejnie to wygląda. Jest tak dlatego, że samo polecenie WRITE rozkazuje komputerowi napisać coś, a potem tak to zostawić. Następny zatem napis będzie zaraz po poprzednim, bez rozkazu zejścia niżej. W takim razie, powyższy program tak samo działa jak poniższy: write('wyraz numer 1wyraz numer 2wyraz numer3'); Porównajcie sobie dwa powyższe programy, a zobaczycie o co chodzi. Teraz zajmijmy się czymś bardziej skomplikowanym. Załóżmy, że chcemy, aby program obliczył proste dodawanie. Spróbujcie zrobić eksperyment i napiszcie poniższy program: write('2+3'); 1

2 I co się pokazało? Zamiast żądanego wyniku "5" na pewno napis "2+3", czyż nie? Zadziałało się tak dlatego, gdyż napisane było to w cudzysłowie. Komputer więc nie zwrócił uwagi, że jest to polecenie matematyczne. Po prostu napisał, to co mu kazałeś. Aby komputer wyświetlił napis "5" można albo po prostu napisać write('5'); lub coś takiego: write(2+3);. Czym się to różni? Tym, że nie ma tu cudzysłowu. Teraz już możecie śmiało wyliczać skomplikowane rzeczy. A teraz nieco z innej parafii. Jak zrobić, aby tekst schodził akapit niżej? Nic trudniejszego. Wystarczy użyć polecenia WRITELN. Używa się go tak jak polecenia WRITE. Różni się tylko tym, że schodzi na końcu o jeden wers w dół. Poprawnie napisany program i przejrzyście wyglądający ma postać taką: writeln; writeln; writeln; write('2+3='); write(2+3); Polecenie WRITELN; każe po prostu zejść linię niżej bez jakiegokolwiek tekstu. Następnie komputer napisze "2+3", po czym obliczy, że 2+3 jest 5 i napisze właśnie tą liczbę. Całość wyglądać będzie następująco: "2+3=5". Czyż PASCAL nie jest wspaniały? Kolejna sprawa to, oddzielenia. Do w/w polecenia, gdzie komputer ma wyliczyć, ile jest 2+3, nie musimy używać aż dwóch poleceń WRITE. Wystarczy jedno polecenie, a teksty te należy oddzielić przecinkiem. Zatem poniższe trzy programy, działają tak samo. Przyjrzyjcie się im: write('2+3='); write(2+3); write('2+3=',2+3); 2 write('2+3=5'); Programy te wykonują to samo chociaż ich kod jest inny. Sposobów na wykonanie tak prostego działania jest wiele. Spróbuj sam wynaleźć inny sposób. Zwróćcie uwagę na środkowy program. Został tam użyty przecinek. Można go bez problemu używać. Spójrzcie jak wygląda program bez używania przecinku i po jego użyciu: write(' tekst jakiś '); write(9-2); write(' drugi tekst '); write('10'); Był to prosty program, który wyświetli coś takiego: "tekst jakiś 7 drugi tekst 10". Spójrzcie na powyższy program i porównajcie go z programem poniżej: write(' tekst jakiś ',9-2,' drugi tekst 10'); Czyż nie jest prościej? Na tym właśnie polega stosowanie przecinka. I to byłby koniec tej lekcji. Zapraszam do następnej części. Polecenia READ, READLN, podstawy zmiennych Na poprzedniej lekcji dowiedziałeś się, że program mieści się w znacznikach i Dowiedziałeś się również, że TP można zmusić, aby coś napisał. Na tej lekcji postaramy się go zmusić, aby coś odczytał. Załóżmy, że chcemy, aby komputer wprowadził do pamięci jakieś imię. Chcemy zrobić program, który zapyta jak mamy na imię, po czym wyświetli nam napis: "Cześć (i tu imię). Miłego dnia!!!". Umiesz już napisać taki tekst, ale jak zrobić, żeby komputer wstawił do tekstu imię. Ponadto najpierw trzeba o to imię zapytać, a dopiero potem wstawić. Do tego służą tzw. zmienne. Zmienne możemy oznaczać dowolną literą lub wyrazem. Załóżmy, że zmienną, która będzie reprezentować imię użytkownika, nazwiemy po prostu "imie" (bez polskich liter). W TURBO PASCALU każdą zmienną musimy najpierw zdeklarować zanim jej użyjemy. Zmienne deklarujemy poleceniem "" i robimy to jeszcze przed programem (przed poleceniem

3 ). Po słowie "" wypisujemy wszystkie zmienne. W naszym programie będzie tylko jedna zmienna o nazwie "imie". Po jej napisaniu trzeba jeszcze przypisać jej typ. Na razie poznasz tylko podstawowe typy zmiennych. Jak każdy wie, imię człowieka składa się z liter, więc jest to zwykły ciąg liter. Zmienna nasza będzie zatem typu STRING. Zapamiętajcie tę nazwę. Program, który zadeklaruje zmienną będzie więc wyglądał tak: imie:string; Mamy więc program, który deklaruje zmienną typu STRING (czyli ciąg znaków). Teraz (w głównym bloku programu między i END) musimy coś napisać, aby komputer spytał użytkownika jak ma na imię. Nic prostszego: imie:string; write('jak masz na imię?'); Już jesteśmy o krok dalej. Teraz musimy jakoś zatrzymać program, aby gość siedzący przed komputerem mógł napisać jak ma na imię i nacisnąć ENTER. Nic prostego. Do tego służy polecenie READ. Więc wstawmy to polecenia do naszego programu: imie:string; write('jak masz na imię?'); read(imie); Zwróćcie uwagę na konstrukcję READ. W nawiasie podajemy zmienną, do której ma być zapisana wartość z klawiatury. To znaczy, że to, co użytkownik napisze będzie liczone jako zmienna "imie". Do polecenia w nawiasie nie stosujemy cudzysłowu i pamiętamy, żeby na końcu postawić średnik. Kolejnym krokiem będzie wykombinowanie, aby program napisał ładne powitanie z imieniem. Robimy to następująco: imie:string; write('jak masz na imię?'); read(imie); write('witaj '); write(imie); write('. Życzę miłego dnia!!!'); No to po kolei. Jak już zauważyłeś aby wyświetlić zmienną wystarczy użyć zwykłego polecenia WRITE podając w nawiasie nazwę zmiennej (bez cudzysłowu). Zwróć uwagę na linię "write('. Życzę miłego dnia!!!');" Kropka przed zdaniem jest po to, aby zdanie zakończyło się po imieniu. Jest to zabieg stylistyczny i nie służy do niczego specjalnego. Wszystko razem po włączeniu powinno wyglądać tak: "Witaj Zenek. Życzę miłego dnia!!!". Już wiesz po co ta kropka? Użytkownik nie wprowadzi jej przecież, a komputer nie zna naszego języka. Spróbuj bez kropki, a zobaczysz, co to znaczy estetyka programu. Ale jest to na szczęście niezbyt duży problem. A teraz jeszcze przeróbmy nasz kod programu, aby wyglądał on ładniej i miej miejsca zajmował. Tak, więc dobry kod programu wyglądałby tak: imie:string; 3

4 writeln; writeln('jak masz na imię?'); writeln; read(imie); write('witaj ',imie,'. Życzę miłego dnia!!!'); W powyższym programie dodatkowo zostało dopisane zamiast WRITE, polecenie WRITELN, gdyż trzeba zauważyć, że nawet pytanie "Jak masz na imię?" musi ładnie wyglądać. Oprócz tego polecenia WRITELN; działają jak separator i nie pozwalają wszystkiego wyświetlić w jednej linii. Pokombinujcie z tymi poleceniami a zobaczycie, na czym to polega. Teraz spróbujmy wzbogacić nasz program. Załóżmy, że użytkownik wpisze jako swoje imię jakieś bzdety (na przykład 150 liter). Program zadziała, ale pomyślcie jak będzie to wyglądać. Trzeba, więc dać ograniczenie, aby użytkownik nie mógł wprowadzić zbyt wielu liter. Nie jest to specjalnie trudne. Wystarczy do typu zmiennej przypisać coś takiego: imie:string[10]; writeln; writeln('jak masz na imię?'); writeln; read(imie); write('witaj ',imie,'. Życzę miłego dnia!!!'); Jak się pewnie już domyśliłeś, zmienna ta będzie ograniczona do dziesięciu liter. Użytkownik będzie mógł wprowadzić więcej liter, ale wyświetlone zostanie tylko dziesięć. A teraz zajmijmy się liczbami. Zbudujmy prosty kalkulator, który będzie dodawał do siebie dwie liczby. Program najpierw spyta, jakie mają to być liczby, a potem je doda. Sama zasada jest podobna jak w przykładach powyżej, z tym, że zmienna będzie innego typu. Poza tym będziemy potrzebować nie jednej a dwóch zmiennych. Użytkownik przecież ma wprowadzić dwie liczby. Istnieją różne typy zmiennych oznaczające liczby. Dla początkujących użyjemy zmiennej typu LONGINT. Nie będę tłumaczył na czym ona polega, ale powiem, że mieści w sobie liczby od kilku miliardów albo nawet i więcej do minus kilku miliardów albo i nawet mniej :))) Powinna więc zadowolić każdego. Dodam jeszcze, że zapamiętuje tylko liczby całkowite, więc ułamki zostawmy sobie, na kiedy indziej. Zatem zacznijmy robić program. Poniżej znajduje się kod, który bez problemu powinieneś rozumieć: liczba1:longint; liczba2:longint; writeln; writeln('podaj pierwszą liczbę'); read(liczba1); writeln('podaj drugą liczbę'); read(liczba2); write('ich suma wynosi: ',liczba1+liczba2); Zrozumiałe? Jeżeli nie to nie wiem coś ty za jeden. Oczywiście liczby można nie tylko dodawać, ale i dzielić, odejmować, mnożyć, podnosić do kwadratu itp. ale o tym w innej części kursu. Zaraz pod słówkiem "" widzimy dwie zmienne: liczba1 i liczba2. Oba są typu LONGINT, czyli tego samego typu. Po co więc pisać dwa razy tą samą rzecz. Poprawiony program będzie więc wyglądał tak: 4

5 liczba1,liczba2:longint; writeln; writeln('podaj pierwszą liczbę'); read(liczba1); writeln('podaj drugą liczbę'); read(liczba2); write('ich suma wynosi: ',liczba1+liczba2); Widzicie jakie to proste? Zatem zmienne tego samego typu można w ten właśnie sposób oddzielić przecinkami (bez spacji). Niby to nic takiego, ale wyobraźcie sobie, że mamy 50 takich zmiennych. Zamiast do wszystkich dopisywać typ, wystarczy wypisać je po przecinku. Teraz poznamy jeszcze jedną sztuczkę. Załóżmy, że chcemy, aby jakaś zmienna miała już jakąś wartość. Na przykład do powyższego programu. Niech użytkownik nie wprowadza żadnej liczby, a program ma już zapisane w sobie ich wartości. Do tego służy instrukcja przypisania. Stosuje ją się bardzo prosto. Np. liczba1:=71; W ten sposób przypisaliśmy liczbę 71 do zmiennej "liczba1". Zwróćcie uwagę na znak przypisania. Jest to dwukropek i znak równości. Po tym wszystkim znajduje się oczywiście średnik. Zatem poniższy program nie zrobi nic innego, jak napisze liczbę 10: liczba1,liczba2:longint; liczba1:=2; liczba2:=8; write(liczba1+liczba2); Mam nadzieję, że wszyscy rozumieją, o co chodzi! Teraz nieco skomplikuję sprawę. Załóżmy, że chcemy, aby jedna zmienna była zależna od drugiej. Zróbmy pogram, który pyta użytkownika o jakąś liczbę i wyświetla ją pomnożoną przez 2. Można to zrobić w różny sposób. Spójrzcie na poniższy program. Jest to jeden ze sposobów. liczba:longint; writeln; writeln('podaj jakąś liczbę'); read(liczba); write('liczba ta pomnożona przez 2 wynosi ',liczba*2); Był to prosty sposób na pokazanie mnożenia (dokonujemy gwiazdką jakby co). Użytkownik wprowadził jakąś liczbę, a program ją wyświetlił, ale pomnożoną przez 2. A teraz spójrzcie na poniższy przykład. Działa on tak samo jak poprzedni, z tym, że jest inaczej zbudowany: liczba,iloczyn:longint; writeln; writeln('podaj jakąś liczbę'); read(liczba); iloczyn:=liczba*2; write('liczba ta pomnożona przez 2 wynosi ',iloczyn); 5

6 Był to nic innego jak przykład, że instrukcje przypisania można stosować nie tylko do liczb, ale i innych zmiennych, co daje nam już bardzo duże możliwości. Można przecież wykonać takie instrukcje przypisania jak: "liczba:=iloczyn*(iloczyn-1)-24" itp. O tym wszystkim dowiecie się później. Na razie najważniejsze jest, że wiecie, co to jest instrukcja przypisania i jak z niej korzystać. Teraz została jeszcze jedna sprawa. Jak przypisać do zmiennej typu STRING zwykły tekst. Nie jest to trudne. Wystarczy zastosować instrukcję przypisania, a samą wartość podać w cudzysłowie. Np: imie:='franek'; Na koniec do omówienia zostało jeszcze polecenie READLN. Oprócz tego, że używamy READLN jak dotąd do przerywania programu, służy innym celom. Cele te jednak wykraczają jak na razie w wasz zakres wiedzy, więc może innym razem. Zapraszam więc do następnej części kursu. Podstawowe polecenia modułu CRT Wypadałoby tu zacząć od wyjaśnienia słowa "moduł". Otóż w Pascalu jest pełno poleceń, a wszystkie one nie są zasługą samego Pascala. Czasami do Pascala trzeba dorzucić jakiś moduł, aby one zadziałamy. Moduł CRT jest już w Pascalu wbudowany. Jest często stosowany w najróżniejszych programach i myślę, że ma użyteczne funkcję. Wszystkie moduły (nie tylko CRT) trzeba najpierw zdeklarować zanim się ich użyje, (czyli zanim użyje się ich poleceń). Zmienne deklarowaliśmy poleceniem "", natomiast moduły deklarować będziemy za pomocą słówka "USES". Wpisujemy to jeszcze przed "" na samym początku programu. Sam moduł tak właściwie niczym nie jest - daje tylko możliwość stosowania kilku nowych poleceń. Właśnie te kilka poleceń poznasz na tej lekcji. Zatem, najprostszy program, który ma moduł CRT, wygląda tak: W ten właśnie sposób deklarujemy moduł CRT. Zwróć uwagę, że po słówku "USES" nie ma żadnego znaku. Na końcu linii pamiętamy oczywiście o średniku. Tak zdeklarowany moduł możemy wykorzystać. Najważniejsze z jego poleceń to: 1. CLRSCR; To skomplikowane polecenie jest dość użyteczne. Po prostu czyści ekran z jakiegokolwiek tekstu. Każdy tekst znajdujący się po tym poleceniu będzie wyświetlany na czystym ekranie (żadnych innych rzeczy tam nie będzie jak dotychczas). Spróbuj napisać następujące programy i zobacz sam różnice: write('jakiś tekst'); write('jakiś tekst'); Najpierw spróbuj włączyć pierwszy program, a potem drugi. Widzisz różnice? 6

7 2. DELAY(x); Polecenie to daje możliwość wstrzymania programu na określoną ilość czasu (przydaje się zwłaszcza w programach demonstracyjnych). Za "x" wstawiamy czas, na jaki program ma być wstrzymany (1000 to jedna sekunda). Przykład programu z zastosowaniem polecenia DELAY znajduje się poniżej: write('jakiś tekst numer 1'); delay(3500); write('jakiś tekst numer 2'); Powyższy program napisze pierwsze zdanie i po upływie trzech i pół sekundy - drugie zdanie. Nie jest to chyba zbyt skomplikowane. 3. SOUND(x); Przyszedł najwyższy czas, aby zademonstrować dźwięk. Nie będzie to dźwięk wydawany z głośników, a z tegoż urządzona, co się znajduje w środku komputera. Za "x" wstawiamy tzw. częstotliwość, tak samo jak w przypadku "DELAY". Samo polecenie "SOUND" nam nic nie da, gdyż komputer szybko odegra ten dźwięk i pojedzie dalej. Zaraz po poleceniu "SOUND" najlepiej stosować polecenie "DELAY", które zatrzyma dźwięk na określoną ilość czasu. W ten sposób możemy już grać proste melodyjki. Z osobistych doświadczeń wiem, że niektórzy nie wytrzymują dźwięku o częstotliwości Radzę popróbować. Ale najpierw przeczytajcie jeszcze poniższe polecenie. 4. NOSOUND; Służy do przerywania jakiegokolwiek dźwięku wydobywającego się ze spikera. Na końcu programu radzę to stosować, bo może okazać się, że dźwięk nie ustanie. W celu przećwiczenia tych funkcji radzę napisać następujący program: sound(2200); delay(5000); nosound; Program ten przez pięć sekund da nam bardzo denerwujący dźwięk. 5. GOTOxy(współrzędne); Załóżmy, że chcemy aby nasz tekst zaczynał się mniej więcej w środku ekranu. Stosowanie pięćdziesiąt razy polecenia "WRITELN;" a potem odmierzenie ilości spacji byłoby nieco niewygodne. Dlatego właśnie 7

8 powstało polecenie "GOTOxy". Polecenie to rozkazuje przejście kursora do danej pozycji. Aby wszystko ładnie wyglądało, warto by było przedtem użyć "CLRSCR". Po poleceniu "GOTOxy" podajemy w nawiasach współrzędne. Pierwsza współrzędna jest odległością w poziomie (ilość kratek od lewej strony ekranu), druga zaś jest odległością w pionie (ilość kratek od górnej części ekranu). Możemy, więc napisać poniższy program. gotoxy(30,15); write('jakiś tekst'); Powyższy tekst zaczynać się będzie w trzydziestej kolumnie i piętnastym wierszu. A teraz spróbujcie użyć ten sam program, ale bez polecenia "CLRSCR", a zobaczycie jak beznadziejnie będzie on wyglądał. 6. HALT; W zasadzie, to polecenie "HALT" nie jest w składzie modułu CRT, i działa również bez niego, jednak chciałem go teraz opisać. Nie będzie to zbyt zawiłe, gdyż polecenie to robi nic innego, jak wychodzi z programu. Jak tylko program napotka to polecenie na swojej drodze, od razu przerywa program i natychmiast z niego wychodzi. Nie muszę chyba więcej wyjaśniać. Jest oczywiście jeszcze wiele innych poleceń ze składni modułu CRT, ale staram się, aby wszystkie te polecenia były przyswajane powoli. Na razie powinieneś poćwiczyć z tym, co już umiesz. Dam ci małe zadanie domowe. Zrób program, który napisze najpierw kilka zdań, potem obliczy iloczyn dowolnych dwóch liczb wprowadzanych przez użytkownika, a na końcu wyświetli na środku ekranu napis "DOWIDZENIA!!!" przez pięć sekund. Niezłe zadanko, co? Ty już to umiesz!!! Instrukcja warunkowa IF..THEN..ELSE oraz operatory Mam nadzieję, że ukończyłeś już lekturę wszystkich poprzednich części kursu zanim zabrałeś się za bieżący. Wkraczamy, bowiem w coraz to bardziej trudne progi i niestety twoja koncentracja będzie musiała się bardziej wysilić. Ale dosyć już tego klepania, czas zaczynać. Załóżmy, że chcemy stworzyć program, który będzie pytał użytkownika o jakąś liczbę. Jest to oczywiście dla ciebie bułka z masłem, ale spróbujmy ten program rozbudować. Program ma pokazywać, czy liczba, którą wprowadził użytkownik jest większa od stu, mniejsza lub równa. Załóżmy, że użytkownik wprowadza liczbę 230. Program ma napisać, że liczba jest większa od stu. Jak użytkownik wprowadzi np. liczbę 17, to program ma napisać, że liczba jest mniejsza od stu. No i wreszcie, jak użytkownik wprowadzi 100, program napisze, że liczba, którą wprowadził użytkownik jest równa 100. Do tych zadań użyjemy jeszcze ci nieznanej instrukcji warunkowej. Zanim jednak się nią zajmiemy, napiszmy część programu, który może wyglądać tak: liczba:longint; writeln('wprowadź jakąś liczbę'); read(liczba); 8

9 Powyższy program nie powinien was dziwić - powinniście już go rozumieć. Teraz trzeba coś zrobić, aby program wykonał jedną z trzech opcji. Ma napisać, że liczba jest większa od stu albo mniejsza od stu albo równa. No to zaczynajmy. Zajmijmy się najpierw przypadkiem, gdzie liczba jest równa 100. Program będzie więc wyglądał tak: liczba:longint; writeln('wprowadź jakąś liczbę'); read(liczba); IF liczba=100 THEN writeln('podałeś liczbę równą 100'); A teraz wyjaśnienie. Po słowie "IF" znajduje się zawsze warunek. W tym wypadku warunkiem jest przyrównanie liczby do stu. Jeżeli liczba jest równa 100, to program wykonuje to, co znajduje się po słowie "THEN". Jeżeli program stwierdzi, że nie jest to liczba 100, omija ten warunek całkowicie go ignorując. Rozumiecie? Teraz trzeba jeszcze przewidzieć dwa inne przypadki. Ktoś przecież może napisać liczbę mniejszą do sto albo większą. Cały program będzie więc wyglądał tak: liczba:longint; writeln('wprowadź jakąś liczbę'); read(liczba); IF liczba=100 THEN writeln('podałeś liczbę równą 100'); IF liczba>100 THEN writeln('podałeś liczbę większą od 100'); IF liczba<100 THEN writeln('podałeś liczbę mniejszą od 100');> W ten prosty sposób rozważyliśmy wszystkie możliwe przypadki. Logiczne jest że zawsze wystąpi jeden z tych trzech przypadków (bo każda liczba jest albo równa 100 albo mniejsza albo większa - innej możliwości nie ma). Logiczne także jest, że nie mogą się włączyć np. dwa warunki na raz. Przecież nie istnieje taka liczba, co by np. była jednocześnie większa od stu i mniejsza. Mam nadzieję, że to rozumiecie. Jak dotąd poznaliście trzy podstawowe operatory (równe, większe i mniejsze). Wszystkie podstawowe zebrane są poniżej: = równe > większe niż < mniejsze niż >= większe lub równe <= mniejsze lub równe <> różne I wszystko jasne. A teraz kolej na następny "kwiatek" w TURBO PASCALU. Załóżmy, że chcemy zrobić instrukcję warunkową, co by sprawdzała, czy liczba, którą podał użytkownik równa jest Inne 9

10 przypadki nas nie interesują, i gdy liczba nie jest równa tysiąc, następuje koniec programu. Można to zrobić metodą znaną, czyli tak: liczba:longint; writeln('wprowadź jakąś liczbę'); read(liczba); IF liczba=1000 THEN writeln('brawo! Podałeś liczbę tysiąc!'); IF liczba>1000 THEN halt; IF liczba<1000 THEN halt;> Widzimy bardzo prosty program, który zaraz się kończy, gdy liczba, którą wprowadził użytkownik nie jest równa Są tam zastosowane dwie dodatkowe instrukcje,(gdy jest większa od 1000 lub mniejsza). Można to zrobić jeszcze inaczej: liczba:longint; writeln('wprowadź jakąś liczbę'); read(liczba); IF liczba=1000 THEN writeln('brawo! Podałeś liczbę tysiąc!'); IF liczba<>1000 THEN halt; Teraz program sprawdza, czy liczba jest różna od tysiąc a nie czy jest większa czy mniejsza. W sumie na jedno wychodzi, ale kod programu mniej zajmuje. Teraz poznasz trzeci sposób na wykonanie takiego programu. Służy do tego polecenie, "ELSE", który patrzy, czy użytkownik wprowadził inną liczbą niż przewidzianą. Spójrzcie na poniższy program: liczba:longint; writeln('wprowadź jakąś liczbę'); read(liczba); IF liczba=1000 THEN writeln('brawo! Podałeś liczbę tysiąc!') ELSE halt; Polecenie ELSE zadziała, jeżeli użytkownik wprowadził liczbę, która nie była przewidziana przez wcześniejsze polecenie lub polecenia "IF". Zwróćcie uwagę na bardzo ważny szczegół. PRZED 10

11 POLECENIEM ELSE NIE MA ŚREDNIKA. Jest to bardzo ważne i nawet dobrzy programiści o tym czasami zapominają. Zastosowanie "ELSE" lepiej ukazuje ten program: liczba:longint; writeln('wprowadź jakąś liczbę od 1 do 5'); read(liczba); IF liczba=1 THEN writeln('brawo! Podałeś liczbę 1'); IF liczba=2 THEN writeln('brawo! Podałeś liczbę 2'); IF liczba=3 THEN writeln('brawo! Podałeś liczbę 3') ELSE writeln('na pewno nie podałeś liczby 1, 2 lub 3'); Przypominam jeszcze raz na brak średnika przed "ELSE" co doskonale ukazuje powyższy program. Teraz, gdy już znasz instrukcję warunkową, można przejść do bardziej skomplikowanych poleceń. Załóżmy, że program ma pytać użytkownika o dwie liczby. Najpierw program każe podać pierwszą liczbę. Potem program każe podać liczbę, która podzielona przez dwa daje liczbę pierwszą (czyli pierwsza liczba pomnożona przez dwa daje liczbę drugą). Będzie to takie zadanie dla użytkownika. Do tego musimy zastosować trochę bardziej skomplikowane obliczenia. Może tym razem od razu pokaże wam jak będzie wyglądał cały program (wierze w waszą inteligencję). liczba1,liczba2:longint; writeln('wprowadź jakąś liczbę'); read(liczba1); writeln('a teraz podaj ile to jest: pierwsza liczba pomnożona przez dwa?'); read(liczba2); IF liczba1*2=liczba2 THEN writeln('brawo! Umiesz mnożyć!!!'); IF liczba1*2<>liczba2 THEN writeln('co ty? Mnożyć nie umiesz?'); W programie tym zastosowaliśmy trochę matematyki. Program sprawdza, czy pierwsza liczba pomnożona przez dwa równa się liczbie drugiej. Jeżeli tak to program wypisuje odpowiedni tekst. Jeżeli nie to ochrzania użytkownika o nieumiejętność mnożenia. Niezłe co nie? Przyszła kolej na następną ważną rzecz. Jak pewnie zauważyłeś, wszystkie poprzednie programy z instrukcją warunkową wykorzystywały tylko jedno polecenie po słówku "THEN". A co jeśli trzeba wykonać kilka rzeczy, jeżeli dany warunek zostanie spełniony. Niech na przykład użytkownik wprowadzi jakąś liczbę. Program ma się wyłączyć, jeżeli ta liczba jest większa od 50. Jeżeli liczba jest mniejsza, to program ma napisać coś i zagrać melodię. Widzimy, że program wykonać ma dwa polecenie. Nie można tego zrobić tak: 11

12 liczba:longint; writeln('wprowadź jakąś liczbę'); read(liczba); IF liczba>50 THEN halt; IF liczba<=50 THEN writeln('brawo! Liczba jest mniejsza lub równa 50'); sound(2200); delay(3000); Jeżeli program ma grać, gdy liczba jest mniejsza lub równa 50, to powyższy program jest BŁĘDNY. Program nie wie, czy polecenie "SOUND" i następne należą do instrukcji warunkowej, czy są po prostu dalej. Prawidłowy program wyglądać będzie tak: liczba:longint; writeln('wprowadź jakąś liczbę'); read(liczba); IF liczba>50 THEN halt; IF liczba<=50 THEN writeln('brawo! Liczba jest mniejsza lub równa 50'); sound(2200); delay(3000); END; W w/w programie, polecenia, które mają być wykonane gdy warunek zostanie spełniony są objęte w dodatkowe bloki, czyli między słówka "" i "END;" (koniecznie END ze średnikiem). Przy bardziej skomplikowanych poleceniach trzeba uważać by się nie pogubić w tych wszystkich słówkach. Trzeba pamiętać, że każde "" trzeba zamknąć "END". Zatem ilość słówek "" jest równa ilości słówek "END". Widzicie, jakie to proste. Żeby jeszcze wam ułatwić sprawę, pokaże wam coś takiego jak wcięcia. Nie są to żadne polecenia, a sposób pisania programu, aby się w nim nie pogubić. Porównajcie powyższy program z poniższym. liczba:longint; writeln('wprowadź jakąś liczbę'); read(liczba); IF liczba>50 THEN halt; IF liczba<=50 THEN writeln('brawo! Liczba jest mniejsza lub równa 50'); sound(2200); delay(3000); 12

13 END; Osobiście radzę stosować wcięcia, gdyż nie macie nawet pojęcia jak może to ułatwić tworzenie programu. Kiedy już przebrnęliśmy przez podstawowe wieści, czas wreszcie zająć się "prawdziwymi" operatorami. Służą one do grupowania warunków. Załóżmy, że użytkownik ma wprowadzić liczbę od 1 do 10. Program ma pokazać, czy liczba, którą wprowadził użytkownik jest parzysta czy nie. Parzyste liczby z tego przedziału to 2, 4, 6, 8 i 10. Nieparzyste to: 1, 3, 5, 7, 9. Gdybyśmy liczyli na piechotę, program wyglądałby tak: liczba:longint writeln('wprowadź jakąś liczbę od 1 do 10'); read(liczba); IF liczba=2 THEN writeln('wprowdziłeś liczbę pażystą'); IF liczba=4 THEN writeln('wprowdziłeś liczbę pażystą'); IF liczba=6 THEN writeln('wprowdziłeś liczbę pażystą'); IF liczba=8 THEN writeln('wprowdziłeś liczbę pażystą'); IF liczba=10 THEN writeln('wprowdziłeś liczbę pażystą'); IF liczba=1 THEN writeln('wprowdziłeś liczbę niepażystą'); IF liczba=3 THEN writeln('wprowdziłeś liczbę niepażystą'); IF liczba=5 THEN writeln('wprowdziłeś liczbę niepażystą'); IF liczba=7 THEN writeln('wprowdziłeś liczbę niepażystą'); IF liczba=9 THEN writeln('wprowdziłeś liczbę niepażystą'); Trochę kosmicznie to wygląda, ale jest zrozumiałe. Program można by skrócić za pomocą operatorów. Pierwszym, jaki poznasz jest operator "OR" (alternatywa). Odpowiada polskiemu wyrazowi "lub". Doskonale nadaje się do tego programu. Spójrz na poniższy kod: liczba:longint writeln('wprowadź jakąś liczbę od 1 do 10'); read(liczba); IF (liczba=2) OR (liczba=4) OR (liczba=6) OR (liczba=8) OR (liczba=10) THEN writeln('wprowdziłeś liczbę pażystą'); IF (liczba=1) OR (liczba=3) OR (liczba=5) OR (liczba=7) OR (liczba=9) THEN writeln('wprowdziłeś liczbę niepażystą'); Program poprzedni miał taką formę:, "jeżeli liczba=2 to..., jeżeli liczba=4 to..., jeżeli liczba=6 to..." i tak dalej. Takiej formy się nie stosuje (jest poprawna, ale niewygodna). Program z operatorem ma taką postać:, "jeżeli liczba=2 lub liczba=4 lub liczb=6 lub liczba=8 lub liczba=10 to..." Chyba każdy widzi, że stosowanie operatorów jest łatwe. Pamiętać trzeba jeszcze, że jeżeli stosujemy jakikolwiek operator, to warunki muszą 13

14 być w NAWIASACH. Doskonale to widać na powyższym programie. To był operator alternatywy ("OR"). Teraz czas poznać operator koniunkcji ("AND"). W powyższym programie napis się wyświetlał, gdy co najmniej jeden z warunków został spełniony. Gdybyśmy zastosowali tam "AND", każdy warunek musiałby być spełniony. Odpowiada to polskiemu wyrazowi "i". Wszystko się zaraz wyjaśni na podstawie programu. Załóżmy, że chcemy zrobić program, który sprawdza, czy liczba, którą wprowadził użytkownik jest między 5 a 10. Jeżeli tak, to ukaże się napis. Jeżeli nie - program się wyłączy. Zatem: liczba:longint writeln('wprowadź jakąś liczbę'); read(liczba); IF (liczba>5) AND (liczba<10) THEN writeln('liczba ta jest w przedziale od 5 do 10');> IF (liczba>=10) OR (liczba<=5) THEN halt; Program ten wyłączy się, gdy liczba będzie większa lub równa 10 lub mniejsza/równa 5. Jeżeli jest mniejsza od dziesięciu i jednocześnie większa od 5, napis się ukaże. Poznałeś, zatem już 2 operatory (były one najważniejsze). Zajmijmy się teraz operatorem "NOT". Jest to logiczne zaprzeczenie, czyli negacja. Nie jest on zbyt szeroko stosowany w programach, mimo to warto zwrócić na niego uwagę. Operator "NOT" po prostu neguje warunek. Pokaże wam to na przykładzie. IF liczba<>10 THEN writeln('liczba ta na pewno nie jest równa 10'); Powyższy program bada, czy liczba jest różna od 10. Jeżeli tak, to napis się ukaże. To samo można zrobić za pomocą operatora "NOT" w następujący sposób: IF NOT liczba=10 THEN writeln('liczba ta na pewno nie jest równa 10'); Czyli jeżeli liczba NIE równa się 10, to... itd. Mam nadzieję, że jest to zrozumiałe. Do opisania został jeszcze jeden operator, tzw. XOR, czyli alternatywa wykluczająca. Nie musicie się go uczyć, gdyż bardzo rzadko się go stosuje, ale jeśli ktoś czuje się na siłach, zaczynajmy. Operator XOR odpowiada wyrazowi "albo" (nie mylić z "lub"). Cała instrukcja zostaje spełniona, gdy jedno z dwóch warunków jest spełnione. Natomiast, gdy oba warunki są spełnione lub niespełnione - instrukcja się nie wykonuje (albo to albo to). To był właśnie operator XOR. Omówimy go jeszcze za moment. Teraz pokaże wam, jak można "sortować" operatory, tzn. nadawać im priorytety. Wystarczy użyć zwykłych nawiasów. Jeżeli chcemy wszystko objąć w jeszcze jeden nawias, śmiało go dajemy (zwykły, a nie żaden kwadratowy - taki, w jaki objęty jest ten tekst). Przykład zastosowania nawiasów znajduje się poniżej: IF ((liczba1=10) AND (liczba2=20)) OR ((liczba1=5) AND (liczba2=15)) THEN "coś tam"... W powyższym fragmencie instrukcja po słowie "THEN" zostanie spełnione w dwóch przypadkach. Gdy liczba1=10 i liczba2=20 Gdy liczba1=5 i liczba2=15 Rozumiecie? Jak tak to dobrze. 14

15 To teraz jeszcze pokaże wam, jak działa XOR. Oba poniższe warunki znaczą to samo (tego rozumieć nie musicie, ale dobrze by było gdybyście chociaż zerknęli). IF liczba1=10 XOR liczba2=20 THEN "coś tam"... IF ((liczba1=10) AND (liczba2<>20)) OR ((liczba1<>10) AND (liczba2=20)) THEN "coś tam"... To był właśnie przykład na "XOR" (wcale nie musieliście tego zrozumieć). Dla podsumowania, przypomnijmy sobie wszystkie operatory. OR - alternatywa - instrukcja się wykona, gdy co najmniej jeden z warunków jest spełniony ("lub"). AND - koniukcja - instrukcja się wykona, gdy wszystkie warunki są spełnione ("i"). NOT - negacja - zaprzeczenie warunku ("nie"). XOR - alternatywa wykluczająca - instrukcja się wykona tylko wtedy, gdy jeden z dwóch warunków jest spełniony ("albo"). W ten prosty sposób skończyliśmy piątą lekcję. Zapraszam do części szóstej. Działania matematyczne Moim zdaniem dysponujesz już sporą wiedzą, aby wkroczyć w następny poziom zaawansowania. Na poprzednich lekcjach poznałeś tylko znikomą część działań matematycznych, takich jak plus (+) czy minus (-). W tej lekcji postaram się objaśnić wam jak najwięcej takich działań. Stosuje się je tak jak inne. No to zaczynajmy. + Dodawanie. Np. 3+2=5, 8+10=18, 6+2=8. - Odejmowanie. Np. 3-2=1, 8-10=-2, 6-2=4. * Mnożenie. Np. 3*2=6, 8*10=80, 6*2=12. / Dzielenie. Np. 10/5=2, 6/2=3, 2/5=2,5. To były podstawowe działania. Są jeszcze inne. Oto niektóre z nich: div Całkowita część z dzielenia. Np. 10 div 3=3, 6 div 4=1, 10 div 4=2. mod Reszta z dzielenia. Np. 5 mod 2=5, 10 mod 3= , 1 mod 2=5. sqrt Pierwiastek. Np. sqrt(9)=3, sqrt(64)=8, sqrt(16)=4 sqr Kwadrat (potęga druga). Np. sqr(2)=4, sqr(3)=9, sqr(10)=

16 abs Wartość bezwzględna. Np. abs(3)=3, abs(-3)=3, abs(-230)=230. Teorię mamy za sobą. Weźmy się za praktykę. Napiszmy program, który będzie podawał kwadrat, z liczby podanej przez użytkownika. liczba:longint; writeln('podaj jakąś liczbę'); read(liczba); writeln('kwadrat z liczby ',liczba,' wynosi ',sqr(liczba)); Może wydawać ci się to trochę skomplikowane, ale po krótkiej analizie i kilku własnych programach, wszystko zrozumiesz. Teraz zróbmy program, który będzie pytał użytkownika o dwie liczby. Po podaniu liczb, program ma mówić, czy druga liczba jest dzielnikiem pierwszej. Np. gdy użytkownik poda liczby 10 i 2, program ma napisać, że 2 jest dzielnikiem 10. No to do roboty: liczba1,liczba2:longint; writeln('podaj pierwszą liczbę'); read(liczba1); writeln('podaj drugą liczbę'); read(liczba2); IF liczba1 mod liczba2=0 THEN writeln(' Liczba ',liczba2,' jest dzielnikiem liczby ',liczba1); IF liczba1 mod liczba2<>0 THEN writeln(' Liczba ',liczba2,' nie jest dzielnikiem liczby ',liczba1); Powyższy program sprawdza, czy reszta z dzielenia jednej liczby przez drugą jest równa zero czy też nie. Można to było zrobić jeszcze w inny sposób: liczba1,liczba2:longint; writeln('podaj pierwszą liczbę'); read(liczba1); writeln('podaj drugą liczbę'); read(liczba2); IF liczba1 mod liczba2=0 THEN writeln(' Liczba ',liczba2,' jest dzielnikiem liczby ',liczba1) ELSE writeln('liczba ',liczba2,' nie jest dzielnikiem liczby ',liczba1); 16

17 Zamiast całej instrukcji warunkowej użyłem polecenia "ELSE". Tego typu programy są bardzo ważne i musisz je znać. Radzę je dobrze poćwiczyć, zanim dojdziesz do następnej lekcji, gdyż będą one szeroko stosowane. Praca domowa: zrób program, który pyta użytkownika o 3 liczby, a następnie sprawdza, czy liczba trzecia jest sumą dwóch pierwszych liczb. Jeżeli jest, to program ma wyświetlić dowolny komunikat i wydać jakiś dźwięk. Jeżeli nie jest - program ma się wyłączyć. POWODZENIA! Pętle REPEAT..UNTIL oraz WHILE..DO Nareszcie doszliśmy do tzw. pętli. Pętle są tak częste w programach, że nie sposób bez nich żyć. Jest ich kilka rodzajów. W tej części poznacie dwa z nich, bardzo zresztą podobne do siebie. Może zacznijmy od definicji, czym jest pętla w programie. Otóż przydaje się, gdy chcemy jakąś czynność (polecenie) wykonać określoną ilość razy. Nie będziemy oczywiście stosować metody "kopiuj / wklej" i tak np. 50 razy, gdyż jest to nieładne i czasochłonne i w ogóle tak się nie robi. Do tego są właśnie pętle. Zapętlają określony fragment kodu programu i rozkazują go wykonywać dopóki jakiś warunek zostanie spełniony. Pierwszy rodzaj pętli składa się z dwóch słów: "REPEAT" (powtarzaj) oraz "UNTIL" (dopóki). Zaraz powinno wam się wszystko w głowach rozjaśnić. Załóżmy, że chcemy, aby program napisał coś takiego: "Witam cię po raz 1, witam cię po raz 2, witam cię po raz 3, witam cię po raz 4..." i tak dalej, aż do załóżmy 100. Nie będziemy przecież pisać 100 razy tej samej kwestii metodą kopiuj/wklej. Do tego użyjemy pętli. Wprowadźmy najpierw samą pętle, a potem wyjaśnijmy. REPEAT (tu będą polecenia) UNTIL (warunek) Wszystko, co będzie między znacznikami "REPEAT" i "UNTIL" będzie się w kółko powtarzało, aż warunek będzie spełniony. My chcemy, aby program wypisał 100 razy ten sam tekst z ciągle zwiększającą się liczbą o jeden. Zatem do dzieła: licznik:longint; licznik:=0; REPEAT licznik:=licznik+1; writeln('witam cię po raz ',licznik); UNTIL licznik=100 17

18 A teraz wyjaśnienie. Na początku zdeklarowaliśmy zmienną o nazwie "licznik". Zaraz po "" czyścimy ładnie ekran i zerujemy licznik (przypisujemy wartość 0). Zaczynamy pętle. Od tego momentu, zatem, wszystko będzie powtarzane. Licznik przyjmuje wartość "licznik+1". Licznik miał wartość 0, zatem 0+1 jest jeden. Licznik, więc ma wartość 1. Program rozkazuje napisać tekst i wstawić wartość licznika. Pętla się kończy. Program sprawdza, czy warunek jest spełniony. Aby pętla się zakończyła, wartość licznika musi wynosić 100. Nasz licznik aktualnie ma wartość 1. Zatem warunek nie został spełniony - program wraca do słowa "REPEAT". I znowu - licznik zwiększa swoją wartość o 1, czyli ma już 2. Rozkazuje napisać tekst i wstawić licznik. Sprawdza warunek - warunek nie jest spełniony - i znowu "REPEAT" Licznik podnosi swoją wartość do 3 i tak dalej. Pętla się zakończy, aż wartość licznika będzie równa 100. Gdy pętla się zakończy, program wykonuje dalsze instrukcje (w tym wypadku jest to "READLN"). I tak oto wyjaśniłem wam działanie pętli. Jednakże jeden program to trochę mało, aby was czegoś nauczyć. Zróbmy teraz inny. Zróbmy program, który będzie kazał napisać użytkownikowi hasło. Hasło będzie cyfrowe, załóżmy, że liczba 123. Użytkownik nie będzie mógł wyjść z programu, aż napisze poprawne hasło. No to do dzieła: haslo:longint; REPEAT writeln('podaj hasło!'); read(haslo); UNTIL haslo=123; writeln('brawo! Odgadłeś hasło!'); Jak widzimy, pętla ta nie zakończy się, gdy ktoś poda nieprawidłowe hasło. I tak za każdym razem. Napis "Brawo..." wyświetli się tylko wtedy, gdy ktoś poda prawidłowe hasło. Spróbujmy teraz zrobić program z innej parafii. Naszym celem jest napisanie prostego alarmu. Program ma wytwarzać dźwięk podobny do alarmu. Dodatkowo, tak napiszemy ten program, aby alarm zapiał 10 razy. Do dzieła: ilosc,ton:longint; ilosc:=0; ton:=0; REPEAT ton:=ton+1; IF ton=1000 THEN ton:=1; ilosc:=ilosc+1; END; Sound(ton); 18

19 Delay(1); UNTIL ilosc=10; Nosound; Jak widzicie zdeklarowałem dwie zmienne: "ilosc" i "ton". Zmienna "ilosc" będzie nam mówiła ile razy alarm już zatrąbił. Zmienna "ton" decydować będzie to częstotliwości dźwięku. Najpierw zeruje oba zmienne. Później zaczynam pętle. Zmiennej "ton" zwiększam wartość (tak jak w poprzednich programach z pętlą). Program sprawdza, czy ta wartość równa jest sto. Na razie nie jest równa, więc program opuszcza instrukcję warunkową. Następnie przez 1/1000 sekundy wydobywa się dźwięk o częstotliwości "ton", czyli aktualnie 1. Pętla się zamyka. Następuje ponowne uruchomienie pętli, ponieważ wartość zmiennej "ilosc" nie jest równa 10. Kolejne zadania w pętli odgrywają dźwięk o coraz to wyższej częstotliwości. Daje to wrażenie alarmu. W pewnym momencie, zmienna "ton" jest już równa 1000, więc w pętli dokonuje się wstawiona tam instrukcja warunkowa. A w niej: "ton" przyjmuje wartość 1 oraz "ilosc" zwiększa swoją wartość o 1. Instrukcja warunkowa kończy się, a program odgrywa dźwięk o częstotliwości "ton", czyli znowu 1. I znowu wszystko zaczyna się, z tym, że wartość zmiennej "ilosc" jest większa. Cały proces trwa do momentu, aż zmienna "ilosc" przyjmie wartość 10. Program wtedy ucichnie dzięki poleceniu "NoSound". Skomplikowane, nieprawdaż? W praktyce usłyszysz 10 razy szybki wzrost częstotliwości. Da to efekt alarmu, zresztą - sam się przekonaj. To teraz zajmijmy się poleceniem "WHILE..DO", które jest drugą pętlą omawianą na tej lekcji. Nie różni się zbytnio od poprzedniej, natomiast jest nieco rzadziej używana. W poprzedniej pętli, zawsze to, co było ujęte w nią - wykonało się, co najmniej raz. Musi tak być, ponieważ warunek na zakończenie pętli był na jej końcu. Program działał w sposób, że najpierw wykonał pętle, a potem dopiero sprawdził, czy to jej koniec. Pętla "WHILE..DO", najpierw sprawdza warunek, a potem dopiero, (jeżeli jest on spełniony) się wykonuje. Dlatego właśnie w tej pętli zaistnieć może sytuacja, że pętla w ogóle się nie włączy, gdy warunek nie będzie spełniony. Poza tym, program działa tak: dopóki warunek jest spełniony, wykonuj..., a nie jak poprzednio: wykonuj... aż warunek zostanie spełniony. Po słowie "WHILE" zawsze jest warunek. Potem następuje słowo "DO" i wpisujemy polecenia pętli. Po słowie "DO", musimy zastosować "". Zatem wszystkie polecenia pętli muszą być ujęte w oddzielny blok. Wszystko zaraz się wyjaśni na konkretnym przykładzie (mam nadzieję). Załóżmy, że chcemy zrobić prosty program, który pyta użytkownika o jakąś liczbę. Jeżeli ta liczba jest równa 10 lub 20, program wykonuje pętle. Jeżeli nie - program się wyłącza. Pętla polega na 10 krotnym wypisaniu słowa "Podałeś liczbę 10 lub 20". Program głupi jest i nieprzydatny, ale jak do ćwiczeń, to dobry. Starymi sposobami, program ten można zrobić tak: liczba,licznik:longint; writeln('podaj jakąś liczbę'); read(liczba); IF (liczba=10) OR (liczba=20) THEN licznik:=0; REPEAT licznik:=licznik+1; writeln('podałeś liczbę 10 lub 20'); UNTIL licznik=10; writeln; END; 19

20 Halt; Jak widzimy program ma dwie zmienne: "liczba" i "licznik". Użytkownik wprowadza liczbę. Jeżeli nie jest równa 10 lub 20, program opuszcza instrukcję warunkową, a zarazem pętle i dochodzi do polecenia "Halt". Jeżeli liczba równa jest 10 lub 20, program wykonuje instrukcję warunkową - wypisuje 10 razy napis. A teraz powyższy program przekształćmy, tak aby można było użyć w nim pętli "WHILE..DO". Będzie on wyglądał tak: liczba,licznik:longint; writeln('podaj jakąś liczbę'); read(liczba); IF (liczba=10) OR (liczba=20) THEN licznik:=0; WHILE licznik<11 DO> licznik:=licznik+1; writeln('podałeś liczbę 10 lub 20'); END; writeln; END; Halt; Pętla sprawdza warunek, czy licznik<11. Jeżeli tak, pętla się wykonuje. Wykonuje się tak długo, aż licznik nie będzie mniejszy od 11 (czyli, aż osiągnie wartość 11). Z tego wynika, że napis wyświetli się 10 razy. Jak widzimy, łatwiej jest operować pętlą "REPEAT" niż omawianą. Ale jak to mówią: "róbta co chceta". Pamiętajcie, że w pętli "WHILE..DO" nie ma słowa "UNTIL". Do omówienia zostało jeszcze zagnieżdżanie pętli. Czy wiesz, że w pętle można wpisać jeszcze jedną pętle, a w nią następną i następną... i tak dalej. My nie będziemy zapętlali miliony razy, ale zrobimy bardzo fajny program, który nazywać się będzie "tabliczka mnożenia". Jego zadaniem będzie wypisanie mnożeń, tzn. 1*1=1, 1*2=2, 1*3=3 aż dojdzie do 10*10=100. Wszystkie działania będą linijka pod linijką. Gdybyśmy chcieli to zrobić ręcznie, musielibyśmy zająć co najmniej 100 linijek tekstu (jedną na każde działanie), np: writeln('4*3=12'); writeln('4*4=16'); writeln('4*5=20'); writeln('4*6=24'); writeln('4*7=28'); writeln('4*8=32'); writeln('4*9=36'); writeln('4*10=40'); writeln('5*1=5'); writeln('5*2=10'); writeln('5*3=15'); writeln('5*4=20'); i tak dalej... 20

21 Do tego celu zagnieździmy pętle. Tzn. wpiszemy drugą pętle "REPEAT" do już istniejącej. Najpierw zobaczcie na program, a potem sobie wyjaśnimy: a,b:longint; writeln(' A oto tabliczka mnożenia:'); a:=0; REPEAT a:=a+1; b:=0; REPEAT b:=b+1; writeln(a,'*',b,'=',a*b); delay(100); UNTIL b=10; UNTIL a=10; To teraz wyjaśnienie. Deklarujemy dwie zmienne: "a" i "b". Zmienna "a" będzie pierwszą liczbą, którą będziemy mnożyć, zmienna "b" natomiast - drugą. (a*b). Po napisie, zerujemy zmienną "a". Rozpoczynamy pętle ZEWNĘTRZNĄ. "a" zwiększa wartość o 1. Zerujemy "b". Zaczynamy pętle "WEWNĘTRZNĄ". "b" zwiększa wartość o 1. Program pisze: a*b=wynik. Zarówno "a" jak i "b" wynoszą 1, więc jest "1*1=1". Napis trwa 1/10 sekundy. Wartość "b" nie jest równa 10, więc pętla zaczyna się jeszcze raz. Znowu "b" zwiększa wartość, ale "a" pozostaje takie samo. Jest zatem 1*2=2. Jak zauważyliśmy, wszystko idzie dobrze. Tabliczka mnożenia idzie przez 1 do momentu, aż "b" wyniesie 10 (1*10=10). Pętla wewnętrzna się kończy. Pamiętamy jednak, że cały czas jesteśmy w pętli zewnętrznej. Pętla zewnętrzna kończy się dopiero, kiedy "a" jest równe 10. W tej chwili "a" jest równe 1, więc pętla zewnętrzna zaczyna się od początku. Wartość "b" się zeruje i zaczyna się pętla wewnętrzna. Teraz wszystko mnoży się przez "2". Zatem, w jednym poleceniu pętli zewnętrznej wykonuje się 10 razy pętla wewnętrzna. Pętla zewnętrzna wykonuje się 10 razy. Zatem końcowy napis będzie "10*10=100". Tak oto stworzyliśmy tabliczkę mnożenia dzięki podwójnej pętli (zagnieżdżeniu). Polecenie "Delay" służy tylko temu, abyśmy zdążyli tę tabliczkę zobaczyć, bo bez niego program ją wypisze w mgnieniu oka. I to tyle, jeśli chodzi o te dwie pętle. Nie zaglądaj nawet do następnej lekcji, dopóki nie zrozumiesz tej - a zwłaszcza ostatniego programu z tabliczką mnożenia. Pamiętaj, że pętle są wykorzystywane w 90% programów, więc bez nich ani rusz. Zadanie domowe: Napisz program, który pyta użytkownika o jakąś liczbę. Po wprowadzeniu liczby przez użytkownika, program ma pomnożyć ją przez wszystkie liczby od 1 do 2000 i pokazać wyniki (linijka pod linijką). Pętle goto oraz FOR..TO..DO/FOR..DOWNTO..DO W poprzednich pętlach tak naprawdę to nie wiadomo było ile razy się dana pętla wykona. Program mógł ciągnąć się w nieskończoność. Aby temu zapobiec, wymyślono pętle "FOR..TO..DO" oraz "FOR..DOWNTO..DO". Oba pętle nie różnią się zbyt od siebie. Zacznijmy może od pętli "FOR..TO..DO". Załóżmy, że chcemy zrobić program, który będzie 100 razy wypisywał imię użytkownika. Najpierw 21

22 użytkownik wprowadza imię, a potem zaczyna się pętla, która polega na krotnym wypisaniu jego imienia schodząc o linie niżej. Stosując tu znaną ci już pętle, można zrobić to w ten sposób. imie:string; ilosc:longint; writeln('jak masz na imię?'); read(imie); ilosc:=0; REPEAT ilosc:=ilosc+1; writeln(imie); UNTIL ilosc=100; Jak widzimy, pętla jest prosta i nie trzeba jej dogłębnie omawiać. Program wypisze 100 razy imię użytkownika i się wyłączy. Zatem, w pętli tej z góry ustalona jest ilość wykonania instrukcji. Wiemy, że na 100% pętla wykona się 100 razy. Nic nie jest w stanie tego zmienić. Można, zatem, aby było prościej, zastosować pętle "FOR..TO..DO". Najpierw obejrzyjcie program, a potem wyjaśnienia (program wykonuje to, co poprzedni). imie:string; ilosc:longint; writeln('jak masz na imię?'); read(imie); FOR ilosc:=1 TO 100 DO writeln(imie); END; Jak widzimy, zmienne pozostają te same, początek też ten sam. Pętla zaczyna się słówkiem "FOR". Jest to jej początek. Po tym następuje przypisanie wartości jakiejś zmiennej. Zauważmy, że przypisujemy wartość dopiero tutaj, a nie przed pętlą. Następnie widzimy słówko "TO" i wpisujemy wartość zmiennej. Wpisaliśmy 100. Ilość ta informuje już nas, że pętla wykonywać będzie się 100 razy. Było to zatem polecenie, ile razy pętla ma się wykonać. Później następuje słówko "DO" i w oddzielnych blokach "", "END" wpisujemy polecenia pętli. Najważniejsze jest, że nie wpisujemy tam już czegoś takiego: "ilosc:=ilosc+1;". Jest to zawarte po słowie "FOR". Gdy pojedyncza instrukcja pętli się zakończy, wartość zmiennej "ilosc" przyjmuje wartość +1. Dzięki temu stworzyliśmy program, który mimo, że wygląda inaczej, działa tak jak poprzedni. Stymulując język polski, będzie to wyglądało tak: Od "imie" równa się 1 do 100, rób... Pamiętać trzeba o kilku ważnych rzeczach. Instrukcje pętli wpisujemy w oddzielne bloki - wielu o tym zapomina. Jak widzimy, pętla ta może się do czegoś przydać. To w takim razie, po jakiego grzyba, wymyślono pętlę "FOR..DOWNTO..DO"??? Otóż, poprzednia pętla 22

23 ZWIĘKSZAŁA wartość zmiennej o 1. Natomiast pętla "FOR..DOWNTO..DO" działa identycznie, z tym, że ZMNIEJSZA wartość zmiennej o 1. Programu już myślę, że nie trzeba robić - wszyscy wiedzą, o co chodzi. Zajmijmy się czymś bardziej skomplikowanym. Na pewno pamiętacie zagnieżdżanie pętli z poprzedniej lekcji. Robiliśmy tam program "tabliczka mnożenia". Spróbujmy zrobić program ten, ale za pomocą omawianej właśnie pętli. Spójrz, jak prościej wygląda on od poprzedniej wersji. a,b:longint; FOR a:=1 TO 10 DO FOR b:=1 TO 10 DO writeln(a,'*',b,'=',a*b); END; END; Jak widzimy, do tabliczki mnożenia lepiej jest wykorzystywać pętlę "FOR..TO..DO", aniżeli pętle "REPEAT". Ponieważ czas nagli, przechodzimy szybko do drugiej pętli omawianej w tej lekcji. Jest ona najprostsza do zrozumienia. Nie przypomina, bowiem żadnego zawiłego powtarzania, a przejście z jednego miejsca programu do drugiego. Załóżmy, że chcemy, aby program w którymś tam momencie wracał do początku programu lub gdzieś w jego środek. Dla przykładu posłużymy się programem, gdzie użytkownik będzie musiał wpisać hasło (coś już takiego było zdaje się). Jeżeli nie wpisze poprawnego hasła, program powtarza zapytanie. Jeżeli wpisze, program się wyłącza. Można ten program zrobić oczywiście za pomocą innych pętli już ci znanych, ale użyjemy tu nowego polecenia "GOTO" - nie mylić z "GOTOXY". Polecenie to przenosi nas w dowolną część programu. Miejsce, gdzie przenieść ma nas to polecenie, musi być zaznaczone w kodzie programu. Poza tym, tak jak i zmienne - musi być wcześniej zdeklarowane. Miejsce takie nazywa fachowo się "kotwicą" i tak będziemy je nazywać. Deklarować kotwice najlepiej jest zaraz po zmiennych. Zmienne deklarowaliśmy poleceniem "", kotwice natomiast deklaruje się poleceniem "LABEL". W praktyce wygląda to tak: zmienna1:longint; zmienna2:string; LABEL miejsce1; (i tak dalej...) Jak widzimy, zadeklarowałem dwie zmienne (ale mniejsza z nimi) oraz kotwice o nazwie "miejsce1". Kotwice deklarujemy po słowie "LABEL" i nie wpisujemy żadnych typów (po prostu je wymieniamy po przecinku bez żadnych dwukropków). Na końcu pamiętać trzeba jednak o średniku. Teraz mamy już zadeklarowaną kotwice o nazwie "miejsce1", więc bez problemu możemy ją użyć (a raczej wstawić). Gotowy już program z hasłem, wygląda następująco: 23

24 haslo:longint; LABEL miejsce1; miejsce1: write('podaj poprawne hasło: '); read(haslo); IF haslo<> THEN goto miejsce1; writeln('brawo! Odgadłeś hasło!'); W powyższym przykładzie kotwica o nazwie "miejsce1" znajduje się na początku programu. Kotwice mogą znajdować się również w innych miejscach. Kotwice wstawia się do programu tylko jeden raz. Wstawiamy jej nazwę i dwukropek. Później komputer czyści ekran i pyta użytkownika o hasło. Hasło jest równe Jeżeli ktoś wprowadził błędne hasło, komputer wykonuje instrukcję warunkową. W niej ma rozkaz "GOTO miejsce1", co oznacza "idź do miejsce1". Komputer nie patrząc praktycznie na dalszą część kodu, przechodzi do kotwicy tak właśnie oznaczonej. I znowu: czyści ekran, pyta urzytkow... i tak dalej. Zatem, napis z brawami nie ukaże się dopóty użytkownik wprowadzi poprawne hasło (czyli ). Na tym właśnie polega polecenie "GOTO". No i to by było na tyle jeśli chodzi o tą lekcję. Moim zdaniem, jeżeli przeczytałeś już wszystkie wcześniejsze lekcje i tą - jesteś na dobrej drodze, aby zostać programistą. Oczywiście, twoja wiedza jest jeszcze bardzo uboga, dlatego zapraszam do lekcji następnej. Procedury, procedury z parametrami, funkcje Doszliśmy w końcu do procedur. Do czegoż one mogą służyć? - pewnie się teraz zastanawiacie. Zaraz wam wytłumaczę. Załóżmy, że chcemy zrobić program, który będzie pytał użytkownika, czy komputer ma wyświetlić na środku ekranu napis. Jeśli użytkownik się zgodzi - napis się wyświetli. Jeżeli użytkownik się nie zgodzi - program pyta jeszcze raz. I znowu kolejny wybór. Program ten wyglądał będzie tak: wybor:longint; writeln('czy mam wyświetlić napis? - napisz 1 dla tak lub 2 dla nie'); read(wybor); IF wybor=1 THEN gotoxy(10,10); writeln('ten napis jest na środku ekranu i zniknie za 5 sekund!'); delay(5000); Halt; END; IF wybor=2 THEN 24

Instrukcja warunkowa i złoŝona.

Instrukcja warunkowa i złoŝona. Instrukcja warunkowa i złoŝona. Budowa pętli warunkowej. JeŜeli mielibyśmy przetłumaczyć instrukcję warunkową to brzmiałoby to mniej więcej tak: jeŝeli warunek jest spełniony, to wykonaj jakąś operację

Bardziej szczegółowo

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest Pętle Pętla to pewien fragment kodu, który jest wykonywany wielokrotnie. Wyobraź sobie taką sytuację. Piszesz program do szyfrowania danych. Dane są szyfrowane kolejno bajt po bajcie. Załóżmy, że plik

Bardziej szczegółowo

Pascal - wprowadzenie

Pascal - wprowadzenie Pascal - wprowadzenie Ogólne informacje o specyfice języka i budowaniu programów Filip Jarmuszczak kl. III c Historia Pascal dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego

Bardziej szczegółowo

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else. Nazwa implementacji: Nauka języka Python wyrażenia warunkowe Autor: Piotr Fiorek Opis implementacji: Poznanie wyrażeń warunkowych if elif - else. Nasz kalkulator umie już liczyć, ale potrafi przeprowadzać

Bardziej szczegółowo

Pętle. Dodał Administrator niedziela, 14 marzec :27

Pętle. Dodał Administrator niedziela, 14 marzec :27 Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać

Bardziej szczegółowo

Programowanie w Turbo Pascal

Programowanie w Turbo Pascal Skróty: ALT + F9 Kompilacja CTRL + F9 Uruchomienie Struktura programu: Programowanie w Turbo Pascal Program nazwa; - nagłówek programu - blok deklaracji (tu znajduje się VAR lub CONST) - blok instrukcji

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

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

7. Pętle for. Przykłady

7. Pętle for. Przykłady . Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

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

3. Instrukcje warunkowe

3. Instrukcje warunkowe . Instrukcje warunkowe Przykłady.1. Napisz program, który pobierze od użytkownika liczbę i wypisze na ekran słowo ujemna lub nieujemna, w zależności od tego czy dana liczba jest ujemna czy nie. 1 #include

Bardziej szczegółowo

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma}; INSTRUKCJA PUSTA Nie składa się z żadnych znaków i symboli, niczego nie robi Przykłady: for i := 1 to 10 do {tu nic nie ma}; while a>0 do {tu nic nie ma}; if a = 0 then {tu nic nie ma}; INSTRUKCJA CASE

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

6. Pętle while. Przykłady

6. Pętle while. Przykłady 6. Pętle while Przykłady 6.1. Napisz program, który, bez użycia rekurencji, wypisze na ekran liczby naturalne od pewnego danego n do 0 włącznie, w kolejności malejącej, po jednej liczbie na linię. Uwaga!

Bardziej szczegółowo

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek Nazwa implementacji: Nauka języka Python pętla for Autor: Piotr Fiorek Opis implementacji: Poznanie innego rodzaju pętli, jaką jest pętla for w języku Python. Składnia pętli for jest następująca: for

Bardziej szczegółowo

for (inicjacja_warunkow_poczatkowych(końcowych); wyrazenie_warunkowe; wyrazenie_zwiekszajace(zmniejszające)) { blok instrukcji; }

for (inicjacja_warunkow_poczatkowych(końcowych); wyrazenie_warunkowe; wyrazenie_zwiekszajace(zmniejszające)) { blok instrukcji; } Pętle Pętle (ang. loops), zwane też instrukcjami iteracyjnymi, stanowią podstawę prawie wszystkich algorytmów. Lwia część zadań wykonywanych przez programy komputerowe opiera się w całości lub częściowo

Bardziej szczegółowo

Cw.12 JAVAScript w dokumentach HTML

Cw.12 JAVAScript w dokumentach HTML Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane

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

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych 1. Wstawianie skryptu na stroną: Laboratorium 1 Do umieszczenia skryptów na stronie służy znacznik: //dla HTML5 ...instrukcje skryptu //dla HTML4 ...instrukcje

Bardziej szczegółowo

Lekcja : Tablice + pętle

Lekcja : Tablice + pętle Lekcja : Tablice + pętle Wprowadzenie Oczywiście wiesz już jak dużo można osiągnąć za pomocą tablic oraz jak dużo można osiągnąć za pomocą pętli, jednak tak naprawdę prawdziwe możliwości daje połączenie

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Każde wykonanie bloku instrukcji nazywamy pojedynczym przebiegiem lub iteracją pętli.

Każde wykonanie bloku instrukcji nazywamy pojedynczym przebiegiem lub iteracją pętli. Część XIII C++ Czym jest pętla? Pętla jest blokiem instrukcji, które wykonywane są w kółko (czyli po wykonaniu ostatniej instrukcji z bloku komputer wykonuje ponownie pierwszą instrukcję, później drugą

Bardziej szczegółowo

Zastanawiałeś się może, dlaczego Twój współpracownik,

Zastanawiałeś się może, dlaczego Twój współpracownik, Kurs Makra dla początkujących Wiadomości wstępne VBI/01 Piotr Dynia, specjalista ds. MS Office Czas, który poświęcisz na naukę tego zagadnienia, to 15 20 minut. Zastanawiałeś się może, dlaczego Twój współpracownik,

Bardziej szczegółowo

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

4. Funkcje. Przykłady

4. Funkcje. Przykłady 4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni

Bardziej szczegółowo

for (inicjacja_warunkow_poczatkowych; wyrazenie_warunkowe; wyrazenie_zwiekszajace) { blok instrukcji; }

for (inicjacja_warunkow_poczatkowych; wyrazenie_warunkowe; wyrazenie_zwiekszajace) { blok instrukcji; } Pętle Pętle (ang. loops), zwane też instrukcjami iteracyjnymi, stanowią podstawę prawie wszystkich algorytmów. Lwia część zadań wykonywanych przez programy komputerowe opiera się w całości lub częściowo

Bardziej szczegółowo

Warunek wielokrotnego wyboru switch... case

Warunek wielokrotnego wyboru switch... case Warunek wielokrotnego wyboru switch... case Działanie instrukcji switch jest zupełnie inne niż w przypadku instrukcji if o czym będziesz mógł się przekonać w niniejszym rozdziale. Różnice pomiędzy instrukcjami

Bardziej szczegółowo

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem Moduł 1 1. Wprowadzenie do języka Python Python jest dynamicznym językiem interpretowanym. Interpretowany tzn. że kod, który napiszemy możemy natychmiast wykonać bez potrzeby tłumaczenia kodu programistycznego

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

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych.

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych. Jarosław Wróblewski Matematyka dla Myślących, 008/09. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych. 15 listopada 008 r. Uwaga: Przyjmujemy,

Bardziej szczegółowo

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe Podstawy programowania Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe 1 I. Składnia Składnia programu Program nazwa; Uses biblioteki; Var deklaracje zmiennych;

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

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

2. Zmienne i stałe. Przykłady Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117).

2. Zmienne i stałe. Przykłady Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117). 2. Zmienne i stałe Przykłady 2.1. Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117). 5 int a = 281; int b = 117; 7 8 cout

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

TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF).

TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF). INFORMATYKA kl. II gimnazjum Krzysztof Gładkowski TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF). Czas: 2godz. Przygotowanie środowiska. Pomoce dydaktyczne. Oprogramowanie środowisko

Bardziej szczegółowo

WYRAŻENIA ALGEBRAICZNE

WYRAŻENIA ALGEBRAICZNE WYRAŻENIA ALGEBRAICZNE Wyrażeniem algebraicznym nazywamy wyrażenie zbudowane z liczb, liter, nawiasów oraz znaków działań, na przykład: Symbole literowe występujące w wyrażeniu algebraicznym nazywamy zmiennymi.

Bardziej szczegółowo

Celem tego projektu jest stworzenie

Celem tego projektu jest stworzenie Prosty kalkulator Celem tego projektu jest stworzenie prostego kalkulatora, w którym użytkownik będzie podawał dwie liczby oraz działanie, które chce wykonać. Aplikacja będzie zwracała wynik tej operacji.

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

Struktura pliku projektu Console Application

Struktura pliku projektu Console Application Struktura pliku projektu Console Application #include #include using namespace std; int main(int argc, char *argv[]) // to jest komentarz system("pause"); return EXIT_SUCCESS; Na początku

Bardziej szczegółowo

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

Pzetestuj działanie pętli while i do...while na poniższym przykładzie: Pzetestuj działanie pętli while i do...while na poniższym przykładzie: Zadania pętla while i do...while: 1. Napisz program, który wczytuje od użytkownika liczbę całkowitą, dopóki podana liczba jest mniejsza

Bardziej szczegółowo

Programowanie - instrukcje sterujące

Programowanie - instrukcje sterujące Instytut Informatyki Uniwersytetu Śląskiego Laborki środowisko NetBeans, tworzenie nowego projektu; okno projekty; główne okno programu; package - budowanie paczek z klas; public class JavaApplication

Bardziej szczegółowo

Podstawy programowania w C++

Podstawy programowania w C++ Podstawy programowania w C++ Liczby w jaki sposób komputery je widzą? Opracował: Andrzej Nowak Bibliografia: CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com Czy wiesz, jak komputery wykonują

Bardziej szczegółowo

Dodawanie ułamków i liczb mieszanych o różnych mianownikach

Dodawanie ułamków i liczb mieszanych o różnych mianownikach Dodawanie ułamków i liczb mieszanych o różnych mianownikach Przedmowa To opracowanie jest napisane z myślą o uczniach klas 4 szkół podstawowych którzy po raz pierwszy spotykają się z dodawaniem ułamków

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

Ile waży arbuz? Copyright Łukasz Sławiński

Ile waży arbuz? Copyright Łukasz Sławiński Ile waży arbuz? Arbuz ważył7kg z czego 99 % stanowiła woda. Po tygodniu wysechł i woda stanowi 98 %. Nieważne jak zmierzono te %% oblicz ile waży arbuz teraz? Zanim zaczniemy, spróbuj ocenić to na wyczucie...

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych 4. Łódź 2018 Suma szeregu harmonicznego - Wpisz kod programu w oknie edycyjnym - Zapisz kod w pliku harmonic.py - Uruchom skrypt (In[1]: run harmonic.py) - Ten program wykorzystuje

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Konstrukcje warunkowe Pętle

Konstrukcje warunkowe Pętle * Konstrukcje warunkowe Pętle *Instrukcja if sposób na sprawdzanie warunków *Konstrukcja: if(warunek) else { instrukcje gdy warunek spełniony} {instrukcje gdy warunek NIE spełniony} * 1. Wylicz całkowity

Bardziej szczegółowo

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2 Pętle wielokrotne wykonywanie ciągu instrukcji. Bardzo często w programowaniu wykorzystuje się wielokrotne powtarzanie określonego ciągu czynności (instrukcji). Rozróżniamy sytuacje, gdy liczba powtórzeń

Bardziej szczegółowo

2. DZIAŁANIA NA WIELOMIANACH

2. DZIAŁANIA NA WIELOMIANACH WIELOMIANY 1. Stopieo wielomianu. Działania na wielomianach 2. Równość wielomianów. 3. Pierwiastek wielomianu. Rozkład wielomianu na czynniki 4. Równania wielomianowe. 1.STOPIEŃ WIELOMIANU Wielomian to

Bardziej szczegółowo

wagi cyfry 7 5 8 2 pozycje 3 2 1 0

wagi cyfry 7 5 8 2 pozycje 3 2 1 0 Wartość liczby pozycyjnej System dziesiętny W rozdziale opiszemy pozycyjne systemy liczbowe. Wiedza ta znakomicie ułatwi nam zrozumienie sposobu przechowywania liczb w pamięci komputerów. Na pierwszy ogień

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

Systemy liczbowe. System dziesiętny

Systemy liczbowe. System dziesiętny Systemy liczbowe System dziesiętny Dla nas, ludzi naturalnym sposobem prezentacji liczb jest system dziesiętny. Oznacza to, że wyróżniamy dziesięć cytr. Są nimi: zero, jeden, dwa, trzy, cztery, pięć, sześć,

Bardziej szczegółowo

Indukcja matematyczna

Indukcja matematyczna Indukcja matematyczna 1 Zasada indukcji Rozpatrzmy najpierw następujący przykład. Przykład 1 Oblicz sumę 1 + + 5 +... + (n 1). Dyskusja. Widzimy że dla n = 1 ostatnim składnikiem powyższej sumy jest n

Bardziej szczegółowo

LICZBY PIERWSZE. Jan Ciurej Radosław Żak

LICZBY PIERWSZE. Jan Ciurej Radosław Żak LICZBY PIERWSZE Jan Ciurej Radosław Żak klasa IV a Katolicka Szkoła Podstawowa im. Świętej Rodziny z Nazaretu w Krakowie ul. Pędzichów 13, 31-152 Kraków opiekun - mgr Urszula Zacharska konsultacja informatyczna

Bardziej szczegółowo

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Język PHP Język interpretowalny, a nie kompilowany Powstał w celu programowania

Bardziej szczegółowo

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu. Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą

Bardziej szczegółowo

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10. ZAMIANA LICZB MIĘDZY SYSTEMAMI DWÓJKOWYM I DZIESIĘTNYM Aby zamienić liczbę z systemu dwójkowego (binarnego) na dziesiętny (decymalny) należy najpierw przypomnieć sobie jak są tworzone liczby w ww systemach

Bardziej szczegółowo

Co to jest niewiadoma? Co to są liczby ujemne?

Co to jest niewiadoma? Co to są liczby ujemne? Co to jest niewiadoma? Co to są liczby ujemne? Można to łatwo wyjaśnić przy pomocy Edukrążków! Witold Szwajkowski Copyright: Edutronika Sp. z o.o. www.edutronika.pl 1 Jak wyjaśnić, co to jest niewiadoma?

Bardziej szczegółowo

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.

Bardziej szczegółowo

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pętle for, while, do... while, foreach Jeszcze o operatorach... Skrócone operatory arytmetyczne przykład x +=

Bardziej szczegółowo

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze... Tekst na niebiesko jest komentarzem lub treścią zadania. Zadanie. Dane są macierze: A D 0 ; E 0 0 0 ; B 0 5 ; C Wykonaj poniższe obliczenia: 0 4 5 Mnożenia, transpozycje etc wykonuję programem i przepisuję

Bardziej szczegółowo

Programowanie - wykład 4

Programowanie - wykład 4 Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include

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

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1 Podstawy programowania Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1 1 I. Składnia Składnia programu Program nazwa; Uses biblioteki; Var deklaracje zmiennych; Begin

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 1

Programowanie komputerowe. Zajęcia 1 Programowanie komputerowe Zajęcia 1 Code::Blocks - tworzenie projektu Create New Project Console Application -> C++ Wybierz nazwę projektu Stworzy się nowy projekt z wpisaną funkcją main Wpisz swój program

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

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda. Nazwa implementacji: Nauka języka C wyrażenia warunkowe if- Autor: Piotr Fiorek Opis implementacji: Poznanie struktury oraz zastosowania wyrażeń warunkowych if- w języku C. W programie realizującym jakiś

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

Wprowadzenie komentarzy do programu

Wprowadzenie komentarzy do programu Wprowadzenie komentarzy do programu W programach mogą wystąpić objaśnienia, uwagi zamykane w klamrach { } lub nawiasach z gwiazdką (* *). Komentarze ułatwiają zrozumienie programów. Przyjmijmy, że komentarze

Bardziej szczegółowo

Programowanie strukturalne i obiektowe. Funkcje

Programowanie strukturalne i obiektowe. Funkcje Funkcje Często w programach spotykamy się z sytuacją, kiedy chcemy wykonać określoną czynność kilka razy np. dodać dwie liczby w trzech miejscach w programie. Oczywiście moglibyśmy to zrobić pisząc trzy

Bardziej szczegółowo

1. Operacje logiczne A B A OR B

1. Operacje logiczne A B A OR B 1. Operacje logiczne OR Operacje logiczne są operacjami działającymi na poszczególnych bitach, dzięki czemu można je całkowicie opisać przedstawiając jak oddziałują ze sobą dwa bity. Takie operacje logiczne

Bardziej szczegółowo

JAVAScript w dokumentach HTML - przypomnienie

JAVAScript w dokumentach HTML - przypomnienie Programowanie obiektowe ćw.1 JAVAScript w dokumentach HTML - przypomnienie JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w

Bardziej szczegółowo

Jak nie zostać niewolnikiem kalkulatora? Obliczenia pamięciowe i pisemne.

Jak nie zostać niewolnikiem kalkulatora? Obliczenia pamięciowe i pisemne. Jak nie zostać niewolnikiem kalkulatora? Obliczenia pamięciowe i pisemne. W miarę postępu techniki w niepamięć odeszły nawyki do wykonywania pisemnych albo pamięciowych obliczeń. O suwaku logarytmicznym,

Bardziej szczegółowo

Informatyka I: Instrukcja 4.2

Informatyka I: Instrukcja 4.2 Informatyka I: Instrukcja 4.2 1 Wskaźniki i referencje - bezboleśnie Nauczyliśmy się do tej pory, że funkcje w języku C mogą zwracać wartość. Co jednak, gdybyśmy chcieli napisać funkcję, która rozwiąże

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

Liczby losowe i pętla while w języku Python

Liczby losowe i pętla while w języku Python Liczby losowe i pętla while w języku Python Mateusz Miotk 17 stycznia 2017 Instytut Informatyki UG 1 Generowanie liczb losowych Na ogół programy są spójne i prowadzą do przewidywanych wyników. Czasem jednak

Bardziej szczegółowo

Proste programy w C++ zadania

Proste programy w C++ zadania Proste programy w C++ zadania Zbiór zadao do samodzielnego rozwiązania stanowiący powtórzenie materiału. Podstawy C++ Budowa programu w C++ Dyrektywy preprocesora Usunięcie dublujących się nazw Częśd główna

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

1. Uruchom stronię poczta.foof.pl (pisane bez www). Powinien wyświetlić się następujący ekran

1. Uruchom stronię poczta.foof.pl (pisane bez www). Powinien wyświetlić się następujący ekran Proces rejestracji jest dokładnie opisany na stronie konkursu. Skoro jednak masz problemy upewnij się, że prawidłowo wykonujesz następujące czynności. Jeżeli w dalszym ciągu będziesz miał problemy napisz

Bardziej szczegółowo

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Być może jesteś doświadczonym programistą, biegle programujesz w Javie, Kompendium PHP 01 Być może jesteś doświadczonym programistą, biegle programujesz w Javie, C++, Pythonie lub jakimś innym języku programowania, których jak myślę, powstało już tyle, że chyba nie ma osoby,

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

Lekcja 3: Pierwsze kroki z Pythonem. Pętle

Lekcja 3: Pierwsze kroki z Pythonem. Pętle #SuperKoderzy www.superkoderzy.pl Mikrobitowcy Autorzy: Filip Kłębczyk Lekcja 3: Pierwsze kroki z Pythonem. Pętle Podczas lekcji uczniowie zapoznają się z dwoma rodzajami pętli - for i while - analizując

Bardziej szczegółowo

XII. Warunek wielokrotnego wyboru switch... case

XII. Warunek wielokrotnego wyboru switch... case XII. Warunek wielokrotnego wyboru switch... case 12.1. Gdy mamy więcej niŝ dwie moŝliwości Do tej pory poznaliśmy warunek if... else... Po co nam kolejny? Trudno powiedzieć, ale na pewno nie po to, Ŝeby

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1)

JAVAScript w dokumentach HTML (1) JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript mogą być zagnieżdżane w dokumentach HTML. Instrukcje JavaScript

Bardziej szczegółowo

Wprowadzenie do edycji makr w Excelu

Wprowadzenie do edycji makr w Excelu Wprowadzenie do edycji makr w Excelu Zakładam, że masz otwarty edytor VBA. Jeśli nie, to wciśnij proszę w Excelu ALT+ f11 ten skrót nie zmienił się na szczęście w Excelu 2007. Makra można wpisywać w kilku

Bardziej szczegółowo

5. OKREŚLANIE WARTOŚCI LOGICZNEJ ZDAŃ ZŁOŻONYCH

5. OKREŚLANIE WARTOŚCI LOGICZNEJ ZDAŃ ZŁOŻONYCH 5. OKREŚLANIE WARTOŚCI LOGICZNEJ ZDAŃ ZŁOŻONYCH Temat, którym mamy się tu zająć, jest nudny i żmudny będziemy się uczyć techniki obliczania wartości logicznej zdań dowolnie złożonych. Po co? możecie zapytać.

Bardziej szczegółowo

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Cechy C++ Język ogólnego przeznaczenia Można programować obiektowo i strukturalnie Bardzo wysoka wydajność kodu wynikowego

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

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku Rozdział 1 Poprawność programów Jeżeli projektujemy algorytmy lub piszemy programy, to ważne jest pytanie, czy nasz algorytm lub program

Bardziej szczegółowo

Zapis algorytmów: schematy blokowe i pseudokod 1

Zapis algorytmów: schematy blokowe i pseudokod 1 Zapis algorytmów: schematy blokowe i pseudokod 1 Przed przystąpieniem do napisania kodu programu należy ten program najpierw zaprojektować. Projekt tworzącego go algorytmu może być zapisany w formie schematu

Bardziej szczegółowo

CIĄGI wiadomości podstawowe

CIĄGI wiadomości podstawowe 1 CIĄGI wiadomości podstawowe Jak głosi definicja ciąg liczbowy to funkcja, której dziedziną są liczby naturalne dodatnie (w zadaniach oznacza się to najczęściej n 1) a wartościami tej funkcji są wszystkie

Bardziej szczegółowo

Odejmowanie ułamków i liczb mieszanych o różnych mianownikach

Odejmowanie ułamków i liczb mieszanych o różnych mianownikach Przedmowa Odejmowanie ułamków i liczb mieszanych o różnych mianownikach To opracowanie jest napisane z myślą o uczniach klas 4 szkół podstawowych którzy po raz pierwszy spotykają się z odejmowaniem ułamków

Bardziej szczegółowo