Sunteți pe pagina 1din 6

(Free) Pascal pentru incepatori. Capitolul 1. din cartea nepublicata de Grigore Diviza.

Introducere Spre doesebire de multi care primesc si bani pentru faptul ca-i invata pe altii lucruri care le pot prinde in viata, fie primind salariu, fie din vanzarea manualelor sau calculatoarelor, fie din Copyright, eu nu primesc nimic ca-mi pierd timpul si energia de pomana ca sa te invat pe tine ceva (prostule).

Lectia 1. Instalarea Free Pascal 1. Free ascal il puteti gasi pe freepascal.org, sectiunea !o"nload care va duce aici # http#$$sourceforge.net$pro%ects$freepascal$files$&in'($ aveti nevoie de cel cu )"in'(* in denumire. (. !o"nload (!escarcare). Salvare. ornire (+,ecutare). '. (Clic-) .e,t pana devine /nstall si mai faceti clic- o data, apoi .e,t si Finish.

Lectia 2. Primul program. 0&in 1 23 sau Start-42un si scrieti cmd 0+nter3. 5ti nimerit in programul Consola al Sistemului de 6perare &indo"s. 4 - trebuie sa scrieti urmatoarele comenzi dupa acest semn, iar dupa fiecare rand apasati 0+.7+23 cd C:\fpc\2.6.0\bin\i386-win32 notepad 5ti deschis editorul .otepad pe care il vom utiliza temporar pentru a scrie programe. /n interior scrieti # Begin Writeln(Sal t ! "e#$ %nd. 8 nu este obligatoriu inainte de end il puteti omite. Salvati in C:\fpc\2.6.0\bin\i386-win32 pentru simplitate cu denumirea p1.pas . File name# p1.pas Save as type # !ll "iles !eschiderea lui p1.pas cu #otepad $ clic- dreapta pe p1.pas, 6pen "ith -4 Choose from a list (loo- for another app) # si alegeti .otepad -4 6-. entru a putea deosebi p1.pas de ale fisiere p1 se 5ctiveaza afisarea e,tensiilor # /n orice fereastra &indo"s +,plorer (in care vezi continutul unui Folder, 9ape sau !irectoriu) :4 :4 ;a meniu# File ... <ie"-46ptions-4 Folder 6ptions :4 :4 /n fereastra Folder 6ptions, in cel de-al doilea tab # <ie" :4 :4 Scoti bifa de la =ide e,tensions for -no"n file types :4 6-.

/n linia de comanda (Consola C9!), scrieti# fpc p&.pa' daca aveti urmatorul rezultat, inseamna ca ati facut totul corect# (ree )a'cal Co"piler *er'ion 2.6.0 +20&&,&2,2-. for i386 Cop/rig0t (c# &113-20&& b/ (lorian 2lae"pfl and ot0er' 3arget 4S: Win32 for i386 Co"piling p&.pa' !in5ing p&.e6e 2 line' co"piled7 0.0 'ec 7 2-168 b/te' code7 &628 b/te' data 2ulati programul (il dati la e,ecutie, sau il porniti) prin urmatoarea comanda # p& 2ezultatul corect# Sal t ! "e .e intoarcem la .otepad-ul deschis si adaugam readln # Begin Writeln(Sal t ! "e#$ readln %nd. 0Ctrl1S3 sau File-4Save 5poi repetam procedura, scriind in C9!# p& vom avea acelasi rezultat, doar ca se va astepta un 0+nter3 pentru a iesi din program. uteti gasi oricand programul compilat (p1.e,e) navigand prin 9y Computer spre C:\fpc\2.6.0\bin\i386-win32 unde veti vedea alaturi de Compilatorul "pc.e%e, +ditorul de te,te adaptat programarii (/ntegrated !evelopment +nvironment) > "p.e%e, ( e care nu il vei folosi doar daca esti familiarizat cu versiunile mai vechi de Free si 7urbo ascal.) !ar si alte unelte care pot fi folosite in procesul de fabricare a programelor. 2uland p1.e%e vi se va deschide o fereastra asemanatoare cmd.e%e . Free ascal admite comentarii in stil C$C11 dupa fiecare linie, folosind $$ # Begin ,, incep t l progra" l i Writeln(Sal t ! "e8#$ ,, afi'ea9a Sal t ! "e8 :eadln ,, a'teapta n +%;3%:. %nd. ,, 'far'it l progra" l i

Lectia &. Declararea primei variabile .e intoarcem la programul p1.pas, pe care il completam# *ar intrebare7ra'p n':'tring$

