CATEGORII DOCUMENTE |
DOCUMENTE SIMILARE |
||||||
|
||||||
Proceduri de intrare/iesire
In general, introducerea datelor se face de la tastatura, iar afisarea datelor se realizeaza pe ecran.
Procedurile read si readln - permit citirea datelor
read(<lista_de_variabile>) - permite introducerea uneia sau mai multor date in variabilele specificate,
readln(<lista_de_variabile>) - la fel ca read, iar dupa incheierea citirii, trecerea la un rand nou.
Obs.
- Datele numerice se separa prin spatii sau Enter,
- La citirea datelor de tip caracter, spatiul este considerat caracter,
- Read fara lista de variabile se foloseste pentru a pastra fereastra de iesire pana la apasarea unei taste (in Pascal sub Dos),
Variabilele de tip logic nu pot fi citite.
Procedurile write si writeln - permit afisarea datelor si mesajelor
write(<lista_mesaje/variabile>)
writeln(<lista_mesaje/variabile>), dupa afisare se va trece la linie noua
Obs.
- Mesajele vor fi incadrate intre apostrofuri : write('nume student ', nume),
- Se poate specifica numarul de caractere pe care se face afisarea, write(litera:2), iar pentru numere reale, numarul total de pozitii ocupate, inclusiv punctul zecimal si numarul de zecimale : write(nota:5:2).
Instructiunile limbajului Pascal
Structuri de control
Limbajul Pascal a fost conceput pentru scrierea unor programme structurate, de aceea instructiunile reproduc structurile fundamentale ale programarii structurate.
Structura liniara (secventiala)
- Instructiunea de atribuire - evalueaza o expresie si atribuie valoarea acesteia unei variabile.
identificator_variabila :=expresie
- Instructiunea compusa - pentru a putea scrie mai multe instructiuni, care sa fie interpretate de compilator ca una singura, acestea se preced de begin, se despart prin ; si se finalizeaza cu end.
Exemplu : Stabilire a pretului ' de raft ', cunoscand valoarea de vanzare si procentul TVA.
Program pretr;
uses wincrt;
var Procent_tva,Valoare:real;
begin
write('Procent_tva=');readln(Procent_tva);
write('Valoare=');readln(Valoare);
writeln('Pret =',(100+Procent_tva)/100*valoare:8:2);
end.
Structura alternativa
Instructiunea de selectie simpla IF - selecteaza o secventa de instructiuni dintre doua variante posibile, in functie de o anumita conditie.
Sintaxa:
if cond then
instr1
else
instr2;
Obs. Ramura cu else este optionala.
cond este o conditie (expresie booleana), iar instr1 si instr2 sunt
secvente de instructiuni.
Sematica: se determina ce valoare de adevar are expresia booleana cond. Daca ea este True, atunci se executa instructiunea instr1, dupa care se trece la instructiunea ce ar urma dupa intrega structura IF. Cand cond este False se executa, in cazul in care exista, instr2.
Instructiunea de selectie multipla CASE - permite alegerea unei secvente de instructiuni din mai multe variante posibile, in functie de valorile unei variabile de selectie(selector).
Sintaxa:
case expresie_ordinala of
caz1: instr1;
..
cazn: instrn
else instr0
end;
Exemple:
Sa se afiseze tipul tastei apasate.
program taste;
uses wincrt;
var ch:char;
begin
write('Apasati o tasta ');
readln(ch);
write('A fost ');
case ch of
'A'..'Z', 'a'..'z': WriteLn('Litera');
'0'..'9': WriteLn('Cifra');
'+','-','*','/': WriteLn('Operator')
else WriteLn('Caracter special')
end;
end.
program
TestEminescu;
var an:integer;
begin
Write('In ce an s-a nascut Eminescu? '); ReadLn(an);
case an of
1850: WriteLn('Foarte bine!');
1849,1851: WriteLn('Aproape bine!');
1845..1848: WriteLn('Cu ',1850-an, ' ani
mai tarziu!');
1852..1855: WriteLn('Cu ',an-1850, ' ani
mai devreme!');
1800..1844, 1856..1899: WriteLn('Ati
nimerit secolul!')
else
WriteLn('Cultura
dumneavostra are lacune grave!')
end;
end.
Instructiuni repetitive(iterative)
Instructiunea repetitiva conditionata anterior WHILE
Sintaxa:
while conditie_ex do
instr;
instr_urm;
Semantica :
-se evalueaza conditia(de tip boolean);
-daca este adevarata, atunci se executa secventa instr, apoi se revine
la evaluarea conditiei (care intre timp s-ar fi putut modifica) si asa mai
departe;
-daca la un moment dat conditia este falsa, atunci se termina ciclul si se
trece la prima instructiune de dupa ciclu, adica la instr_urm;
-daca de la bun inceput cond era falsa, se trecea la instr_urm.
Altfel spus, cat timp conditia cond este adevarata, se executa instructiunea instr. Dupa ciclu, se executa instructiunea instr_urm.
Exemplu: Registru de casa
program reg_casa;
uses wincrt;
var zi,luna,an,sold,soldzp,suma:integer;
raspuns,ip:char;
begin
write('data [zz ll aaaa] ');readln(zi,luna,an);
write('Sold zi precedenta=');readln(soldzp);sold:=soldzp;
write('exista inregistrari pentru ziua curenta?[d/n]');readln(raspuns);
while raspuns='d' do
begin
write('Incasare sau Plata? [i/p]');readln(ip);
write(' Suma=');readln(suma);
begin
if (ip='i')or (ip='I') then
sold:=sold+suma
else
sold:=sold-suma;
end;
write('mai exista inregistrari pentru ziua curenta?[d/n]');readln(raspuns);
end;
writeln('Sold=',sold);
end.
Instructiunea repetitiva conditionata posterior REPEAT
Sintaxa:
repeat
instr1;
instr2;
.
instrn
until cond_iesire;
Sematica:
Sensul acestei instructiuni este: repeta instructiunile instr1, , instrn,
pana cand este indeplinita conditia cond. Intructiunile se executa cel
putin o data.
Exemplu: Cunoscand procentul TVA, cantitatile si preturile corspunzatoare dintr-o factura, sa se calculeze valoarea TVA pentru fiecare articol, total valoare, total TVA si total de plata.
Program factura;
uses wincrt;
var Procent_tva,Cantitate,Pret,Valoare,Valoare_TVA, Total_valoare,Total_tva,Total_factura:real;
gata:char;
begin
write('Procent_tva=');read(Procent_tva);
Total_valoare:=0;Total_tva:=0;Total_factura:=0;
repeat
write('Cantitate=');read(Cantitate);
write('Pret=');readln(Pret);.
Valoare:=Cantitate*Pret;
Valoare_TVA:=Valoare*Procent_tva/100;
Total_valoare:=Total_valoare+Valoare;
Total_tva:=Total_tva+Valoare_TVA;
write('Terminat? [d/n]');readln(gata);
until (gata='d') OR (gata='D');
writeln('Total_valoare=',Total_valoare:8:2);
writeln('Total_tva=',Total_tva:8:2);
writeln('Total factura=',Total_valoare+Total_tva:8:2);
end.
Instructiunea repetitiva cu numar cunoscut de pasi FOR
Sintaxa:
-cu contorul in crestere:
for v:=e1 to e2 do
instr;
-cu contorul in descrestere:
for v:=e1 downto e2 do
instr;
In ambele forme, v este o variabila de tip scalar, numita contor, iar e1 si e2 sunt doua expresii de aceleasi tip cu v, numite respectiv expresie initiala si expresie finala, iar instr este orice secventa de instructiuni, chiar si o alta instructiune for.
Semantica:
V primeste valoarea expresiei e1. Apoi, se verifica daca s-a
depasit valoarea e2. Daca da, ciclul se incheie, iar daca nu, atunci se
executa secventa de instructiuni instr, apoi v creste la
succesorul sau, apoi se reia verificarea conditiei de continuare a ciclului.
In forma cu downt, avem un
test invers de continuare.
Exemplu : Cunoscand cheltuielile si veniturile pe cele patru trimestre ale unei firme, sa se calculeze impozitul pe profit pentru tot anul.
program profit;
uses wincrt;
var trimestru,vt,ct,van,can:integer;
begin
writeln('Calcul impozit pe profit anual');
writeln('----- ----- --------- ----- ------');
van:=0;can:=0;
for trimestru:=1 to 4 do
begin
write('Venituri tr.',trimestru,'= ');
readln(vt);van:=van+vt;
write('Cheltuieli tr.',trimestru,'= ');
readln(ct);can:=can+ct;
end;
if van-can>0 then
write('Profit= ',van-can,' Impozit pe profit=',
(van-can)*16/100:7:2)
else
write('Pierdere=',van-can);
end.
Procedurile Break si Continue
Aceste proceduri pot aparea in cadrul unor cicluri, uneori fiind necesare pentru a scrie mai simplu anumite secvente.
Break - Termina o instructiune for, while ori repeat. Determina iesirea imediata din cel mai apropiat ciclu in care se afla. Este similara unui salt catre prima instructiune de dupa ciclu.
Continue - Aceasta procedura continua o instructiune for, while ori repeat. Cauzeaza trecerea imediata la o noua iteratie in cadrul celei mai apropiate instructiuni for, while ori repeat.
Exemplu: Aceasta secventa afiseaza doar consoanele.
var c: Char;
begin
for c:='a' to 'z' do
if (c='a') or (c='e') or (c='i') or (c='o')
or (c='u') or (c='y')
then
Continue
else Write(c)
end.
Bibliografie
Cherciu, R., Homorodean,M., Petrescu, S., Buturoiu, R., Informatica, Editura Niculescu, Bucuresti, 2001
https://www.pascal.go.ro/tutorial
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1786
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved