Prezentacja "Język programowania Pascal. Językowy edytor tekstu.". Podstawy programowania w Pascalu Prezentacja w Pascalu

Nikolaus Wirth Błędem byłoby sądzić, że Pascal jest językiem wyłącznie do nauki. Oto co N. Wirth (1984) powiedział na ten temat: „Twierdzi się, że Pascal został opracowany jako język do nauczania. Chociaż to stwierdzenie jest prawdziwe, to jednak jego wykorzystanie w treningu nie było jedynym celem. W zasadzie nie wierzę w powodzenie stosowania podczas szkolenia takich narzędzi i technik, których nie da się wykorzystać w rozwiązaniu niektórych praktycznych problemów. * *


Język programowania Pascal Od tego czasu Pascal staje się coraz bardziej popularny, nie tylko jako język do nauczania zasad programowania, ale także jako środek do tworzenia dość złożonych oprogramowanie. W swojej pierwotnej formie Pascal miał raczej ograniczone możliwości, ale rozszerzona wersja tego języka, Turbo Pascal, jest potężnym językiem programowania.


Dlaczego PASCAL? Język programowania Pascal został nazwany na cześć francuskiego naukowca Blaise'a Pascala, który wynalazł pierwszą mechaniczną maszynę liczącą w 1642 roku. Był to system współpracujących ze sobą kół zębatych, z których każde odpowiadało jednej cyfrze liczby dziesiętnej i zawierało cyfry od 0 do 9. Gdy koło wykonało pełny obrót, następne przesuwało się o jedną cyfrę. Maszyna Pascala była maszyną sumującą.


Podstawowe informacje o językach programowania Język to system znaków. Język komputerowy (język maszynowy) jest binarnym systemem znaków. Dlatego, aby komputer mógł zrozumieć napisany program, musi on zostać przetłumaczony na zrozumiały dla niego język. Ten proces tłumaczenia nazywa się tłumaczeniem.




Zintegrowane środowisko Turbo Pascal-7.0 Ogromną rolę w masowej dystrybucji Pascala odegrała firma Borland International. Udało jej się stworzyć słynne środowisko programistyczne Turbo. Był to ogromny krok naprzód w ułatwieniu procesu programowania. Dlaczego turbo? Turbo w tłumaczeniu z angielskiego slangu oznacza przyspieszenie. Kompilator wchodzący w skład Turbo Pascala bardzo szybko tłumaczy program z języka programowania na kody maszynowe.




Główne środki języka Symbole języka to elementarne znaki używane przy przygotowywaniu tekstów. Alfabet języka to zbiór takich symboli. Alfabet Turbo Pascala 7.0 zawiera: wszystkie wielkie i małe litery łacińskie cyfry arabskie (0 – 9) symbole + - * / =,. ; : _ () ( ) i inne słowa pomocnicze (zastrzeżone).


Aby zapisać polecenia, nazwy funkcji, terminy objaśniające Turbo Pascal 7.0, istnieje zestaw ściśle określonych słów, które nazywane są pomocniczymi lub zastrzeżonymi (są to angielskie skróty mnemotechniczne). Słowa funkcyjne dzielą się na trzy grupy: operatory (READ, WRITELN itp.) nazwy funkcji (SIN, COS itp.) słowa kluczowe (VAR, BEGIN, END itp.) Podstawowe cechy języka


Nazwa wartości jest jej oznaczeniem, jest to słowo złożone z liter, cyfr i podkreśleń, rozpoczynające się od litery. Liczby: całkowite, rzeczywiste: stałoprzecinkowe (-1,23; 654,2), zmiennoprzecinkowe (2, 437,). Sześć operacji: + dodawanie, - odejmowanie, / dzielenie, * mnożenie, mod znajdowanie reszty, div dzielenie całkowite.


Wyrażenie arytmetyczne jest zbudowane z nazw, liczb, znaków operacji arytmetycznych, funkcji matematycznych. Nawiasy są używane do wskazania kolejności działań. Do podniesienia do kwadratu używany jest zapis sqr(x). Aby wyodrębnić pierwiastek kwadratowy, używana jest notacja sqrt(x). Moduł jest oznaczony jako abs(x).


Operator przypisania Nazwa zmiennej:= wyrażenie arytmetyczne. x:= 3,24 lub x:= x+4. Typ zmiennej 1. Jeśli zmienna po lewej stronie jest typu rzeczywistego, to wyrażenie arytmetyczne może być typu całkowitego lub rzeczywistego. 2. Jeśli zmienna po lewej stronie jest typu całkowitego, to wyrażenie arytmetyczne jest tylko liczbą całkowitą.


Struktura programu w Pascalu Część 1 - opis danych i operatorów. Część 2 - blok programowy. Ogólny widok programu: Program (nazwa programu) etykieta (lista etykiet) const (lista wartości stałych) typ (opisy złożonych typów danych) var (opisy danych programu) begin (początek bloku programu) (algorytm) koniec. (koniec programu)


Nazwa programu: nie więcej niż 8 znaków, zaczyna się od litery. koniec z kropką. Część opisowa składa się z 4 sekcji: etykiety, stałe, nazwy i typy zmiennych. var nazwa i typ zmiennej: integer (integer), real (real). Na przykład: var i, j: liczba całkowita; x:rzeczywisty; Opis każdego typu kończy się średnikiem. Blok programu zawiera operatory opisujące algorytm rozwiązania problemu.


Instrukcje wejścia i wyjścia: read (lista nazw) - zatrzymuje program i oczekuje na wpisanie przez użytkownika liczb na klawiaturze (oddzielonych spacją) i naciśnięcie ENTER. Na przykład: czytaj(i, j); Po działaniu tego operatora kursor znajduje się za ostatnią liczbą, ale nie jest tłumaczony na nową linię. Aby przenieść kursor do nowej linii po wprowadzeniu danych, użyj instrukcji readln(lista nazw). write (lista wyjściowa) - Zapisuje dane na ekranie. Lista wyników - oddzielone przecinkami nazwy wyników obliczeń oraz teksty objaśniające w apostrofach. Na przykład: napisz(x=, x); Liczba stałoprzecinkowa zostanie wydrukowana na ekranie. Na przykład: napisz(x=, x:6:2); na ekranie pojawi się liczba 6 cyfr, z czego dwie po przecinku, (x =). Kursor jest przenoszony do nowej linii przez pusty operator wyjściowy writeln. readln pusty operator wejściowy






Praca w systemie Turbo Pascal Alt + F10 - menu Plik - Nowy - utwórz nowy plik Enter - należy umieścić na końcu każdej linii Ctrl + Y - usuń linię Enter - wstaw linię Aby uruchomić program, wybierz Uruchom w menu Translator - tłumaczy program z języka Pascal na język maszynowy i szuka błędów składniowych. 1. Jeśli zostaną znalezione błędy, edytor powróci, kursor wskaże błąd. 2.Jeżeli nie zostaną znalezione żadne błędy, program jest wykonywany










Czasami po słowach THEN i ELSE musisz wykonać nie jedną, ale kilka instrukcji. Następnie te operatory są ujęte w nawiasy kwadratowe. Nawias otwierający to słowo BEGIN, nawias zamykający to słowo END. Przed słowem ELSE nie ma średnika. Zaleca się, aby każda para POCZĄTEK - KONIEC była zapisana w jednej kolumnie. JEŚLI warunek TO rozpocznij instrukcję 1; operator 2; instrukcja N koniec ELSE początek instrukcja 1; operator 2; koniec operatora M ;




Program E3; var a,b: liczba całkowita; zacznij pisać (wprowadź dwie liczby całkowite oddzielone spacją, a następnie naciśnij); odczytln(a,b); jeśli mod 2 = 0 to writeln (a jest parzyste) else writeln (a jest nieparzyste); jeśli b mod 2 = 0 to writeln (b - parzyste) else writeln (b - nieparzyste); przeczytaj koniec.


3 if a>0 6 if a 0 6 if a 0 6 if a 0 6 if a0 6 if a title="3 if a>0 6 if a


Program E31; var a, y: rzeczywisty; rozpocznij pisanie (wprowadź numer, a następnie naciśnij); czytajln(a); jeśli a >0 to y:=3 inaczej y:=6; napisz(y=,y); przeczytaj koniec. 0 wtedy y:=3 inaczej y:=6; napisz(y=,y); przeczytaj koniec."> 0 then y:=3 else y:=6; write (y=,y); readln end."> 0 then y:=3 else y:=6; write (y=,y); readln end." title="Program E31; var a, y: rzeczywisty; rozpocznij pisanie (wprowadź numer, a następnie naciśnij); czytajln(a); jeśli a >0 to y:=3 inaczej y:=6; napisz(y=,y); przeczytaj koniec."> title="Program E31; var a, y: rzeczywisty; rozpocznij pisanie (wprowadź numer, a następnie naciśnij); czytajln(a); jeśli a >0 to y:=3 inaczej y:=6; napisz(y=,y); przeczytaj koniec."> !}


A+b if a>b a*b if a b a*b if a b a*b if a b a*b if ab a*b if a title="a+b if a>b a* b if a


