Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wykład 2 struktura programu elementy języka typy zmienne

Podobne prezentacje


Prezentacja na temat: "Wykład 2 struktura programu elementy języka typy zmienne"— Zapis prezentacji:

1 Wykład 2 struktura programu elementy języka typy zmienne wyrażenia arytmetyczne funkcje standardowe

2 Modularna struktura programu
składowe struktury: program główny (projekt) – rozszerzenie dpr moduł (jednostka kompilowalna) – plik pas – kod źródłowy opisujący jeden formularz podprogram (procedura, funkcja) Po kompilacji – plik exe przykład – zapis projektu 1.2

3 przykład okno kodu układ: program, moduł - jednopoziomowy
podprogram - hierarchiczny struktura programu, modułu, podprogramu: - nagłówek - opis obiektów /część deklaracyjna, opisowa - zapis akcji /część operacyjna, akcyjna składowe: - deklaracje, definicje - instrukcje (akcje wykonywane) - komentarze (- dyrektywy) przykład okno kodu 1.3

4 ogólna struktura programu (podprogramu): unit nazwa; interface
implementation Tu procedury end. [program, function] procedure nazwa(parametry); // nagłówek { inny dłuższy komentarz } uses ... // deklaracja modułów const ... // definicja stałych type ... // definicja typów var ... // deklaracja zmiennych begin instrukcja_1; // operacje instrukcja_2; . . . end. część opisowa – deklaracje i definicje! część akcyjna – instrukcje do wykonania odwołania do składowych obiektów (właściwości, metody) - kwalifikowane Application.Terminate; Nadawca.Dane.Color := clGreen; Odbiorca.Wynik.Text := Nadawca.Dane.Text; Odbiorca.Wynik.Clear; Będziemy używać dla komponentów, ale OBIEKTY dokładniej poznamy później 1.4

5 Język DELPHI - ObjectPascal - podstawowe elementy
Alfabet języka symbole podstawowe (pascalowe) Słowa kluczowe nazwy zastrzeżone – np. begin, string, var, type, array, record, for, if, while, repeat i inne Identyfikatory (nazwy) - także wprowadzone przez programistę ciąg liter (także _ ) lub cyfr, rozpoczynający się od litery, różny od słowa kluczowego - nierozróżnialne duże i małe litery !!! Nie wolno spacji!!! Stałe numeryczne - liczby całkowite - ciąg cyfr, ewentualnie poprzedzonych przez + - rzeczywiste - zapis zwykły  m.n (UWAGA: koniecznie KROPKA dziesiętna) - zapis wykładniczy (naukowy) jak Excelu, ale KROPKA DZIESIĘTNA!!! Stałe łańcuchowe – tekstowe - ciąg znaków w apostrofach, np. 'Pan Tadeusz' Stałe logiczne – true false 5

6 var lista_nazw_zmiennych: integer; lista_nazw_zmiennych: real;
Zmienne całkowite i rzeczywiste (proste) Zmienne przechowują dane – muszą być deklarowane ich nazwy (identyfikatory) i przyporządkowanie do typu Postać deklaracji zmiennych typ1, typ2... to typy standardowe lub definiowane var lista nazw zmiennych: typ1; lista nazw zmiennych: typ2; ....; Postać deklaracji zmiennych: var lista_nazw_zmiennych: integer; lista_nazw_zmiennych: real; np.: var i, j, k: integer; a, b, suma: real; integer, real to typy standardowe Utworzonym zmiennym przydzielana jest pamięć – o wielkości zależnej od typu zmiennej ! Deklaracje ułatwiają kontrolę poprawności kodu i kontrolę wartości zmiennych – przynależności do typu

7

8 Typy danych - standardowe
Typy liczbowe całkowite: Integer i inne (Byte, Word ,Int64 ...) (zobaczyć w Help) – różny zakres i zajętość pamięci: 4 bajty dla typu integer zakres: czyli rzeczywiste podstawowy Real 5.0 x 10^ x 10^308 i ujemne , CYFR ZNACZĄCYCH pamięć - 8 bajtów i inne: Single, Double, Extended - różnią się też zakresem Typ znakowy: Char znak – 1 bajt Typ tekstowy (łańcuchowy): String (jak AnsiString ~2^31 znaków) można deklarować np. String[20] ograniczając długość – tablica (wektor) znaków Typ logiczny: Boolean (wartości true i false)

9 Przykład var x:real; y:integer; napis: string; litera:char; begin x:= 2.5; y := -100; napis:= 'To jest napis'; litera :='A'; y := y+3; .... end blok deklaracji nadawanie wartości w części wykonawczej

10 Typy definiowane explicit
Typ wyliczeniowy Definicja: ( lista wartości ) np. var dzien : (po, wt, sr, cz, pi, so ,ni); Typ okrojony Typ okrojony wyznacza podzbiór dowolnego typu porządkowego (całkowitoliczbowy, char, wyliczeniowy, boolean) zwanego typem bazowym: w1 .. w2   gdzie w1 <= w2 var dni : ; znaki : 'a' .. 'z'; Inne (strukturalne) poznamy potem – tablicowy, rekordowy, plikowy

