Wprowadzenie do języka Pascal

Podobne dokumenty
Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

Instrukcja warunkowa i wyboru

Programowanie Delphi obliczenia, schematy blokowe

Literatura. Techniki programowania II s.1-1

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

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

Cw.12 JAVAScript w dokumentach HTML

Algorytmika i Programowanie VBA 1 - podstawy

JAVAScript w dokumentach HTML (1)

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

Pascal - wprowadzenie

Delphi Laboratorium 3

Podstawy programowania

JAVAScript w dokumentach HTML - przypomnienie

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

Instrukcja standardowa Writeln

Wstęp do programowania

Elementy języków programowania

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

Instrukcje iteracyjne (pętle)

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

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

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

PASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie

Klasy: String, Random, Math. Korzystanie z dokumentacji.

1 Podstawy c++ w pigułce.

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

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

Właściwości i metody obiektu Comment Właściwości

1. Wypisywanie danych

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

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

Odczyt danych z klawiatury Operatory w Javie

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

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

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

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

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

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

C++ wprowadzanie zmiennych

Podstawy programowania obiektowego

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

Programowanie w Turbo Pascal

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

Visual Basic for Application (VBA)

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych

Obliczenia, zmienne. Proste działania, zmienne, rodzaje zmiennych, proste operacje i działania na zmiennych.

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

Programowanie w języku Python. Grażyna Koba

Wprowadzenie do programowania w VBA

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

PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ

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

Wprowadzenie do systemu Delphi

Zmienne, stałe i operatory

Podstawy Programowania C++

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

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

ForPascal Interpreter języka Pascal

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

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

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:

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

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Języki programowania zasady ich tworzenia

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

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

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

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5

LibreOffice Calc VBA

Nazwa implementacji: Kółko i krzyżyk w Lazarusie. Autor: Piotr Fiorek Andrzej Stefaniuk

Podstawy programowania

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]

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

4. Funkcje. Przykłady

ZMIENNE. Podstawy PHP

Podstawy programowania w C++

Programowanie Wizualno Obiektowe - zajęcia 5 (PWO_BCPP_5_1) 1 Tworzenie plików pomocy Programowanie Wizualno Obiektowe Zajęcia 5, część 1

Podstawy JavaScript ćwiczenia

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.

Podstawy Programowania

Język ludzki kod maszynowy

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Ściągawka z funkcji i właściwości systemowych VBA. Opis działania i parametrów. Nazwa funkcji. Składnia zwracanej wartości

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Kiedy i czy konieczne?

Algorytmy i struktury danych. wykład 1

Funkcje Andrzej Musielak 1. Funkcje

Krótki kurs JavaScript

JAVAScript w dokumentach HTML (2)

1 Podstawy c++ w pigułce.

Programowanie RAD Delphi

Język programowania PASCAL

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}

Transkrypt:

Wprowadzenie do języka Pascal zmienne i typy standardowe operatory arytmetyczne, funkcje standardowe odczyt danych i wyświetlanie wyników obsługa wyjątków Techniki programowania I s.2-1

