Sunteți pe pagina 1din 9

1. Scrieţi un program care realizează suma, diferenţa, produsul şi împărţirea a două numere reale.

Afişarea se va face sub formă tabelară:

X Y x+y x–y x*y x/y

2. Să se scrie un program care citeşte un număr natural în intervalul [1600, 4900]. Ştiind că numărul
reprezintă un an, să se verifice dacă este bisect sau nu.

3. Folosind expresii condiţionale, să se scrie un program care citeşte valoarea reală a lui x şi
calculează valoarea funcţiei:
x 2 + 4 x + 4 daca x < −2

f ( x) =  0 daca x = 0
 x 2 + 5x daca x > −2

4. Să se scrie un program care citeşte un număr real x, ce reprezintă măsura unui unghi în radiani şi îl
transformă în grade, minute şi secunde sexagesimale.

5. Să se scrie un program care simulează funcţionarea unui numărător de tip ceas (se indică ora,
minutul şi secunda).

6. Convertiţi în binar, prin calcul, anul naşterii şi anul curent.


Arătaţi cum se reprezintă în memorie cei doi ani ca date de tip int.
Efectuaţi operaţiile de deplasare stânga cu 4 biţi, dreapta cu 2 biţi şi complement faţă de 1 asupra lor.
Efectuaţi operaţiile pe biţi &, ^, | , având ca operanzi cele două date.
Scrieţi un program pentru a verifica corectitudinea calculelor dumneavoastră.

7. Scrieţi un program care efectuează operaţii aritmetice asupra a două date de tip întreg şi real.
Executaţi-l pentru valori care conduc la rezultat în afara limitelor de reprezentare internă. Ce se
întâmplă în acest caz?

8. Să se scrie un program care citeşte numerele întregi a,b,c,d şi determină cea mai mare dintre
fracţiile a/b şi c/d.

9. Să se stabilească poziţia unei drepte faţă de un cerc dat. Se citesc: coordonatele centrului cercului,
raza acestuia, precum şi coordonatele a două puncte situate pe dreaptă.

10. Se citesc coordonatele vârfurilor unui triunghi în plan.Să se scrie un program care stabileşte
poziţia faţă de triunghi a unui punct oarecare din plan dat prin coordonatele lui.

11. Scrieţi un program care calculează greutatea ideală a unei persoane, utilizând formulele:
G_bărbat=50 + 0.75*(înălţime-150) + (vârsta-20)/4;
G_femeie=G_bărbat - 10;
Se citesc: sexul, înălţimea(în cm), vârsta (în ani).

12. Scrieţi un program care transformă coordonatele carteziene ale unui punct din plan în coordonate
polare.
13. De la tastatură se citesc 4 perechi de numere reale, care reprezintă în coordonate rectangulare
vârfurile unui patrulater. Să se stabilească natura acestui patrulater.

14. De pe mediul de intrare sunt citite elementele reale ale unui şir de dimensiunea n. Să se găsească
poziţia elementelor de valoare minimă şi valoare maximă din şir.

15. Să se scrie un program pentru generarea tuturor numerelor prime mai mici sau egale cu un număr
natural n.

16. Se citeşte un număr natural n. Să se găsească cel mai mare pătrat perfect mai mic sau egal cu n.
Aceeaşi problemă, dar să se indice numărul prim cel mai mic, dar mai mare sau egal cu numărul
citit.

17. De pe mediul de intrare se citeşte un număr natural n. Să se verifice dacă numărul respectiv este
palindrom.

18. De pe mediul de intrare se citesc cifrele hexazecimale ale unui număr întreg în baza 16. Să se
calculeze şi să se afişeze reprezentarea numărului în baza 10.

19. Se citeşte gradul şi coeficienţii polinomului p(x)=a0+a1x1+......+ anxn Să se calculeze valoarea


polinomului în x= x0 (x0 se citeşte).

20. Să se scrie un program pentru efectuarea operaţiilor de adunare, scădere, înmulţire şi împărţire
între două polinoame:
A(x)=a0 +a1x1+......+ anxn
B(x)=b0 +b1x1+......+ bmxm
Gradele şi coeficienţii reali ai polinoamelor se citesc de pe mediul de intrare.