11 Typy można definiować, a potem je wykorzystać używać w definicji zmiennej
Postać definicji typu: type dni = (po, wt, sr, cz, pi, so ,ni); UWAGA! znak = .. a teraz deficja zmiennej tego typu var dzien : dni; UWAGA! znak : Wyjaśnienie: dni to nazwa typu, dzien to identyfikator (nazwa) zmiennej, tylko w niej można przechowywać wartości i przypisywać dane, np. dzien := wt; //to jest instrukcja wykonywana (przypisania, nadania wartości) Inne (strukturalne) poznamy potem : tablicowy, rekordowy, plikowy, obiektowy

12 Wyrażenie arytmetyczne
Postać - sensowna kombinacja – podobnie jak w Excelu: argumenty: - stałe - ich wartości - zmienne - ich wartości - wywołania funkcji - ich wartości operatory - jednoargumentowe - dwuargumentowe nawiasy - kolejność operacji wyrażenie  stała wyrażenie  identyfikator zmiennej wyrażenie  funkcja (wyrażenie) wyrażenie  wyrażenie operator wyrażenie 12

13 Operatory: Operator Znaczenie Grupa + powielenie znaku jednoargumentowe - zmiana znaku * mnożenie multiplikatywne / dzielenie rzeczywiste div dzielenie całkowite mod reszta z dzielenia całkowitego dodawanie addytywne odejmowanie Zasady te poznaliśmy w Excel'u ale uwaga: nie ma tu znaku ^ jako operatora potęgowania 13

14 kolejność wykonywania operacji
nawiasy - w pierwszym rzędzie ważność operatorów: jednoargumentowe multiplikatywne addytywne w grupie jednakowo ważnych - od lewej do prawej funkcje standardowe (predefiniowane) - wywołanie nazwa_funkcji( argument ) lub argumenty, oddzielane przecinkami wartość wyrażenie rekurencja ogólnie: zawsze nawias typ argumentu i wyniku określony 14

15 zaokrąglenie do całkowitej
typ argumentu abs real/integer wartość bezwzględna int real część całkowita frac część ułamkowa round integer zaokrąglenie do całkowitej trunc obcięcie do całkowitej maxint maksymalna wartość całkowita stała exp funkcja wykładnicza earg ln logarytm naturalny ln arg arg  0 sqr real integer kwadrat arg2 sqrt pierwiastek kwadratowy arg 0 sin sin arg arg w radianach cos cos arg arctan arctg arg wynik w radianach pi 15

16 funkcja power (podstawa, wykładnik) - potęga
potrzebna deklaracja biblioteki math w sekcji uses modułu formularza uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Math; ... procedure TForm1.Button1Click(Sender: TObject); var x:real; begin x:=power(2.1,4.563);

17 Funkcje dla tekstów Znaczenie Typ funkcji Typ argumentu Przykład
Nazwa Typ funkcji Typ argumentu Przykład znak następny succ znakowy succ ('g') 'h' znak poprzedni pred pred(' j ') ' i ' znak o podanym kodzie ASCII chr całkowity chr(49) '1' kod znaku ord ord('1') 49 długość tekstu length łańcuchowy length('alfa') 4

18 Przykłady wyrażeń: 18

19

20 Podstawowe instrukcje proste
Instrukcja przypisania - nadanie wartości zmiennej w części wykonawczej programu zmienna := wyrażenie; Np.: var N:integer; suma:real; begin N := -234; suma := 5.4* N; suma := suma +1; // zmiana wartości zmiennej .... end oczywiście N i suma muszą być zadeklarowane - przyporządkowane do typu ZGODNOŚĆ TYPÓW – wyrażenie musi mieć typ zgodny z typem zmiennej ZMIENNEJ rzeczywistej można nadać wartość całkowitą ZMIENNEJ łańcuchowej można nadać wartość znakową 20

21 Funkcje konwersji tekstowo-numerycznej:
Np. wprowadzanie i wyprowadzanie danych - z/do pola Edit Edit posiada właściwość text typu łańcuchowego – konieczna konwersja, aby wykonywać obliczenia na wpisanych danych liczbowych i aby wyświetlić wyniki Funkcje konwersji tekstowo-numerycznej: Liczba na łańcuch tekstowy intToStr( v: integer ): string; - integer  string floatToStr( v: real ): string; - real  string Łańcuch tekstowy na liczbę strToInt( s: string ): integer; - string  integer strToFloat( s: string ): real; - string  real UWAGA: liczbę da się zawsze zamienić na łańcuch znaków, lecz nie zawsze odwrotnie !!!

22 Prosty program procedure TForm1.Button1Click(Sender: TObject);
var a,b,c:integer; //całkowite begin a:=StrToInt(Edit1.Text);//z Edit do zmiennej b:=StrToInt(Edit2.Text); //z Edit do zmiennej c:=a+b; Edit3.Text:=IntToStr(c);// do Edit end;

23 Czyli.. podsumowując procedure nazwa (....); type nazwa_typu = definicja; //definicja typu var nazwa_zmiennej : nazwa_typu; //definicja zmiennej begin //wykorzystanie zmiennej w programie nazwa_zmiennej := wartość_zgodna_z_typem; end;


Pobierz ppt "Wykład 2 struktura programu elementy języka typy zmienne"

Podobne prezentacje


Reklamy Google