Program E32; var a,b,x: rzeczywista; rozpocząć pisanie (wpisz dwie cyfry oddzielone spacją i naciśnij); czytajln(a); jeśli a >b to x:=a+b inaczej x:=a*b; napisz(x=,x); przeczytaj koniec. b wtedy x:=a+b inaczej x:=a*b; napisz(x=,x); przeczytaj koniec."> b then x:=a+b else x:=a*b; write (x=,x); readln end."> b then x:=a+b else x:=a*b; write (x=,x); readln end." title="Program E32; var a,b,x: rzeczywista; rozpocząć pisanie (wpisz dwie cyfry oddzielone spacją i naciśnij); czytajln(a); jeśli a >b to x:=a+b inaczej x:=a*b; napisz(x=,x); przeczytaj koniec."> title="Program E32; var a,b,x: rzeczywista; rozpocząć pisanie (wpisz dwie cyfry oddzielone spacją i naciśnij); czytajln(a); jeśli a >b to x:=a+b inaczej x:=a*b; napisz(x=,x); przeczytaj koniec."> !}




Organizacja pętli Powtarzalne czynności w programowaniu nazywane są pętlami Operator skoku bezwarunkowego goto n, n jest liczbą całkowitą (nie więcej niż 4 znaki), etykietą. Etykieta jest powtarzana 3 razy: 1. W sekcji Etykieta; 2. W instrukcji goto; 3. Przed operatorem, do którego wykonywany jest skok bezwarunkowy.


Organizacja cykli za pomocą operatorów przejść warunkowych i bezwarunkowych. Zadanie. Znajdź sumę pierwszych dwudziestu liczb. (1+2+3….+20). a ……………20 S ………….


Algorytm Euklidesa: za każdym razem będziemy zmniejszać większą z liczb o wartość mniejszej, aż obie liczby staną się równe. Na przykład: Początkowy 1 krok 2 krok 3 krok a= 25 b= gcd(a,b)=5


Program E5; var a, b: liczba całkowita; zacznij pisać (gcd=,a); przeczytaj; koniec. napisz (Wpisz dwie liczby naturalne oddzielone spacją); odczytln(a,b); podczas gdy ab wykonaj if a>b then a:=a-b else b:=b-a; b wtedy a:=a-b inaczej b:=b-a;"> b wtedy a:=a-b inaczej b:=b-a;"> b wtedy a:=a-b inaczej b:=b-a;" title="(!JĘZYK:Program E5 ;var a, b: integer;begin write(gcd=,a);readln;end.write(Wprowadź dwie liczby naturalne oddzielone spacją);readln(a,b);while ab do if a>b then a:= a-b inaczej b:=b-a;"> title="Program E5; var a, b: liczba całkowita; zacznij pisać (gcd=,a); przeczytaj; koniec. napisz (Wpisz dwie liczby naturalne oddzielone spacją); odczytln(a,b); podczas gdy ab wykonaj if a>b then a:=a-b else b:=b-a;"> !}




B wtedy a:=a-b; if b>a then b:=b-a write (Wpisz dwie dodatnie liczby całkowite oddzielone spacją); readln (a,b);" title="Program E6; var a, b: liczba całkowita; start zapisu (HOD=,a); readln; koniec. powtarzaj do a=b; jeśli a>b to a :=a-b; jeśli b>a to b:=b-a napisz (Wpisz dwie liczby naturalne oddzielone spacją); readln (a,b);" class="link_thumb"> 40 !} Program E6; var a, b: liczba całkowita; rozpocznij pisanie (HOD=,a); przeczytaj; koniec. powtarzaj aż a=b; jeśli a>b to a:=a-b; if b>a then b:=b-a write (Wpisz dwie dodatnie liczby całkowite oddzielone spacją); odczytln(a,b); b wtedy a:=a-b; if b>a then b:=b-a write (Wpisz dwie dodatnie liczby całkowite oddzielone spacją); readln (a,b);"> b then a:=a-b; if b>a then b:=b-a write (Wpisz dwie liczby naturalne oddzielone spacjami); readln (a,b);"> b then a:= a-b; if b>a then b:=b-a write (Wpisz dwie dodatnie liczby całkowite oddzielone spacją); readln (a,b);" title="Program E6; var a, b: liczba całkowita; start zapisu (HOD=,a); readln; koniec. powtarzaj do a=b; jeśli a>b to a :=a-b; jeśli b>a to b:=b-a napisz (Wpisz dwie liczby naturalne oddzielone spacją); readln (a,b);"> title="Program E6; var a, b: liczba całkowita; rozpocznij pisanie (HOD=,a); przeczytaj; koniec. powtarzaj aż a=b; jeśli a>b to a:=a-b; if b>a then b:=b-a write (Wpisz dwie dodatnie liczby całkowite oddzielone spacją); odczytln(a,b);"> !}




Temat lekcji: „Cykle (powtórzenia) w programach”

1) Powtórzyć i utrwalić wiedzę z zakresu tworzenia programów liniowych, rozgałęzionych; 2) Naucz się pisać programy używając operatora cyklicznego - FOR i:=1 TO n DO Begin instrukcje (ciało pętli) end ; 3) Stosować operatory w rozwiązywaniu typowych problemów. Cel lekcji:

Brak wstawki: Program Sql; Var A, B, C, D, XI, X2: ??? ; Begin Writeln("Wprowadź współczynniki równania kwadratowego '); Readln (???); D:=B*B-4*A*C; If D

Pytania do grupy: 1) Jaka jest różnica między programami rozgałęziającymi a liniowymi? 2) Za pomocą jakich operatorów dokonuje się wyboru w programach? 3) początek….koniec - Co to jest? Jakie są zasady korzystania z programu?

1) operatorzy we/wy; 2) Operatory wyboru; 3) a:=a+3 - co się stanie? 4) Wymień typy danych; 5) Usuń niepotrzebne I, LUB, KONIEC, NIE, JEŚLI ; 6); - co to znaczy? 7) W jaki sposób oznaczany jest koniec programu? 8) Wypisz działania arytmetyczne. 9) Co to jest 120 mod 65 = ? 10) Instrukcje pętli.

Uporządkuj odpowiednio: 1. Odczyt 2. Koniec 3. Początek 4. Liczba całkowita 5. ; 6. Jeśli .. Wtedy 7. := 8. Wprowadź 9. Koniec 10. Liczby całkowite 11. Przypisz 12. Następna akcja 13. Start 14. Jeśli… to

Czy wynik jest mniejszy niż 3? a:= 7 b:= - 10 a:=a*(- 7) b:=159 a:=b+a

Znajdź 5 błędów w programie: Program krug ; VAR Pi, r, S: rzeczywista; Pi:=3,14, WRITELN('promień vvedite r='), READ(r); S=Pi*r*r; WRITELN('Ploshad kruga S= ', S) koniec

kółko programowe; VAR Pi, r, S: rzeczywista; początek Pi:=3,14 , WRITELN('promień vvedite r=') ,READ(r); S:=Pi*r*r; WRITELN('Ploshad kruga S=', S) end .

Zadanie nr 1 Biorąc pod uwagę liczbę całkowitą N , określ, czy jest ona parzysta, czy nieparzysta. 2, 4, 6, ... są parzyste, ponieważ dzielone bez reszty przez 2(N mod 2 =0) 1, 3, 7, ... - nieparzyste, bo podzielone przez 2 z resztą 1 (N mod 2 = 1)

Algorytm Algorytm Chislo; var N: liczby całkowite; start Output('vvedite chislo') ; Wejście (N) ; IF N mod 2 =0 T O Wyjście(N,'- chetnoe'); IF N mod 2 =1 T O Wyjście(N,'- nechetnoe'); koniec.

Zadanie nr 2 Biorąc pod uwagę dwucyfrową liczbę całkowitą N (DE), gdzie D - liczba dziesiątek, E - jedynki. Ustal czy suma cyfr tej liczby będzie równa 10. Przykład: 28-ma będzie miała sumę S=2+8=10, ale 27-ma nie będzie miała S=2+7=9 Będziemy liczyć dziesiątki: D = N div 10 , a jednostki: E = N mod 10

Algorytm Algorytm Chislo; zmienne N,E,D,S: liczby całkowite; start Output('vvedite chislo') ; Wejście (N) ; E:=N mod 10; D:=N dział 10; S:=E+D; JEŻELI S = 10 T O Wyjście('suma= 10') W przeciwnym razie ('suma10'); koniec.

Definicja: Programy, w których wielokrotnie powtarza się ten sam rodzaj czynności – programy cykliczne (z powtórzeniami).

Zadanie: Biorąc pod uwagę 100 liczb naturalnych od 1 do 100 (1,2,3, ... 99,100) Oblicz ich sumę i wyprowadź do zmiennej S.

Algorytm sumy; Zmienna i,S: liczby całkowite; Początek S:=0; Dla i:=1 do 100 powtórz Początek S:= S + i ciało Koniec; cykl Podsumowanie (S) Koniec.

suma programu; VARi, S: liczba całkowita; PoczątekS:=0; FOR i:=1 DO 100 ZACZNIJ S:=S+i koniec ciała; koniec pętli WRITE(S).

suma programu; VARi, S: liczba całkowita; PoczątekS:=0; FOR i:=1 DO 100 ZACZNIJ S:=S+i ; body WRITE('S', i, '=', s) końca pętli; koniec.

Ciało cyklu to same czynności, które należy wielokrotnie powtarzać. Treść cyklu umieszczamy w nawiasach operatorskich begin ... .. end;

ALT + F9 - napraw błędy CTRL + F9 - uruchom program ALT + F5 - zobacz wynik