21. O matrice pătrată cu elemente reale este împărţită de diagonalele sale în patru zone. Se consideră
că elementele situate pe diagonale nu aparţin nici unei zone. Să se scrie un program care
calculează media aritmetică a elementelor fiecărei zone.

22. Se dă un sistem de n ecuaţii liniare cu n necunoscute. Să se scrie un program de rezolvare a


sistemului, folosind o metoda numerică.

23. Se dă un şir de n elemente reale ordonate crescător. Să se verifice dacă o valoare citită x se
găseşte în şir şi să se indice poziţia sa.

24. Se dă un şir de n numere întregi. Să se extragă subşirul ordonat crescător de dimensiune maximă.

25. Pentru elaborarea unui test de aptitudini se dispune de un set de întrebări, fiecare întrebare i fiind
cotată cu un număr de pi puncte. Să se elaboreze toate chestionarele având q întrebări, fiecare
chestionar totalizând între a şi b puncte. Întrebările sunt date prin număr şi punctaj.

26. Se dau 2 şiruri de n si respectiv m elemente de tip întreg. Să se găsească:


a) şirul ce conţine elementele comune ale celor două şiruri;
b) şirul ce conţine toate elementele celor două şiruri luate o singură dată;
c) şirul ce conţine elementele primului şir din care au fost eliminate elementele comune.
27. Se dă un număr real a în baza 10. Să se scrie programul de conversie a lui în baza B, unde B <=
16.

28. Se dă un număr natural n.


a) Să se găsească numărul obţinut prin eliminarea cifrelor care apar de mai multe ori în număr.
b) Să se găsească numărul obţinut prin interschimbarea între ele a primei cifre cu ultima , a celei
de a doua cu penultima ş.a.m.d.
c) Să se găsească cel mai mare număr ce se poate obţine din cifrele sale.

29. Se dă o matrice de nxn elemente 0 şi 1. Să se stabilească dacă matricea respectivă este simetrică.

30. De pe mediul de intrare se citeşte o propoziţie. Să se indice numărul cuvintelor şi cuvântul cel
mai lung din propoziţie.

31. Se spune că un număr natural este ”frumos” dacă are ca factori primi doar pe 2,3 şi 5. Şirul
numerelor frumoase este:
1,2,3,4,5,6,8,9,10,12,15,16,18,20,24,25,27,30,...
Să se scrie un program care afişează pe ecran primele n numere ”frumoase”, câte 10 pe o linie
(1<=n<=1000).

32. Se citeşte de la tastatură o dată calendaristică an, luna, zi. Să se scrie un program care calculează
numărul de zile care au mai rămas pâna la sfârşitul anului respectiv.

33. Se citesc de la tastatură data calendaristică de naştere a unei persoane şi cea curentă. Să se
calculeze vârsta persoanei în număr de ani, luni şi zile.

34. Se citeşte de la tastatură ora, minutul şi secunda indicate de un ceas. Să se calculeze unghiul
măsurat în sens trigonometric între indicatorul orar şi minutar.

35. De pe mediul de intrare se citeşte gradul unui polinom şi coeficienţii săi, care sunt numere întregi.
P ( x ) = p 0 + p1 x 1 + ... + p n x n
în care p0 este nenul.
Ştiind că polinomul admite numai rădăcini întregi simple, să se găsească rădăcinile polinomului.

36. De pe mediul de intrare se citeşte n şi perechile de numere întregi ( xi , yi ), i = 1, n reprezentând


o relaţie binară R peste mulţimea M.
a) Admiţând că fiecare element din mulţimea M apare în cel puţin o pereche dintre cele citite, să
se determine mulţimea M.
b) Să se verifice dacă relaţia R este o relaţie de echivalenţă (reflexivă, simetrică şi tranzitivă).

37. Se dau două şiruri de caractere care reprezintă numere întregi zecimale foarte mari. Să se scrie
un program de efectuare a operaţiilor aritmetice asupra lor.

