PASCAL a C

 

 

Pascal

C

Ogólne

Plik edytora

TURBO.EXE

TC.EXE

Rozszerzenie plików z progr.

PAS

C (CPP w C++)

Rozszerzenie plików nagłów.

 

H (HPP w C++)

Podstawy

Małe/duże litery w nazwach

bez znaczenia

mają znaczenie

Nagłówek

PROGRAM nazwa;

 

Biblioteki

USES nazwa;

#include <nazwa>

Definicje stałych

CONST stała = wartość;

#define stała wartość

Deklaracje zmiennych

VAR zmienna: typ;

typ zmienna;

Deklaracje procedur

PROCEDURE nazwa;

void nazwa (void)

...z parametrami

PROCEDURE nazwa (par.);

void nazwa (parametry)

Deklaracje funkcji

FUNCTION nazwa (parametry) : typ;

typ nazwa (parametry)

Początek bloku instrukcji

BEGIN

{

Koniec bloku instrukcji

END

}

Początek programu głownego

BEGIN

void main ( ) {

Koniec programu głownego

END.

}

Komentarze blokowe

{ komentarz } lub (* kom. *)

/* komentarz */

Komentarze liniowe

 

// komentarz

Stałe - przykłady

Całkowita dziesiętna

123

123

Całkowita szesnastkowa

$1A3

0x1A3

Rzeczywista

1.23

1.23

Znakowa

'a'

'a'

Znakowa – kod ASCII

#65

65

Łańcuchowa

'abc'

"abc"

Typy całkowite

-128 do 127

SHORTINT

char

0 do 255

BYTE

unsigned char

-32768 do 32767

INTEGER

int

0 do 65535

WORD

unsigned int

-2147483648 do 2147483647

LONGINT

long int

Typy rzeczywiste

Pojedyncza precyzja

REAL

float

Podwójna precyzja

DOUBLE

double

Typy znakowe i inne

Znak

CHAR

char

Łańcuch

STRING [długość]

char [długość]

Wskaźnik

^typ

typ*

Wskaźnik do łańcucha

PCHAR

char*

Tablica

ARRAY [1.. długość] OF typ

typ [długość]

 

 

 

Pascal

C

Biblioteki standardowe

Obsługa std. wejścia/wyjścia

System (używana domyślnie)

stdio.h

Obsługa konsoli

Crt

conio.h

Obsługa grafiki

Graph

graphics.h

Instrukcje proste

Wywołanie procedury

nazwa_procedury;

nazwa_funkcji ( );

... z parametrami

nazwa_procedury (param.);

nazwa_ funkcji (param.);

Przypisanie

zmienna := wartość;

zmienna = wartość;

Instrukcje złożone

Wybór prosty

IF warunek THEN instrukcja;

if ( warunek ) instrukcja;

Wybór pełny

IF warunek THEN instrukcja ELSE instrukcja2;

if ( warunek ) instrukcja; else instrukcja2;

Wybór wielokrotny

CASE wyrażenie OF wartości: instrukcja;

ELSE instruk2;

END;

switch (wyrażenie) {

wartość: instrukcja; break; default: instruk2;

}

Pętla N-krotna

FOR zmienna_całkowita := wart1 TO wart2 DO instrukcja;

for (zmienna = wart1;

       zmienna <= wart2;

       zmienna++) instrukcja ;

Pętla 0..? –krotna

WHILE warunek

DO instrukcja;

while ( warunek )

 instrukcja ;

Pętla 1..? –krotna

REPEAT lista_instrukcji; UNTIL warunek_końca;

do { lista_instrukcji; }

while ( warunek );

Instrukcje sterowania

Wyjście z bloku

BREAK

break

Powrót z procedury

EXIT

return

Zwrócenie wartości z funkcji

nazwa_funkcji := rezultat;

return rezultat ;

Przerwanie programu

HALT ;

exit ( status ) ;

Skok do etykiety

GOTO etykieta;    

goto etykieta;

Obsługa standardowego wejścia-wyjścia

Czytanie

READLN ( zmienna );

scanf ("%format",&zmienna);

Pisanie tekstu

WRITE ( 'tekst' );

printf ("tekst");

Pisanie tekstu i zmiana linii

WRITELN ( 'tekst' );

printf ("tekst\n");

Pisanie wartości zmiennych

WRITE ( wyrażenie );

printf (

"%format" ,  wyrażenie);

Różne

Czyszczenie ekranu

CLRSCR

clrscr ( )

Ustawianie kursora

GOTOXY (X, Y)

gotoxy (X, Y )

Stan klawiatury

KEYPRESSED

kbhit ( )

Odczyt przycisku

READKEY

getch ( )

Kolor czcionki

TEXTCOLOR

textcolor

Kolor wypełnienia

TEXTBACKGROUND

textbackground

Tryb graficzny

INITGRAPH

initgraph

