Wprowadzenie Zmienne Wyrażenia i operatory Komunikacja Instrukcje warunkowe Instrukcje iteracyjne Przykłady Bibliografia

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

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Podstawy Programowania Wykład trzeci: Instrukcje warunkowe i iteracyjne.

Pascal - wprowadzenie

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

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word

Wstęp do programowania. Różne różności

Podstawy Programowania C++

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Wstęp do programowania

Podstawy programowania

1 Podstawy c++ w pigułce.

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

LibreOffice Calc VBA

Programowanie w Turbo Pascal

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Programowanie w języku Python. Grażyna Koba

Algorytmika i Programowanie VBA 1 - podstawy

Programowanie Delphi obliczenia, schematy blokowe

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Podstawy programowania skrót z wykładów:

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Wstęp do informatyki- wykład 2

1 Podstawy c++ w pigułce.

Programowanie w języku C++ Grażyna Koba

Podstawy programowania w języku C

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

Luty 2001 Algorytmy (7) 2000/2001

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

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

Odczyt danych z klawiatury Operatory w Javie

Podstawy programowania

Instrukcja standardowa Writeln

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Zapis algorytmów: schematy blokowe i pseudokod 1

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

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

WIADOMOŚCI WSTĘPNE WPROWADZENIE DO JĘZYKA TURBO PASCAL. Klawisze skrótów. {to jest właśnie komentarz, moŝna tu umieścić dowolny opis}

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

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

1. Operacje logiczne A B A OR B

Zasady Programowania Strukturalnego

Cw.12 JAVAScript w dokumentach HTML

Algorytmy i struktury danych. Wykład 4

Powtórka algorytmów. Wprowadzenie do języka Java.

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Przykład programu Rozwiązanie równania postaci:

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

Język programowania PASCAL

Podstawy programowania w języku C i C++

Podstawy programowania

Podstawy programowania

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

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

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Język C zajęcia nr 5

Język ludzki kod maszynowy

Algorytm. a programowanie -

Struktura pliku projektu Console Application

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

Podstawy i języki programowania

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Języki programowania zasady ich tworzenia

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Programowanie w języku Pascal

Wykład 2 Składnia języka C# (cz. 1)

2 Przygotował: mgr inż. Maciej Lasota

P R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne

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.

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Wprowadzenie do języka Pascal

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

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

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Programowanie strukturalne i obiektowe

Instrukcje iteracyjne (pętle)

Język C zajęcia nr 11. Funkcje

Podstawy i języki programowania

Wstęp do programowania

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH

Informatyka 1. Przetwarzanie tekstów

Programowanie w C/C++ Instrukcje - konstrukcje powtórka. LABORKA Piotr Ciskowski

Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

PASCAL Kompendium. Środowisko TURBO PASCAL Skróty klawiaturowe. Edycja kodu Pomoc spis treści. Skopiowanie zaznaczonego bloku do schowka

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Kiedy i czy konieczne?

Transkrypt:

Program Rozwojowy Potencjału Dydaktycznego Politechniki Świętokrzyskiej w Kielcach: kształce na miarę sukcesu. Priorytet IV Szkolnictwo wyższe i nauka. Działa 4.1 Wzmoc i rozwój potencjału dydaktycznego uczelni oraz zwiększe liczby absolwentów kierunków o kluczowym znaczeniu dla gospodarki opartej na wiedzy. Poddziała 4.1.1 Wzmoc potencjału dydaktycznego uczelni. Umowa: uda-pokl.040.01.01-00-175/08-00 Materiały dydaktyczne Programowa w języku wysokiego poziomu na przykładzie języka Pascal - część 1 (Moduł nr 10) zrealizowane do Zadania 9 Autorzy: mgr inż. Arkadiusz Chrobot, mgr inż. Karol Wieczorek, mgr inż. Robert Tomaszewski

Programowa w języku wysokiego poziomu na przykładzie języka Pascal - część 1 Arkadiusz Chrobot Robert Tomaszewski Karol Wieczorek Katedra Informatyki, Politechnika Świętokrzyska w Kielcach

Spis treści 1 Wprowadze Najprostszy program 2 Zmienne Pojęcie zmiennej Typy danych Deklarowa zmiennych 3 Wyrażenia i operatory Instrukcja przypisania Operatory 4 Komunikacja Obsługa klawiatury Obsługa ekranu 5 Instrukcje warunkowe Instrukcja If..Else Instrukcja CASE 6 Instrukcje iteracyjne Pętla FOR Pętla WHILE i REPEAT Instrukcje dodatkowe 7 Przykłady 8 Bibliografia

Uwagi Animacje działają tylko wtedy, kiedy zawartość pliku PDF jest oglądana na pełnym ekra. Animowane slajdy umieszczono w sekcjach materiałów zawierających opis instrukcji przypisania, objaśnia działania operatorów binarnych i przykładowe programy. Animacje uruchamiane są po naciśnięciu spacji (program Adobe Reader). Opóź między poszczególnymi klatkami animacji wynosi 2 sekundy.

Wprowadze Język Pascal jest językiem programowania wysokiego poziomu. Oznacza to, że zapis algorytmu w tym języku przypomina zapis w języku naturalnym (dokładj w języku angielskim). Program w iej postaci jest zrozumiały bezpośrednio dla komputera i musi zostać przetłumaczony przy pomocy kompilatora na język maszynowy. Program zapisany w języku wysokiego poziomu nazywamy kodem źródłowym i zapisujemy w pliku z rozszerzem pas.

Najprostszy program Najprostszy program w języku Pascal Najprostszy program w języku Pascal składa się z dwóch instrukcji: Kod źródłowy end. Powyższe dwie instrukcje tworzą blok główny programu. Słowo rozpoczyna blok instrukcji, które muszą zostać przez program wykonane, a słowo end zakończone kropką oznacza koc programu. Przed słowem kluczowym może występować nagłówek programu składający się ze słowa program za którym umieszczana jest nazwa programu zakończona średnikiem (;).

Pojęcie zmiennej Zmienna Zmienna jest obszarem pamięci w którym przechowywane są dane przetwarzane przez program. To, ile miejsca zmienna zajmuje w pamięci komputera i jakiego rodzaju informacje przechowuje określa typ zmiennej.

Typy danych Typy predefiniowane Typy predefiniowane to typy danych, które zostały zdefiniowane dla określonego języka programowania i z których może bezpośrednio korzystać programista piszący w tym języku. W języku Pascal są one następujące: Nazwa typu Rozmiar Zakres wartości Zapis boolean 1 bajt FALSE TRUE 00h i FFh byte 1 bajt 0 255 NKB shortint 1 bajt -128 127 U2 word 2 bajty 0 65535 NKB integer 2 bajty -32768 32767 U2 longint 4 bajty -2147483348 2147483347 U2 Wymienione w tabeli typy, wraz z typem char, który jest opisany w następnej tabeli, tworzą zbiór typów porządkowych. Każda wartość należąca do ich typów ma swojego poprzednika i następnika.