Zadanie: 1) Wyświetl kolumnę tabliczki mnożenia dowolnej liczby całkowitej N za pomocą liczb od 1 do 10. Przykład: N = 5, wtedy kolumna będzie wyglądać tak - 1*5=5 2*5=10 3*5= 15 i * N = P , gdzie i zmienia się z …… .. 1…10 10*5=50

Praca domowa: komentarz do programu do zadania „O kolumnie tabliczki mnożenia”

DZIĘKUJĘ ZA UWAGĘ!

  1. 1 paskal
  2. 2. Pascal Pascal został opracowany przez szwajcarskiego naukowca Niklausa Wirtha. Pascal uważany jest za najważniejsze narzędzie do nauczania metod programowania strukturalnego i od 1983 roku jest wprowadzany do programu nauczania w szkołach dla uczniów kierunków informatycznych. W przyszłości język Pascal został ulepszony i uzyskał nowe właściwości, które różnią się od wersji autora.
  3. 3. Pascal jest stosunkowo łatwy do nauczenia, dość przejrzysty i logiczny, a będąc pierwszym językiem programowania do nauki, uczy dobrego stylu.
  4. 4. Podobnie jak języki naturalne, każdy język programowania ma swój własny styl i zasady. Składnia języka programowania to zestaw reguł, które określają, jak konstruować poprawne programy ze znaków alfabetu.
  5. 5. Alfabet pascala 26 małych liter łacińskich i 26 wielkich liter łacińskich: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z podkreślenie _ 10 cyfr: 0 1 2 3 4 5 6 7 8 9 znaków operacji: + - * / =<> < > <= >= := @ ograniczniki (separatory): . , " () (. .) ( ) (* *) .. : ; specyfikatory: ^ # $
  6. 6. Struktura programu (1. nagłówek programu) program nazwa_programu; (2. sekcja określająca używane moduły) wykorzystuje List_of_Used_Modules; (3. Sekcja opisu) etykieta Label_Descriptions; const Opisy_Consts; wpisz Typ Opisy; var Opisy_zmiennych; procedura Opisy_procedur_i_funkcji; funkcja exports Opisy_Exported_Names; (4. Sekcja wyciągów) początek Wyciągi koniec.
  7. 7. Uproszczona struktura programu (1. nagłówek programu) program Nazwa_Programu; (2. sekcja określająca używane moduły) wykorzystuje List_of_Used_Modules; (3. Sekcja opisów) const Descriptions_Consts; var Opisy_zmiennych; (4. Sekcja instrukcji) początek instrukcji programu koniec.
  8. 8. Polecenia języka programowania nazywane są operatorami. Separatorem operatora w Pascalu jest; (średnik)
  9. 9. Komentarz to fragment tekstu programu oddzielony symbolami ( ). Komentarze w programie pełnią funkcję informacyjną. (Mój pierwszy program) najpierw program; begin writeln('Witaj, świecie!') koniec.
  10. 10. Przykład: obwód programu obwodu prostokąta; (nagłówek programu) używa crt; (crt - potrzebne do wyczyszczenia ekranu) var a,b:integer; (deklaracja zmiennej) P:liczba całkowita; Rozpocznij (uruchomienie programu) clrscr; (wyczyść ekran) a:=12; (do zmiennej a przypisujemy wartość 12) b:=7; (do zmiennej b przypisujemy wartość 7) P:=2*(a+b); (wartość wyrażenia jest przypisana do P) write("P = ",P); (wyświetl wartość P) koniec. (koniec programu)
  11. 11. Program w swojej pracy zajmuje się danymi. Niektóre dane są ustawiane przed uruchomieniem programu, a po jego uruchomieniu zachowują swoje wartości niezmienne przez cały czas trwania programu. To są stałe. Inne dane mogą ulec zmianie w trakcie wykonywania programu. Nazywa się je zmiennymi.
  12. 12.  Różnica między zmienną a stałą jest dość oczywista: podczas wykonywania programu można zmienić wartość zmiennej, ale nie można zmienić wartości stałej. zmiennezmienne stałestałe danedane
  13. 13. Przez zmienną rozumiemy komórkę („pole”), w której komputer może zapisywać („dodawać”) dane. Przez komórkę naprawdę rozumiemy „kawałek pamięci”, który przechowuje informacje. Aby wykorzystać informacje przechowywane w komórce, każda komórka musi mieć własną nazwę lub, jak się często mówi, identyfikator. a b suma 5 3 8
  14. 14. Identyfikatory. Nazwy (identyfikatory) to elementy języka - stałe, etykiety, typy, zmienne, procedury, funkcje, moduły, obiekty.  Identyfikator to ciąg liter, cyfr i podkreśleń, który zaczyna się od litery lub podkreślenia i nie zawiera spacji.
  15. 15. Nazwa może zawierać dowolną ilość znaków, ale znaczące są 63 znaki.  Niedozwolone jest używanie słów funkcyjnych i nazw standardowych jako nazw w języku PASCAL, które służą do nazywania stałych standardowych, typów, procedur, funkcji i plików.  Przykłady nazw języków PASCAL: A b12 r1m SIGMA gamma I80_86
  16. 16. W Pascalu różnica między małymi i dużymi literami jest ignorowana, więc nazwy NaMe i nazwa są takie same.
  17. 17. Słowo funkcjonalne to słowo, które w języku PASCAL ma określone znaczenie semantyczne, którego nie można zmienić. Czasami nazywa się to słowem kluczowym.
  18. 18. Serwis (zastrzeżony) słowa: ABSOLUTNE EKSPORT BIBLIOTEKA ZESTAW ASSEMBLER ZEWNĘTRZNY MOD SHL I FAR NAME SHR ARRAY FILE NIL STRING ASM FOR NEAR THEN ASSEMBLER FORWARD NIE POCZĄTEK FUNKCJA TYP OBIEKTU CASE GOTO OF UNIT CONST IF LUB DO TYPU KONSTRUKTOR IMPLEMENTACJA PACKED UŻYWA DESTRUCTOR IN PRIVATE VAR DIV INDEX PROCEDURA WIRTUALNE DO DZIEDZICZONY PROGRAM PODCZAS DOWNTO INLINE PUBLICZNE Z INNYM INTERFEJSEM ZAPISYWANIE XOR KONIEC PRZERWANIE POWTÓRZ EKSPORTOWANIE ETYKIETY REZYDENT
  19. 19. Wewnątrz znaków podwójnych i słów zastrzeżonych nie można stosować spacji. Istnieją nazwy, które nazywane są standardowymi. sin cos real true W przeciwieństwie do słów funkcyjnych znaczenie nazw standardowych może zostać przedefiniowane przez programistę.
  20. 20.  Jest to wskazówka dla kompilatora, ile pamięci zarezerwować dla zmiennych naszego programu.  W skompilowanym programie wszystkim zmiennym przydzielono miejsce w pamięci, a wszystkim zmiennym przypisano wartości zerowe. Wszystkie zmienne użyte w programie muszą być zadeklarowane w sekcji deklaracji zmiennej po słowie zarezerwowanym var. Deklarowanie zmiennych
  21. 21. Istnieją różne rodzaje danych...
  22. 22. Typy danych Nazwy typów standardowych są predefiniowanymi identyfikatorami i obowiązują w każdym punkcie programu. Są one opisane w standardowym module System, który domyślnie znajduje się na liście używanych modułów. Typy zdefiniowane przez użytkownika to dodatkowe typy (proste i strukturalne) zadeklarowane przez użytkownika.
  23. 23. Standardowe typy danych 1. grupa typów całkowitych (Shortint, Integer, Longint, Byte, Word); 2. grupa typów rzeczywistych (Single, Real, Double, Extended, Comp); 3. logiczne (typy boolowskie) (Boolean, ByteBool, WordBool, LongBool); 4. znak(Znak); 5. ciąg (ciąg); 6. indeks (wskaźnik); 7. typ tekstu (Tekst).
  24. 24. Grupa typów całkowitych Nazwa typu Typ Zakres wartości wymagana pamięć Liczba całkowita krótka ze znakiem Shortint -128 .. 127 1 bajt Liczba całkowita ze znakiem -32768 .. 32767 2 bajty Liczba całkowita ze znakiem długa Longint -2147483648 .. 2147483647 4 bajty Krótki bez znaku liczba całkowita Bajt 0 .. 255 1 bajt Liczba całkowita bez znaku Słowo 0 .. 65535 2 bajty
  25. 25 Varb: bajt; summa, liczba: liczba całkowita; Deklarowanie zmiennych typu integer summa:= -365; Używać
  26. 26. Liczby w języku PASCAL są zwykle zapisywane w systemie dziesiętnym. Znak dodatni liczby można pominąć. Liczby całkowite są zapisywane w postaci bez kropki dziesiętnej, na przykład: 217 -45 8954 +483
  27. 27. Grupa typów rzeczywistych definiuje dane, które są realizowane przez podzbiór liczb rzeczywistych. Var A: rzeczywisty; początek... A:=0,65; … koniec.
  28. 28. Nazwa typu Typ Zakres wartości Liczba cyfr mantysy Rozmiar (bajty) Liczba rzeczywista pojedynczej precyzji Liczba rzeczywista 2,9e-39 .. 1,7e+38 11 6 Liczba rzeczywista Pojedyncza 1,5e-45 .. 3,4e+ 38 7 4 Liczba rzeczywista podwójnej precyzji Double 5.0e-324 .. 1.7e+308 15 8 Rozszerzona precyzja Liczba rzeczywista rozszerzona 3.4e-4932 .. 1.1e+4932 19 10 Comp Real Integer -9.2e+18 .. 9.2e +18 19 8
  29. 29. Liczby rzeczywiste zapisuje się w postaci z kropką dziesiętną lub w postaci z porządkiem dziesiętnym, który jest reprezentowany przez literę E: 28,6 0,65 -0,018 4,0 5E12 -1,72E9 73,1E-16
  30. 30. Typ danych Boolean odpowiada identyfikatorowi Boolean. Zmienne boolowskie mają rozmiar 1 bajta i mogą zawierać wartości PRAWDA lub FAŁSZ. Wartość FAŁSZ odpowiada 0, każda liczba inna niż zero jest uważana za PRAWDĘ. Przycisk Var, flaga: logiczna; Przycisk Start:=true;
  31. 31. Typ znaku odpowiada standardowemu identyfikatorowi Char. Zmienne i stałe typu znakowego mogą przyjmować wartości ze zbioru znaków kodu ASCII. Symbol Var, bukva, z: char; Deklarowanie zmiennych symbolicznych
  32. 32. Typ string odpowiada standardowemu identyfikatorowi String. VarS: ciąg znaków; (ciąg od 0 do 255 znaków) S2: Ciąg; (ciąg 5 znaków)
  33. 33. Ciąg znaków to ciąg znaków z zestawu znaków ASCII ujęty w pojedyncze cudzysłowy. Łańcuchy w języku PASCAL to sekwencja znaków zapisanych między apostrofami. Jeśli konieczne jest użycie samego apostrofu jako znaczącego znaku w ciągu znaków, należy napisać dwa apostrofy. Przykłady ciągów znaków: „STRING” „STRING” „AD” „UTANT”
  34. Typ znakowy, a także typy całkowite i boolowskie nazywane są tak zwanymi typami porządkowymi.  Zbiór prawidłowych wartości dowolnego typu porządkowego jest uporządkowanym ciągiem, którego każdy element ma swoją własną liczbę porządkową (zaczynając od 0).
  35. 35. Funkcja Ord zwraca liczbę porządkową tej wartości w deklaracji typu. Ord(2)=2, Ord('0')=48 Writeln(ord('e')); WriteIn(ord('9'));
  36. 36. Tabela kodowania ASCII ASCII (ang. American Standard Code for Information Interchange; wymawiane jako „asci”) to komputerowe kodowanie reprezentujące alfabet łaciński, cyfry arabskie, niektóre znaki interpunkcyjne i znaki kontrolne. Został wprowadzony przez American Standards Institute ANSI.