Wyłączenie trybu graficznego

CLOSEGRAPH

closegraph

 

 

 

 

 

 

 

 

 

 

 

Pascal

C

Operatory

Dodawanie, odejmowanie

+ -

+ -

Mnożenie, zmiana znaku

* -

* -

Dzielenie

/

/

Dzielenie całkowite

DIV

/

Reszta  z dzielenia

MOD

%

Porównanie

=

= =

Relacji

< > <= >=

< > <= >=

Nierówność

<>

!=

Negacja logiczna

NOT

!

Logiczne LUB, I

OR AND

|| &&

Bitowe LUB, I

OR AND

| &

Różnica symetryczna

XOR

^

Odwołanie do adresu

@

&

Wyłuskanie

^

*

Wskazanie bezpośrednie

.

.

Wskazanie pośrednie

 

->

Wymuszenie typu

typ( wartość )

( typ ) wartość

Obliczenia

math.h

Zwiększenie zmiennej o 1

INC ( zmienna );

zmienna++; lub ++zmienna;

Zmniejszenie zmiennej o 1

DEC ( zmienna );

zmienna--; lub --zmienna;

Zwiększenie zmiennej o X

zmienna := zmienna + X;

zmienna += X ;

Zmniejszenie zmiennej o X

zmienna := zmienna - X;

zmienna -= X ;

Inicjalizacja wartości losowej

RANDOMIZE

srand ( zarodek )

Wartość losowa

RANDOM ( zakres )

rand ( ) % zakres

Sinus, cosinus

SIN COS

sin cos

F. wykładnicza, log. naturalny

EXP LN

exp log

Część całkowita

INT

floor

Pierwiastek kwadratowy

SQRT

sqrt

Zamiana l.rzecz. na całk.

i := ROUND ( r )

i = r

Operacje na tekście

string.h

Długość ciągu znaków

LENGTH ( tekst )

strlen ( tekst )

Kopiowanie łańcuchów

cel := źródło ;

strcpy ( cel, źródło ) ;

Łączenie łańcuchów

t1 := t1 + t2 ;

strcat ( t1, t2 ) ;

Znalezienie podciągu

POS ( podciąg , ciąg )

strstr ( ciąg , podciąg )

Zamiana na liczbę

VAL ( ciąg, wynik, błąd )

wynik  = atof ( ciąg )

Porównanie ciągów

ciąg1 = ciąg2

strcmp ( ciąg1 , ciąg2 ) = = 0

Operacje na znakach

ctype.h

Znak numer n z łańcucha t

t [ n ]

t [ n-1 ]

Czy duża litera?

znak IN [‘A’..’Z’]

isupper ( znak )

Zmień na dużą literę

duża :=  UPCASE ( mała )

duża :=  toupper ( mała )

Wskaźniki

Pusty wskaźnik

NIL

NULL

 

 

 

 

 

 

Pascal

C

Obsługa plików

Typ pliku binarnego

FILE

FILE *

Typ pliku tekstowego

TEXT

FILE *

Domyślny plik wejściowy

INPUT

stdin

Domyślny plik wyjściowy

OUTPUT

stdout

Otwarcie pliku

ASSIGN ( plik , nazwa )

plik = fopen (nazwa , ″tryb″)

   ...do odczytu

RESET ( plik )

tryb = r lub rb

   ...do modyfikacji

RESET ( plik )

tryb = r+

   ...do zapisu

REWRITE ( plik )

tryb = w lub wb

   ...do dopisywania

APPEND ( plik )

tryb = a

Wczytanie znaku

READ (plik , zmienna );

wczytany_znak = getc ( plik );

Zapisanie znaku

WRITE (plik , znak );

putc ( znak , plik )

Test na koniec pliku

EOF ( plik )

wczytany_znak = = EOF

Zamknięcie pliku

CLOSE ( plik );

fclose ( plik );

 

 

 

O czym należy pamiętać

Mała i duża litera to dwa różne znaki

Nie

Tak

Tablice traktowane są jak

zmienne

wskaźniki

Napisy zawierają ciąg znaków

 

plus symbol końca (\0)

Znaki w ciągach numerowane

od 1

od 0

Zmienne (a nie wartości) do funkcji przekazujemy

oznaczając parametr słowem VAR w deklaracji funkcji

tylko poprzez wskaźnik na zmienną

Operatory logiczne mają wyższy priorytet niż operatory porównań

Nie, konieczne nawiasy w złożonych porównaniach

Tak

W wyrażeniu może występować kilka operatorów podstawienia

Nie

Tak

Przed ELSE stawiamy średnik

Nie

Tak

W każdym przypadku CASE/SWITCH używamy BREAK

Nie

Tak

Po nazwie funkcji używamy nawiasów

Tylko gdy podajemy parametry

Zawsze

Element pliku jest typu

BYTE (wartości 0 do 255)

int (wartości –1 do 255)