Typy danych Typy predefiniowane ciąg dalszy Nazwa Rozmiar Zakres wartości Zapis typu real 6 bajtów 2.9 e 39 1.7 e 38 format zmiennoprzecinkowy single 4 bajty 1.5 e 45 3.4 e 38 format zmiennoprzecinkowy double 8 bajtów 5.0 e 324 1.7 e 308 format zmiennoprzecinkowy extended 10 bajtów 3.4 e 4932 1.1 e 4932 format zmiennoprzecinkowy comp 8 bajtów 2 63 + 1 2 63 1 format zmiennoprzecinkowy char 1 bajt #0 #255 ASCII string 256 bajtów maksymal 255 znaków ASCII

Deklarowa zmiennych Deklaracja zmiennej Zanim będziemy mogli użyć zmiennej w programie musimy ją zadeklarować, czyli określić jaką będzie miała nazwę oraz typ. W języku Pascal deklaracje zmiennych są umieszczane w części programu rozpoczynającej się słowem kluczowym var. Ta część występuje przed blokiem głównym programu. Nazwa zmiennej (inaczej identyfikator) może się zaczynać cyfrą ani zawierać znaków innych niż litery lub cyfry, poza znakiem podkreślenia ( ). Liczba znaków w identyfikatorze jest ograniczona, ale tylko pierwsze 63 są brane przez kompilatory pod uwagę. Powyższe uwagi dotyczą wszystkich identyfikatorów w języku Pascal. Deklaracja zmiennej v a r x : byte ; end. Tak zadeklarowaną zmienną o nazwie x nazywamy zmienną globalną i ma ona wartość początkową równą zero.

Deklarowa zmiennych Deklaracja zmiennej Jeśli chcemy zadeklarować kilka zmiennych tego samego typu, to zamiast deklarować każdą z nich z osobna możemy postąpić następująco: Deklaracja kilku zmiennych tego samego typu var x, y, z : s t r i n g ; end. Nazwy zmiennych (i innych elementów programu) muszą być unikatowe, mogą się powtarzać.

Deklarowa zmiennych Zmienne zainicjalizowane i stałe Jeśli chcemy, aby zmienna globalna miała wartość początkową inną niż zero, to możemy ją zadeklarować w części programu zaczynającej się słowem kluczowym const. Zazwyczaj ta część programu służy do definiowania stałych, czyli nazw dla określonych wartości. W przykładzie, w pierwszym wierszu po słowie const umieszczono deklarację zmiennej zainicjalizowanej o nazwie x i typie byte, a w drugim wierszu umieszczono definicję stałej o nazwie e. Deklaracja zmiennej zainicjalizowanej i definicja stałej c o n s t x : byte = 1 ; e = 2. 7 1 8 ; end. Część const programu może występować przed sekcją var lub po j, o ile ta ostatnia korzysta ze stałych zdefiniowanych w const.

Instrukcja przypisania Instrukcja przypisania Instrukcja przypisania służy do nadawania zmiennej wartości. W języku Pascal jest ona zapisywana przy pomocy dwóch znaków (:=). Po lewej stro instrukcji przypisania umieszczamy nazwę zmiennej, której chcemy przypisać wartość, po prawej zaś wspomnianą wartość, która może być zapisana wprost lub za pomocą wyrażenia, stałej lub w innej zmiennej. Użycie instrukcji przypisania const stala = 2; var x,y:byte; x:=stala; y:=3; y:=x; end. Początkowy stan zmiennych: x = 0, y = 0

Instrukcja przypisania Instrukcja przypisania Instrukcja przypisania służy do nadawania zmiennej wartości. W języku Pascal jest ona zapisywana przy pomocy dwóch znaków (:=). Po lewej stro instrukcji przypisania umieszczamy nazwę zmiennej, której chcemy przypisać wartość, po prawej zaś wspomnianą wartość, która może być zapisana wprost lub za pomocą wyrażenia, stałej lub w innej zmiennej. Użycie instrukcji przypisania const stala = 2; var x,y:byte; x:=stala; y:=3; y:=x; end. Stan zmiennych po wykonaniu instrukcji: x = 2, y = 0

Instrukcja przypisania Instrukcja przypisania Instrukcja przypisania służy do nadawania zmiennej wartości. W języku Pascal jest ona zapisywana przy pomocy dwóch znaków (:=). Po lewej stro instrukcji przypisania umieszczamy nazwę zmiennej, której chcemy przypisać wartość, po prawej zaś wspomnianą wartość, która może być zapisana wprost lub za pomocą wyrażenia, stałej lub w innej zmiennej. Użycie instrukcji przypisania const stala = 2; var x,y:byte; x:=stala; y:=3; y:=x; end. Stan zmiennych po wykonaniu instrukcji: x = 2, y = 3

Instrukcja przypisania Instrukcja przypisania Instrukcja przypisania służy do nadawania zmiennej wartości. W języku Pascal jest ona zapisywana przy pomocy dwóch znaków (:=). Po lewej stro instrukcji przypisania umieszczamy nazwę zmiennej, której chcemy przypisać wartość, po prawej zaś wspomnianą wartość, która może być zapisana wprost lub za pomocą wyrażenia, stałej lub w innej zmiennej. Użycie instrukcji przypisania const stala = 2; var x,y:byte; x:=stala; y:=3; y:=x; end. Stan zmiennych po wykonaniu instrukcji: x = 3, y = 3

Instrukcja przypisania Zgodność typów zmiennych Przykład z poprzedgo slajdu pokazuje, że można przypisać zmiennej wartość innej zmiennej tego samego typu. Takie przypisania są możliwe między zmiennymi różnych typów, ale tylko pod pewnymi warunkami. Załóżmy, że dane są dwie zmienne. Pierwsza nazywa się x i jest typu T1, a druga nazywa się y i jest typu T2. Przypisa x:=y jest poprawne jeśli spełniony jest któryś z następujących warunków: typy T1 i T2 są identyczne, typy T1 i T2 są typami zgodnymi, a wartość zmiennej y jest jedną z możliwych wartości w typie T1, typy T1 i T2 są typami zmiennoprzecinkowymi i wartość zmiennej y po zaokrągleniu jest jedną z możliwych wartości w typie T1, typ T1 jest typem zmiennoprzecinkowym, a typ T2 jest typem całkowitym, T1 i T2 są typami całkowitymi, T1 jest typem łańcuchowym (string), a T2 jest typem znakowym (char).