Podstawowe zasady programowania w języku Pascal Wielkość liter nie jest rozróżniana. Zasada ta dotyczy zarówno nazw instrukcji, elementów predefiniowanych w języku jak i elementów definiowanych w programie (zmienne, typy, podprogramy, itp.), Każda instrukcja programu powinna być zakończona średnikiem, Średnik może być pominięty przez słowem end, Znaki "białe", czyli przejścia do nowej linii, tabulacje, wielokrotne spacje pomiędzy poszczególnymi słowami nie są istotne i będą pomijane, Kolejne instrukcje mogą być zapisane w jednym wierszu, jednak każda musi być zakończona średnikiem, Słowa kluczowe języka (nazwy instrukcji, elementy nagłówków, itp.) są zastrzeżone i nie mogą być wykorzystane jako nazwy elementów definiowanych w programie, Tekst umieszczony w klamrach ({ }) lub poprzedzony podwójnym ukośnikiem (//) jest komentarzem języka Pascal. Techniki programowania I s.2-2

Deklaracja zmiennych Zmienna element języka programowania używany do przechowywania przetwarzanych danych. Język Pascal wymaga deklaracji (określenia typu) zmiennej przed jej pierwszym użyciem. Schemat deklaracji zmiennej var nazwa_zmiennej1: typ1; nazwa_zmiennej2: typ2; nazwa_zmiennej3, nazwa_zmiennej4: typ3; nazwa_zmiennej unikalny ciąg znaków, który jest prawidłowym identyfikatorem. typ dowolny typ standardowy lub zdefiniowany przez użytkownika (w.01 s.25). Deklarację zmiennych w procedurze obsługi zdarzenia należy umieścić pomiędzy nagłówkiem i słowem begin. Identyfikator ciąg znaków składający się z liter alfabetu angielskiego, cyfr, znaku podkreślenia, nie zaczyna się od cyfry, nie jest słowem kluczowym języka. Przykłady identyfikatorów: a, abc, x75, kod_produktu, _xyz. Nieprawidłowe identyfikatory: 27x, kod produktu, imię, end, x$y Techniki programowania I s.2-3

Typy standardowe Typy całkowite Typy rzeczywiste integer (-2147483648..2147483647) real (2.9e-39..1.7e38, 11-12 cyfr) shortint (-128..127) single (1.5e-45..3.4e38, 7-8 cyfr) smallint (-32768..32767) double (5.0e-324..1.7e308, 15-16 cyfr) byte (0..255) extended (1.9e-4951..1.1e4932, 19-20 cyfr) word (0..65535) longword (0..4294967295) boolean typ logiczny (dwie wartości: true prawda i false fałsz) char typ znakowy (pojedynczy znak) string typ łańcuchowy (ciąg znaków o długości maksymalnej 255 znaków) Typ porządkowy typ danych w którym każdy element ma ustalony następnik i poprzednik. W języku Pascal: wszystkie typy całkowite, boolean, char. Przykłady 127 typ całkowitego true typ logiczny 127.5 typ rzeczywisty 'a' typ znakowy 1.723e+01 typ rzeczywisty (17.23) 'xyz' typ łańcuchowy Techniki programowania I s.2-4

Instrukcja przypisania Instrukcja przypisania, operatory arytmetyczne Tak jak w przypadku własności komponentów instrukcja przypisania może być używana do nadawania wartości zmiennym, zgodnie ze schematem: nazwa_zmiennej := wyrażenie; Operatory arytmetyczne + dodawanie div dzielenie całkowite - odejmowanie mod dzielenie modulo * mnożenie ( ) grupowanie działań / dzielenie Przykład var x,y,z: integer; a: char; b: string; x := 10; y := 7+x*4; a := 'x'; b := 'abcd'; Operacje arytmetyczne wykonywane są od lewej do prawej z zachowaniem priorytetów (po pierwsze mnożenie i dzielenie, później dodawane i odejmowanie). Nie można pomijać symboli działań, nawiasy okrągłe zmieniają kolejność operacji. Uwaga: 5 x 5/3* y x 3 y ( x 5) /(3* y) x 5 3y Techniki programowania I s.2-5

Funkcje standardowe Trygonometryczne: Sin, Cos, Tan, Cotan podstawowe funkcje trygonometryczne (kąt w rad), ArcSin, ArcCos, ArcTan odwrotne funkcje trygonometryczne (wynik w rad), DegToRad, RadToDeg zamiana stopni na radiany i radianów na stopnie. Arytmetyczne: Abs wartość bezwzględna, Ln, Log10, Log2, LogN logarytm: naturalny, podstawa 10, 2, dowolna, Round, RoundTo zaokrąglenie do całkowitej i określonej liczby cyfr, Ceil, Floor zaokrąglenie do najbliższej całkowitej w górę i w dół, Trunc obcięcie części ułamkowej, Sqr, Sqrt kwadrat i pierwiastek kwadratowy. Znakowe/łańcuchowe: Chr, Ord znak o podanym kodzie i kod znaku, AnsiUpperCase, AnsiLowerCase zamiana znaków na duże/małe litery, Length długość ciągu znakowego, Pos poszukiwanie pierwszego wystąpienia ciągu znakowego w innym ciągu. Techniki programowania I s.2-6

Funkcje standardowe - przykłady Przykład 1. Przykład 2. var x, y, z: Real; var v, x, y, z: Real; x := DegToRad(45); v := 3458.3764; y := Sin(x); x := Round(v); // x = 34458 z := RadToDeg(ArcSin(y)); y := RoundTo(v,1); // y = 3460 Przykład 3. var s, s1, s2: string; p: integer; s := 'Język Pascal'; z := RoundTo(v,-2); // z = 3458.38 s1 := AnsiUpperCase(s); // s1 = JĘZYK PASCAL s2 := AnsiLowerCase(s); // s2 = język pascal p := Pos('Pas', s); // p = 7 p := Pos('pas', s); // p = 0 Uwaga: pewne funkcje wymagają dołączenia dodatkowego modułu (klauzula uses przed definicją klasy formularza), np. część funkcji trygonometrycznych i arytmetycznych opisanych na str. 8 wymaga modułu Math. Techniki programowania I s.2-7

Odczyt danych wprowadzanych przez użytkownika Podstawowym elementem używanym do wprowadzania danych jest komponent Edit. Wartość wprowadzona przez użytkownika jest dostępna we własności Text. Uwaga: własność Text jest typu string, stąd każda wartość (również numeryczna) wprowadzona w polu edycyjnym będzie traktowana jako ciąg znaków. Przykład var s:string; x:integer; s:=edit1.text; prawidłowe przypisanie, typy własności i zmiennej zgodne x:=edit.text; błąd kompilacji, niezgodne typy własności i zmiennej W celu odczytania wartości numerycznej z pola edycyjnego należy dokonać konwersji (zamiany) z typu łańcuchowego na liczbowy, korzystając z funkcji: function StrToInt(s: string) : integer; function StrToFloat(s: string): real; Przykład var x:integer; x:=strtoint(edit1.text); Instrukcja będzie wykonana bez błędów, jeżeli w polu edycyjnym znajduje się wartość (łańcuch znaków), która jest prawidłową liczbą całkowitą. Techniki programowania I s.2-8

Wyświetlanie wyników Wynik działania programu można wyświetlić używając komponentu Label (własność Caption) lub Edit (własność Text + ReadOnly). W przypadku danych numerycznych pojawia się problem zgodności typów (Caption i Text są typu string). Wyświetlenie wartości numerycznej wymaga konwersji typu liczbowego do łańcuchowego za pomocą funkcji: function IntToStr(x:integer): string; function FloatToStr(x:real) : string; function FormatFloat(format:string; wartość:real): string; Przykład var x:integer; y:real; // y=23.78 Label1.Caption := IntToStr(x); Edit1.Text := FloatToStr(y); Edit1.Text := FormatFloat('0.000',y); zawartość Edit1: 23,780 Edit1.Text := FormatFloat('0.###',y); zawartość Edit1: 23,78 Edit1.Text := FormatFloat('0.0',y); zawartość Edit1: 23,8 Edit1.Text := FormatFloat('0.00e+00',y); zawartość Edit1: 2,38e+01 Techniki programowania I s.2-9

Przykład 3. rozwiązanie równania liniowego Program rozwiązuje równanie liniowe ax+b=0 na podstawie wartości współczynników a i b (liczby rzeczywiste) wprowadzanych w polach edycyjnych (Edit1, Edit2). Obliczenia będą uruchomione po naciśnięciu przycisku "Oblicz" (Button1), rozwiązanie wyświetlane jest przy pomocy etykiety (Label5). procedure TForm1.Button1Click(Sender: TObject); var a, b, x: real; begin a := StrToFloat(Edit1.Text); b := StrToFloat(Edit2.Text); x := -b/a; Label5.Caption := 'Rozwiązanie x=' + FormatFloat('0.0000',x); Uwaga: operator "+" w instrukcji wyświetlającej rozwiązanie nie jest arytmetycznym dodawaniem. W tym kontekście jest to operator konkatenacji, który łączy łańcuchy znakowe (do napisu "Rozwiązanie x=" dołącza znakową reprezentację wyniku). Pełny kod programu dostępny na stronie przedmiotu jako "Przykład03" Techniki programowania I s.2-10

Obsługa wyjątków Wykonanie pewnych instrukcji może zakończyć się błędem. Taka sytuacja jest sygnalizowana przez wygenerowanie specjalnego komunikatu nazywanego wyjątkiem (ang. except). Wystąpienie wyjątku przerywa wykonanie bieżącego bloku programu i przenosi sterowanie do bloku obsługi wyjątków. Delphi reaguje na każdy wyjątek wyświetlając standardowe okno komunikatu z informacją o zaistniałym błędzie (język angielski). Przechwytywanie i samodzielną obsługę wyjątków umożliwia konstrukcja: try blok instrukcji except kod obsługi wyjątku Jeżeli dowolna instrukcja umieszczona pomiędzy try i exept zgłosi wyjątek, działanie całego bloku zostanie przerwane i będzie wykonany kod umieszczony pomiędzy except i end. Instrukcje umieszczone za słowem end będą wykonane zawsze niezależnie od tego czy wcześniej wystąpił wyjątek. Techniki programowania I s.2-11

Przykład 3a równanie liniowe, modyfikacja I Program rozwiązujący równanie liniowe (s.10, przykład 3.) zgłosi standardowy błąd jeżeli użytkownik wprowadzi wartość, która nie jest liczbą (funkcja StrToFloat w takim przypadku podnosi wyjątek). Poniższa modyfikacja wprowadza własną obsługę błędów i wyświetla komunikat dopasowany do funkcji programu: procedure TForm1.Button1Click(Sender: TObject); var a, b, x: real; begin try a := StrToFloat(Edit1.Text); b := StrToFloat(Edit2.Text); x := -b/a; Label5.Caption := 'Rozwiązanie: x=' + FormatFloat('0.0000',x); except ShowMessage('Współczynniki równania muszą być liczbami'); Pełny kod programu dostępny na stronie przedmiotu jako "Przykład03a" Techniki programowania I s.2-12

Przykład 3b równanie liniowe, modyfikacja II Program "Przykład 3a" nie rozróżnia rodzaju i miejsca wystąpienia błędu, np. wyświetli komunikat gdy współczynnik a jest zerem (dzielenie przez zero). procedure TForm1.Button1Click(Sender: TObject); var a, b, x: real; begin try a := StrToFloat(Edit1.Text); except ShowMessage('Współczynnik "a" musi być liczbą'); Edit1.SetFocus; exit; // odczyt współczynnika b analogicznie try x := -b/a; Label5.Caption := 'Rozwiązanie: x=' + FormatFloat('0.0000',x); except Label5.Caption := 'Brak rozwiązania'; Konstrukcja Edit1.SetFocus ustawia kursor w polu Edit1. Instrukcja exit przerywa działanie bieżącej procedury. Pełny kod programu dostępny na stronie przedmiotu jako "Przykład03b" Techniki programowania I s.2-13

Klasy wyjątków Konstrukcja try except umożliwia rozpoznanie typu błędu (klasy wyjątku) i odpowiednią reakcję na każdy wyjątek, który wystąpił w danym bloku. try blok instrukcji except on KlasaWyjątku1 do begin kod obsługi on KlasaWyjątku2 do begin kod obsługi... on KlasaWyjątkuN do begin kod obsługi Uwaga: begin i end może być pominięte jeżeli po do jest tylko jedna instrukcja. Wybrane klasy wyjątków: EConvertError błąd konwersji ciągu znakowego (StrToInt, StrToFloat), EDivByZero, EZeroDivide dzielenie przez zero (liczby całkow. i rzeczyw.), EIntError, EMathError błąd w obliczeniach (liczby całkowite i rzeczywiste), EOverflow przekroczenie zakresu liczb rzeczywistych. Techniki programowania I s.2-14

Przykład 3c równanie liniowe, modyfikacja III procedure TForm1.Button1Click(Sender: TObject); var a, b, x: real; begin try a := StrToFloat(Edit1.Text); b := StrToFloat(Edit2.Text); x := -b/a; Label5.Caption := 'Rozwiązanie: x=' + FormatFloat('0.0000',x); except on EConvertError do begin ShowMessage('Współczynniki równania muszą by liczbami'); Edit1.SetFocus; on EZeroDivide do Label5.Caption := 'Brak rozwiązania'; Pełny kod programu dostępny na stronie przedmiotu jako "Przykład03c" Techniki programowania I s.2-15