Pascal –  powtórka, zadania

  1. Twórca Pascala:  Niklaus Wirth
  2. Wersje Pascala: Borland Pascal 7.0 i Turbo Pascal 7.0 , Delphi Pascal
  3. Pascal to jezyk strukturalny czy maszynowy czy obiektowy?
  4. Uruchomienie Pascala: turbo.exe
  5. User ScreenAlt F5
  6. Kompilacja : Build, Compile – z opcją zapisu na dysk
  7. Skierowanie wyników pliku wykonywalnego  zamiast na ekran
  8. Rozszerzenie plików źródłowych – PAS, wykonywalnych - EXE
  9. Instrukcje rozdzielamy: średnikiem
  10. Schemat program: Program, Uses, const, var, procesure, function, Begin…End.
  11. Moduł, który dodajemy, żeby można było czyścić ekran – uses crt;
  12. Kasowanie ekranu – procedura: clrscr;
  13. Stałe – definicja: const
  14. Zmienne – deklaracja: var
  15. Program główny – po end musi być …. kropka
  16. Słowa kluczowe to np.  – 3 przykłady: var, Begin, read,
  17. Instrukcja – zapis operacji do … wykonania
  18. Wyrażenia składają się ze stałych, operatorów i identyfikatorów
  19. Identyfikatory – nazwy obiektów np. zmiennych. Identyfikatory mogą zawierać litery, cyfry i znaki podkreślenia, nie mogą jednak zaczynać się od cyf,
  20. Instrukcja – zapis operacji do wykonania przez komputer – wyrażenia, wywołania funkcji i procedur.
  21. Duże litery nie są odróżniane od małych.
  22. Separatorem w programie (deklaracji, procedur, funkcji) jest znak średnika.
  23. Komentarzem w Pascalu jest dowolny ciąg znaków ujęty w nawiasy klamrowe {  }   lub   (*  *)
  24. Zmienna – jako pojemnik na dane, każda zmienna musi być określonego typu – deklarujemy przez var, np. var liczba1, liczba2: redl;
  25. Typy zmiennych określa się przy pomocy słowa kluczowego var
  26. Typy całkowite: Porządkowy (wyliczeniowy), np. type figury=(kwadrat, prostokat, trojkat, okrag);
  27. Okrojony – podajemy 2 skrajne wartości,  np. type literkim=’a..’k’;
  28. Typ logiczny Boolean – wartość logiczna true lub false,
  29. znakowy Char - pojedynczy znak ASCII
  30. Integer -32768, 32767 – 2 bajty
  31. ShortInt -128, 127
  32. Byte 0,255 – 1 bajt
  33. Word 0,65535 – 2 bajty
  34. Longint  - 2147483648 do 2147483647   4 bajty
  35. Typy rzeczywiste
  36. Single 1.5e-45 do 3.4e38
  37. Double 5.0e-324 do 1.7e308 – 8 bajtów
  38. Extended 3.4e-4932 do 1.1e4932
  39. Comp –9.2e18 do 9.2e18  bardzo długa liczba rzeczywista
  40. string - napis (łańcuch, ciąg znaków)  -  ciąg do 255 znaków, np.  'Napis'
  41. File – plik,  np. var file1: file of byte; {plik o elementach typu byte};  var file_txt: text;
  42. Array – tablica, np.   var t1, t2: array[1..30] of integer;
  43. Do wprowadzania wartości zmiennych z klawiatury służą procedury read i readln, które powinny być uzupełniane procedurami write i writeln.
  44. Chcąc wstrzymać działanie programu, można użyć procedury readln.
  45. W skład wyrażeń wchodzą stałe i zmienne (reprezentujące dane) oraz operatory (znaki, np. dodawania, mnożenia) i funkcje
  46. Operatory arytmetyczne, bitowe, logiczne oraz relacyjne (operatory porównania).
  47. Do zmiany kolejności działań służą nawiasy.
  48. Operatory arytmetyczne:  *, /, div (dzielenie całkowite), mod (reszta z dzielenia) , +, -
  49. Pierwszeństwo mają:  operatory mnożenia i dzielenia (*, /, div i mod),  wykonywane zawsze przed dodawaniem i odejmowaniem.
  50. Operatory relacyjne: =, <>, <. <=, >, >=
  51. Operatory logiczne: not - negacja,  and - iloczyn logiczny or – suma logiczna – alternatywa  
  52. Priorytet wszystkich operatorów:  not,  *     /    div   mod and,                  +  -  Or  ,               = <> < <= > >= 
  53. Stałe (const). Stałe to komórki pamięci, które mają takie same wartości przez cały czas działania programu. Definiujemy przy pomocy słowa const, np.  const ROS = 200.0/Pi;
  54. Decyzje: if then else lub case: If warunek then instrukcjaif warunek then instrukcja-1 else instrukcja-2;
  55. case przełącznik of     wartość-1 : akcja-1;     wartość-2 : akcja-2;     ...     else akcja-domyślna   end; Instrukcję case stosujemy gdy zachodzi konieczność podjęcia kilku decyzji.
  56. Obliczenia cykliczne (iteracyjne) - do cyklicznego (iteracyjnego) wykonywania instrukcji służą w Pascalu pętle.
  57. Instrukcje pętli mogą być sterowane warunkiem (while-do, repeat-until) lub licznikiem (for-to/downto).
  58. Pętle while i repeat używane są wówczas, gdy nie znamy z góry liczby przebiegów pętli, możemy natomiast określić warunek jej zakończenia.
  59. Pętla while wykonuje się tak długo, jak długo warunek jest spełniony, repeat - tak długo, jak długo jest niespełniony
  60.  Pętla z warunkiem na początku while warunek do lista-polecen – do pozwala na zapętlenie wykonywania instrukcji tak długo, jak długo jest spełniony warunek.
  61. while warunek do instrukcja;   Przykład:  while ch=’ ‘ do ch:=getchar;
  62. Pętla z warunkiem sprawdzanym po wykonaniu poleceń (repeat..until)    repeat lista_polecen until warunek
  63. Repeat … util - wykonywanie instrukcji kończy się, jeśli wartość warunku jest true, w przeciwnym przypadku powtarzane jest ponownie.
  64. Np. repeat ch:=getchar until ch <> ‘ ‘;
  65. Instrukcje tworzące zawartość pętli repeat muszą wykonać się co najmniej raz, zaś w przypadku pętli while mogą nie wykonać się ani razu.
  66. Instrukcja for  umożliwia wykonanie określonej liczby przebiegów – jest kontrolowana licznikiem.
  67. for zmienna:= wart_poczatkowa to wart_koncowa  do instrukcja;  for zmienna:= wart_poczatkowa downto wart_koncowa  do instrukcja;
  68. for - zmienna musi być typu całkowitego, znakowego lub logicznego. for i:=1 to 5 do writeln(i); for i:=5 downto 1 do writeln(i)
  69. Tablica jest to struktura danych zawierająca uporządkowany zbiór obiektów tego samego typu.
  70. Tablica odpowiada matematycznemu pojęciu wektora – tablica jednowymiarowa lub macierzy – tablica dwuwymiarowa.
  71. Elementy tablicy wskazujemy za pomocą indeksów
  72. Tablicę tworzymy przy pomocy słowa kluczowego array: var zmienna_tabl:=array[zakresy_indeksow] of typ_elementu;  Np.  var t1, t2: array[1..30] of integer;
  73. Typ tablicowy: Type identyfikator_tabl = array [zakresy_indeksow] of typ_ellementu;  Np.  type wektor = array[1..30] of integer;  var t1, t2: wektor;
  74. Do obsługi tablic wykorzystuje się często pętle for.   Np. for i:=1 to i do writeln(t1[i]); 
  75. Podprogramy: procedury I funkcje
  76. Podprogram jest to wyróżniona część programu, komunikująca się z pozostałą częścią w ściśle określony sposób.
  77. Do komunikacji wykorzystywane są parametry, w definicji podprogramu nazywane formalnymi, a przy wywoływaniu podprogramu parametrami aktualnymi.
  78. Podprogram może być wielokrotnie wywoływany z części głównej programu lub z innych podprogramów.
  79. Funkcje pod swoją nazwą zwracają obliczoną wartość, a procedury nie.
  80. Wszystkie obiekty zdefiniowane wewnątrz procedur są lokalne, tj. widoczne tylko dla nich i ewentualnie procedur wewnętrznych..
  81. Wszystkie obiekty zdefiniowane w blokach nadrzędnych wobec procedur są dla nich dostępne, łącznie ze strukturami globalnymi, zdefiniowanymi w programie głównym..
  82. Zdefiniowanie obiektu lokalnego o tej samej nazwie co obiekt z bloku nadrzędnego, powoduje jego przesłonięcie (odwołania odnoszą się do obiektu lokalnego).
  83. Definicje funkcji (procedur) muszą być umieszczone w programie przed częścią operacyjną i muszą występować w odpowiedniej kolejności.
  84. Stosowanie funkcji i procedur jest korzystne ze względu na poprawę czytelności i efektywności programu, zmniejszenie podatności na błędy i skrócenie czasu potrzebnego na jego pisanie.
  85. Procedure nazwa (lista_parametrow_formalnych); {deklaracje stałych, zmiennych, typów} begin  {treść procedury}   end;
  86. Function nazwa_funkcji (lista_parametrow_formalnych): typ_wyniku; {deklaracje stałych, zmiennych, typów}  begin   {treść i}   nazwa_funkcji:=wynik;  nazwa_funkcji:=wynik}  end;
  87. W treści funkcji musi być umieszczone przypisanie: nazwa_funkcji:=wynik
  88. Wywołanie funkcji: Zmienna:=nazwa_funkcji(lista_parametrow_aktualnych);
  89. Przykład: Function kwadrat(bok: real): real; Begin  Kwadrat:=bok*bok; End;
  90. Zapamiętywanie danych  na dysku i odczyt danych. Wiąże się ze strukturalnym typem danych - typem plikowym.
  91. Definicja typu plikowego rozpoczyna się od słowa kluczowego FILE. np. TYPE wyniki = FILE of integer;
  92. Pliki tekstowe (file of char)  mają zwykle rozszerzenie TXT, są predefiniowane w Pascalu i mają identyfikator TEXT.
  93. Prz. VAR f :text; BEGIN  assign(f, 'C:\plik1.txt');   rewrite(f);  writeln(f, 'Jakieś zdanie numer 1');  writeln(f, 'Jakieś zdanie numer 2');   Close(f);  {zamkniecie pliku} END.
  94. Asembler: Jezyk wysokiego poziomu, niskiego poziomu
  95. Pascal, Basic, C, Fortran - Języki wysokiego poziomu czy niskiego poziomu
  96. Pascal to interpreter  czy kompilator?
  97. Czy można w Pascalu wykonywać obliczenia w trybie bezpośrednim?