Instrukcja przypisania Konwersja typów Jeśli żaden z wymienionych warunków jest spełniony, to koczna jest konwersja typów wartości. W przypadku zmiennych typów porządkowych możliwa jest konwersja według następującego wzorca: Konwersja typów porządkowych zmienna1:=nazwa typu(zmienna2); Załóżmy, że zmienna x jest typu integer i że chcemy zapisać w j wartość A, która jest oczywiście znakiem. Nie możemy tego zrobić bezpośrednio, ale możemy dokonać następującej konwersji: Przykład konwersji typów porządkowych x:=integer( A ); W zmiennej x zosta zapisana wartość 65, czyli kod ASCII litery A.

Instrukcja przypisania Konwersja typów Inne konwersje stety mogą być wykonane w prosty sposób. Musimy się posłużyć odpowiednimi funkcjami i procedurami. Pojęcie funkcji i procedury zosta wyjaśnione w następnym module, ale już teraz możemy ich użyć do konwersji typów wartości. funkcja ord pozwala zamienić znak na liczbę naturalną, która jest jego kodem ASCII, np. x:=ord( a ); funkcja chr dokonuje konwersji w odwrotnym kierunku np. y:=chr(97); funkcja trunc zwraca część całkowitą liczby rzeczywistej jako wartość typu integer, np. z:=trunc(2.5); - z otrzymuje wartość 2. funkcja round zaokrągla liczbę rzeczywistą do najbliższej całkowitej i zwraca ją jako wartość typu integer, np. z:=round(2.5); - z otrzymuje wartość 3.

Instrukcja przypisania Konwersja typów Do konwersji łańcuchów znaków na liczby lub odwrot możemy użyć następujących procedur: procedura val dokonuje konwersji łańcucha znaków na liczbę, np. val( 25.5,liczba,blad), 25.5 to znaki, które mają zostać zamienione na liczbę, liczba jest zmienną (w tym wypadku typu real lub podobnego, ale może być rówż typu integer lub kompatybilnego), w której będzie zapisany wynik konwersji liczba, natomiast blad jest zmienną typu integer, w której umieszczany jest kod zakończenia konwersji. Jeśli jej wartość jest równa 0, to znaczy, że konwersja się powiodła, jeśli, to udało się zamienić łańcucha znaków na liczbę, a wartość zmiennej blad wskazuje pozycję znaku w łańcuchu, który umożliwił dokonania konwersji. procedura str dokonuje zamiany wartości liczbowej na łańcuch znaków np. str(11.58:4:2,nap), nap jest zmienną typu string, 11.58, jest liczbą, którą trzeba zamienić na napis, natomiast liczby po dwukropkach określają precyzję konwersji; w tym wypadku liczba będzie składała się z czterech cyfr, przy czym dwa miejsca są przeznaczone na część ułamkową.

Operatory Operatory Operatory służą do budowania wyrażeń, których wartości możemy przypisywać do zmiennych określonych typów. Podob jak w matematyce każdy z operatorów ma określony priorytet, który określa jego kolejność wykonania w wyrażeniu. Zmianę priorytetów operatorów możemy uzyskać stosując nawiasy okrągłe. Tabela umieszczona poniżej przedstawia podstawowe operatory języka Pascal. Operator Priorytet Kategoria +,-,not 1 (najwyższy) jednoargumentowe *,/,div,mod,and,shl,shr 2 multiplikatywne +,-,or,xor 3 addytywne =,<>,<,>,<=,>= 4 (najniższy) relacyjne

Operatory Operatory arytmetyczne Jednoargumentowy operator - zmienia znak liczby na przeciwny, a operator + jest jego uzupełm i w zasadzie nic wykonuje. Operator div wykonuje dziele całkowite, tzn. zwraca zawsze liczbę całkowitą, np. wyraże 5 div 2 będzie miało wartość 2. Jeśli chcemy uzyskać wynik, który jest liczbą rzeczywistą, to musimy użyć operatora /. Operator mod zwraca resztę z dzielenia, czyli np. wyraże 5 mod 2 będzie miało wartość 1. Operatory mod i div działają wyłącz na liczbach całkowitych.

Operatory Operatory binarne Do operatorów binarnych zaliczają się operatory and, or, xor, not oraz shl i shr. Cztery pierwsze pełnią rówż funkcję operatorów logicznych, poważ zastosowane do wartości typu boolean (TRUE i FALSE) dają rezultaty tego samego typu. Ich działa zosta zilustrowane na następnych slajdach. Operator shl odpowiada mnożeniu wartości całkowitej przez potęgę 2, a operator shr odpowiada dzieleniu całkowitemu przez potęgę dwójki. Wszystkie wymienione operatory mogą działać jedy na wartościach logicznych (typu boolean) i na liczbach całkowitych.

Operatory Operator and Operator and jest operatorem dwuargumentowym, który działa na odpowiednich parach bitów swoich argumentów. Jeśli oba bity w danej parze mają wartość jeden, to bit w wyniku, znajdujący się na tej samej pozycji co rozważana para bitów w argumentach, otrzymuje wartość jeden. W przeciwnym przypadku ten bit uzyskuje wartość zero. Przykład ilustruje użycie operatora and dla wartości ośmiobitowych. Operator and - przykład 5 and 3 = 00000101 and 00000011 =

Operatory Operator and Operator and jest operatorem dwuargumentowym, który działa na odpowiednich parach bitów swoich argumentów. Jeśli oba bity w danej parze mają wartość jeden, to bit w wyniku, znajdujący się na tej samej pozycji co rozważana para bitów w argumentach, otrzymuje wartość jeden. W przeciwnym przypadku ten bit uzyskuje wartość zero. Przykład ilustruje użycie operatora and dla wartości ośmiobitowych. Operator and - przykład 5 and 3 = 00000101 and 00000011 = 0

Operatory Operator and Operator and jest operatorem dwuargumentowym, który działa na odpowiednich parach bitów swoich argumentów. Jeśli oba bity w danej parze mają wartość jeden, to bit w wyniku, znajdujący się na tej samej pozycji co rozważana para bitów w argumentach, otrzymuje wartość jeden. W przeciwnym przypadku ten bit uzyskuje wartość zero. Przykład ilustruje użycie operatora and dla wartości ośmiobitowych. Operator and - przykład 5 and 3 = 00000101 and 00000011 = 00

Operatory Operator and Operator and jest operatorem dwuargumentowym, który działa na odpowiednich parach bitów swoich argumentów. Jeśli oba bity w danej parze mają wartość jeden, to bit w wyniku, znajdujący się na tej samej pozycji co rozważana para bitów w argumentach, otrzymuje wartość jeden. W przeciwnym przypadku ten bit uzyskuje wartość zero. Przykład ilustruje użycie operatora and dla wartości ośmiobitowych. Operator and - przykład 5 and 3 = 00000101 and 00000011 = 000

