Programowanie teoria

Kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zazwyczaj jako tekst w postaci czytelnej dla człowieka z użyciem środowiska programistycznego. W takiej postaci program jest zrozumiały dla człowieka znającego język programowania jednakże bezpośrednio jest bezużyteczny dla maszyny np. komputera

Bit- może przyjmować dwie wartości: prawdę(true;1) lub falsz(false;0)

8bitow to bajt.

Zapis informacji w komputerze :Podst. Jedn informacji jest bit,może on przyjmować 2 wartości (true,false),pamięć w komputerze przechowuje ciąg bitów. (1024b-kb,1024kb-mb…)

Dwójkowy system liczbowy: za pomocą zer i jedynek, w jednym bajcie maks 255 znaków (np. 0-0,1-1,2-10,3-11,4-100)

Zapis zmiennoprzecinkowy: +5.23443E234 -> +5-część całkowita, .23443-część dziesiętna, E234 –cecha o podst 10. Część całkowita + dziesiętna= mantysa; np. 3.4E2=3.4*10^2=340.

Struktura programu: część delklaracyjna (var…), (begin…część deklaracyjna…end.)

Operacje wejścia-wyjścia: write(…); wypisanie na ekranie bez przejścia do następnej linii, writeln(…); z przejściem do następnej linii, writeln; przejście do następnej linii, readln(zmianna); pobieranie wartości z klawiatury do zmiennej (wartość zatwierdzamy enterem), readln; czekanie na naciśnięcie klawisza enter.

