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

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

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

Podstawy programowania

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

Informatyka 1. Przetwarzanie tekstów

Pascal - wprowadzenie

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

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Zasady Programowania Strukturalnego

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

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

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

Programowanie Delphi obliczenia, schematy blokowe

Instrukcje podsumowanie. Proste: - przypisania - wejścia-wyjścia (read, readln, write, writeln) - pusta - po prostu ; (średnik) Strukturalne:

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

Wstęp do programowania

Algorytmy i struktury danych

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

Informatyka 1. Wyrażenia i instrukcje cd., ręczna symulacja, operacje wejścia/wyjścia

Wprowadzenie do języka Pascal

MATERIAŁY DO ZAJĘĆ II

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

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Podstawy programowania

Informatyka I. Wyk lad II Algorytm, podstawowe notacje, typy danych i wyrażenia

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

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

Algorytmika i Programowanie VBA 1 - podstawy

Podstawy Programowania C++

Algorytmy i struktury danych. wykład 1

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

Kompendium wiedzy z Pascala

Instrukcje iteracyjne (pętle)

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

Kiedy i czy konieczne?

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

Programowanie RAD Delphi

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

PODSTAWY PROGRAMOWANIA

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel

Język programowania PASCAL

Bloki anonimowe w PL/SQL

Podstawy programowania

Podstawy programowania C. dr. Krystyna Łapin

Wstęp do programowania. Listy. Piotr Chrząstowski-Wachtel

Podstawy programowania

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

PODSTAWY PROGRAMOWANIA

Instrukcja warunkowa i wyboru

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

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

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

Elementy Pascala Konstrukcja programu w Pascalu Typy danych

ForPascal Interpreter języka Pascal

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

Pascal. 1. Pliki tekstowe. Przykład 1.1. Zapis do pliku tekstowego

Instrukcje cykliczne (pętle) WHILE...END WHILE

Wykład 2: Dane i instrukcje

Programowanie w Turbo 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}

Visual Basic for Application (VBA)

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

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Podstawy programowania w języku C

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

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

Informatyka 1. Algorytm, podstawowe notacje, typy danych i wyrażenia

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

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

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

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

1 Podstawy c++ w pigułce.

2 Przygotował: mgr inż. Maciej Lasota

LibreOffice Calc VBA

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Wstęp do programowania 2

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

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

OPERACJE NA PLIKACH. Podstawowe pojęcia:

Ada 95 #1/5 - typy. Typy skalarne. Hierarchia typów w Adzie. Typ znakowy. Typy dyskretne. Plan wykładu

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Microsoft IT Academy kurs programowania

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Podstawy programowania

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

P dst s aw a y w y j ę j zy zy a O JE J CT T P ASCAL

Java Podstawy. Michał Bereta

Automatyzacja pracy w AutoCAD

PL/SQL. Lidia Małkiewicz i Cezary Skubała

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

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

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

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Visual Basic for Application (VBA)

PODSTAWOWE WIADOMOSCI O JĘZYKU TURBO PASCAL

Wprowadzenie do programowania w VBA

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Transkrypt:

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

Typy danych Typ danych określa dwie rzeczy: Jak wartości danego typu są określane w pamięci Jakie operacje są dozwolone na obiektach danego typu 2

Rodzaje typów Proste (liczby, znaki, wartości logiczne, typy porządkowe, wskaźniki) nie mają wewnętrznej struktury. Złożone (tablice (napisy!), rekordy, zbiory, pliki,...) 3

Typy proste Wszystkie typy proste mają określone relacje - < - <= - = - > - >= - <> Wartości typów prostych są rozumiane przez instrukcje czytania/pisania 4

Typy porządkowe Wyliczamy wszystkie interesujące nas wartości definiując je jednocześnie. Przykład: type odpowiedzi = (BardzoZle, Zle, Nijakie, Dobre, BardzoDobre, NieWiem) Wszystkie typy porządkowe mają zdefiniowane operacje Ord numer w typie liczony od 0 (np. Ord(Nijakie)=2) Pred, Succ poprzednik, następnik,np. Pred(BardzoDobrze)=Dobrze Low, High pierwsza i ostatnia z wartości (Low=BardzoZle, High=NieWiem) 5

Przykłady Typ wartości logicznych. Zawiera tylko 2 wartości: false,true. Operatory: - not (negacja; jednoargumentowa) - or (alternatywa) - and (koniunkcja) - xor (alternatywa wyłączająca: albo-albo) 6

Typ znakowy (char) Znaki dostępne w komputerze Uwaga znaki a i A są inne, choć w identyfikatorach wielkość znaków nie gra roli. Funkcja chr dla danej liczby z przedziału 0..255 daje znak o tym numerze. Np. Chr(65)= A, tak jak Ord( A )=65. Funkcje Chr i Ord są wzajemnie do siebie odwrotne. 7

Liczby całkowite Shortint -128.. 127 1 bajt Smallint -32768.. 32767 2 bajty Longint -2147483648..2147483647 4 bajty Byte 0..255 1 bajt Word 0..65535 2 bajty Integer -2147483648..2147483647 4 bajty Cardinal 0.. 2147483647 4 bajty 8

Typy okrojone Zamiast podawać cały typ ograniczamy się do jego kawałka, np. 'a'..'z' 0..9 '0'..'9' 0..1 BardzoZle..Nijakie 9