Operatory Operator and Operator and jest operatorem dwuargumentowym, który działa na odpowiednich parach bitów swoich argumentów. Jeśli oba bity w danej parze mają wartość jeden, to bit w wyniku, znajdujący się na tej samej pozycji co rozważana para bitów w argumentach, otrzymuje wartość jeden. W przeciwnym przypadku ten bit uzyskuje wartość zero. Przykład ilustruje użycie operatora and dla wartości ośmiobitowych. Operator and - przykład 5 and 3 = 00000101 and 00000011 = 0000

Operatory Operator and Operator and jest operatorem dwuargumentowym, który działa na odpowiednich parach bitów swoich argumentów. Jeśli oba bity w danej parze mają wartość jeden, to bit w wyniku, znajdujący się na tej samej pozycji co rozważana para bitów w argumentach, otrzymuje wartość jeden. W przeciwnym przypadku ten bit uzyskuje wartość zero. Przykład ilustruje użycie operatora and dla wartości ośmiobitowych. Operator and - przykład 5 and 3 = 00000101 and 00000011 = 00000

Operatory Operator and Operator and jest operatorem dwuargumentowym, który działa na odpowiednich parach bitów swoich argumentów. Jeśli oba bity w danej parze mają wartość jeden, to bit w wyniku, znajdujący się na tej samej pozycji co rozważana para bitów w argumentach, otrzymuje wartość jeden. W przeciwnym przypadku ten bit uzyskuje wartość zero. Przykład ilustruje użycie operatora and dla wartości ośmiobitowych. Operator and - przykład 5 and 3 = 00000101 and 00000011 = 000000

Operatory Operator and Operator and jest operatorem dwuargumentowym, który działa na odpowiednich parach bitów swoich argumentów. Jeśli oba bity w danej parze mają wartość jeden, to bit w wyniku, znajdujący się na tej samej pozycji co rozważana para bitów w argumentach, otrzymuje wartość jeden. W przeciwnym przypadku ten bit uzyskuje wartość zero. Przykład ilustruje użycie operatora and dla wartości ośmiobitowych. Operator and - przykład 5 and 3 = 00000101 and 00000011 = 0000000

Operatory Operator and Operator and jest operatorem dwuargumentowym, który działa na odpowiednich parach bitów swoich argumentów. Jeśli oba bity w danej parze mają wartość jeden, to bit w wyniku, znajdujący się na tej samej pozycji co rozważana para bitów w argumentach, otrzymuje wartość jeden. W przeciwnym przypadku ten bit uzyskuje wartość zero. Przykład ilustruje użycie operatora and dla wartości ośmiobitowych. Operator and - przykład 5 and 3 = 00000101 and 00000011 = 00000001

Operatory Operator and Operator and jest operatorem dwuargumentowym, który działa na odpowiednich parach bitów swoich argumentów. Jeśli oba bity w danej parze mają wartość jeden, to bit w wyniku, znajdujący się na tej samej pozycji co rozważana para bitów w argumentach, otrzymuje wartość jeden. W przeciwnym przypadku ten bit uzyskuje wartość zero. Przykład ilustruje użycie operatora and dla wartości ośmiobitowych. Operator and - przykład 5 and 3 = 00000101 and 00000011 = 00000001 = 1

Operatory Operator or Operator or działa podob jak and, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy odpowiednia para bitów w argumentach jest równa zero. W przeciwnym przypadku umieszcza jeden. Operator or - przykład 5 or 3 = 00000101 or 00000011 =

Operatory Operator or Operator or działa podob jak and, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy odpowiednia para bitów w argumentach jest równa zero. W przeciwnym przypadku umieszcza jeden. Operator or - przykład 5 or 3 = 00000101 or 00000011 = 0

Operatory Operator or Operator or działa podob jak and, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy odpowiednia para bitów w argumentach jest równa zero. W przeciwnym przypadku umieszcza jeden. Operator or - przykład 5 or 3 = 00000101 or 00000011 = 00

Operatory Operator or Operator or działa podob jak and, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy odpowiednia para bitów w argumentach jest równa zero. W przeciwnym przypadku umieszcza jeden. Operator or - przykład 5 or 3 = 00000101 or 00000011 = 000

Operatory Operator or Operator or działa podob jak and, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy odpowiednia para bitów w argumentach jest równa zero. W przeciwnym przypadku umieszcza jeden. Operator or - przykład 5 or 3 = 00000101 or 00000011 = 0000

Operatory Operator or Operator or działa podob jak and, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy odpowiednia para bitów w argumentach jest równa zero. W przeciwnym przypadku umieszcza jeden. Operator or - przykład 5 or 3 = 00000101 or 00000011 = 00000

Operatory Operator or Operator or działa podob jak and, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy odpowiednia para bitów w argumentach jest równa zero. W przeciwnym przypadku umieszcza jeden. Operator or - przykład 5 or 3 = 00000101 or 00000011 = 000001

Operatory Operator or Operator or działa podob jak and, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy odpowiednia para bitów w argumentach jest równa zero. W przeciwnym przypadku umieszcza jeden. Operator or - przykład 5 or 3 = 00000101 or 00000011 = 0000011

Operatory Operator or Operator or działa podob jak and, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy odpowiednia para bitów w argumentach jest równa zero. W przeciwnym przypadku umieszcza jeden. Operator or - przykład 5 or 3 = 00000101 or 00000011 = 00000111

Operatory Operator or Operator or działa podob jak and, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy odpowiednia para bitów w argumentach jest równa zero. W przeciwnym przypadku umieszcza jeden. Operator or - przykład 5 or 3 = 00000101 or 00000011 = 00000111 = 7

Operatory Operator xor Operator xor działa podob jak dwa poprzed operatory, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy bity w odpowiedj parze mają ie same wartości. W przeciwnym przypadku umieszcza jeden. Operator xor - przykład 5 xor 3 = 00000101 xor 00000011 =

Operatory Operator xor Operator xor działa podob jak dwa poprzed operatory, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy bity w odpowiedj parze mają ie same wartości. W przeciwnym przypadku umieszcza jeden. Operator xor - przykład 5 xor 3 = 00000101 xor 00000011 = 0

Operatory Operator xor Operator xor działa podob jak dwa poprzed operatory, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy bity w odpowiedj parze mają ie same wartości. W przeciwnym przypadku umieszcza jeden. Operator xor - przykład 5 xor 3 = 00000101 xor 00000011 = 00