Stałe: część deklaracyjna (const pi=3.14;), (begin…write(‘liczba pi wynosi:’,pi; … end.)

Język maszynowy - postać programu komputerowego (postać wykonywalna lub binarna) przeznaczona do bezpośredniego lub prawie bezpośredniego wykonania przez procesor, praktycznie nieczytelna dla człowieka.

Kompilator - tłumaczy cały kod na język zrozumiały dla komputera (język maszynowy) a następnie wykonujeprogram. Przykładowe kompilatory: Borland Delphi, Borland Builder, Visual C++

Interpreter - tłumaczt jedno polecenie a następnie go wykonuje, i tak polecenie po poleceniu. Przykładowy interpreter: MATLAB.

Nazwa zmiennej (identyfikator) - ciąg znaków alfanumerycznych rozpoczynających się od litery bądź znaku podkreślenia

-małe i duże litery nie są rozróżniane; -dowolna liczba znaków (kompilator interpretuje jedynie pierwsze 63 znaki;

-bez spacji; -różne od słów kluczowych.

Zmienne: położenie zmiennej w pamięci komp określa adres, część deklaracjna (var x:integer;), (Begin…x:=5; write(‘kwadrat pod liczby wynosi’, x*x; … end.) nazwa zmiennej(identyfikator) ciąg znaków alfanumerycznych rozpoczynający się od litery bądź znaku, mełe i duże litery nie są rozróżniane, dowolna liczba znaków (kompilator interpretuje pierwsze 63), bez spacji, różne od słów kluczowych.

Typy zmiennych:

- strukturalny;

- string;

- prosty: porządkowy (wyliczeniowy, okrojony, całkowity, znakowy, logiczny), rzeczywisty

- wskaźnikowy;

- proceduralny.

Typy całkowite: byte, shortint, word, integer, longint, longword, cardinal, int64.

Typy rzeczywiste: real, single, double, extended, comp, currency.

Boolean – tylko dwie wartości (np. prawda, fałsz).

Div – dzielenie całkowite.

Mod – reszta z dzielenia.

Typ okrojony – jest podzbiorem typu porządkowego, zachowującym wszystkie własności typu pierwotnego dla ograniczonych wartości. Składnia type nazwa_typu1=(wart1,wart2,wart3,wart4,wart5); nazwa_typu2=wart1...wart4;

Typ porządkowy:

Succ – następnik w typie porządkowym

Pred – poprzednik w typie porządkowym

Low – najmniejsza wartość z zakresu

High – największa wartość z zakresu

Funkcie standardowe :Typ char i string:

Chr (x)– argument x jest typu Byte, a wynikiem jest znak z tabeli kodowej ASCII o numerze porządkowym x.

Ord (‘B’) – argument jest znak z tabeli kodowej ASCII o numerze porządkowym x, a wynikiem jest numer kodu.

Upcase (x) – argument x, jak również wynik funkcji są typu Char. Funkcja ta, jako wynik, daje dużą literę argumentu x. W przypadku kiedy x nie jest małą literą, wartością funkcji jest argument x.

Lenght (s) – długość łańcucha tekstowego.

Operatory Logiczne operator and ma wyższe pierwszeństwo niż or

Operatory logiczne:

Not – negacja (nieprawda, że…)

And – koniunkcja, czyli iloczyn logiczny (i)

Or – alternatywa, czyli suma logiczna (lub)

Xor – różnica symetryczna

Instrukcja warunkowa IF

Jeżeli spełniony jest warunek to… w przeciwnym wypadku…

Składnia: Przykład

if warunek then if x>0 then

instrukcja; x:=x*(-1);

lub

if warunek then if x<0 then

instrukcja x:=x*(-1)

else else

instrukcja 2; x:=x+a;

Instrukcja wielowariantowa CASE

W przypadku spełnienia konkretnego warunku, wykonywana jest konkretna instrukcja.

case zmienna/wyrażenie OF

Wart1:instrukcja1;

Wart2:instrukcja2;

End;

Pętla FOR

Wykonuje wielokrotnie jakąś operacje.

Składnia:

for instrukcja początkowa to wartość końcowa do

instrukcja;

Przykład:

for x:=1 to n do for i:=1 to 10 do

begin begin

instrukcja1; write(x,’ ‘);

instrukcja2; Writeln(sqr(x));

end; end;

Pętla WHILE

Program wykonuje określoną instrukcję jeśli spełniony jest warunek. Warunek sprawdzany przed wykonaniem pętli , w przypadku nie spełnienia warunku, pętla nie zostanie wykonana ani razu.

Składnia: Przykład:

while warunek do while x<10 do

begin begin

instrukcja 1; x:=(x+10)/15;

instrukcja2; if x mod q<>0 then

end; writeln(x);

end;

Pętla REPEAT

Program będzie powtarzał pętle aż do momentu spełnienia warunku.

Składnia: Przykład:

repeat y:=152

instrukcja1; repeat

instrukcja2; x:=x+(15/x);

until warunek do spełnienia; until x>y;

end; end;

Typy strukturalne - typy w których każdy element jest zbiorem komponentów, istniej określony sposób dotarcia do pojedynczych składowych danego elementu.

Podział:

- typ tablicowy (array);

- typ rekordowy (rekord);

- typ zbiorowy (set);

- typ plikowy (file);

- typ obiektowy (object).

Typ tablicowy - typ strukturalny, którego komponenty są jednego typu i ich kolejność jest ściśle określona, a dostęp do składowych poszczególnych elementów odbywa się przez indeksy.

type

nazwa_typu=array[zakres indeksow] of typ_elementow;

Przykład:

type

typ1=array [1…10] of integer;

var

w1:typ1;

i:integer;

begin

for i:=1 to 10 do

readln(w1[i]);

for i:=1 to 10 do

writeln(w1[i]);

readln;

end.

Typ rekordowy : typ strukturalny łączący w jedną całość składowe różnych typów, składowe rekordu nazywane są polami rekordu.

Składnia:

program: nazwa_programu;

typenazwa_typu=record pole1,pole2:integer;

pole3:double; pole4:char;

end;

var zmienna1:nazwa_typu;

Begin … zmienna1.pole1:=2;

zmienna1.pole3:=3.4;

zmienna1.pole4:=’k’;

end

(np. program który przechowuje współrzędne dwóch punktów w przestrzeni)

Typ zbiorowy: typ strukturalny, którego elementami są wartości typu porządkowego (np. integer,char). Elementy w zbiorze nie są uporządkowane.

Składnia:

typenazwa_typu=set of typ_porzadkowy

Przykład:

type znaki=set of char;

cyfry=set of 0..9;

(np. program sprawdzający czy podany znak jest samogłoską czy spółgłoską)

Typ logiczny(Boolean)-do zmiennych tego typu mozliwe jest przyporzadkowanie tylko true I false, wszystkie wyrażenia logiczne w Pascalu zwracają wartość typu boolean.

Operatory arytmetyczne: + (identyczność), - (zmiana znaku), + (dodawanie), - (odejmowanie), * mnożenie), / (dzielenie), div (dzielenie całkowite) np. 5 div 2=2, mod (reszta z dzielenia) np. 5 mod 2=1.

Typ porządkowy(wyliczeniowy, okrojony,całkowity, logiczny,znakowy):succ(x) następnik w typie porządkowym, pred(x) w typie porządkowym, low(x) high(x) – najmniejsza największa wartość z zakresu.

Sortowania elementów czyli ułożenie elementów w odpowiedniej kolejności (rosnącej lub malejącej), wg odpowiedniego kryterium.

- sortowanie bębenkowe („lżejsze” liczby wypływają do góry);

- przez wstawianie;

- przez wybór;

„szybkie”

Procedury i funkcje:

Podprogram – wyodrębniona część programu, stanowiąca całość (blok), posiadająca nazwę i ustalony sposób wymiany informacji z pozostałymi częściami programu.

Podział:

- procedury – podprogramy nie zawierające żadnej wartości i uruchamiane w charakterze instrukcji w programie;

- funkcje – podprogramy zawierające dokładnie jedną wartość i uruchamiane w wyrażeniach.

Rekurencja podprogram uruchamiający sam siebie.

Wytyczne stosowania:

- każdy podprogram wywołujący „sam siebie” musi mieć wbudowany warunek przerywający wywołanie rekurencji;

- przy każdym kolejnym wywołaniu podprogramu, tworzony jest na stosie komplet zmiennych lokalnych;

- podczas wywołania rekurencji na stosie może być wiele kompletów zmiennych ale dostępny jest tylko ostatni, po zakończeniu wywołania rekurencyji następuje usuwanie ze stosu kompletów zmiennych w odwrotnej kolejności do ich składania na stosie.

Zalety stosowania procedur i funkcji:

- podprogramy czyli przejrzystość,

- jedna procedura, funkcja uruchamiana wielokrotnie – skrócenie kodu,

- zastosowanie parametrów – większa uniwersalność, uproszczenie kodu,

- znane procedury i funkcje można stosować do innych programów.

Programowanie proceduralne – zastosowanie procedur i funkcji.

Typ rekordowy – typ strukturalny łączący w jedną całość składowe różnych typów (składowe – pla rekordu).

Po co?: kolor, masa, włączony, długość i szerokość.

Składnia: Przykład

type type

nazwa_typu=record Tpunkt=record

pole1,pole2:integer; x,y,z:double;

pole3:double; end;

pole4:char; var

end; p1,p2:Tpunkt;

var procedure pobierz_punkt(var p:punkt);

zmienna1:nazwa_typu; begin

begin write(‘Podaj x:’); readln(p.x);

… write(‘Podaj y:’);readln(p.y);

zmienna1.pole1:=2; write(‘Podaj z:’); readln(p.z);

zmienna1.pole3:=3.4; end;

zmienna1.pole4:=’k’; begin

… pobierz_punkt(p1);

end. pobierz_punkt(p2);

readln;

end.

Typ okrojony – jest podzbiorem typu porządkowego, zachowującym wszystkie własności typu pierwotnego dla ograniczonych wartości.

Type

Nazwa_type1=(wart1,wart2,wart3);

Typ zbiorowy – typ strukturalny, którego elementami są wartości typu porządkowego. Elementy w zbiorze nie są uporządkowane.

Type

Nazwa_type=set of typ_porzadkowy;

Type

Znaki=set of char;

Cyfry=set of 0..9;

Dzien=(pon,wt,Sr,czw,pt,sob,Nd);

Dni=set of dzien;

Parametry - niektóre tylko służą do przekazywania danych wejściowych do procedury a niektóre są modyfikowane i wyprowadzane z procedur. Przekazywanie parametru: przez wartość (komunikacja jednostronna); przez zmienną (komunikacja dwustronna).

Zmienne - Parametry procedur są również zmiennymi lokalnymi. Jeżeli zmienne mają te same nazwy co zmienne lokalne przesłaniają zmienne globalne.

Programowanie proceduralne - zastosowanie procedur i funkcji w technice programowania.

Rodzaje plików w Pascalu:

Plik zdefiniowany - plik binarny, którego wartości są określonego typu.-

Pliki tekstowe - składają się ze znaków o strukturze wierszowej. Ciągi znaków pooddzielanych znakami końca lini, możliwy jest jest odczyt i zapis danych w ten sam sposób, jak w przypadku wysyłania danych na ekran i odczytu z klawiatury. Kolejne odczytywane i zapisywane dane mogą być różnego typu. Zostają one zapamiętane w pliku w postaci wartości przekonwertowanych na tekst.

Pliki beztypowe - traktowane są jako ciągi bajtów o niezdefiniowanej strukturze.

Pliki binarne - struktury danych o elementach tego samego typu. Typ elementów jest dowolnym typem plikowym lub strukturalnym zawierającym elementy typu plikowego.

Składnia Zmiennej plikowa-

- (Z)pliki zdefiniowane: var zm_plik: file of type;

-(T)pliki tekstowe: var zm_plik: text;

-(B)pliki beztypowe: var zm_plik: file;

Wskaźnik położenia- Zapamiętana aktualna pozycja w pliku

Możliwe operacje:

-skojarzenie zmiennej plikiem z fizycznym plikiem (np. na dysku)

-utworzenie pliku z równoczesnym otwarciem do zapisu

-otwarcie pliku do odczytu i/lub zapisu

-zapisanie danych (o ile plik jest otwarty do zapisu)
-odczyt danych ( o ile plik jest otwarty do odczytu)

-Zamkniecie pliku

Append(zmp)- otwiera plik tekstowy przygotowując go do zapisu dalszych danych na końcu pliku(T)

Assign(zmp,plik)- przyporządkowuje zmiennej plikowej nazwę zewnętrznego pliku (Z,T,B)

Close(zmp)- zamyka otwarty plik(Z,T,B)

Eof(zmp)- funkcja sprawdzająca czy został osiągnięty koniec pliku otwartego do odczytu(Z,T,B)

Eoln(zmp)-funkcja sprawdzająca czy w pliku tekstowym został osiągnięty koniec wiersza(T)

Erase(zmp)- usuwa plik zewnętrzny(Z,T,B)

FilePos(zmp)-funkcja podająca aktualną pozycję w pliku(Z,B)

FileSize(zmp)-funkcja podająca wielkość pliku(Z,B)

Read(zmp,zm)-wczytuje jedną lub więcej wartości z pliku tekstowego lub jeden rekord z innego pliku(Z,T,B)

Readln(zm,zm)-wczytuje jedną lub więcej wartości przeskakuje na początek następnego wiersza(T)

Reset(zmp)-otwiera istniejący plik: dla pliku tekstowego do odczytu, dla pozostałych plików do odczytu zapisu(Z,T,B)

Rewrite(zmp)- tworzy nowy plik (lub kasuje zawartość pliku istniejącego) i otwiera go do zapisu(Z,T,B)

Seek(zmp,pozycja)-ustawia wskaźnik położenia na pozycję określonego rekordu(Z,B)

Write(zmp,zm)-zapisuje jedną lub więcej wartości do pliku tekstowego lub jeden rekord do innego pliku(Z,T,B)

Writeln(zmp,zm)-podobnie poprzednia z dopisaniem znaku końca wiersza(T)

Zmp- zmienna plikowa zm- zmienna

Z-pliki zdefiniowane

B-beztypowe

T-tekstowe

Zmienna wskaźnikowa - zmienna której wartość to adres do innej zmiennej, czyli adres do obszaru pamięci komputera zajmowanego przez inną zmienną.

Deklaracja:

Var

Nazwa_zmiennej:^typ;

wsk:=@zmienna; -przypisanie do zmiennej wskaźnikowej adresu zmiennej wskazywanej

wsk^:=wartości; -przypisanie wartości do zmiennej wskazywanej za pośrednictwem zmiennej wskaźnikowej

wsk:=nil; -przypisanie do zmiennej wskaźnikowej zerowego adresu(zmienna nam nic nie pokazuje)

Przykład

Zmienna wskazywana - zmienna, której adres zapamiętywany zostaje w zmiennej wskaźnikowej.

Wskaźnik - adres zmiennej wskazywanej wraz z typem tej zmiennej. Zmienne wskaźnikowe i wskaźniki: pozwalają na przyspieszenie programu, jeśli w przypadku dużych struktur przepisujemy wskazania na dane, a nie same dane; umożliwiają łączenie w logiczne struktury danych o różnych typach.

Zmienna statyczna - zmienna tworzona w trakcie kompilacji programu.

Zmienna wskaźnikowa i wskaźnik:

- pozwala na przyspieszenie programu, jeśli w przypadku duzych struktur przepisujemy wskazania na dane, a nie same dane

-umożliwiają łączenie w logiczne struktury danych i rożnych typach

Zmienna dynamiczna - zmienna tworzona w trakcie działania programu za pomocą procedur dynamicznego podziału pamięci. Zmienną dynamiczną: można usunąć w dowolnym momencie w trakcie działania programu; umożliwiają pracę z dużą ilością danych; umożliwiają oszczędniejszą gospodarkę pamięci, która jest przydzielona dopiero w fazie działania programu; pamięć operacyjna może być przydzielana a następnie zwalniana w trakcie realizacji programu, co ma szczególne znaczenie w systemach wielozadaniowych; zmienne dynamiczne wykorzystuje się do tworzenia struktur dynamicznych (list, drzew). Indeksy tablic dynamicznych zawsze zaczynają się od zera.

new(wsk); -utworzenie zmiennej dynamicznej i przypisanie do zmiennej wskaźnikowej adresu zmiennej

dispose(wsk); -usuniecie zmiennej dynamicznej (zmienna wskaźnikowa wciąż pokazuje na ten sam adres pamięci komputera)

Lista - uporządkowany zbiór elementów, składający się z elementów zwanych węzłami. Węzły są zmiennymi dynamicznymi, więc rozmiar listy można zmieniać w dowolnym momencie, w trakcie działania programu. Każdy węzeł składa się z dwóch części: danych i wskaźników do innych węzłów. Zmienna wskaźnikowa, w której zapamiętano adres pierwszego węzła nazywana jest głową lub korzeniem. Zmienna wskaźnikowa, w której jest adres ostatniego węzła to ogon.

Listy jednokierunkowe- w każdym węźle zapamiętywany jest tylko adres następnego węzła

Listy dwukierunkowe-

Tablice dynamiczne nie mają określonego rozmiaru. Rozmiar ten można dowolnie zmieniać w trakcie działania aplikacji. uwaga! indeksy tablic dynamicznych zawsze zaczynają się od zera!

Length(zmienna); -długość rozmiaru pierwszego (wiersza)

Lenght(zmienna [0]); -długość rozmiaru drugiego (kolumny)

Moduł(ang.unit)-zestaw typów własnych, stałych, zmiennych, procedur i funkcji zawartych w oddzielnym pliku. Plik modułu może mieć postać już skompilowaną. Nieskompilowana postać ma rozszerzenie .pas a skompilowana .dcu. Do tak napisanych typów, stałych, zmiennych, procedur i funkcji można się odwołać w nowo pisanym programie. Plik modułu najlepiej wtedy umieścić w tym samym katalogu, co pisany nowy program.

Składnia:

Unit nazwa;

Interface

//część publiczna

Implementation

//część prywatna

end.

Plik powinień mieć tą samą nazwę, co moduł. W tym przypadku: nazwa.pas (w w wersji skompilowanej: nazwa.dcu). Żaden typ, stała zmienna, czy procedura lub funkcja umieszczona tylko w części prywatnej nie jest dostępna ,,za zewnątrz modułu’’. Aby procedura, czy funkcja stała się publiczna, trzeba jej nagłówek umieścić w części publicznej modułu. Nazwy występujące w programie są nadrzędne w stosunku do tych występujących w modułach. Aby odwołać się do przesłoniętej nazwy z modułu, należy przed nazwą umieścić nazwę modułu i kropkę.

Do pomocy w wykonywaniu bardziej złożonych operacji edytorskich w Turbo Pascalu służy moduł Crt. Moduł ten nie jest zawarty w pakietach bor land i Turbo Delphi.

Ważniejsze polecenia

procedure MaxXy (Var maxX:integer; var maxY:integer);-rozmiar ekranu

Procedure ClrScr;-czyszczenie ekranu

procedure GotoXY (x,y:integer);- przemieszczenie kursora

procedure TextColor (txtColor,Bkcolor:byte);-kolor tekstu i wypełnienia

function WhereX: integer;-numer wiersza

function WhereY: integer;-numer kolumny

function readkey: char;-czekanie na klawisz

function KeyPressed:boolean;-czy klawisz został naciśnięty

procedure ClrEol;-czyszczenie do końca linii

Przeciążenie (ang.overloading)-stosowanie tej samej nazwy dla dwóch lub więcej procedur (funkcji). Rozstrzygnięcie, która z procedur (funkcji) ma być wywołana odbywa się automatycznie na pdstawie wypisanej liczby lub typów parametrów procedury (funkcji). Przeciążenie procedury musza być opatrzone klauzulą overload napisaną w nagłówku.

Pliki tekstowe

Pliki zdefiniowane

Baza danych


Wyszukiwarka

Podobne podstrony:
[lekcja 2] Podstawy programowania teoria i terminologia Kurs C++ » Poziom 1
Programowanie Teoria i praktyka z wykorzystaniem C Wydanie II poprawione 2
Programowanie Teoria i praktyka z wykorzystaniem C Wydanie II poprawione
programowanie liniowe teoria
JS 06 Funkcje matematyczne, Programowanie, instrukcje - teoria
JS 15 Metody w JavaScript, Programowanie, instrukcje - teoria
PL (programowanie liniowe), semestr 8, Matematyka, Teoria i praktyka decyzji ekonomicznych
TEORIA RUCHU POJAZDÓW-program, MiBM Politechnika Poznańska, Semestr V
TEORIA PROGRAMOWANIA DYDAKTYCZNEGO, Teoria kształcenia
program zajęc aud I sem 10-11, Szkoła, penek, Przedmioty, Nawigacja, Teoria, Materiały do nauki na I
JS 05 Operatory Logiczne, Programowanie, instrukcje - teoria
JS 09 Instrukcja switch, Programowanie, instrukcje - teoria
JS 11 Funkcje, Programowanie, instrukcje - teoria
JS 03 Zmienne i Typy, Programowanie, instrukcje - teoria
POETYKA I TEORIA LITERATURY - program (dr N. Lemann), Poetyka i teoria literatury
JS 10 Instrukcja for, Programowanie, instrukcje - teoria
43.teoria, AGH, agh, programinski, Laborki, Laborki, Lab, FIZYKA - Laboratorium, Trust i Mikele
program zajęć dyd-wyr, różne, teoria

więcej podobnych podstron