38. Să se scrie funcţiile pentru adunarea, scăderea şi înmulţirea a două matrice şi apoi să se realizeze
calculul A=B*C –2*(B+C), unde B şi C sunt două matrice pătratice de ordinul n.
39. Să se scrie funcţia care realizează operaţiile aritmetice asupra a două matrice rare (matricea rară
este o matrice de dimensiune mare, care are multe elemente nule).

40. Fiind date anul, luna, ziua, să se scrie o funcţie care să returneze a câtea zi din an este ziua
respectivă şi câte zile au mai rămas din anul respectiv.

41. Să se scrie o funcţie care primind ca parametru un număr roman sub forma unui şir de caractere,
returnează numărul respectiv ca număr arab în baza 10.

42. Să se scrie o funcţie care primind ca parametru un număr arab în baza 10, calculează şirul de
caractere ce reprezintă numărul respectiv sub formă romană.

43. De pe mediul de intrare se citeşte un număr întreg, multiplu de 100, care reprezintă o anumită
sumă de bani în LEI. Să se scrie o funcţie care determină modul de plată a respectivei sume, astfel
ca să se folosească un număr minim de bancnote.

44. Să se scrie o funcţie care determină dacă un şir de caractere este subşir al altui şir de caractere,
returnând ca valoare poziţia unde începe subşirul în şir în caz afirmativ sau –1 în caz contrar.

45. Să se scrie o funcţie care determină dacă parametrul său (număr natural) este sau nu pătrat
perfect. Aplicând funcţia asupra elementelor unui vector de numere naturale, să se extragă din
vectorul respectiv toate pătratele perfecte într-un alt vector.

46. Să se scrie o funcţie care returnează cel mai mare pătrat perfect, mai mic sau egal cu parametrul
său (număr natural)

47. Dându-se forma postfixată a unei expresii aritmetice care conţine numai numere întregi şi
operatori +,-,*,/, să se scrie un program pentru evaluarea sa.

48. Să se scrie un program pentru calculul c.m.m.d.c. şi a c.m.m.m.c. a două polinoame.

49. Să se implementeze noţiunea de mulţime şi operaţiile permise asupra sa.

50. Să se implementeze un editor de texte care să permită câteva operaţii definite de Dvs. (inserarea
unui text, ştergere/ adăugare de caractere sau linii etc).

51. De la tastatură se citesc numărul de oraşe n ale unei regiuni şi coordonatele lor (x,y) din planul
xoy. Să se găsească modul de legare între ele printr-o linie telefonică de lungime minimă, cu
condiţia ca să existe posibilitatea de comunicare între oricare două oraşe direct sau prin
intermediar.

52. Folosind numai pointeri şi expresii cu pointeri, se vor scrie funcţii de citire, afişare şi înmulţire a
două matrice.

53. Folosind numai pointeri şi expresii cu pointeri, se vor scrie funcţii de sortare a unui vector cu
elemente reale.
54. Folosind numai pointeri şi expresii cu pointeri, se va scrie o funcţie de interclasare a doi
vectori. Vectorii iniţiali conţin elemente de tip real ordonate crescător. Vectorul rezultat va
conţine numai elemente distincte ale celor doi vectori, de asemenea ordonate crescător.

55. Să se scrie o funcţie care sortează în ordine crescătoare n şiruri de caractere.

56. Să se scrie o funcţie care calculează produsul a două polinoame, folosind numai lucrul cu pointeri
şi expresii cu pointeri.

57. Să se scrie o funcţie care calculează puterea k a unei matrici pătrate, folosind pointeri pentru
referenţierea elementelor matricei. Matricea obţinută va fi afişată sub formă naturală.

58. Să se scrie o funcţie care calculează matricea transpusă a unei matrice, folosind pointeri şi
expresii cu pointeri pentru referenţierea elementelor matricei. Matricele vor fi afişate sub formă
naturală.

59. Să se scrie o funcţie recursivă şi una nerecursivă pentru calculul valorii polinoamelor Hermite
H(x) definite astfel:
H0(x)=1; H1(x)=2x;
Hn(x)=2nHn-1(x)-2(n-1)Hn-2(x), pentru n≥2.

