Sunteți pe pagina 1din 4

1. Se citeste de la tastatura un sir de maxim 70 caractere.

Sa se afiseze unul
sub altul, caracterele distincte din sir impreuna cu frecventele lor de
aparitie.Pe fiecare rand se va afisa un caracter urmat de frecventa sa in
sir(prin frecventa de aparitie a unui caracter se intelege de cate ori apare
caracterul respectiv in sir)
Exemplu: Daca se citeste sirul abracadabra,programul va afisa:
a

2. Se citeste de la tastatura un sir alcatuit din cel mult 100 litere mici ale
alfabetului angle.Acest sir va fi supus unor procese de eliminare a tuturor
secventelor de caractere identice situate pe pozitii alaturate , eliminarile
reluandu-se pana cand sirul nu mai contine succesiuni de caractere
alaturate egale.Realizati un program care afiseaza sirul rezultat dupa
applicare algoritmului de mai sus.
Exemplu: pentru sirul AMMBXXXT vom obtine in ordine ABXXXBT,
ABBT, AT.
Indicatii.Algoritmul parcurge in mod repetat sirul s; la fiecare parcurgere ,
vizitam secventele de caractere consecutive de forma (s[i],s[i-1]), cu i=1,2,n-1; la
gasirea unei secvente alcatuite din doua caractere egale, o eliminam;pentru a
decide daca dupa o parcurgere a sirului reluam algoritmul cu o noua parcurgere,
putem folosi o variabila booleana.
3. Se citeste de la tastura un sir de caractere care simuleaza o operatie de
adunare a doua numere naturale foarte mari , cu pana la 20 de cifre
fiecare.Sirul se prezinta sub forma <op1>+<op2>, unde <op1> si
<op2> sunt numerele care se aduna ,Numerele <op1> si <op2> sunt
scrise sub forma literara, adica grupe de trei cifre sunt separate prin
operatorul punct.Realizati un program care efectueaza propriu-zis adunarea
si afiseaza pe ecran suma celor doua numere.
Exemplu: daca se introduce de la tastatura sirul
12.384.766.809+349.106.278.486, acestas simuleaza adunarea
numerelor naturale 12384766809 si 349106278486, iar programul
trebuie sa afiseze numarul 361491045295.

Observatie: Trebuie sa tineti cont de faptul ca numerele de marimea


celor din exemplu nu pot di reprezentate in memorie nici macar cu
ajutorul tipului longint!
4. Un copil are un defect e vorbire care consta intr-un fel de balbaiala.Atunci
cand rosteste o propozitie, pe alocuri repeta de diua sau mai multe ori
succesiv unele consoane din cadrul cuvintelor.Numim balba o astfel de
repetare. De exemplu,propozitia Mergem la mare a fost rostita de catre
copil astfel Merrrgemm la mmmare,Aceste balbr se produc absolut
aleator , in sensul ca nu exista o regula in privinta aparitiei lor.Medicul in
tratamentul caruia se afla ii aplica copilului un test , cu scopul de a urmari
evolutia bolii sale in timpul tratamentului.Astfel, in fiecare zi, medicul il
pune pe copil sa spuna o propozitie si inregistreaza modul in care o
rostteste copilul.Medicul nostru aplica acest eserciti timp de n zile.Avand la
dispozitie fisierul balbe.txt, doctorul nostru trebuie sa afle din acesta,
pentru fiecare zi de tratament in parte , numarul balbelor din propozitia
rostita de copil in ziua respectiva., precum si care este balba cea mai
lunga.Apoi, pentru a-si da seama daca tratamentul are efectul scontat ,
medicul trebuie sa afle daca numarul balbelor scade de la o zi la
alta.Realizati un program care sa-l ajute pe doctor in demersul sau.
Fisierul balbe.txt contine:pe primul rand valoarea lui n, apoi pe fiecare din
urmatoarele n randuri cate o propozitie rostita de copil intr-o zi.
Rezultatele dorite de medic se vor scrie in fisierul rez,.txt, sub forma
urmatoare:
-pe primul rand se va scrie cuvantul DA daca numarul balbelor scade de la
o zi la alta, respectiv NU in caz contrar;
-pe fiecare din urmatoarele n randuri se va scrie un intreg si un sir de
caractere separate printr-un spatiu, reprezentand numarul balbelor, respectiv
balba cea mai lunga din ziua respectiva (daca exista mai multe balbe de
lungime maxima , se va afisa doar ultima).
Exemplu:
rez.txt

balbe.txt

5
As vvrrrea sa merrrrg la mmare in vara
asssssttta
Azi amm dat ttteza la inforrrrrmmmatica

DA
6
4
4
3

sssss
rrrr
ffff
cccc

Ierrrri mi-a fossst fffffoarrte rau

ddd

mmmi-a placccut mult aceassta carte


Cccred ca dddiriginta s-a suparat pe mine

18

Fisierul A.txt contine mai multe randuri, pe fiecare rand fiind simulata o
operatie de adunare a doua numere naturale.Textul de pe fiecare rand
este de for,a <op1>+<op2>=<rez> , unde <op1> si <op2> sunt
operanzii care se aduna, iar <rez> este rezultatul adunarii.Realizati un
program care afiseaza cate dintre operatiile simulate in fisier sunt
corecte(rezultatul este cel corect din punct de vedere matematic).
Exemplu:
pentru fisierul din figura , programul trebuie sa afiseze
valoarea 3, deoarece operatiile de adunare de pe primul,
al treilea si al patrulea rand sunt corecte , in timp ce
rezultatul adunarii de pe randul al doilea este gresit.

234+81=315
33805+1123=3
4918
1510+695=220
5
1+2=3

Indicatii. Citim fisierul intr-un ciclu:cat timp nu am ajuns la sfarsitul


fisierului, citim la fiecare pas cate o linie ca sir de caractere , intr-o variabila de
tip string.Pentru fiecare astfel de sir , trebuie sa extragem din el, primul si al
doilea operand precum si rezultatul adunarii, ca numere intregi.Un astfel de
algoritm a fost prezentat ca problema rezolvata in capitolul Siruri de
caractere , sectiuneaAprofundare . Odata ce avem operanzii si rezultatul
aferente fiecarei linii, nu ne ramane decat sa verificam daca adunarea este
corecta, iar in caz firmativ sa incrementam un contor care numara operatiile
corecte.

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