Operatory Operator xor Operator xor działa podob jak dwa poprzed operatory, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy bity w odpowiedj parze mają ie same wartości. W przeciwnym przypadku umieszcza jeden. Operator xor - przykład 5 xor 3 = 00000101 xor 00000011 = 000

Operatory Operator xor Operator xor działa podob jak dwa poprzed operatory, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy bity w odpowiedj parze mają ie same wartości. W przeciwnym przypadku umieszcza jeden. Operator xor - przykład 5 xor 3 = 00000101 xor 00000011 = 0000

Operatory Operator xor Operator xor działa podob jak dwa poprzed operatory, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy bity w odpowiedj parze mają ie same wartości. W przeciwnym przypadku umieszcza jeden. Operator xor - przykład 5 xor 3 = 00000101 xor 00000011 = 00000

Operatory Operator xor Operator xor działa podob jak dwa poprzed operatory, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy bity w odpowiedj parze mają ie same wartości. W przeciwnym przypadku umieszcza jeden. Operator xor - przykład 5 xor 3 = 00000101 xor 00000011 = 000001

Operatory Operator xor Operator xor działa podob jak dwa poprzed operatory, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy bity w odpowiedj parze mają ie same wartości. W przeciwnym przypadku umieszcza jeden. Operator xor - przykład 5 xor 3 = 00000101 xor 00000011 = 0000011

Operatory Operator xor Operator xor działa podob jak dwa poprzed operatory, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy bity w odpowiedj parze mają ie same wartości. W przeciwnym przypadku umieszcza jeden. Operator xor - przykład 5 xor 3 = 00000101 xor 00000011 = 00000110

Operatory Operator xor Operator xor działa podob jak dwa poprzed operatory, ale na odpowiedj pozycji wyniku umieszcza zero wtedy i tylko wtedy, gdy bity w odpowiedj parze mają ie same wartości. W przeciwnym przypadku umieszcza jeden. Operator xor - przykład 5 xor 3 = 00000101 xor 00000011 = 00000110 = 6

Operatory Operator not Operator not jest operatorem jednoargumentowym, który zamienia wartości kolejnych bitów swojego argumentu na przeciwne, tzn. jedynkę na zero i odwrot. Operator not - przykład not 5 = not 00000101 =

Operatory Operator not Operator not jest operatorem jednoargumentowym, który zamienia wartości kolejnych bitów swojego argumentu na przeciwne, tzn. jedynkę na zero i odwrot. Operator not - przykład not 5 = not 00000101 = 1

Operatory Operator not Operator not jest operatorem jednoargumentowym, który zamienia wartości kolejnych bitów swojego argumentu na przeciwne, tzn. jedynkę na zero i odwrot. Operator not - przykład not 5 = not 00000101 = 11

Operatory Operator not Operator not jest operatorem jednoargumentowym, który zamienia wartości kolejnych bitów swojego argumentu na przeciwne, tzn. jedynkę na zero i odwrot. Operator not - przykład not 5 = not 00000101 = 111

Operatory Operator not Operator not jest operatorem jednoargumentowym, który zamienia wartości kolejnych bitów swojego argumentu na przeciwne, tzn. jedynkę na zero i odwrot. Operator not - przykład not 5 = not 00000101 = 1111

Operatory Operator not Operator not jest operatorem jednoargumentowym, który zamienia wartości kolejnych bitów swojego argumentu na przeciwne, tzn. jedynkę na zero i odwrot. Operator not - przykład not 5 = not 00000101 = 11111

Operatory Operator not Operator not jest operatorem jednoargumentowym, który zamienia wartości kolejnych bitów swojego argumentu na przeciwne, tzn. jedynkę na zero i odwrot. Operator not - przykład not 5 = not 00000101 = 111110

Operatory Operator not Operator not jest operatorem jednoargumentowym, który zamienia wartości kolejnych bitów swojego argumentu na przeciwne, tzn. jedynkę na zero i odwrot. Operator not - przykład not 5 = not 00000101 = 1111101

Operatory Operator not Operator not jest operatorem jednoargumentowym, który zamienia wartości kolejnych bitów swojego argumentu na przeciwne, tzn. jedynkę na zero i odwrot. Operator not - przykład not 5 = not 00000101 = 11111010

Operatory Operator not Operator not jest operatorem jednoargumentowym, który zamienia wartości kolejnych bitów swojego argumentu na przeciwne, tzn. jedynkę na zero i odwrot. Operator not - przykład not 5 = not 00000101 = 11111010 = 250

Operatory Operator shl Operator shl jest operatorem dwuargumenowym. Przesuwa on w lewo wartość binarną argumentu stojącego po jego lewej stro o tyle pozycji, ile wskazuje argument znajdujący się po jego prawej stro. Odpowiada to pomnożeniu wartości lewego argumentu przez potęgę dwójki, której wykładnik określa prawy argument. Operator shl - przykład 5 shl 2 = 00000101 shl 2 = 000010100 = 20 Wartość binarna jest przesuwana w ten sposób, że wartości bitów najstarszych w słowie są tracone, a wartości bitów najmłodszych wypełniane zerami.

Operatory Operator shr Operator shr działa podob do shl, ale wartość pierwszego argumentu jest przesuwana w prawo, a w lewo. Odpowiada to dzieleniu całkowitoliczbowemu przez potęgę dwójki, której wykładnik określa drugi argument. Operator shr - przykład 5 shr 2 = 00000101 shr 2 = 000000001 = 1

Operatory Operatory relacyjne Operatory relacyjne są dwuargumentowe i służą do porównywania wartości argumentu stojącego po ich lewej stro z wartością argumentu stojącego po ich prawej stro. Zwracają wartość typu boolean. Najczęściej stosuje się je do konstruowania warunków dla instrukcji warunkowych lub pętli, które będą opisane dalej. Można ich użyć że w wyrażeniu, którego wartość jest przypisywana zmiennej typu boolean. Operatory relacyjne - przykład a:= 5 >3; Używając tych operatorów należy pamiętać, aby pomylić operatora porównania (=) z instrukcją przypisania (:=), choć znak = używany jest w definiowaniu stałych i określaniu wartości zmiennych zainicjalizowanych. Operator <>jest operatorem różne, natomiast operatory większe lub równe i mjsze lub równe są zapisywane za pomocą dwóch znaków. Są to odpowiednio >= i <=.

Komunikacja z użytkownikiem W języku Pascal do podstawowej komunikacji z użytkownikiem (odczyt z klawiatury, wyświetle na ekra) służą procedury readln, write i writeln.