1 slajd

„ZNAJOMOŚĆ JĘZYKA PASCALNEGO” LEKCJA NA TEMAT: Nauczyciel matematyki i informatyki, MBO USOSh nr 2, Kalach-on-Don, obwód wołgogradzki Anisimova N.A.

2 slajdy

CEL LEKCJI: poznanie struktury programu, operatorów, zasad formatowania i interpunkcji języka Turbo Pascal.

3 slajdy

System programowania TURBO PASCAL. Pascal to uniwersalny język programowania, który pozwala rozwiązywać różnorodne problemy związane z przetwarzaniem informacji.

4 slajdy

1) język programowania Turbo Pascal; 2) zintegrowane środowisko programistyczne (kompilator: tłumaczy program na kod maszynowy i interpreter: wykonuje polecenia) SKŁAD SYSTEMU PROGRAMOWANIA TR:

5 slajdów

1) Litery łacińskie - duże i małe; 2) litery alfabetu rosyjskiego - duże i małe; 3) cyfry - od 0 do 9; 4) znaki operacji - +, -, /, *, =, =; 5) znaki oddzielające - () ( ); . , ‘ _% & # itd. Alfabet języka programowania TURBO PASCAL

6 slajdów

7 slajdów

Nagłówek programu Sekcja deklaracji zmiennej Sekcja instrukcji (główna treść)

8 slajdów

Sekcja deklaracji zmiennej zaczyna się od słowa Var, po którym następuje oddzielona przecinkami lista nazw zmiennych tego samego typu. W Pascalu istnieją dwa rodzaje liczb: rzeczywiste i całkowite. Nazwy zmiennych składają się z liter i cyfr łacińskich, przy czym pierwszym znakiem jest litera. VAR lista zmiennych tego samego typu: INTEGER; lista zmiennych podobnych:REAL;

9 slajdów

Sekcja operatora jest główną częścią programu. Początek i koniec sekcji są oznaczone słowami usługowymi BEGIN i END , które są nawiasami operatorskimi. Pomiędzy tymi słowami umieszczone są wszystkie polecenia algorytmu napisane w Pascalu (operatory). Separatorem operatora jest średnik. Kropka jest umieszczana na samym końcu programu. BEGIN READ(lista wejść); READLN(lista wejść); zmienna:=wyrażenie arytmetyczne; WRITE(lista wyjściowa); WRITELN(lista wyjściowa); KONIEC.

10 slajdów

Wprowadzenie danych początkowych z klawiatury następuje na operatorze READ lub READLN (odczyt). Instrukcja READLN różni się od READ tylko tym, że po wprowadzeniu danych kursor przesuwa się na początek Nowa linia. zmienna:=wyrażenie arytmetyczne; WRITE(lista wyjściowa); WRITELN(lista wyjściowa); KONIEC. CZYTAJ(lista wejść); READLN(lista wejść);

11 slajdów

zmienna:=wyrażenie arytmetyczne; Operator przypisania arytmetycznego: po lewej stronie znajduje się zmienna, po prawej wyrażenie arytmetyczne do oceny. Znak złożony:= jest odczytywany jako „przypisz”. Najpierw obliczane jest wyrażenie arytmetyczne, a następnie wynikowa wartość jest przypisywana do zmiennej.Przykład: a:= sqr (x) + sin (y) / (12*z + 5)

12 slajdów

mod div / * - + SIN (x) COS (x) SQR (x) SQRT (x) ABS (x) Sin x Cos x x 2 |x| x dodawanie odejmowanie mnożenie dzielenie liczba całkowita dzielenie reszta z dzielenia

13 slajdów

Zasady pisania wyrażeń arytmetycznych Wyrażenie arytmetyczne jest zapisywane w łańcuchu Nie można umieścić dwóch znaków operacji arytmetycznych pod rząd Nie można pominąć znaku mnożenia między czynnikami Używane są tylko nawiasy Kolejność operacji jest określona przez ich priorytety () F(x ) * / + - div mod

14 slajdów

Wyjście wyników następuje przez WRITE lub WRITELN (zapis). Wyniki są wyświetlane w kolejności, w jakiej są wymienione. Różnica między wykonaniem instrukcji WRITE i WRITELN polega na tym, że po wykonaniu operacji wyjściowej na instrukcji WRITELN kursor przesuwa się na początek nowej linii. WRITE(lista wyjściowa); WRITELN(lista wyjściowa);

15 slajdów

Zadanie 1: AXby 6) TU154 2) R&B 3) 4Wheel 4) Vasya 5) „PesBarbos” 7) 8) _ABBA 9) A+B

16 slajdów

zadanie programowe 1; var a, b: liczba całkowita; x, y: rzeczywisty; rozpocznij a:= 5; 10:=x; y:= 7,8; b:= 2,5; x:= 2*(a + y); a:= b + x; koniec. nazwa zmiennej musi znajdować się po lewej stronie znaku:= części całkowite i ułamkowe oddzielamy przecinkiem i niezgodność typów Niezgodność typów ZADANIE 2: Znajdź błędy we wpisie programu.