Typy rzeczywiste To też typy proste, ale nie porządkowe (nie ma w nich operacji następnika) Real48 2.9e-39.. 1.7e38; 11-12 cyfr dokładnych; 6 bajtów Single 1.5e-45..3.4e38 7-8 cyfr dokładnych; 4 bajty Double 5.0e-324..1.7e308; 15-16 cyfr dokładnych; 8 bajtów Real = Double Extended 3.6e-4951..1.1e4932; 19-20 cyfr dokładnych; 10 bajtów Comp -2^63+1..2^63-1; 19-20 cyfr dokładnych; 8 bajtów Currency -2^59..2^59; 19-20 cyfr dokładnych; 8 bajtów 10

Funkcje rzeczywiste abs, sqr, sqrt, sin, cos, ln, exp round zaokrągla do najbliższej liczby całkowitej trunc obcina do najbliższej mniejszej liczby całkowitej Int obcina do najbliższej liczby rzeczywistej mającej wartość całkowitą FloatToStr przekształca liczbę rzeczywistą na napis StrToFloat przekształca napis będący poprawną stałą rzeczywistą na jej wartość 11

Tablice Komputerowe reprezentacje ciągów wartości Var a: array[1..100] of Real; b: array[-1..1] of String; c: array[char] of Integer; Odwoływanie się do konkretnych elementów tablicy przez podanie indeksu w nawiasach, np! a[1]:=-50.25e3; b[-1] := Ala ma kota ; c[ ; ]:=0; 12

Inne typowe funkcje dobrze ufundowane Dla pętli for i:=1 to n f(i,n)=n-i Dla algorytmów Euklidesa f(m,n)=m+n Dla algorytmów przechodzenia grafu: f(g)=liczba nieodwiedzonych węzłów 13

Stałe Stałe pomagają nazwać pewne wartości Przykład const Maxp = 460; dobrze = 1; MaxReal = 1e24; pusty = []; var Poslowie:array[1..Maxp] of string; 14

Rekordy Rekordy, to kolekcje danych różnych typów Type pracownik = record id : Integer; Imie,Nazwisko : String[15]; RokZatrudnienia : 1960..2215; case plec : (mezczyzna,kobieta) of mezczyzna : (broda: Boolean; NrKsWoj:String[11]); kobieta : (NazwiskoPanienskie:String[15]); end 15

Warianty w rekordach type zespolona=record case Boolean of false: (r,fi:real); true: (Re,Im:Real) end; Ten typ zajmie dokładnie tyle pamięci, co dwie liczby rzeczywiste. Typ Boolean nie jest odrębnym polem. rekordu 16

Warianty w rekordach type zespolona1=record case kartez:boolean of false: (r,fi:real); true: (Re,Im:Real) end; Ten typ zajmie dokładnie tyle pamięci, co dwie liczby rzeczywiste plus jeden bajt na wartość logiczną. kartez jest odrębnym polem. rekordu var z:zespolona1;: z.r:=1.0; z.fi:=pi/2; z.kartez:=false;... 17

Warianty w rekordach Function Tryg_To_Kart(var z:zespolona1); {zamienia postać trygonometryczną na kartezjańską} var pom:real; begin if not z.kartez then begin pom:=z.r*cos(z.fi); z.im:=z.r*sin(z.fi); z.re:=pom; z.kartez:=true end; 18

Zbiory type znaki = set of char; var z:znaki; begin z:=[]; z:=z+['a','c'..'e']; Read(ch); if ch in z then... end; 19

Instrukcja wyboru <instrukcja wyboru> ::= case <wyrażenie> of <lista wyborów> end <lista wyborów> ::= {<wybór> : <instrukcja>;} <wybór> ::= <stała> <stała>,<wybór> <zakres> <zakres>,<wybór> <zakres> ::= <stała>..<stała> 20

Przykład Case n of 0, 1 : ; 2..5,7..9,11,13,16..17,19: JedenDzielnikPierwszy; 6,10,12,14,15,18 :DwaDzielnikiPierwsze; else SpozaZakresu; end S 21

Operacje na zbiorach +,*,- (suma, przecięcie, różnica) X in Z (należenie) Uwaga: zbiory mogą zawierać stosunkowo niewielką liczbę elemenntów (zazwyczaj rzędu kilkuset. Są reprezentowane przez bitmapy. Raczej nie przyspieszają kodu Są wygodne do definiowania stałych zbiporowych, np If n in [2,3,5,7,11,13,17] then... 22

Pętla repeat <instrukcja>::=<pętla repeat> <pętla repeat>::= repeat <ciąg instrukcji> until <wyrażenie logiczne> Ciąg instrukcji nie wymaga begin..end 23

Semantyka pętli repeat Repeat P1;P2;...;Pn until B daje ten sam efekt, co begin P1;P2;...;Pn; while not B do begin P1;P2;...;Pn; end; end 24

Semantyka pętli repeat Petla repeat wykona się zawsze co najmniej raz Jest wygodna, gdy wiemy, że tak własnie ma być, np: repeat Write('Podaj ile masz lat:'); Read(n); if (n<minlat) or (n>maxlat) then Write('Wiek spoza zakresu ') until (n>=minlat) and (n<=maxlat) 25

Pętla for <pętla for>::= for <zmienna> := <wyrażenie> <jak> <wyrażenie> do <instrukcja> <jak> ::= to downto 26

Semantyka pętli for For i:=e1 to E2 do P ma znaczenie takie, jak begin i:=e1; while i<=e2 do begin P; i:=i+1 end i:=? end; 27

Semantyka pętli for Zastrzeżenia dotyczące pętli for Zmienna sterująca (i) musi być typu wyliczeniowego lub okrojonego Nie wolno wewnątrz pętli zmieniać ani wartości zmiennej sterującej, ani zakresu E2. 28