Sunteți pe pagina 1din 1

Temă

1. Să se scrie un program C++ care realizează următoarele:


a) Şterge dintr-un şir de caractere un subşir specificat prin poziţie şi lungime.
b) Inserează într-un şir începând cu o poziţie dată un al şir.
c) Citeşte doua cuvinte şi înlocuieşte într-un text introdus de la tastatură toate apariţiile
primului cuvânt prin cel de-al doilea.

2. Să se citească un text de la tastatură care se încheie cu ‘.’. Să se afişeze cel mai lung
cuvânt din text (dacă sunt mai multe cu aceeaşi lungime maximă se va afişa doar unul dintre
ele).

Întrebari recapitulative:
3) Cum se compară douăşiruri de caractere?
4) Cum se poate afla lungimea unui şir de caractere?
5) Cum se poate copia un şir de caractere într-un alt şir?

6. (Problema de la admitere)
Să se arate că orice număr natural nenul se poate scrie în mod unic ca o
sumă de puteri ale lui 2 care nu se repetă (exemplu: 77 = 20 + 22 + 23 + 26 ).
Scrieți un program care obține această scriere unică.
Numerele naturale de la 1 la 255 se codifică astfel:
– puterile lui 2 se reprezintă prin literele: a = 1, b = 2, c = 4, d = 8, e = 16, f = 32, g = 64,
h = 128;
– orice alt număr din intervalul menționat va fi reprezentat ca o combinație de aceste litere,
aranjate în ordine alfabetică, în care orice literă apare cel mult o singură dată, astfel încât
suma valorilor acestor litere să fie egală cu valoarea numărului (exemplu: acdg = 77).
Să se scrie un program care, citind două șiruri de caractere ce reprezintă numere în convenția
de mai sus, să scrie, la ieșire, șirul ce reprezintă suma numerelor astfel reprezentate
(exemplu: dacă la intrare programul primește șirurile acdg și ac atunci, la
ieșire, va scrie beg).
Șirurile de intrare sunt alese astfel încât suma numerelor pe care le reprezintă să fie mai mică
sau egală cu 255. Este posibil ca programul să calculeze șirul de ieșire fără a transforma
șirurile în numere?
Dacă da, dați o astfel de soluție.

7. Scrieți un program care citește 2 vectori cu elemente numere întregi ordonate crescător și
combină elementele celor doi vectori producând un al treilea vector ordonat crescător (pentru
date de intrare v1 = [1 3 5 7] și v2 = [2 3 5 8 9] datele de ieșire trebuie să arate astfel:
[1 2 3 3 5 5 7 8 9]).

8. Se citește n un număr natural și apoi n numere întregi a1, …, an. Găsiți indicii i și j,
1<=i<=j<=n, astfel încât suma ai + ai+1 + … + aj este maximă.
Pentru n=20 și secvența 5 4 -10 2 0 3 1 -2 6 8 -3 -7 -9 5 8 -29 -1 -5 5 8
soluția este i=4 și j=10.

Problemele vor fi realizate în C++. (Primele 5 probleme sunt de încălzire)


Trimiterea temelor se va face până pe data de 10.01.2020.
De la fiecare problemă luați main.cpp și îl redenumiți astfel: Prenume_NumarProblemă.cpp.
La final, puneți toate cpp-urile într-un folder pe care îl arhivați și trimiteți arhiva.

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