Turbo Pascal 1,2 i czesc 3 semestru


DZIESITNE NA BINARNE
Mamy liczbę: 354 Zaczynamy dzielić.
354:2|0
177:2|1
88:2|0
44:2|0
22:2|0
11:2|1
5:2|1
2:2|0
1:2|1 ^ Zpisujemy w górę
czyli będzie:
101100010
SZESNASTKOWE NA BINARNE
Mamy postać: E3A43
Korzystając z tabeli "TABELA 16-STKOWEGO" rozkodowujemy poszczególne cyfry i litery.
Czyli będzie:
1110/0011/1010/0100/0011
SZESNASTKOWE NA DZIESIETNE
Mamy postać: 2B3A1
Rozkodowujemy z tabeli "TABELA 16-STKOWEGO"
oznaczenia liter Od prawej strony zaczynamy mnożyć przez kolejne potęgi liczby '16'.
Czyli:
1*16(0)+10*16(1)+3*16(2)+
+11*16(3)+2*16(4)=
+1+160+768+45056+131072=
=177057
BINARNE NA DZIESITNE
Mamy postać: 100011110101011
Mnożymy kolejnymi potęgami liczby '2':
1 0 0 0 1 1 1 1 0 1 0 1 0 1 1
| | | | | | | | | | | | | | |
2(14 2(13 2(12 2(11 2(10 2(9 2(8 2(7 2(6 2(5 2(4 2(3 2(2 2(1 2(0
| | | | | | | | | | | | | | |
itd itd. itd itd itd itd itd itd 0 32 0 8 0 2 1
Potem zliczmy i sumujemy.
BINARNE NA SZESNASTKOWE
Wystarczy odczytać z tabeli "TABELA 16-STKOWEGO" zakodowane liczby, a jeśli brakuje jednej
to dopisać '0'.
Przykład:
10101010001
dzielimy i dodajemy zero:
0101/0101/0001
| | |
5 5 1
Czyli: 551
DZIESIETNE NA SZESNASTKOWE
Mamy postać: 58963
Obliczmy najpierw kolejne potęgi liczby '16' czyli:
16(0=1
16(1=16
16(2=256
16(3=4096
16(4=65536
Wybieramy taką sumę potęgi '16' by była podzielna przez podaną nam liczbę czyli przez 58963
Następnie dzielimy, odejmujemy, mnożymy:
58963:4096=14,.. |pierwsza: 14
4096*14=57344
58963-57344=1619
1619:256=6,.. |druga: 6
256*6=1536
1619-1536=83
83:16=5,.. |trzecia: 5
16*5=80
83-80=3,.. |czwarta: 3
Jeśli mamy powyżej 9 jakąś z powyższych to odczytujemy z "TABELA 16-STKOWEGO" jej przypisaną literę.
Na koniec otrzymaliśmy: E653
Tabela do systemu szesnastkowego:
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111
INSTRUKCJA ITERACYJNA 'FOR'
Służy do organizowania pętli programowych. Jest to jedyna instrukcja, która ma z góry określoną ilość
powtórzeń. Istnieją dwie postacie tej instrukcji:
FOR :=
TO DO ;
-Wartość zmiennej rośnie od wartości początkowej do wartości końcowej z krokiem 1 i dla każdej wartości
zmiennej zostanie wykonana instrukcja po słowie 'DO'.
FOR := DOWNTO
DO ;
-Wartość zmiennej maleje z krokiem 1 od wartości końcowej do wartości początkowej i dla każdej wartości
zmiennej zostanie wykonana instrukcja po słowie 'DO'.
PRZYKAADY:
for:=1 to 80 DO
for:=1 to 20 DO write('*');
for:=1 to 10 do
begin
write('Podaj a');
readln(a);
s:=s+a
end;
Zmienna, która występuje w instrukcji 'FOR 'może być typu znakowego(czyli BYTE, WORD, SHORTINT,
INTEGER, LONGINT)
lub całkowitego (CHAR).
Instrukcja, która występuje w instrukcji 'FOR' może być:
pusta WRITELN
READLN
prosta wykonująca jakąś funkcję
lub złożona BEGIN
BEGIN
END.
SKAADNIA WYBORU INSTRUKCJI CASE
Zamiast wielokrotnego stosowani instrukcji 'IF' stosujemy instrukcję 'CASE', która umożliwia nam sprawdzenie
większej ilości warunków. Ma postać:
CASE of
: ;
: ;
: ;
: ;
: ;
: ;
: ;
: ;
: ;
ELSE
end;
INSTRUKCJA 'IF' JEST DWU-POSTACIOWA
PROSTA:
IF THEN
-Jeżeli warunek będzie spełniony to zostanie wykonana instrukcja po słowie THEN w przeciwnym wypadku
przejdzie do następnej linijki kodu
ZAOŻONA:
IF THEN
ELSE ;
-Jeżeli warunek będzie spełniony zostanie wykonana instrukcja 1,gdy warunek nie
będzie spełniony to zostanie wykonana instrukcja 2.
Warunek musi być wyrażeniem logicznym
np. x>0;
Instrukcja może być:
pusta WRITELN
prosta READLN(a)
lub blok instrukcji begin



end.
INSTRUKCJA ITERACYJNA 'REPEAT'
Służy do organizowania pętli programowych ze sprawdzeniem warunku na końcu pętli.
REPEAT UNTIL
-Instrukcja może być pusta, prosta lub złożona. W przypadku instrukcji złożonej nie musimy stosować tu słów
BEGI i UNTIL są naturalną klamrą programową. Wyjście z pętli nastąpi w momencie kiedy warunek zmieni
swoją wartość z fałszu na prawdę tzn. będzie powtarzana tak długo aż warunek przestanie być fałszem.
INSTRUKCJA ITERACYJNA 'WHILE'
Służy do organizowania pętli programowych ze sprawdzeniem warunku na początku pętli.
WHILE DO
-Warunek to wyrażenie logiczne PRAWDA, FAASZ.
Instrukcja po słowie DO nie może być pusta. Będzie powtarzana d puki
warunek jest prawdziwy. Jeżeli warunek jest fałszywy to instrukcja nie zostanie wykonana ani razu.
Instrukcja powinna zawierać polecenie zmieniające wartość warunku, dlatego nie może być pusta.
k:=0
while k<10 do
begin
k:=k+1
writeln(k)
end;
MAMY TYPY PROSTE I ZAOŻONE.
PROSTE DZIEL SI NA PORZDKOWE
(całkowite):
BYTE - z zakresu od 0 do 255
WORD - z zakresu od 0 do 65535
zapisana na 2 bajtach
SHORTINT - z zakresu od -128 do 127
zapisana na 1 bajcie
INTEGER - z zakresu od -32768 do 32767
zapisana na 2 bajtach
LONGINT - o dużych wartościach zapisana
na 4 bajtach
(rzeczywiste):
REAL - zapisanych na 6 bajtach
SINGLE - zapisana na 4 bajtach
DOUBLE - zapisana na 8 bajtach
EXTENDED - zapisana na 10 bajtach
COMP
(znakowy):
CHAR - każdy element typu znakowgo
zajmuje jeden bajt pamięci(kod ASCII)
(logiczny):
BOOLEAN - pamiętane na jednym bajcie
pamięci o wartości 0 (False) lu 1 (true)
(wyliczeniowy)
(okrojony)
(łańcuchowy):
STRING
Typ wyliczeniowy - jeśli liczba jest mniejsza lub równa 256 to każdy element jest pamiętany
w jednym bajcie, w przeciwnym przypadku każdy element zajmuje 2 bajty pamięci.
Typ łańcuchowy-elementy tego typu zajmują 2 bajty pamięci, gdzie pierwszy oznacza ich
maksymalną długość, a pierwszy bajt zawiera aktualną długość łańcucha(zapisaną jako BYTE)
,a pozostałe bajty zawierają ASCII kolejnych znaków łańcucha.
ZAOŻONE DZIEL SI NA:
STRUKTURALNE:
-tablicowy
-rekordowy
-plikowy
-zbiorowy
NIESTRUKTURALNE:
-obiektowy
-wskaznikowy
-proceduralny
WPROWADZANIE DANYCH NA EKARN:
WRITE ('lista danych'); wprowadza dane na ekran i kursor pozostaje w tej samej linii
WRITELN ('lista danych'); wprowadza dane na ekran i kursor przechodzi do nowej linii
(ln-linia 'new' czyli nowa linia)
Wyprowadzając tekst na ekran musi on być ujęty w apostrofy np ('TP');
lista danych->stałe, zmienne, teksty oddzielone od siebie przecinkami.
WYPROWADZANIE DANYCH NA EKRAN:
READ ('lista zmiennych'); instrukcja zczyta dane z klawiatury i kursor pozostanie w tej samej linii
READLN ('lista zmiennych'); instrukcja zczyta dane z klawiatury i kursor przejdzie do drugiej linii
np.
read (a)
5
a:=5
readl(a,b,c)
5,6,7
a:=5
b:=6
c:=7
Jeżeli wprowadziliśmy kilka danych z klawiatury to musimy oddzielić je spacjami, a po wprowadzeniu
ostatniej wciskamy ENTER.
ZMIENNE TABLICOWE
Są to zmienne przechodzące określoną ilość danych tego samego typu, np:
20 cyfr 10 pojedynczych znaków(CHAR)
15 zmiennych tekstowych
DEKLARACJA ZMIENNEJ AACCUCHOWEJ MA
POSTAĆ:
var nazwa zmiennej:array[zakres] of types
zakres-> 1..20 (dwadzieścia elementów
jednoelementowych),
1..10,1..10 (dwuwymiarowe)
var a:array[1..15] of byte; 15-elementowa
jednowymiarowa tablica przechowująca
liczby całkowite od 0-255
var b:array[1..3,1..4] of real;
tablica dwuwymiarowa przechowująca liczby
rzeczywiste czyli ujemne, dodatnie z przecinkami itd
var c:array[1..4] of cahars;
tablica cztero-elementowy przechowująca pojedynczy znak np.1,2,3
ODWOAANIE:
Do wartości zmiennej tablicowej odwołujemy się poprzez nazwę tej zmiennej i indeks (czyli numer pola).
1 a[1]:=1;
a= 2 a[2]:=2;
3 a[3]:=3;
Tablice dwu-wymiarowe::
var a,b,c:array [1..5,1.5] of integer;
TYPY REKORDOWE
W celu zapamiętania przez program różnych cech jednego obiektu używamy typów rekordowych. Mogą
one zawierać w sobie różne zmienne różnych typów np. typu liczbowego, tekstowego, logicznego itd.
Definicja typu rekordowego ma następującą postać:
nazwa_typu = record
nazwa_pola1:typ zmiennej
nazwa_pola2:typ zmiennej
nazwa_pola3:typ zmiennej
nazwa_pola4:typ zmiennej
end;
Robi się to w części opisowej
programu.
Przykłady rekordów:
TPlec=(mezszyzna,kobieta);
-typ wyliczeniowy
TTelefony=array:[1..3] of string;
-typ rekordowy tablicowy
TOsoba=record
imie,nazwisko:string[30];
ulica,miasto:string[40];
kod:string[6];
plec:TPlec;
RokUrodzenia:Word;
Pesel:String[11];
Teleony:TTelefony
end;
Odwołanie się do wartości zmiennej rekordowej odbywa się przez podanie nazwy zmiennej
rekordowej,kropki,nazwy pola np.
Osoba.imie:='Ania'
Osoba.Pesel:='79...'
Jezeli chcemy użyć kilku pól tej samej zmiennej rekordowej używamy instrukcji WITH, która ma postać:
with do
;
Przykład:
with osoba do
Begin
imie:='Ania';
pesel:='79...';
end;
STRUKTURA PROGRAMÓW W 'TP'
SCHEMAT:
1.Nagłówek programu
2.Część opisowa
3.Część wykonywalna
4.end.
OPIS POSZCZEGÓLNYCH CZŚCI:
Ad.1
-Składa się ze słowa kluczowego programu po, którym występuje nazwa programu złożona z liter, cyfr i
znaków podkreślenia(w nazwie jako pierwsza jest litera),nie wolno stosować spacji oraz znaków
narodowościowych. Nagłówek programu może być pominięty, bo nie ma on wpływu na wykonanie programu,
stanowi on jedynie informację dla programisty czego ten program dotyczy.
Ad.2
-Zawiera definicje stałych, zmiennych funkcji ,procedur itd. W części tej używamy słów kluczowych:
'uses','var','const'.
Ad.3
-Znajduje sie ona między słowami begin i end. Zawiera ona instrukcje, które mogą
zostać wykonane w programie np.zczytywanie danych do pamięci, wyświetlanie wyniku.
Każda instrukcja musi być zakończona średnikiem. Instrukcje mogą być pisane jedna obok drugiej
,ale nie więcej niż 127 znaków.
Ad.4
-Część kończąca program.
POSTAĆ OGÓLNA:
program ;
var:a,b,c:real;
begin
instrukcja;
instrukcja;
instrukcja;
end.
IDENTYFIKATORY-służą do oznaczania różnych obiektów takich jak: nazwy programów, funkcji, procedur
itd. Składają się z liter, cyfr i znaków podkreślenia(jako pierwsza zawsze musi pojawić się litera, nie wolno
używać znaków narodowościowych w nazewnictwie. Długość identyfikatora nie jest ograniczona, ma on
wskazywać na sens,63 pierwsze znaki maja znaczenie. Turbo Pasacl nie rozrużnia dużych i małych liter.
DEKLARACJE STAAYCH I ZMIENNYCH W PROGRAMIE:
I-Deklaracje stałych=> To takie obiekty w programie, które przez cały czas jego wykonywania nie zmieniają
wartości. Odbywasię w części opisowej programu, pomiędzy słowem PROGRAM i słowem BEGIN.
const =
tekst
liczba
wartość logiczna
II-Deklaracje zmiennych=>Każda zmienna użyta w części wykonywalnej musi być zadeklarowana w części
opisowej. Polega na podaniu nazwy oraz typu zmiennej. Taka zmienna może przyjmować wartości z
zadeklarowanego typu np.
var a,b:integer;
e,f:real;
WPROWADZANIE DANYCH NA EKARN
WRITE ('lista danych'); wprowadza dane na ekran i kursor pozostaje w tej samej linii
WRITELN ('lista danych'); wprowadza dane na ekaran i kursor przechodzi do nowej linii
(ln-linia 'new' czyli nowa linia)
Wyprowadzając tekst na ekran musi on byc ujety w apostrofy np ('TP'); lista danych->stałe, zmienne, teksty
oddzielone od sie przecinkami.
WYPROWADZANIE DANYCH NA EKRAN:
READ ('lista zmiennych'); instrukcja zczyta dane z klawiatury i kursor pozostanie w tej samej linii
READLN ('lista zmiennych'); instrukcja zczyta dane z klawiatury i kursor przejdzie do drugiej linii
np.
read (a)
5
a:=5
readl(a,b,c)
5,6,7
a:=5
b:=6
c:=7
OPERATORY RELACJI:
MAT TP
= =
> >
< <
w/m >=
m/w <=
różne <>
OPERATORY ARYTMETYCZNE:
MAT TP
+ +
- -
: /
. *
dir
mod
FUNKCJE ARYTMETYCZNE STANDARDOWE:
MAT TP
IxI-war.bezwzgl. Abs(x)
I3I=3, I-4I=4
arctgx ArcTan(x)
sinx Sin(x)
cosx Cos(x)
[X]-cz. cał. x Int(x)
Int(10.5)=10
część ułamkowa Frac(x)
Frac(10,5)=0,5
II Pi
e(2) exp(x)
x(2)=x.x sqr(x)
(pier)x (x>0,x=0) sqrt(x)
ln x ln(x)
PRZYKAADA ZAPISANIA WZORÓW W 'TP':
^=b(2)-4ac w pascalu:
delata:=sqr(b)-4*a*c;
OPERATORY LOGICZNE:
MAT TP
(i)/\ koniunkcja and
(lub) \/ alternatywa or
~ negacja not
INSTRUKCJA PRZYPISANIA:
Złozona tylko := służy do przypisania zmiennym nowych wartości,np. :=
FUNKCJE MODUAU CRT
STAAE:
Black-kolor czarny;
Blink-"miganie";
Blue-kolor niebieski;
Brown-kolor brązowy;
BW40-tryb czterdziesto kolumnowy czarno biały;
BW80-tryb osiemdziesięcio kolumnowy czarno biały;
C40-tryb czterdziesto kolumnowy kolorowy;
C80-tryb osiemdziesięcio kolumnowy kolorowy;
CO40-40 columns color screen mode;
CO80-80 columns color screen mode;
Cyan-kolor cyjan;
DarkGray-kolor ciemno szary;
Font8x8-wewnętrzny tryb czcionki ROM;
Green-kolor zielony;
LightBlue-kolor jasno niebieski;
LightCyan-kolor jasny cyjan;
LightGray-kolor jasny szary;
LightGreen-kolor jasno zielony;
LightMagenta-kolor jasny magenta;
LightRed-kolor jasno czerwony;
Magenta-kolor magenta;
Mono-tryb monochromatyczny;
Red-kolor czerwony;
ScreenHeight-aktualna wysokość ekranu;
ScreenWidth-aktualna szerokość ekranu;
White-kolor biały;
Yellow-kolor żółty.
PROCEDURY I FUNKCJE:
AssignCrt-dołącz plik do CRT;
ClrEol-czyści całą linię od miejsca w którym znajduje się kursor;
ClrScr-czyści ekran;
cursorbig-pokazuje duży kursor;
cursoroff-ukrywa kursor;
cursoron-wyświetla kursor;
Delay-opóznia wykonywanie programu;
DelLine-usuwa linię w której znajduje się kursor;
GotoXY-przemieszcza kursor w określone miejsce na ekranie;
HighVideo-przełącza w tryb podświetlania;
InsLine-wstawia pustą linię w miejscu pozycji kursora;
KeyPressed-sprawdza czy klawisz jest naciśnięty;
LowVideo-przełącza w tryb małej intensywności kolorów;
NormVideo-powraca do normalnego modus;
NoSound-wyłącza dzwięk;
ReadKey-czyta jeden znak;
Sound-dzwięk systemowy;
TextBackground-ustawia kolor tła;
TextColor-ustawia kolor tekstu;
TextMode-ustawia tryb ekranu;
WhereX-zwraca pozycję X kursora;
WhereY-zwraca pozycję Y kursora;
Window-tworzy nowe okno na ekranie.
Crt to moduł zawierający procedury i funkcje
służące do kontroli trybu tekstowego ekranu.
Stałe kolorów:
Black 0
Blue 1
Green 2
Cyan 3
Red 4
Magenta 5
Brown 6
LightGray 7
DarkGray 8
LightBlue 9
LightGreen 10
LightCyan 11
LightRed 12
LightMagenta 13
Yellow 14
White 15
Blink 128


Wyszukiwarka