60. Problema turnurilor din Hanoi


Se consideră trei tije verticale A,B,C şi n discuri de diametre diferite. Iniţial toate discurile sunt puse în
tija A, în ordinea descrescătoare a diametrului (discul cel mai mare la bază, iar cel mai mic în vârf). Se
cere să se mute discurile de pe tija A pe tija C folosind tija B ca intermediar, folosind condiţiile:
a) la o manevră se mută un singur disc şi anume cel din vârful unei tije;
b) nu se poate pune un disc de diametru mai mare peste unul de diametru mai mic;
c) în final, pe tija C, discurile trebuie să fie în aceeaşi ordine ca în starea iniţială de pe tija A.

61. Să se scrie un program recursiv care citeşte n cuvinte şi le afişează în ordinea inversă a
introducerii lor.

62. Să se scrie un program recursiv de generare a produsului cartezian a n mulţimi.

63. Să se scrie un program de generare recursivă a submulţimilor de k elemente aparţinând mulţimii


A cu n elemente (combinaţiile de n elemente luate câte k).

64. Să se scrie un program de rezolvare a problemei celor 8 regine (determinarea tuturor aşezărilor pe
tabla de şah a celor 8 regine astfel încât să nu se atace).

65. Să se genereze recursiv permutările mulţimii A de n elemente.

66. Se consideră o bară de lungime m şi n repere de lungimi l1, l2, .... , ln. Din bară trebuie tăiate
bucăţi de lungimea reperelor date, astfel încât să rezulte din fiecare reper cel puţin o bucată şi
pierderile să fie minime.

67. Funcţia lui Ackermann. Să se scrie programul recursiv care calculează funcţia lui Ackermann
definită astfel:
Ack(0,n)=n+1 pentru n ε N
Ack(m,0)=Ack(m-1,1) pentru m ε N*
Ack(m,n)=Ack(m-1,Ack(m,n-1)) pentru m,n ε N*

68. Generarea partiţiilor numărului natural n.


Să se scrie o funcţie recursivă de generare a tuturor partiţiilor unui număr natural n. Două partiţii diferă
între ele fie prin valorile elementelor din partiţie, fie prin ordinea acestora.
Exempu: partiţiile numărului 4 sunt:
{1,1,1,1},{1,1,2},{1,2,1},{1,3},{2,1,1},{2,2},{3,1},{4}.

69. Un labirint este codificat printr-o matrice de m*n elemente , ale cărui culoare sunt reprezentate
prin elemente egale cu 1, situate în poziţii consecutive, pe o aceeaşi linie sau o aceeaşi coloană.
Se cere afişarea tuturor traseelor de ieşire din labirint, începând cu punctul iniţial (i,j), cu condiţia
ca traseele să nu treacă de mai multe ori prin acelaşi loc.

70. Se dă o tablă de şah de dimensiune n*n. Un cal este plasat în pătratul din stânga sus al tablei. Să
se afişeze toate posibilităţile de mutare a calului, astfel încât să treacă o singură dată prin fiecare
pătrat al tablei.

71. Se consideră o matrice de dimensiune n*m ale cărei elemente sunt numere naturale cuprinse între
1 şi 9, reprezentând diferite culori. Se defineşte mulţimea conexă a unui element ca fiind
mulţimea elementelor matricei în care se poate ajunge din elementul respectiv prin deplasări
succesive pe linie sau coloană, cu păstrarea culorii.
Să se determine culoarea şi numărul de elemente ale mulţimii conexe cu număr maxim de elemente.
Dacă există mai multe soluţii, se va preciza una dintre ele.

72. Există la dispoziţie n cuburi, fiecare cub fiind caracterizat prin lungimea laturii şi culoarea sa. Să
se formeze un turn de înălţime maximă format cu unele din cele n cuburi, respectând următoarele
condiţii:
a) un cub este aşezat peste altul numai dacă latura sa este strict mai mică decât a celui peste care se
aşează;
b) două cuburi alăturate au culori diferite.

