Documente Academic
Documente Profesional
Documente Cultură
0functii Proceduri
0functii Proceduri
Program Prog;
Var a:integer;
Procedure proc(var b,c:integer);
Begin
b:=1; c:=b+1;
End;
Begin
a:=1;
proc(a,a); writeln(a);
End;
Program Abc;
type vector = array [1..20] of byte;
var x:vector;
i,y:byte;
Function suma ( a:array [1..20] of byte ):integer;
var i:byte;
begin
s:=0;
for i:=1 to 10 do
s:=s+a[i];
end;
begin
writeln ('Introduceti tabloul ');
for i:=1 to 6 do
readln (x[i]);
y= suma (x);
writeln (y:7:4);
end.
b) var x,y:Byte;
function P3(var x:Byte) :0..MaxInt;
begin P3:=x*x*x end;
Begin Redln (x,y);Writel (P3(x+y)) End.
c) type sir=array[1..10] of Byte;
var a:sir; I,n:Byte;
Function suma(a:sir; n:Byte) :Longint ;
Var s:Longint;
Begin for I:=1 to n do s:=s+a[i] ; suma:=s end;
Begin … Writeln(suma(a,n)) End.
10. Compuneţi o problema care se rezolvă cu ajutorul următorului program:
Program Abc;
var x,y:string;
procedure Proc (n:string; var m:string);
var i: byte;
begin
m:= '';
for i:=length (n) downto 1 do
m:=m+n[i];
end;
begin
readln (x);
Proc (x,y);
writeln (y);
end.
11. Ce se va afişa la ecran în rezultatul rulării următorului program?
Program Abc;
var x,y:integer;
Function UC (var a:integer ):integer;
begin
UC:=a mod 10;
a:=a+1;
end;
begin
x:=11; y:=12;
writeln ('Rezultatul este ', UC (x) + UC (x)+ UC (y) );
end.
begin
a:=0;
writeln('In programul principal, a=',a);
Proc1;
writeln('In programul principal, a=',a);
end.
13. Ce se va afişa la ecran în rezultatul rulării următorului program?
Program prog;
Const n=5; Type abc=1..N; Tablou=Array[abc] Of Integer;
Var i:integer; A:tablou;
Procedure Proc(T:Tablou; x,y:abc);
begin
If x<=y then
begin
Write(T[x]:4); Proc(T,x+1,y);
end
end;
begin
For i:=1 to N do
readln(A[i]);
Proc(A,1,n);
readln
end.
14. Scrieţi conform programului formula după care se află valoarea aproximativa a
funcţiei y = sin ( x), având dată valoarea lui x.
Var x,y:real;
Procedure sinus(x:real):real;
var
p, s, ter:real;
i,f,semn:integer;
begin
p:=x; s:=0; semn:=1;
f:=1;
for i:=0 to 5 do
begin
ter:= semn*p/f; s:= s+ter;
semn:=-semn; p:=p*x*x; f:=f*(2*i+2)*(2*i+3)
end;
end;
begin
write('x='); readln(x); writeln(sinus(x));
end.
15. Ce se va afişa în rezultatulrulării următorului program?
Program prog;
var s:string;
procedure proc(var s:string);
var i,j:Byte;
aux:Char;
begin
aux:=S[1]; j:=length(S);
for i:=2 to j do
S[i-1]:= S[i]; S[j] :=aux;
end;
begin
S:='aabr'; Proc(S); S:=S+'cad'+S; Writeln(S);
end.
17. Se citesc vîrstele în ani ale mai multor persoane. Încercaţi să le aşezaţi la
mese astfel încît persoanele de la aceeaşi masă să aibă aceeaşi vîrstă. Să
se afişeze numărul de mese.
18. Problema presupune numărarea elementelor distincte dintr-un şir dat.
Deoarece elementele sunt numere naturale din intervalul [0,150], reducem
problema la construirea mulţimii vîrstelor respective şi apoi la calculul
cardinalului ei. Procedura DATE tratează într-o ,,anexă,, a programului
segmentul de introducere a datelor. Funcţia CARD transmite programului
principal numărul de elemente din mulţimea vîrstelor (V). Atît procedura cît
şi funcţia sunt apelate o singură dată în program şi lucrează cu variabilele
globale ale programului, deci se putea renunţa la ele transferîndu-se
instricţiunile în programul principal care însă rămînea stufos şi greu de
urmărit de către cineva neinteresat de toate amănuntele de programare.
19. Se citesc de la tastatură n (n20) numerele întregi foarte mari (de cel mult 999 de
cifre). Să se afişeze suma lor.
20. Pentru a spori precizia de calcul, un programator trebuie să calculeze suma a n
fracţii de numere întregi, efectuînd o singură împărţire reală. Cum procedează. Să
se afişeze tabelul de semne al unei expresii raţionale de forma cu k, n 10
numere naturale şi ai, bi, ci, di numere reale date.
21. Se citesc de la tastatură trei perechi de numere (x, y) şi se cere să se scrie cea mai
mare şi cea mai mică dintre valorile corespunzătoare ale funcţiei.
Exemplu: pentru date (4, 2) (0.25, 0.64) şi (1, 0.25) obţinem f(4, 2) =0.75; f(0.25,
0.64)=1.3; f(1, 0.25)=1.25 şi se vor afişa valorile 1.25 şi 0.75.
22. Să se elaboreze un program care transformă un număr natural dat (din intervalul
[1, 1000]) în segvenţa literală corespunzătoare numărului respectiv scris în limba
română. Se va avea în vedere o modalitate de a permite execuţia repetată a
transformărilor.
23. Să se rezolve ecuaţia 2x=x2 prin metoda înjumătăţirii intervalului, cînd se citesc
valorile reale reprezentînd capetele intervalului pe care se caută soluţia şi
numărul n de zecimale cu care se doreşte afişarea soluţiei.
24. Într-o livadă sunt m şiruri de meri, pe fiecare şir aflîndu-se n pomi. Privită din
avion, livada se aseamănă cu o tablă de GO în nodurile căria sunt pomi. Se
cunoaşte numărul de mere din fiecare pom (numărarea acestora fiind o sarcină a
copiilor din sat). Primarul satului are dreptul să culeagă roadele a patru pomi cu
condiţia ca ei să formeze un pătrat. Scrieţi un program care determină - pe baza
datelor problemei - care sunt coordonatele celor patru pomi (şirul şi al cîtelea
pom din şir este) astfel încît numărul merelor culese să fie maxim.
25. Se citesc elementele mai multor mulţimi formate din numere întregi. Să se
afişeze reuniunea lor (sunt cel mult 20 de mulţimi, fiecare mulţime avînd cel mult
100 de elemente).
26. Se citeşte un şir de caractere. Să se stabilească dacă şirul dat reprezintă o atribuire
simplă de numerele reale în limbajul PASCAL.
27. Se citeşte de la tastatură o expresie aritmetică fără paranteze, pe care o
considerăm corectă. Operanzii sunt numere reale fără semn (cele cu semn vor fi
scrise între paranteze), iar +, -, *, /cu semnificaţiile cunoscute. Să se afişeze
rezultatul expresiei.
28. Să se realizeze tabelul de valori trigonometrice ale unui ungi dat (în grade).
Programul trebuie să permită o execuţie repetată pînă ce se apasă tasta ESC.
29. Fiind dat un an (după Hristos), să se listeze calendarul acelui an.
30. Băcanul din oraşul dumneavoastră încearcă o nouă metodă de încercat o nouă
metodă de afişare a preţurilor produselor pe care le are în stoc. În loc de marca
pentru fiecare articol preţul (în lei), etichetele lui au preţuri comparative faţă de
alte produse. De exemplu, untul poate fi etichetat margarină+100, margarina
poate fi etichetată cafea+111; cîteva articole sunt marcate chiar cu preţul
respectiv.
31. Aţi aflat că marfa lui este foarte ieftină şi vreţi să să faceţi o listă cu preţurile
produselor , în maniera obişnuită (vezi ieşirea pentru exemplu de mai jos). Scrieţi un
program care să realizeze acest lucru.
Întrare :
Fiecare set de date constă dintr-o succesiune de linii de forma :
Lapte = zahăr , 125
Făina = 225
Zahăr = făină + 10
Cafea = ceai
În legătură cu datele de intrare , se mai presupun următoarele :
- Toate articolele au nume formate din maxim 10 litere mici;
- Există cel mult 100 de articole ;
- Linii de intrare dau fie direct preţul unui articol , fie îl consideră egal cu preţul
altui produs eventual + sau - un număr întreg de lei ;
- Fiecare articol apare o singură dată în stînga semnului = ,
- Ultima linie conţine numai caracterul #
Ieşire :
Pentru fiecare set de date trebuie să tipăriţi o listă ordonată alfabetic , produselor
menţionate , împreună cu preţurile lor.Dacă preţul unui produs nu poate fi de dus din
fişierul de întrare , daţi-l ca fiind blank.
De exemplu , ieşire pentru exemplu de mai sus este :
Cafea = blank
Ceai = blank
Făină = 225
Lapte = 110
Zahăr =235
33. Să se scrie şi să se testeze o procedură Pascal care are ca argumente trei şiruri de
caractere, cel de-al treilea fiind obţinut prin concatenarea primelor două argumente.
INDICATIE:
Se va forma o matrice cu 2 coloane ce va contine in prima coloana
factorii primi iar in cea de a doua exponentii respectivi.Indicele
de linie se initializeaza cu zero si se mareste cu 1 pentru fiecare
factori prim gasit.Daca numarul dat este prim,indicele de linie
pastreaza valoare zero.
39. Sa se afre cu ce cifra se termina produsul numerelor prime mai mari
decit 6 si mai mici decit 100.
(G.M. nr. 10 /1985) Raspuns: 9.
40. Scrieţi un program care afişează posibilităţile de a obţine 100 de lei cu monede de
10, 20 şi 50 de lei.
41. Scrieţi un program care afişează numerele prime cuprinse între A şi B, precum şi
numărul lor.
42. Scrieţi un program care afişează costul total a unei excursii efectuate cu
autoturismul în mai multe etape, cunoscând numărul de kilometrii parcurşi în fiecare
etapă.
44. Scrieţi un program care să transforme un şir de caractere latine într-unul morse.
45. Scrieţi un program care, prin căutarea binară, verifică existenţa unui număr, citit
de la tastatură, într-un şir de numere.
50. Scrieţi un program care calculează recursiv valoarea polinoamelor lui Hermite
(H[X]), ştiind că: H0(X)=1,
Н1 (X)=2Х,
HN (X)=2H[N-1] (X)-2(N-1)H[N-2](X).
58. Scrieţi un program care realizează, pe baza datelor citite de la tastatură, diagrama
profitului realizat de o S.R.L. pe parcursul unui an (se introduce profitul lunar).
69. Scrieţi un program care crează un meniu vertical şi permite selectarea unei opţiuni
utilizând
bara de selecţie.
74. Acest unit conţine câteva rutine care permit lucrul cu şiruri de caractere şi cu
cursorul.
75. Acest unit conţine câteva rutine care permit tratarea erorilor intervenite.
77. Să se scrie un unit care să permită un mai bun dialog între program şi utilizator,
dar vine şi în ajutorul programatorului.
79. Să se scrie un unit care să realizeze iniţializarea unui mod text şi să dea informaţii
despre adaptor şi modul text curent.
80. Acest unit conţine câteva rutine prin care se obţin informaţii legate de adaptor şi
modul grafic.
82. Acest unit conţine câteva rutine care permite verificarea existenţei unui fişier cu
un atribut dat.
83. Acest unit conţine câteva rutine pentru generarea de diverse melodii.
86. Scrieţi un program care să reprezinte pe ecran histograma unor numere introduse
de la tastatură sau alese aleator.
88. Scrieţi un program care solicită introducerea parolei pentru intrarea în sistem.
Observaţie: În program, selectarea parolei se face în funcţie de paritatea datei.
90. Scrieţi un program care să permită selectarea dintr-un meniu a unor melodii care
apoi să fie cântate.
91. Folosind uniturile Turbo Vision, scrieţi un program care permite următoarele
operaţii:
Crearea liniei meniu;
Crearea liniei de comenzi;
Deschiderea unei ferestre noi;
închiderea unei ferestre;
trecerea la fereastra următoare sau anterioară;
aşezarea ferestrelor în cascadă sau “title”;
terminarea programului.
b. Graph
Un set de date poate avea maxim şase valori întregi, pozitive sau negative,
valori preluate din fişierul VALORI.DAT. Se cere să se afişeze, în regim grafic,
folosind câteva variante de reprezentare, setul de date citit.
Fiecare grafic va fi precedat de tastarea unei taste, ştergerea ecranului şi va
conţine în colţul stânga sus numărul variantei de reprezentare.
c. Money
În casa de bani a firmei X există bancnote de 200, 500, 1000, 5000, 10000 lei
în cantităţile citite de la tastatură. Firma N angajaţi, N citit de la tastatură, salariile
acestora fiind citite de la tastatură.
Să se afişeze, în mod text, cel puţin o modalitate de plată a tuturor salariilor
angajaţilor folosind bancnote existente. În cazul în care nu se poate realiza plata, se va
afişa un mesaj adecvat.
94. Se dă numărul natural K>1. Alcătuiţi algoritmul de aflare a numărului de pe locul
K al şirului Fibonacci, fără a folosi mărime tabelară.
NOTA
CO IN
Nr CONŢINUTUL PROBLEMEI RE CO
CT RE
CT
Studiaţi funcţia şi găsiţi, ce valoare va avea Mystery(5)?
function Mystery(a: Integer): Integer;
begin
if a<0 then writeln('Error')
1. else if a=0 then Mystery:=0 10 -2
else Mystery:=a+Mystery(a-1)
end;
2. 10 -2
O 1 3 6 7 9 12 13 15
A) B) C) D) ... E)
2 4 5 8 10 11 14
Într-o companie sunt 5 persoane. Unii din ei întotdeauna spun adevărul alţii întotdeauna
spun minciuni.
3. Fiecare din ei a fost întrebat: “Câţi minciunoşi sunt în companie?”. Cele cinci răspunsuri 7 -2
sunt 1, 2, 3, 4, 5. Căţi minciunoşi sunt cu adevărat?
A) 1. B) 2. C) 3. D) 4. E) 5.
Studiaţi instrucţiunea şi aflaţi, ce valoare va avea d, dacă a=3,b=7,c=0?
if a>0 then
if c>2 then d:=a
4. 10 -2
else d:=a+b else d:=a+b+c;