Obsługa klawiatury Procedura readln Procedura readln, wywołana bez parametrów, może służyć do wstrzymania wykonania programu do czasu, aż użytkownik naciś klawisz Enter. Przykład 1 - wstrzyma wykonania programu. readln; end. Nie jest to jedyne jej zastosowa. Można za jej pomocą nadać zmiennej wartość wprowadzoną z klawiatury przez użytkownika. Ta wartość musi być iego samego typu, jak typ zmiennej. Inaczej program zakończy się z krytycznym błędem. Wartość użytkownik zatwierdza naciśnięciem klawisza Enter. Załóżmy, że zmienna nazywa się a. Wywoła readln z tą zmienną jako parametrem ma następującą postać: readln(a);. Można też tej procedurze przekazać większą liczbę zmiennych rozdzielając je przecinkami. Użytkownik podaje wartości dla nich rozdzielając je spacjami i zatwierdzając klawiszem Enter. Ten sposób jednak jest polecany, bo może utrudniać obsługę programu.

Obsługa ekranu Procedury writeln i write Procedury write i writeln różnią się tylko jednym szczegółem działania - procedura writeln po wypisaniu informacji przenosi kursor do nowego wiersza ekranu, a procedura write tego robi. Obie procedury można wywołać z parametrem będącym łańcuchem znaków, które zostaną wypisane na ekra np. write( Krótki napis );. Można rówż wywołać je ze zmienną, której wartość wypiszą na ekra np. write(xy); lub też można połączyć te dwa sposoby - writeln( Wartość zmiennej xy:,xy);. Jeśli zmienna xy jest zmienną przechowującą liczby całkowite, to można określić ile miejsc na ekra powinno przypadać na wartość tej zmiennej - write( Wartość zmiennej xy,xy:4); (w tym wypadku 4 miejsca). Jeśli natomiast ta zmienna przechowywałaby liczby zmiennoprzecinkowe, to można określić dodatkowo liczbę miejsc przypadających na część ułamkową - write( Wartość zmiennej xy:, xy:4:2); (4 miejsca na całość, w tym dwa na część ułamkową). Można w końcu wypisać wartości kilku zmiennych przy pomocy jednego wywołania którejś z tych procedur - writeln( x =,x, y =,y, z =,z);.

Instrukcja If..Else IF..ELSE Jeśli w programie wykona lub wykona określonych instrukcji jest zależne od pewnych warunków, to możemy skorzystać z jednej z dwóch istjących w Pascalu konstrukcji językowych. Pierwszą z nich jest instrukcja warunkowa if. Oto jej schemat ogólny: Schemat IF..ELSE if warunek then instrukcja1 else instrukcja2; Ten zapis możemy przeczytać jako: jeśli warunek jest prawdziwy, to wykonaj instrukcja1, w przeciwnym przypadku wykonaj instrukcja2. Warunek może być zmienną typu boolean lub wyrażem, którego wartość ma i właś typ. Za pomocą schematu blokowego można przedstawić działa instrukcji warunkowej następująco:

Instrukcja If..Else Schemat blokowy IF..ELSE start Czy warunek spełniony? Instrukcja 1 Instrukcja 2 Stop

Instrukcja If..Else Instrukcja IF..ELSE ciąg dalszy Możliwe jest też pominięcie członu else tej instrukcji, wówczas ma ona postać: Schemat IF if warunek then instrukcja1; Zamiast złożonych instrukcji warunkowych, np.: if y < 0 then if z > 0 then if x <> 0 then a:=(y+2)/x else else else a:=1; można stosować prostszy zapis łącząc warunki za pomocą odpowiednich operatorów logicznych: if (y < 0) and (z > 0) and (x <> 0) then a:=(y+2)/x; if y >= 0 then a:=1;

Instrukcja CASE Instrukcja wielokrotnego wyboru CASE Jeśli w programie istje kilka grup instrukcji, których wykona bądź wykona zależy od wartości jednej zmiennej lub jednego wyrażenia, to możemy użyć instrukcji wielokrotnego wyboru, zamiast stosować instrukcję if. Ta instrukcja ma następującą postać ogólną: Postać ogólna instrukcji wielokrotnego wyboru case selektor of wartość 1 : instrukcja 1; wartość 2 : instrukcja 2; wartość 3 : instrukcja 3;... wartość n : instrukcja n; else instrukcja; end;

Instrukcja CASE CASE ciąg dalszy Wartości w tym wyrażeniu muszą mieścić się w typie selektora. Zamiast pojedynczej wartości możemy przy każdym przypadku umieścić ich grupę, rozdzielając je przecinkami lub podać ich zakres, np.: 0..5. Człon else można pominąć. Selektor jest zmienną typu porządkowego lub wyrażem mającym wartość tego typu. Oto schemat blokowy dla tej instrukcji:

Instrukcja CASE Schemat blokowy CASE start Selektor = 1? Instrukcja 1 Selektor = 2? Instrukcja 2 Instrukcja N stop

Pętla FOR Pętla FOR Jeśli zachodzi koczność kilkukrotnego wykonania instrukcji, to w języku Pascal możemy uczynić to za pomocą trzech dostępnych instrukcji iteracyjnych (pętli). Pierwsza z nich, pętla for, występuje w dwóch postaciach i pozwala powtórzyć instrukcję ustaloną liczbę razy. Oto schematy dla obu postaci tej instrukcji: Postać for for licznik:=wp to wk do instrukcja; for licznik:=wp downto wk do instrukcja; Zmienna licznik nazywana jest licznikiem lub zmienną sterującą pętli. Musi ona być typu porządkowego. W przypadku pierwszej postaci pętli wartość początkowa (wp) musi być mjsza lub równa wartości końcowej (wk). W przypadku drugiej postaci musi być większa lub równa. Oto schemat blokowy dla pierwszej postaci pętli for:

Pętla FOR Schemat blokowy pętli for start wp<wk? Licznik := wp; Instrukcja licznik=wk? stop licznik:=licznik+1 Instrukcja

Pętla WHILE i REPEAT Pętle o znanej liczbie powtórzeń Jeśli liczba powtórzeń pętli będzie zależna od spełnia bądź określonego warunku, to należy zastosować pętlę while lub repeat. Oto ogólne postaci tych pętli: Postać pętli while, oraz repeat while warunek do instrukcja; repeat instrukcja until warunek; Zapis pętli while możemy odczytać następująco: Dopóki spełniony jest warunek wykonuj instrukcję. Natomiast pętlę repeat następująco: Powtarzaj instrukcję, dopóki warunek jest spełniony. Oto schematy blokowe dla obu instrukcji:

Pętla WHILE i REPEAT Schemat blokowy dla pętli while start Warunek? Instrukcja stop

Pętla WHILE i REPEAT Schemat blokowy dla pętli repeat start Warunek? Instrukcja stop

Pętla WHILE i REPEAT WHILE, REPEAT c.d. Warunek w przypadku obu rodzajów pętli musi spełniać ie same wymagania, jak w przypadku instrukcji warunkowej. WAŻNE! Wewnątrz pętli musimy umieścić instrukcje, które zagwarantują, że warunek dla pętli while przesta kiedyś być prawdziwy, a dla pętli repeat sta się kiedyś prawdziwy. Wszystkie pętle można zagżdżać, tzn. wewnątrz pętli umieszczać inną pętlę, kocz tego samego typu.

Instrukcje dodatkowe Instrukcje continue i brake Instrukcji continue i break w języku Pascal używamy wyłącz w połączeniu z instrukcjami iteracyjnymi. Umieszczamy je wewnątrz pętli i wewnątrz instrukcji warunkowej. Jeśli warunek jest spełniony, to instrukcja break przerywa wykona pętli, natomiast instrukcja continue przerywa wykona bieżącej iteracji (powtórzenia) pętli i przechodzi do następnej. Przykład zastosowania continue for licznik:=1 to 100 do if (licznik mod 3)=0 then continue; writeln(licznik); end; Powyższa pętla wyświetli liczby z zakresu 1..100 (wartości licznika pętli), pomijając wartości podzielne przez 3. Działa instrukcji break zosta zaprezentowane późj, na przykładzie programu obliczającego Największy Wspólny Dzielnik.

Silnia wprowadze Program, którego działa zosta zaprezentowane na następnej planszy ilustruje oblicza silni. Wykorzystano w nim większość instrukcji opisanych wcześj. Definicja silni 0! = 1 1! = 1 2! = 1 2 = 2... n! = 1 2 3... (n 1) n Prezentując program przyjmujemy, że użytkownik podał wartość 3 dla zmiennej n.

Silnia program Schemat blokowy Kod źródłowy start program silnia; var sil:word; i,n:byte; sil:=1; readln(n); for i:=1 to n do sil:=sil*i; writeln( Wartość silni wynosi:,sil); readln; end. sil:=1 Wczytaj n i:=1 sil:=sil*i i:=i+1 i > n? Wypisz sil stop Wartości zmiennych i = 0 n = 0 sil = 0

Silnia program Schemat blokowy Kod źródłowy start program silnia; var sil:word; i,n:byte; sil:=1; readln(n); for i:=1 to n do sil:=sil*i; writeln( Wartość silni wynosi:,sil); readln; end. sil:=1 Wczytaj n i:=1 sil:=sil*i i:=i+1 i > n? Wypisz sil stop Wartości zmiennych i = 0 n = 0 sil = 1

Silnia program Schemat blokowy Kod źródłowy start program silnia; var sil:word; i,n:byte; sil:=1; readln(n); for i:=1 to n do sil:=sil*i; writeln( Wartość silni wynosi:,sil); readln; end. sil:=1 Wczytaj n i:=1 sil:=sil*i i:=i+1 i > n? Wypisz sil stop Wartości zmiennych i = 0 n = 3 sil = 1

Silnia program Schemat blokowy Kod źródłowy start program silnia; var sil:word; i,n:byte; sil:=1; readln(n); for i:=1 to n do sil:=sil*i; writeln( Wartość silni wynosi:,sil); readln; end. sil:=1 Wczytaj n i:=1 sil:=sil*i i:=i+1 i > n? Wypisz sil stop Wartości zmiennych i = 1 n = 3 sil = 1

Silnia program Schemat blokowy Kod źródłowy start program silnia; var sil:word; i,n:byte; sil:=1; readln(n); for i:=1 to n do sil:=sil*i; writeln( Wartość silni wynosi:,sil); readln; end. sil:=1 Wczytaj n i:=1 sil:=sil*i i:=i+1 i > n? Wypisz sil stop Wartości zmiennych i = 1 n = 3 sil = 1

Silnia program Schemat blokowy Kod źródłowy start program silnia; var sil:word; i,n:byte; sil:=1; readln(n); for i:=1 to n do sil:=sil*i; writeln( Wartość silni wynosi:,sil); readln; end. sil:=1 Wczytaj n i:=1 sil:=sil*i i:=i+1 i > n? Wypisz sil stop Wartości zmiennych i = 2 n = 3 sil = 1

Silnia program Schemat blokowy Kod źródłowy start program silnia; var sil:word; i,n:byte; sil:=1; readln(n); for i:=1 to n do sil:=sil*i; writeln( Wartość silni wynosi:,sil); readln; end. sil:=1 Wczytaj n i:=1 sil:=sil*i i:=i+1 i > n? Wypisz sil stop Wartości zmiennych i = 2 n = 3 sil = 1

Silnia program Schemat blokowy Kod źródłowy start program silnia; var sil:word; i,n:byte; sil:=1; readln(n); for i:=1 to n do sil:=sil*i; writeln( Wartość silni wynosi:,sil); readln; end. sil:=1 Wczytaj n i:=1 sil:=sil*i i:=i+1 i > n? Wypisz sil stop Wartości zmiennych i = 2 n = 3 sil = 2

Silnia program Schemat blokowy Kod źródłowy start program silnia; var sil:word; i,n:byte; sil:=1; readln(n); for i:=1 to n do sil:=sil*i; writeln( Wartość silni wynosi:,sil); readln; end. sil:=1 Wczytaj n i:=1 sil:=sil*i i:=i+1 i > n? Wypisz sil stop Wartości zmiennych i = 3 n = 3 sil = 2

Silnia program Schemat blokowy Kod źródłowy start program silnia; var sil:word; i,n:byte; sil:=1; readln(n); for i:=1 to n do sil:=sil*i; writeln( Wartość silni wynosi:,sil); readln; end. sil:=1 Wczytaj n i:=1 sil:=sil*i i:=i+1 i > n? Wypisz sil stop Wartości zmiennych i = 3 n = 3 sil = 2

Silnia program Schemat blokowy Kod źródłowy start program silnia; var sil:word; i,n:byte; sil:=1; readln(n); for i:=1 to n do sil:=sil*i; writeln( Wartość silni wynosi:,sil); readln; end. sil:=1 Wczytaj n i:=1 sil:=sil*i i:=i+1 i > n? Wypisz sil stop Wartości zmiennych i = 3 n = 3 sil = 6

Silnia program Schemat blokowy Kod źródłowy start program silnia; var sil:word; i,n:byte; sil:=1; readln(n); for i:=1 to n do sil:=sil*i; writeln( Wartość silni wynosi:,sil); readln; end. sil:=1 Wczytaj n i:=1 sil:=sil*i i:=i+1 i > n? Wypisz sil stop Wartości zmiennych i = 4 n = 3 sil = 6