PASCAL WPROWADZENIE DO JĘZYKA PROGRAMOWANIA 2006 STRUKTURA PRZEDMIOTU Interfejs i główne definicje; struktura programu; wyświetlanie informacji tekstowych; wejście klawiatury; podłączenie i użytkowanie modułów systemu; praca z podstawowymi typami danych (integer, real, string, array, file) praca z grafiką; wykorzystanie podprogramów (procedur i funkcji); korzystanie z modułów. 2 INTERFEJS ŚRODOWISKA PASCAL Język programowania Turbo Pascal 7.0 jest zamknięty w powłoce narzędziowej. Zawiera: wielookienkowy edytor tekstu; linker programu; debuger programu; system pomocy; kompilator. 3 INTERFEJS ŚRODOWISKA PASCAL 4 Lista otwartych plików: Alt + 0 Szybki dostęp do otwartych plików: Alt +<№ окна> PODSTAWOWE DEFINICJE Słowo zastrzeżone to specjalne słowo używane przez język programowania do oddzielania logicznych obszarów programu. Operator to polecenie językowe, które wykonuje jakąś akcję (sprawdzenie warunku, zorganizowanie pętli itp.) Identyfikator to dowolnie wybrana przez programistę nazwa elementów programu. Typ danych jest cechą identyfikatora, który określa zestaw wartości, które może przyjmować (liczby całkowite lub ułamkowe, ciągi znaków, wyrażenia logiczne itp.). 5 OGÓLNA STRUKTURA PROGRAMU Program Nazwa_programu; Używa sekcji wtyczek; Sekcja opisu etykiety na etykietach; Const sekcja deklaracji stałych; Sekcja typu opisująca natywne typy danych; Sekcja deklaracji zmiennej Var; Początek Główna część programu; koniec. Minimalny kod: 6 SCREEN OUTPUT Do wyświetlania informacji na ekranie służą operatory: Write lub Writeln. F9 - Kompiluj + Sprawdź Ctrl+F9 - Uruchom F9 → Ctrl+F9 - Unikaj błędów Wyświetl wyniki wykonania programu 7 SCREEN OUTPUT Wynik instrukcji: WRITE "Empty" WRITELN Instrukcja dodaje pusty ciąg WRITELN 8 ĆWICZENIE Wyświetl informacje na ekranie jak pokazano poniżej Cześć! Miło cię widzieć! zadzwoń do mnie komputer. Wykorzystany materiał: Instrukcje wyjściowe: Write, WriteLn Operator „Empty” WriteLn; wstawia pusty ciąg. 9 PODŁĄCZANIE DODATKOWYCH MODUŁÓW Dodatkowe moduły rozszerzają możliwości Twoich programów poprzez wprowadzenie dodatkowych operatorów. Moduły są połączone w sekcji Zastosowania. ProgramMój; Wykorzystuje Moduł1, ​​Moduł2; __________ ________________________ ____________________________ ________________________ MODUŁ 1 Zestaw Zasobów 1 … MODUŁ N Moduły: Zestaw Zasobów Własnych Systemu N Czyszczenie ekranu tekstowego Oczekiwanie na naciśnięcie klawisza Podłączony moduł o nazwie CRT 10 RANDOM SCREEN OUTPUT GotoXY (X, Y: Integer) Gdzie X, Y – znajomość współrzędne na ekranie. X może przyjmować wartości od 1 do 80, a Y od 1 do 25. Np.: Program My_program; (Połączenie modułu) Wykorzystuje Crt; Rozpocznij (wyczyść ekran) ClrScr; (dane wyjściowe) GotoXY(1, 1); napisz("▒"); GotoXY(80, 1); napisz("▒"); GotoXY(1, 25); napisz("▒"); GotoXY(80, 25); napisz("▒"); (opóźnienie ekranu) ReadKey; koniec. Program wyświetla symbol „▒” (kod 177) w rogach ekranu. 11 WYJŚCIE W KOLORZE TextColor (Kolor); Określa kolor znaków. TekstTło(Kolor); Określa kolor znajomości. ProgramMójProgram; Używa crt; Rozpocznij kolor tekstu (czerwony); TextBackGround(niebieski); Write("Na zewnątrz"); Kolor tekstu (biały); Write("trawa, "); Kolor tekstu (zielony); TextBackGround (żółty); Napisz("na trawie"); TextBackGround(Magenta); Napisz("drewno opałowe. "); Koniec. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Kolory Czarny Niebieski Zielony Błękitny Czerwony Magenta Brązowy Jasny Szary Ciemny Szary Jasny Niebieski Jasny Zielony JasnyCyjan JasnyCzerwony JasnyMagenta Żółty Biały 12 – czarny – niebieski – zielony – cyjan – czerwony – liliowy - brązowy - jasnoszary - ciemnoszary - niebieski - jasnozielony - jasnobłękitny - różowy - jasnoliliowy - żółty - biały WARTOŚCI Operacje na danych IDENTYFIKATORy Termin identyfikator dotyczy stałych, zmiennych, funkcji, procedur, komponentów i innych zdefiniowanych przez użytkownika obiekty Dozwolone znaki: litery łacińskie, cyfry, podkreślenia Ograniczenia: Nie może zaczynać się od cyfry, ale może zaczynać się od podkreślenia Nie może składać się z wielu słów Nie może pasować do żadnego ze słów kluczowych W identyfikatorach nie jest rozróżniana wielkość liter. Niepoprawne identyfikatory: Dane Moje imię 2Array Var ( ( ( ( używane są rosyjskie znaki ) Jest spacja ) Zaczyna się od liczby ) Pasuje do słowa kluczowego ) liczby, ciągi znaków, wyrażenia logiczne itp.). 16 INTEGER DATA TYPE 17 Skończony zbiór możliwych wartości typ bajt shortint słowo integer longint zakres 0..255 -128..127 0..65535 -32768..32767 -2147483648..2147483647 ! Poza zakresem powoduje błąd! size DEKLARACJA ZMIENNYCH Zmienna jest identyfikatorem, który może przechowywać pewną wartość (liczbę, łańcuch znaków itp.) i zmieniać ją podczas działania programu. Składnia: Var<имя переменной> : <тип переменной>; Program nazwa_programu; Używa sekcji wtyczek; Sekcja deklaracji zmiennej Var; Początek Główna część programu; koniec. Miejsce zarezerwowane w pamięci komputera dla 3 zmiennych 18 USTAWIANIE WARTOŚCI ZMIENNYM Aby ustawić wartość zmiennej należy użyć operatora przypisania:= Składnia rekordu:<Переменная> := <Значение>; Wartość 3 jest wprowadzana do zmiennej (liczby całkowitej) o nazwie A 19 OPERACJE NA ZMIENNYCH CAŁKOWITYCH 20 Operacje arytmetyczne: + - * / Operacje standardowe: div | moda | sqr Nie można używać z typami całkowitymi Zmienna o nazwie S jest ustawiana jako suma wartości przechowywanych w zmiennych X i Y Wartość przechowywana w zmiennej o nazwie S jest wyświetlana na ekranie ĆWICZENIE 21 1. Napisz program wyświetlający wynik mnożenia liczb 15 i 20 2. Napisz program wyświetlający wartość funkcji f 2 x 3 y , gdy x=11, y=3 Wykorzystany materiał: Zmienne są deklarowane w sekcji Var Typ całkowity nazywa się Integer Składnia przypisywania wartości do zmiennej jest następująca:<Переменная> := <Значение> ; Po każdym operatorze umieszcza się znak; (z wyjątkiem początku i ostatniego końca) TYP DANYCH RZECZYWISTYCH Zbiór wartości √ √ Typ porządkowy Typ rzeczywisty Jednokierunkowa zgodność: Real Integer Real! Poza zasięgiem i niezgodność z zasadami kompatybilności prowadzi do błędu! 22 OPERACJE NA ZMIENNYCH RZECZYWISTYCH 23 Operacje standardowe: pi | Kwadrat | grzech | bo | abs | ex | Ln Okrągły | Trunc (rzeczywisty → całkowity) Na przykład (X, S – typ rzeczywisty): X:= pi/3; S:= Grzech(X) * 100; Napisz(Zaokrąglenie(S)); Stosunek wartości przechowywanych w zmiennych X i Y jest wprowadzany do zmiennej o nazwie S. Pozycja liczby i liczba znaków w części ułamkowej liczby E wskazuje na potęgę liczby. 5.6E-5 = 5.6·10-5 STRING TYP DANYCH 24 Łańcuchy to uporządkowany zestaw znaków. Ciągi są ujęte w apostrofy. Łańcuchy nie są zgodne z typami całkowitymi i rzeczywistymi. Typ Zakres Ciąg 255 znaków ( Podstawowe operatory ciągów znaków ) + ( konkatenacja ) Długość (S); ( długość łańcucha ) Na przykład: X:= 'Vasya'; Write('W twoim imieniu', Length(X), 'lit.'); S:=X; X:=S; ĆWICZENIE Napisz program, który wyświetli wynik dzielenia liczb 12,89 i 0,22 z tylko trzema cyframi znaczącymi po przecinku, w następującym formacie: pierwsza liczba podzielona przez drugą liczbę = wynik Napisz (X:1:3, 'razdelit na' , y:1 :3, ' = ' z:1:3) Użyty materiał: Typ łańcucha to String Ciągi są ujęte w posttrofy Łańcuchy są łączone znakiem + W instrukcji display różne typy są oddzielone przecinkiem 25 KEYBOARD INPUT 26 Aby wprowadzić informacje z klawiatury, należy użyć operatora wprowadzania: Read lub ReadLn. Składnia: Odczyt (N1, N2, ... Nn); Gdzie N1, N2, ... Nn to zmienne (liczba całkowita, rzeczywista, łańcuch znaków) W zmiennej X wpisujemy wartość wprowadzoną z klawiatury. Po wprowadzeniu wartości należy nacisnąć klawisz Enter. Jeżeli w zmiennej jest kilka zmiennych operatora, wprowadza się je oddzielając spacją lub naciskając klawisz Enter ĆWICZENIE 27 1. Napisz program minikalkulatora, który oblicza sumę dwóch liczb wpisanych z klawiatury. 2. Napisz program, który prosi o podanie imienia, a po jego wpisaniu wyświetla powitanie. Na przykład, jeśli wpisałeś imię Wania, program wyświetli frazę: Cześć, Wania!!! Wykorzystany materiał: Instrukcje wejściowe: Read, ReadLn OPERATORY OPERATOR WARUNKOWY 29 Operator warunkowy realizuje „rozgałęzienia”, czyli zmienia kolejność wykonywania operatorów w zależności od prawdziwości lub fałszywości jakiegoś warunku. Sprawdzenie stanu NIE Działanie 1 Pójdę na plażę Pada deszcz TAK Działanie 2 Wezmę parasol Działanie 3 Pójdę do kina SPRAWDŹ WARUNKI Operacje porównania: > - więcej< - меньше = - равно >= - większy lub równy<= - меньше или равно <>- nie równa się 30 Operacje logiczne: Nie I Lub - Nie -I - Lub Na przykład: Jeśli mój wzrost > wzrost Petyi, To jestem wyższy niż Petya Jeśli (pada deszcz) Lub (pada śnieg), To zostanę w strona główna Jeśli nie ((pada) I (wiatr)), to pójdę na spacer Podczas używania operacje logiczne, warunki podano w nawiasach SKŁADNIA INFORMACJI WARUNKOWEJ Skrócona forma: If<условие>Następnie<оператор>; Na przykład, jeśli wartość w zmiennej X jest mniejsza niż 0, to do tej samej zmiennej zapisywana jest wartość 1: Jeśli X<0 Then X:= 1; Полная форма: If <условие>Następnie<оператор_1>w przeciwnym razie<оператор_2>; Na przykład: Jeśli X>5 Wtedy X:= X - 1 Inaczej X:= X + 1; Po słowach Then i Else można użyć tylko jednego operatora. Przed słowem Else znak; brak 31 ĆWICZENIE 32 1. Napisz program, który otrzyma wprowadzoną kwotę w dolarach i kwotę w euro, a następnie wyświetli, w jakiej walucie ta kwota jest większa (1 dolar = 28 rubli, 1 euro = 35 rubli) 2. Napisz program , która pobiera trzy liczby jako dane wejściowe, a następnie wyświetla ich maksimum. Wykorzystany materiał: Formy operatora warunkowego: If<условие>Następnie<оператор>; Jeśli<условие>Następnie<оператор_1>W przeciwnym razie<оператор_2>; Zanim jeszcze znak; nie ustawiono Operacje porównania: >< = <> >= <= Логические операции: Not Or And ОПЕРАТОРНЫЕ СКОБКИ Если после слов Then или Else необходимо записать несколько операторов, то их заключают в операторные скобки (составной оператор). Операторные скобки начинаются словом Begin, а заканчиваются словом End; Например: If Z >0 Następnie rozpocznij X:= 1; Y:= -1; WriteLn('Informacja zaakceptowana'); End Else WriteLn('Błąd'); 33 OPERATOR CASE SELECT Instrukcja wyboru służy do zastępowania zagnieżdżonych konstrukcji instrukcji warunkowych. Składnia notacji wielkości liter<порядковая_переменная>z<значение_1> : <оператор_1> ; <значение_2> : <оператор_2> ; ……… <значение_N> : <оператор_N>W przeciwnym razie<оператор_N+1>; koniec; Możesz użyć nawiasów w instrukcji select Ciąg opcjonalny 34 SELECT STATEMENT CASE Przypadek Uczeń o wzroście 16..30: Jesteś uczniem szkoły podstawowej; 31,32,33: Jesteś w klasie 5-6; 34..50: Jesteś uczniem szkoły średniej Przecinek służy do podania wartości, dwukropek służy do zaznaczenia przedziału W przeciwnym razie Najwyraźniej nie jesteś uczniem; koniec; Przypadek x z -128..-1: writeln('Negatywny'); 0: writeln('Nil'); 1..127: writeln('Dodatnie') Else WriteLn('Poza zakresem'); koniec; 35 ĆWICZENIE Napisz program, który na podstawie podanej liczby wyświetli odpowiedni dzień tygodnia. Na przykład wpisz cyfrę 2, program powinien wyświetlić „wtorek”. Jeżeli liczba jest poza zakresem 1..7, to powinien zostać wyświetlony komunikat, że nie ma takiego dnia. Użyty materiał: Operator selekcji: Case<порядковая_переменная>z<значение_1> : <оператор_1> ; ……… <значение_N> : <оператор_N>; W przeciwnym razie<оператор_N+1>; koniec; 36 CYKLE 37 Nazywamy algorytmy cykliczne, w których wykonywanie niektórych operatorów odbywa się wielokrotnie z tymi samymi zmodyfikowanymi danymi (np. procedura mnożenia liczb poprzez ich wielokrotne dodawanie). W Pascalu istnieją trzy instrukcje pętli: For (pętla z parametrem lub dla określonej liczby powtórzeń) While (pętla WHILE) Powtórz (pętla PRZED) Jeśli znana jest liczba powtórzeń, lepiej jest użyć operatora pętli z parametr. PĘTLA Z PARAMETREM 38 Pętla dla określonej liczby powtórzeń z rosnącą lub malejącą wartością parametru For (param) := (wartość_początkowa) To (wartość_końcowa) Do (operator) ; Treść pętli Uwagi Parametr jest typu całkowitego; Nawiasów operatorskich można używać w pętli; Nie możesz zmienić parametru pętli w ciele pętli; Parametr cyklu jest zwiększany o jeden; Wartość początkowa > wartość końcowa, w przeciwnym razie treść pętli jest ignorowana; Aby zmniejszyć parametr, zamiast Do użyj DownTo. PĘTLA Z PARAMETREM 39 Napisz program, który prosi o podanie liczb całkowitych (a, b), gdzie a := <нач_зн>Do<кон_зн>Do<оператор>; Parametr jest typu całkowitego (zwykle Integer); Nawiasów operatorskich można używać w pętli; Parametr pętli jest zwiększany o 1. 40 WHILE LOOP Pętla While najpierw sprawdza warunek i tylko wtedy, gdy jest prawdziwy, wykonuje treść pętli. while (warunek) do (instrukcja); W treści kodu napisanej poniżej pętla nigdy nie zostanie wykonana: x:=1; Dopóki x>1 wykonaj x:=x-1; Możesz uzyskać nieskończoną pętlę. Na przykład: x:=1 Dopóki x>0 wykonaj x:=x+1; 41 WHILE LOOP Program wyświetlający sumę liczb od a do b. Gdy klawisz nie jest wciśnięty, rozpocznij Delay(2000); koniec; Pętla działa tak długo, aż zmienna zmieniająca f stanie się większa niż wartość b 42 ĆWICZENIE 43 1. Astronauci postanowili posadzić brzozy na Księżycu i co roku podwajać liczbę brzóz, w pierwszym roku zasadzili 3 brzozy. Wydrukuj na ekranie, za ile lat liczba brzóz przekroczy 10 000. 2. Napisz program, który określi maksymalną liczbę wprowadzonych liczb z klawiatury (wprowadzanie liczby kończy się cyfrą 0). Poniżej znajduje się zalecany układ ekranu: Wprowadź liczby. Aby zakończyć wprowadzanie, wprowadź 0. 89 15 0 Maksymalna liczba to 89. Użyty materiał: instrukcja pętli while: while<условие>Do<оператор>; Pętla While najpierw sprawdza warunek i tylko wtedy, gdy jest prawdziwy, wykonuje główną część pętli. REPEAT LOOP 44 Pętla Repeat najpierw wykonuje treść pętli, a dopiero potem sprawdza warunek Repeat (loop_body) Until (condition); Nie ma potrzeby używania złożonej instrukcji w pętli Repeat, ponieważ konstrukcja ta przewiduje wykonanie nie jednej, a kilku instrukcji zawartych pomiędzy słowami Powtórz i Do. REPEAT LOOP („Do tego czasu”) Program wyświetlający sumę liczb od a do b. Pętla działa tak długo, aż zmieniająca się zmienna f stanie się większa od wartości b 45 PORÓWNANIE PĘTLI For While Repeat 46 Wybór modelu pętli zależy tylko od wygody jej użycia w konkretnej sytuacji. Prawie zawsze możemy użyć innego typu pętli zamiast jednej ĆWICZENIE Oblicz wartość funkcji y x 3 x 2 16 x 43 dla x zmieniającego się w zakresie od -4 do 4 włącznie z krokiem 0,5. Użyty materiał: instrukcja pętli Powtórz: powtórz<тело_цикла>Dopóki<условие>Pętla Repeat najpierw wykonuje ciało pętli, a dopiero potem sprawdza warunek 47 PRZERWANIE CYKLI 48 Procedury służą do elastycznego sterowania operatorami cyklicznymi: Break - wyjście z pętli; Kontynuuj - zakończenie kolejnego przejścia cyklu; Przykłady: Znajdź minimalną liczbę i, dla której suma liczb od 1 do i jest większa niż 100. Gdy tylko s (suma liczb od 1 do i) stanie się większe niż 100, uruchamiana jest instrukcja break i pętla kończy działanie . s:=0; dla I:= 1 do 100 zaczynają się, jeśli s>100, a następnie przerywają; s:= s + ja; koniec; writeln('minimalna liczba i taka, że ​​(1+2+..+i)>100 równa się ',i); Z klawiatury wprowadza się 10 liczb, aw pętli brana jest pod uwagę suma tylko liczb dodatnich. Jeśli liczba jest ujemna, wykonywana jest instrukcja continue, która rozpoczyna następny przebieg pętli. s:=0; dla I:= 1 do 10 rozpocznij Readln(k); jeśli k<0 then Сontinue; s:= s + k; end; Writeln (‘Сумма положительных чисел равна ’,s); МАССИВЫ МАССИВЫ 50 Простые типы: одна переменная – одно значение Структурированные типы: одна переменная – несколько значений Массив – это фиксированное количество значений одного типа. Доступ к конкретному значению осуществляется через индекс. Переменная массива Структура массива: A= Доступ к массиву: 0 1 2 3 Индекс 9 7 0 0 Значения <Имя массива> [ <Индекс>] A := 7; TABLICE Tablica jest zadeklarowana w sekcji Var: (Nazwa): Array [ (wartość_początkowa) .. (wartość_końcowa) ] of (typ) ; Przykłady deklaracji tablic: Var A: Array of String; B: tablica rzeczywistych; C: tablica liczb całkowitych; Przykłady wypełnienia tablic wartościami: A:='Vasya'; A:='Petya'; O:='Masza'; A:='Olesia'; Napisać); Dla f:=1 do 10 wykonaj C[f] := f*2; Dla f:=1 do 10 wykonaj WriteLn(C[f]); 51 ĆWICZENIE 52 Napisz program, który poprosi użytkownika o podanie 7 liczb całkowitych i zapisze je w tablicy. Tablica zawiera maksymalny element i jest wyświetlana na ekranie. Na przykład: Wpisz 1. liczbę: 4 Wpisz 2. liczbę: 8 Wpisz 3. liczbę: 9 Wpisz 4. liczbę: 2 Wpisz 5. liczbę: 4 Wpisz 6. liczbę: 5 Wpisz 7. liczbę: 0 Maksymalna liczba: 9 Użyty materiał: Deklaracje tablic:<Имя>:Szyk[<нач_зн> … <кон_зн>] z<тип>; Dostęp do tablicy:<Имя массива> [ <Индекс>] GENERATOR LICZB LOSOWYCH (RNG) Do generowania liczb losowych w programie wykorzystywane są następujące operatory: Randomize – inicjalizacja RNG. Deklarowana jest dopiero na samym początku programu; Random - generuje liczbę losową od 0 do 1 (typ rzeczywisty); Random (N) - generuje liczbę losową od 0 do N-1 (typu integer); 53 TABLICE WIELOWYMIAROWE 54 Lista przedziałów dla każdego wymiaru tablicy (Nazwa): Array [ (wartość_początkowa) .. (wartość_końcowa) , (wartość_początkowa) .. (wartość_końcowa) , (etc) ] of (typ) ; Przykład deklaracji dwuwymiarowej tablicy (macierz, tabela) z 4 wierszami i 6 kolumnami: Var A: Array of Integer; Przykład wypełnienia tablicy: Dla i:=1 do 4 do Dla j:=1 do 6 do A := i+j; Ai , j 2 3 4 5 3 4 5 6 4 5 6 7 5 6 7 8 6 7 8 9 7 8 9 10 ĆWICZENIE Napisz program, który wypełni dwuwymiarową tablicę losowymi liczbami od -10 do 20 i wypisze sumę elementów znajdujących się wzdłuż przekątnej stołu. Użyty materiał: Inicjalizacja RNG: Losowanie Losowa liczba od 0 do N-1: Losowa (N) 55 PRACA Z PLIKAMI PRACA Z PLIKAMI 57 [e-mail chroniony]$ku⌂|"Hd9v*9(L*M=BYGRMxduB █ 8e*BOtCDrTVzHGJ1aBD>@B\(r8sE) █ :wcJvAmRa"v/.Wai;$`SWI=y2]suB █ ?Hq>vF(LmBcV^Adz4P4 .6b]o(QkВ8 █ cu<6`8Z":M^1;:8ANwak;,b2-4…u5 █ 2]suB?Hq>vF(LmBcAdz4wcP]o(QkВ █ 8c8df]e"v,su>+),VAEFБjFV,W$Q- █ y0G1GjN$-eБ|sqZ0`QnВ%\BD%y █ █ █ - terminator linii █ - plik terminatora Zmienna Tworzenie, odczyt, zapis, zamykanie PRACA Z PLIKAMI Kolejność czynności podczas pracy z plikami: 1. Deklaracja zmiennej plikowej (FP) 2. Powiązanie FP z plikiem 3. Otwarcie pliku do odczytu/zapisu 4. Operacje na pliku 5. Zamknięcie pliku (zrywane jest również połączenie między plikiem a DF) 1. Deklaracja FP<Имя>: Plik z<тип> ; <Имя>:tekst; Varf: tekst; h: Plik liczby całkowitej; 2. Powiązanie FP z plikiem Assign (<ФП>, <имя файла>); Przypisz (f, 'c:\my\Data.ghm') 58 PRACA Z PLIKAMI 3. Otwieranie pliku do odczytu/zapisu Resetuj (<ФП>); - otwiera plik do odczytu Rewrite (<ФП>); - otwiera plik do zapisu 4. Operacje na pliku Czytaj (<ФП>, <П1> , <П2>, …); - wczytuje zmienne<П1>, <П2>itp. jeden element w miejscu wskaźnika. Pisać(<ФП> , <П1> , <П2>, …); - zapisuje wartości zmiennych do pliku<П1>, <П2>itp. jeden element w miejscu wskaźnika. EoLn(<ФП>); - zwraca True, jeśli osiągnięto koniec łańcucha. EoF(<ФП>); - zwraca True, jeśli osiągnięto koniec pliku. 5. Zamykanie pliku Zamknij (<ФП>); 59 PRACA Z PLIKAMI Uprość program, jeśli wiesz, że macierz to 5x5 (użyj pętli For) 60 ĆWICZENIE 61 Napisz program „DOM-3”. Pierwszy akt zawiera nazwiska uczestników sprawy imiennej. W drugim te same imiona, ale w bierniku. W trzecim - lista wyrażeń uczuć lub jakiegoś działania (kocha, nie kocha, całuje, chce ugryźć, kocha, szanuje, nienawidzi, chce zobaczyć, przytula). Program powinien losowo pobrać informacje z tych plików i utworzyć nowy zgodnie z następującą zasadą:<имя в им. пад> <чувство/действие> <имя в вин. пад> Olga kocha Siergieja Oleg chce zobaczyć, jak Roman Katya szanuje Nastię Itd. Wykorzystany materiał: Nazwy operatorów: Assign, Rewrite, Reset, Write, Read, Close. GRAFIKA GRAFIKA Do pracy z grafiką w Pascalu potrzebne są dwa pliki - moduł graph.tpu oraz sterownik karty graficznej egavga.bgi. Pierwszy znajduje się w katalogu \UNITS, a drugi w \BGI. ! sterownik egavga.bgi. Wymagane podczas uruchamiania pliku exe! Aby rysować należy: 1. podłączyć moduł GRAPH (w sekcji Zastosowania); 2. zainicjować grafikę (InitGraph); 3. narysować coś; 4. zamknij tryb graficzny (CloseGraph) 63 GRAPHICS Inicjalizacja trybu graficznego Narysuj linię. Pióro przechodzi od punktu (0,0) do punktu (639, 479). PROGRAM Primer_1; Użyj wykresu, crt; VarGd,Gm: liczba całkowita; ROZPOCZNIJ Gd:=0; InitGraph (Gd,Gm,'d:\BP\bgi"); Line (0,0,639,479); ReadKey; CloseGraph; END. 639 px. Układ współrzędnych 479 px. trójkąt 2. Narysuj prostokąt na środku ekranu za pomocą boki dwa razy mniejsze niż odpowiadające im boki ekranu Wykorzystany materiał: Moduł graficzny: Graph Inicjalizacja grafiki: InitGraph Zamykanie trybu graficznego: CloseGraph;GRAPHICS + COLOR SetColor(Color: word);Ustawia kolor pisaka GetColor: word;Zwraca kolor pisaka SetBkColor(color: word); Ustawia kolor tła GetBkColor: word; Zwraca kolor tła Kolory Black Blue Green Cyan Red Magenta Brown LightGray DarkGray LightBlue LightGreen LightCyan LightRed LightMagenta Yellow White 66 - czarny - niebieski - zielony - cyjan - czerwony - liliowy - brązowy - jasnoszary - ciemnoszary - cyjan - jasnozielony - jasnobłękitny - różowy - jasnoliliowy - żółty - biały PRYMITYWY GRAFICZNE Linia (x, y); Rysuje linię od aktualnej współrzędnej pisaka do współrzędnych (x, y). PrzenieśDo(x, y); Ustawia pióro na współrzędne (x,y). PutPixel(x, y, kolor); Rysuje punkt o współrzędnych (x,y) z kolorem. GetPixel(x, y): słowo; Zwraca kolor punktu o współrzędnych (x,y). Prostokąt(x1, y1, x2, y2); Rysuje kontur prostokąta. Koło (x, y, r); Rysuje okrąg ze środkiem w punkcie (x,y) i promieniem r. SetLineStyle (Ln, 0, T) Zmienia parametry konturów. Ln - styl linii (0..3): 67 x1, y1 T - grubość linii: 1 = normalna; 3 = gruby. FillEllipse(x, y, xr, rok); Rysuje wypełnioną elipsę o środku w punkcie (x,y) z promieniami Xr i Yr. SetFillStyle(typ, kolor); Ustawia typ (0..11) i kolor kreskowania kształtów zamkniętych ClearDevice; Czyści ekran graficzny, malując go na bieżący kolor tła x2, y2 PODSTAWY GRAFIKI 68 ĆWICZENIE 69 1. Napisz program rysujący dom na ekranie monitora; 2. Napisz program rysujący na ekranie monitora rozgwieżdżone niebo z gwiazdami o losowym promieniu (od 1 do 5 pikseli) i losowym położeniu. Kolor również jest losowy (biały, jasnoszary, ciemnoszary); Użyty materiał: SetColor (kolor: słowo); - Ustawia kolor rysunku SetBkColor (kolor: słowo); - Ustawia bieżący kolor tła. linia(x, y); - Rysuje linię od aktualnej współrzędnej pisaka do współrzędnych (x,y). PrzenieśDo(x, y); - Ustawia pióro na współrzędne (x,y). PutPixel(x, y, kolor); - Rysuje punkt o współrzędnych (x,y) z Kolorem. Prostokąt(x1, y1, x2, y2); - Tworzy kontur prostokąta z linii w bieżącym kolorze. Koło (x, y, r); - Rysuje okrąg ze środkiem w punkcie (x,y) i promieniem r. FillEllipse(x, y, xr, rok); - Rysuje wypełnioną elipsę o środku w punkcie (x,y) o promieniach Xr i Yr. GRAFIKA + ANIMACJA Pauza w ms. 70 PODPROGRAMY PODPROGRAMY Podprogramy umożliwiają wybranie powtarzającej się części kodu na osobne fragmenty i wstawienie ich w odpowiednie miejsca w programie. Funkcja, w przeciwieństwie do procedury, zwraca wynik wywołania. Procedury Funkcje Podprogramy: zapisane pomiędzy słowa kluczowe początek koniec; są identyfikowane przez nazwy, które są pisane zgodnie z zasadami określania identyfikatorów; może mieć parametry wejściowe i wyjściowe; całkowicie powtórzyć strukturę programu głównego. 72 Zaprogramuj mój; Podprogram 1 [Kod podprogramu 1] Podprogram 2 [Kod podprogramu 2] Początek Podprogram 2 Podprogram 1 Przykład procedur systemowych: Write("OK"); ClrScr; Długość (S); losowy; // // // // procedura z jednym parametrem procedura bez parametrów funkcja z jednym parametrem funkcja bez parametrów Podprogram 2 Koniec. PODPROGRAMY (SPR) Zagnieżdżanie podprogramów Program Podprogram 1 Podprogram 3 Podprogram 4 Podprogram 2 . Nazwy zmiennych opisanych w DEP mogą być takie same jak nazwy zmiennych z innych DEP (ta sama zmienna może być zadeklarowana w każdym z DEP). Nazwa zmiennej opisana w PPR chroni zmienne o tej samej nazwie przed PPR, które zawiera daną (jeżeli w PPR1 i PPR3 zostaną zadeklarowane te same zmienne, to zmienne te będą unikalne w każdym PPR). Zmienne programu nazywane są globalnymi, a zmienne podprogramu nazywane są lokalnymi. PROCEDURY BEZ PARAMETRÓW Składnia rekordu: Procedura (nazwa procedury); (Sekcja zmiennych, stałych, typów, etykiet, modułów) Begin (treść procedury); koniec; Przykład użycia procedury bez parametrów: 74 PROCEDURY BEZ PARAMETRÓW Przykład użycia zmiennej ucieczki o tej samej nazwie: Program Mój_program; Używa crt; varA:ciąg znaków; // Opis procedury Procedura My_Procedure; varA:ciąg znaków; Początek A:= "Podprogram"; WriteIn(A); koniec; Początek A:= "Ciało"; WriteIn(A); moja_procedura; WriteIn(A); koniec. // Wywołanie procedury 75 PROCEDURY Z PARAMETRAMI 76 Aby podprogramy były bardziej uniwersalne, stosowane są specjalne mechanizmy wymiany danych pomiędzy programem a jego podprogramami. Procedury systemowe z parametrami: SetColor (Red); ( Procedura z Rectangle (0, 0, 639, 479); ( Procedura z InitGraph (Gd,Gm,'d:\BP\bgi"); ( Procedura z (parametry jeden parametr ) kilka parametrów ) kilka różnych typów ) ) Rejestrowanie procedury składniowe z parametrami Procedura (Nazwa) ((Obszar zmiennych wejściowych) Var (Obszar zmiennych wyjściowych (każda zmienna ma swoją Var))); Struktura obszarów: Zmienna_1, Zmienna_2, … : Typ; .. .......... Zmienna_N-1, Zmienna_N, ... : Typ; dowolny region może być nieobecny PROCEDURY Z PARAMETRAMI Korzystanie z parametrów wejściowych Procedura rysowania prostokąt okalający ekran, określony kolor Bez parametrów Z parametrami Procedura Cir; Begin SetColor (i); SetBkColor (b); Rectangle (0, 0, 639, 479); End; Procedura Cir (i, b:Integer); Begin SetColor (i); SetBkColor (b); Rectangle (0, 0, 639, 479); End; Wywołanie procedury w programie: Wywołanie procedury w programie: i:=6; b:=12; Cir; Cir (6, 12) 77 PROCEDURY Z PARAMETRAMI Używanie parametrów wyjściowych radian. PROGRAMU EX_26_3; VAR x, a: rzeczywisty; PROCEDURA Rad(alfa: rzeczywista; var betta: rzeczywista); (zmienna wyjściowa) BEGIN Betta:= pi*alfa/180; KONIEC; BEGIN Write("Podaj kąt w stopniach: "); odczytln(x); Rad(x, a); (Wywołanie procedury) Writeln("On jest równy kątowi w radianach = ",a:6:4); KONIEC. 78 ĆWICZENIE 79 1. Napisz procedurę rysowania trójkąta w następującym formacie: Trójkąt (x1,y1, x2,y2, x3,y3, Kolor) 2. Napisz procedurę obliczającą pole prostokąta w następujący sposób format: SRect (a, b, S) gdzie S jest parametrem wyjściowym procedury. Zastosowany materiał: Procedura (Nazwa) ((Obszar zmiennych wejściowych) Var (Obszar zmiennych wyjściowych)); Struktura obszaru: Zmienna_1, Zmienna_2, … : Typ; ........................... Zmienna_N-1, Zmienna_N, … : Typ; FUNKCJE 80 Składnia funkcji Funkcja ((Obszar zmiennej wejściowej) Var (Obszar zmiennej wyjściowej)): (Typ) ; Projekt procedury Projekt funkcji Procedura S(a,b:rzeczywista; var s:rzeczywista); Rozpocznij s:= a+b; koniec; Funkcja Suma(a,b: rzeczywista): rzeczywista; Początek sumy:= a+b; koniec; Wywołanie procedury Wywołanie funkcji S(10, 20, A); Napisać); O:= S(10, 20); ZapiszLN(A); ZapiszLN (S(20, 30)); Zaleca się zaprojektowanie jakiegoś podprogramu jako funkcji tylko wtedy, gdy oczekuje się jakiegoś wyniku jego działania. Jeśli podprogram jest nastawiony tylko na wykonanie określonej sekwencji działań (wyświetlanie, rysowanie itp.), lepiej napisać go jako procedurę. ĆWICZENIE Napisz funkcję obliczającą pole prostokąta w następującym formacie: SRect (a, b) Użyty materiał: Funkcja (Nazwa) ((Powierzchnia zmiennej wejściowej) Var (Powierzchnia zmiennej wyjściowej)): (Typ) ; Struktura obszaru: Zmienna_1, Zmienna_2, … : Typ; ........................... Zmienna_N-1, Zmienna_N, … : Typ; 81 MODUŁY MODUŁY 83 Jednostka (UNIT) to niezależna jednostka programowa, której zasoby (procedury i funkcje) mogą być wykorzystywane przez inne programy. ProgramMój1; Wykorzystuje Moduł1, ​​Moduł2; __________________________ __________________________ __________________ __________________ MODUŁ 1 Zestaw zasobów 1 … Program My2; Wykorzystuje Moduł1, ​​Moduł2; __________________________ __________________________ __________________ __________________ MODUŁ N Zestaw zasobów N Moduły są podłączone do programu poprzez sekcję UŻYTKOWANIA MODUŁÓW. STRUKTURA 84 Moduł składa się z następujących części: 1. Nagłówek modułu. 2. Część interfejsu. (opisy widocznych obiektów) 3. Część implementacyjna. (opisy obiektów ukrytych) 4. Część inicjalizacji (opcjonalnie). Jednostka (nazwa modułu); Interfejs ( Sekcja zmiennych globalnych, stałych, typów) ( Moduły ) ( Lista nagłówków procedur i funkcji ) Implementacja ( Sekcja zmiennych lokalnych, stałych, typów) ( Implementacja procedur i funkcji ) Początek (Część inicjalizacji ) Koniec. ! Nazwa nagłówka modułu musi być zgodna z nazwą pliku modułu! MODUŁY Przykład modułu: Jednostka Moja_Jednostka; Varmy interfejsu: tablica rzeczywista; ( Tablica globalna ) Funkcja Cub(x: liczba całkowita): liczba całkowita; (Funkcja Cub = x^3 ) Funkcja ext4(x:liczba całkowita): liczba całkowita; (Funkcja ext4 = x^4) Implementacja funkcji Cub(x:integer):Integer; ( Implementacja funkcji Cub ) Begin Cub:= x*x*x; koniec; Funkcja Ext4(x:liczba całkowita): liczba całkowita; ( Implementacja funkcji ext4 ) Początek Ext4:= x*x*x*x; koniec; koniec. 85 ĆWICZENIE 86 Napisz moduł z jedną funkcją i jedną procedurą: ( Obliczenie funkcji X1=1/x ) X1(a:real):real; ( Procedura drukowania słowa S na ekranie, w pozycji X, Y WriteXY(S: String; X, Y: Iteger); Użyty materiał (struktura modułu): Jednostka (Nazwa modułu); Interfejs ( Sekcja zmiennych globalnych, stałe, typy) ( moduły ) ( Lista nagłówków procedur i funkcji ) Implementacja ( Sekcja zmiennych lokalnych, stałych, typów) ( Implementacja procedur i funkcji ) Początek (Część inicjalizacji ) Koniec. )