begin writeln(<=ntrod intrebarea:<#$ readln(intrebare#$ writeln(<=ntrod ra'p n' l:<#$ readln(ra'p n'#$ writeln(<=ntrebare: <7intrebare#$ writeln(<:a'p n': <7ra'p n'#$ readln end. /ar in C9! # fpc p&.pa' p& si rezultatul# =ntrod intrebarea: Cate 'tele ' nt pe cer> =ntrod ra'p n' l: &000000 =ntrebare: Cate 'tele ' nt pe cer> :a'p n': &000000 6rice te,t introdus pentru intrebare si raspuns va fi stocat in memoria alocata automat de program in identificate de noi prin declaratia pe care am facut-o inainte de begin # *ar intrebare7ra'p n':'tring$ intrebare7ra'p n' - acestea se vor numi in continuare variabile 'tring ' tipul variabilei, care in vechiul 7urbo ascal avea (?@ bytes, un byte pentru marimea sirului 0A..(??3 (de la A la (??) si restul pentru pastrarea a ma,imum (?? de caractere (litere, cifre sau simboluri). /n Free ascal, marimea lor poate a%unge la ( BC, daca este specificat in optiunile de compilare initiale acest lucru. Sa comentam si acest program # *ar ,, identifica partea in care 'e declara *ariabilele intr- n progra" intrebare7ra'p n' ,, do a *ariabile in care p te" pa'tra orice te6t :'tring$ ,, tip l ? 'ir de caractere Begin ,, in C,C@@ incep t l e'te A writeln(<=ntrod intrebarea:<#$ ,, afi'ea9a te6t readln(intrebare#$ ,, a'teapta 'a introd ci te6t +%;3%:. (&# writeln(<=ntrod ra'p n' l:<#$ ,, afi'ea9a te6t readln(ra'p n'#$ ,, a'teapta 'a introd ci te6t +%;3%:. (2# writeln(<=ntrebare: <7intrebare#$ ,, afi'ea9a =ntrebare: te6t (&# writeln(<:a'p n': <7ra'p n'#$ ,, afi'ea9a :a'p n': te6t (2# readln ,, a'teapta +%;3%:. end. ,, in C,C@@ 'far'it l e'te B

Lectia (. Colorarea te%tului. Ca sa invatam culorile vom scrie urmatorul program culori.pas #

C'e' ,, 'ecti nea in care 'e declara toate

nitatile

tili9ate

Crt$ ,, nitatea,biblioteca,libraria,fi'ier l care contine proced rile ,, 3e6tColor ,, 3e6tBac5Dro nd ,, :eadln7 Writeln 'i altele 'e contin in S/'te" care e'te tili9at a to"at

Ear c loare7i:b/te$ ,, & b/te de "e"orie pentr a pa'tra *aloarea te"porara ,, a ,, c lorii la afi'are F 8 biti ,, i ? pentr a n "ara caracterele G2&1 ,, 3ip l b/te poate pa'tra n n "ar de la 0 la 2-Con't ,, 'e declara con'tante n "e:arra/+0..&-.of 'tring F ,, &6 c *inte7 n "erotate de ( ,, !:EH C ,, !:DB C Blac57 ,, 0000 ? 0 Bl e7 ,, 000& - & Dreen7 ,, 00&0 - 2 C/an7 ,, 00&& - 3 :ed7 ,, 0&00 - K Jagenta7 ,, 0&0& - Brown7 ,, 0&&0 - 6 !ig0tDra/7 ,, 0&&& - M Nar5Dra/7 ,, &000 - 8 !ig0tBl e7 ,, &00& - 1 !ig0tDreen7 ,, &0&0 - &0 !ig0tC/an7 ,, &0&& - && ,, de'c0i' !ig0t:ed7 ,, &&00 - &2 !ig0tJagenta7 ,, &&0& - &3 Oellow7 ,, &&&0 - &K W0ite ,, &&&& - &#$ A - a'a 'e incepe la 0 la &I I 0 & 2 3 K 6 M 8 1 H B C N % ( ? ? F F F F F F F F F F F F F F F F ! "ina7 !ig0t7 ;egr Hlba'tr Eerde Hlba'tr :o' Hlba'tr Eerde @ Hlba'tr ;egr @ Hlba'tr Eerde @ Hlba'tr :o' 7 Eerde7 Hlba'tr 7 C loare7 Ie6 :ed7 Dreen7 Bl e7 Colo r7 Ie6

@ Eerde F Ble Jarin @ :o' F Eiolet :o' F Jaro,4ranL inc0i' @ Eerde @ :o' F S r de'c0i' ! "ina F S r inc0i' @ ! "ina F Hlba'tr de'c0i' ! "ina F Eerde de'c0i' @ Eerde @ ! "ina F Ble Jarin

:o' @ ! "ina F :o' de'c0i' Hlba'tr @ :o' @ ! "ina F Eiolet de'c0i' Eerde @ :o' @ ! "ina F Dalben Hlba'tr @ Eerde @ :o' @ ! "ina F Hlb

n co"entari

; "ar l c lorii 'e co"p ne d pa for" la : ! : E H C I ? ? ? ? ? ? ! "ina :o' Eerde Hlba'tr C loare C loarea repre9entata in ba9a &6 (Ie6a9eci"al#

C F H @ EP2 @ :PK @ !P8 Cnde H7 E7 :7 ! ia *alorile 0 'i & (o cifra 0 'a & F & bit#

3 ? C loarea te6t l i ( ? C loarea f ndal l i S ? & F NH Clipe'te (apare,di'pare# 0 - ;C

% ? C loarea e6tin'a % F 3 @ (P&6 @ SP&28 Cnde 3 apartine 0..&- (K cifre binare F K biti#7 ( apartine 0..M (3 biti# S F & bit =n total K@3@&F 8 biti7 e6act cat are & b/te H'tfel c loarea de f ndal are n "ai 8 n ante7 iar c loarea te6t l i ? &6. H'a 'e inc0eie n co"entari - B

Begin ,, A (or c loare:F0 to &- do ,, =ncepand c C loare F 07 pana la C loare F &,, 'e e6ec ta : Begin ,, (P# FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 3e6tcolor(c loare#$ ,, 'e face c loarea te6t l i c ce in C loare 3e6tBac5gro nd(c loare 6or Q(#$ A 'e face c loarea f ndal l i in*er' c Ror ? 'a e6cl 'i* H 6or B F 07 daca a 'i b ' nt diferite H 6or B F &7 daca a 'i b ' nt egale P =n )a'cal H F a (inafara de H ST a 0 0 & & 6or 6or 6or 6or 0 & 0 & F F F F 0 & & 0 ST ? n e'te egal #

Q( 0e6a9eci"al F &- 9eci"al F &&&& binar 0000 000& 00&0 00&& 0&00 0&0& 0&&0 0&&& &000 &00& &0&0 &0&& &&00 &&0& &&&0 &&&& 6or 6or 6or 6or 6or 6or 6or 6or 6or 6or 6or 6or 6or 6or 6or 6or &&&& &&&& &&&& &&&& &&&& &&&& &&&& &&&& &&&& &&&& &&&& &&&& &&&& &&&& &&&& &&&& F F F F F F F F F F F F F F F F &&&& &&&0 &&0& &&00 &0&& &0&0 &00& &000 0&&& 0&&0 0&0& 0&00 00&& 00&0 000& 0000 0 & 2 3 K 6 M 8 1 H B C N % ( 6or 6or 6or 6or 6or 6or 6or 6or 6or 6or 6or 6or 6or 6or 6or 6or ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( F F F F F F F F F F F F F F F F ( % N C B H 1 8 M 6 K 3 2 & 0

Jate"atic7 daca n e'te n 'ir de &7 'i a 6or n F b7 at nci a@bFn Ne e6. M 6or &- F 87 8 6or &- F M 'i M@8F&4b'er*a" ca n "erele 'e in*er'ea9a daca ' nt 6or-ate c B n 'ir de &.

Write(c loare:2 ,, 'e 'crie n "ar l c lorii pe 2 'patii ,, dar n 'e trece din rand no ca la Write!; 7 #$ ,, 'e "ai 'crie n 'pati (or i:F0 to 3 do Write(G2&1#$ A 'e 'cri K patrate colorate G2&1 F caracter l c Cod l HSC== 2&1 Cod rile a'cii ale caracterilor pot fi ga'ite ca tand in Doogle : HSC== 3able B Writeln( 7n "e+c loare.#$ ,, 'e "ai 'cri n 'pati ,, r"at de *aloarea declarata la Con't a al ;-lea ele"ent ,, nde ; F *aloarea care 'e contine in C loare %nd$ ,, 'e incre"entea9a a to"at C loare c & 'i 'e re*ine la (P# A Culoare ia pe rand *alorile de la 0 la &-. =nainte de a trece la *aloarea r"atoare7 'e e6ec ta tot ce intre Begin 'i End d pa pri" l to. C loare C loare C loare Scrie c = F 0 : ... = F 3 : Scrie n C loare C loare C loare Scrie c = F 0 : ... = F 3 : Scrie n ... C loare ... B :eadln %nd. F 0 : te6t F c loare F 0 - ;egr f ndal F c loare 6or ( F &--8 (& bit 'e ignora# F M ? S r de'c0i' loare F &'crie G2&1 'crie G2&1 "e+c loare. F Blac5 F & : te6t F c loare F & - Hlba'tr f ndal F c loare 6or ( F &K-8F6 ? Jaro,4ranL inc0i' loare F & 'crie G2&1 'crie G2&1 "e+c loare. F Oellow F &- :

2ezultatul colorat al programului #