Silnia program Schemat blokowy Kod źródłowy start program silnia; var sil:word; i,n:byte; sil:=1; readln(n); for i:=1 to n do sil:=sil*i; writeln( Wartość silni wynosi:,sil); readln; end. sil:=1 Wczytaj n i:=1 sil:=sil*i i:=i+1 i > n? Wypisz sil stop Wartości zmiennych i = 4 n = 3 sil = 6

Silnia program Schemat blokowy Kod źródłowy start program silnia; var sil:word; i,n:byte; sil:=1; readln(n); for i:=1 to n do sil:=sil*i; writeln( Wartość silni wynosi:,sil); readln; end. sil:=1 Wczytaj n i:=1 sil:=sil*i i:=i+1 i > n? Wypisz sil stop Wartości zmiennych i = 4 n = 3 sil = 6

Silnia program Schemat blokowy Kod źródłowy start program silnia; var sil:word; i,n:byte; sil:=1; readln(n); for i:=1 to n do sil:=sil*i; writeln( Wartość silni wynosi:,sil); readln; end. sil:=1 Wczytaj n i:=1 sil:=sil*i i:=i+1 i > n? Wypisz sil stop Wartości zmiennych i = 4 n = 3 sil = 6

Algorytm Euklidesa do obliczania NWD wprowadze W kolejnym przykładzie pokażemy działa programu, obliczającego największy wspólny dzielnik dla podanych dwóch liczb. W programie wykorzystano pętlę repeat. Schemat obliczania NWD algorytmem Euklidesa 1 Wpisz 2 liczby większe od zera 2 Zapamiętaj resztę z dzielenia większej liczby przez mjszą 3 Jeśli reszta z dzielenia równa 0, to mjsza liczba jest NWD, więc ją wypisz i zakończ program 4 Jeśli reszta z dzielenia różna od 0, przypisz większej liczbie mjszą, a mjszej resztę z dzielenia poprzednich liczb i wróc do pkt. 2. W naszym przykładzie zakładamy, że użytkownik podał liczby 12 i 9.

NWD program Kod źródłowy program NWD; var M,N,R:word; readln(n,m); repeat R:=M mod N; if R=0 then writeln( NWD =,N); break; end; M:=N; N:=R; until R=0; end. Schemat blokowy start Wczytaj M i N M N R M mod N N R R = 0? Wypisz N koc Wartości zmiennych M = 0 N = 0 R = 0

NWD program Kod źródłowy program NWD; var M,N,R:word; readln(n,m); repeat R:=M mod N; if R=0 then writeln( NWD =,N); break; end; M:=N; N:=R; until R=0; end. Schemat blokowy start Wczytaj M i N M N R M mod N N R R = 0? Wypisz N koc Wartości zmiennych M = 12 N = 9 R = 0

NWD program Kod źródłowy program NWD; var M,N,R:word; readln(n,m); repeat R:=M mod N; if R=0 then writeln( NWD =,N); break; end; M:=N; N:=R; until R=0; end. Schemat blokowy start Wczytaj M i N M N R M mod N N R R = 0? Wypisz N koc Wartości zmiennych M = 12 N = 9 R = 3

NWD program Kod źródłowy program NWD; var M,N,R:word; readln(n,m); repeat R:=M mod N; if R=0 then writeln( NWD =,N); break; end; M:=N; N:=R; until R=0; end. Schemat blokowy start Wczytaj M i N M N R M mod N N R R = 0? Wypisz N koc Wartości zmiennych M = 12 N = 9 R = 3

NWD program Kod źródłowy program NWD; var M,N,R:word; readln(n,m); repeat R:=M mod N; if R=0 then writeln( NWD =,N); break; end; M:=N; N:=R; until R=0; end. Schemat blokowy start Wczytaj M i N M N R M mod N N R R = 0? Wypisz N koc Wartości zmiennych M = 9 N = 3 R = 3

NWD program Kod źródłowy program NWD; var M,N,R:word; readln(n,m); repeat R:=M mod N; if R=0 then writeln( NWD =,N); break; end; M:=N; N:=R; until R=0; end. Schemat blokowy start Wczytaj M i N M N R M mod N N R R = 0? Wypisz N koc Wartości zmiennych M = 9 N = 3 R = 0

NWD program Kod źródłowy program NWD; var M,N,R:word; readln(n,m); repeat R:=M mod N; if R=0 then writeln( NWD =,N); break; end; M:=N; N:=R; until R=0; end. Schemat blokowy start Wczytaj M i N M N R M mod N N R R = 0? Wypisz N koc Wartości zmiennych M = 9 N = 3 R = 0

NWD program Kod źródłowy program NWD; var M,N,R:word; readln(n,m); repeat R:=M mod N; if R=0 then writeln( NWD =,N); break; end; M:=N; N:=R; until R=0; end. Schemat blokowy start Wczytaj M i N M N R M mod N N R R = 0? Wypisz N koc Wartości zmiennych M = 9 N = 3 R = 0

NWD program Kod źródłowy program NWD; var M,N,R:word; readln(n,m); repeat R:=M mod N; if R=0 then writeln( NWD =,N); break; end; M:=N; N:=R; until R=0; end. Schemat blokowy start Wczytaj M i N M N R M mod N N R R = 0? Wypisz N koc Wartości zmiennych M = 9 N = 3 R = 0

Zamiana liczby z kodu DEC na NKB wprowadze Ostatni przykład pokazuje sposób zamiany liczby dziesiętnej na binarną, korzystając z operatora bitowego, oraz z tego, że komputer zapisuje liczby w pamięci właś w postaci binarnej. Badamy każdy kolejny bit szukanej liczby, mnożąc ją logicz przez tzw. maskę bitową. Poniżej prezentujemy zastosowa iej operacji w praktyce: Bada bitów liczby 153 za pomocą maski bitowej 10011001 and 10000000 = 1 10011001 and 01000000 = 0 10011001 and 00100000 = 0 10011001 and 00010000 = 1 10011001 and 00001000 = 1 10011001 and 00000100 = 0 10011001 and 00000010 = 0 10011001 and 00000001 = 0 Przeprowadzimy symulację przykładowego programu właś dla liczby 153.

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 1 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 1 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 1 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 1 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 10 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 10 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 10 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 10 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 100 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 100 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 100 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 100 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 1001 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 1001 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 1001 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 1001 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 10011 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 10011 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 10011 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 10011 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 100110 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 100110 i:=i+1

DEC NKB program Schemat blokowy Kod programu start program dec2bin; var x:word; i:byte; readln(x); for i:=0 to 8 do if x and (256 shr i) = 0 then write( 0 ) else write( 1 ); end. stop Wczytaj x i:=0 i < 8 x and (2 8 shr i) = 0 Wypisz 0 Wyjście Wypisz 1 100110 i:=i+1