73. Se va scrie o funcţie care să realizeze extragerea dintr-un şir de caractere sursă a unui subşir
specificat prin poziţia în cadrul sursei şi a numărului de caractere extrase.

74. Se va scrie o funcţie pentru inserarea unui şir de caractere sursă într-un şir de caractere destinaţie,
specificând poziţia din care începe inserarea.

75. Se va scrie o funcţie pentru ştergerea unui subşir dintr-un şir de caractere dat. Subşirul se va
specifica prin poziţie şi număr de caractere.

76. Se va scrie o funcţie pentru a verifica dacă un şir dat este subşir al unui alt şir de caractere. În caz
afirmativ, se va specifica poziţia pe care se regăseşte pentru prima dată.

77. Să se scrie două funcţii, una care converteşte un număr întreg sau real într-un şir de caractere, iar
cealaltă face operaţia inversă.
78. Să se scrie un program care citeşte n şiruri de caractere şi afişează şirul cel mai lung şi
şirul cel mai mare alfanumeric.

79. De la tastatură se citesc pentru n cărţi autorul, titlul cărţii şi anul de apariţie. Să se afişeze:
a) numele autorilor în ordine alfabetică;
b) numele autorilor şi a cărtilor sale în ordinea anilor de apariţie.

73. De la tastatură se citesc pentru n domnitori numele şi perioada de domnie. Să se afişeze: toţi
domnitorii în ordinea alfabetică şi numărul de ani de domnie.

74. De la tastatură se citesc şiruri de maxim 80 caractere. Acestea pot reprezenta constante întregi
sau reale fără exponent, separate prin cel puţin un spaţiu. Să se scrie un program care calculează
suma numerelor reale şi suma numerelor întregi din fiecare şir, ignorând valorile incorecte. Se
consideră constantă incorectă o secvenţă de caractere delimitată de două spaţii ce conţine un
caracter nepermis, sau o secvenţă de lungime mai mare de 5 caractere.

75. Cunoscând data de naştere a Dvs. şi ştiind că în anul curent vă aniversaţi ziua de naştere în ziua
de x [luni, marţi, ..., duminică], scrieţi un program pentru a afişa ziua (din săptămână) în care v-
aţi născut.

76. Să se scrie un program modularizat care citeşte datele legate de studenţii unei grupe: nume, data
naşterii, adresa şi îi afişează în ordine crescătoare lexicografică.

77. Să se scrie un program pentru calculul valorii unui polinom de gradul n cu coeficienţi complecşi
pentru o valoare complexă. Calculul se va face cu ajutorul unei funcţii.

78. Să se introducă tipul RAŢIONAL ca o structură formată din numărător şi numitor. Să se scrie
funcţii de simplificare, adunare, scădere, înmulţire, împărţire, ridicare la putere.

79. Folosind tipul uniune, care conţine câmpurile necesare pentru a putea reprezenta un cerc, un
dreptunghi, un pătrat, un triunghi, să se scrie o funcţie pentru a calcula aria figurii respective.

80. Folosind tipul enumerare, să se introducă tipul boolean. Să se scrie o funcţie de ordonare
crescătoare a unui şir folosind metoda bulelor şi un semafor de tipul boolean.

81. O maşină poate transporta maximum m kg. Se cunosc denumirea materialului, cantitatea în kg. şi
preţul unitar. Să se stabilească ce materiale şi ce cantitate din fiecare se poate încărca în maşină,
astfel ca valoarea materialelor transportate să fie maximă.

82. Se numeşte polinom rar, un polinom a cărui număr de monoame nule este mai mare decât
numărul celor nenule. Să se scrie un program care memorează un polinom rar de ordinul m, îl
afişează şi îi calculează valoarea pentru un x dat.

83. Se numeşte matrice rară o matrice care are numărul elementelor nule mai mare ca al celor nenule.
Să se găsească un mod eficient de memorare a unei matrici rare şi să se scrie funcţiile de realizare
ale operaţiilor de adunare, scădere şi înmulţire asupra a două astfel de matrici.

