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