84. Se citeşte de la tastatură un text care se scrie într-un fişier "text.dat". Să se afişeze apoi conţinutul
fişierului, fiecare linie fiind precedată de numărul de ordine al ei.
85. De la tastatură se citesc partea reală şi partea imaginară pentru n numere complexe. Să se creeze
un fişier care conţine numerele complexe citite, fiecare număr având partea reală, partea
imaginară, modulul şi argumentul său.

86. Două firme îşi păstrează informaţiile referitoare la stocul de mărfuri (cod produs, denumire,
cantitate, preţ unitar) în fişierele "marfa1.dat" şi respectiv "marfa2.dat", ordonate crescător după
cod. Prin fuzionarea celor două firme, rezultă un stoc comun care trebuie memorat în fişierul
"marfa.dat", ordonat după cod.
Să se creeze fişierele iniţiale, pe baza datelor introduse de la tastatură şi apoi să se creeze fişierul de
stoc comun "marfa.dat" Pentru mărfuri cu cod comun, se consideră că denumirea şi preţul unitar
corespund.
Fişierul "marfa.dat" se va parcurge secvenţial, tipărind pentru fiecare componentă denumirea şi
cantitatea.
Pentru o componentă dorită dată prin numărul de ordine, se va modifica direct preţul său unitar.

87. Să se scrie programul pentru concatenarea a două sau mai multe fişiere ce conţin numere reale. Se
va tipări informaţia din fişierul rezultat.

88. O metodă simplă de compactare a mesajelor este următoarea: orice succesiune de mai mult de 3
caractere identice se substituie cu următorul triplet :
- un caracter de control;
- caracterul respectiv;
- un număr natural, care arată numărul de repetiţii ale caracterului.De exemplu, secvenţa
uuuuuu devine #u6 (caracterul de control a fost ales #)
Să se scrie un program care să conţină funcţiile de compactare şi de decompactare ale unui fişier, al
cărui nume este transmis funcţiilor. Se va analiza eficienţa compactării, prin compararea lungimii
fişierului dat cu cel compactat.

89. Să se scrie un program pentru a realiza următoarele acţiuni:


a) creează un fişier care conţine date despre autoturismele dintr-un garaj. Un autoturism este
reprezentat printr-o structură ce conţine marca, numele proprietarului, culoarea şi numărul de
înmatriculare.
b) afişează pe ecran o listă alfabetică după numele proprietarului a tuturor autoturismelor având o
culoare precizată.

90. Să se scrie un program care citeşte un fişier text sursă C şi afişează frecvenţele de apariţie ale
cuvintelor rezervate din textul repectiv.

91. Să se scrie un program care face comparaţia între conţinutul a două fişiere text existente. Se vor
tipări liniile celor două fişiere între care s-au găsit diferenţe.

92. Să se creeze un fişier care să conţină produsele unui magazin. Un produs este reprezentat printr-o
structură ce conţine codul produsului, denumirea, unitatea de măsură, cantitatea, preţul unitar.
Plecând de la acest fişier, să se obţină un fişier sortat după cod.
93. Având creat fişierul sortat care să conţină produsele unui magazine, se vor scrie funcţii de intrare
şi de ieşire a produselor magazinului. Un produs este reprezentat printr-o structură ce conţine
codul produsului, denumirea, unitatea de măsură, cantitatea, preţul unitar.

94. Se va scrie un program pentru admiterea la facultate în anul I. Programul va cuprinde crearea
fişierului cu candidaţii înscrişi. În final trebuie să se obţină fişierele cu candidaţii admişi pe secţii
şi cei respinşi pe baza mediei obţinute ((bacalaureat + 4 * test_matem) / 5.0).

95. Se consideră un director de fişiere. Fiecare intrare în director conţine numele (8 caractere) şi
extensia (3 caractere) fişierului, numărul de blocuri alocate pentru el, adresa primului bloc alocat,
data şi ora ultimei actualizări. (zi, lună, an, oră, minut, secundă).
Se cere:
a) crearea directorului de fişiere;
b) afişarea din director, în ordine alfabetică, a numelor fişierelor;
c) afişarea din director, în ordine crescătoare a datei şi orei ultimei actualizări, a numelor
fişierelor.

S-ar putea să vă placă și