fork download
  1. /* Cerinte:
  2. 1. Numărați câte elemente nenule sunt intr-un vector de întregi.
  3. 2. Eliminați elementele nule dintr-un vector de întregi.
  4. 3. Înlocuiți elementele nule dintr-un vector de întregi cu o anumita valoare data.
  5. 4. Verificați dacă pe toate poziții pare dintr-un vector de întregi, sunt numere pare. Dacă nu, aruncați o excepție.
  6. 5. Numărați câte elemente dintr-un vector de intregi aparțin unui anumit interval dat.
  7. 6. Căutați ultima apariție a unui număr într-un vector de întregi și afișați indexul.
  8. 7. Verificați dacă un vector de caractere conține doar consoane. Se vor verifica doar literele mici.
  9. 8. Verificați dacă un vector de caractere conține doar vocale.
  10. 9. Verificați dacă fiecare pereche dintr-un vector de perechi de întregi este alcătuită dintr-un număr par și un număr impar.
  11. 10. Verificați ca fiecare pereche dintr-un vector de perechi de întregi sa conțină câte un element nul.
  12. 11. Verificați dacă pentru toate perechile de întregi dintr-un vector, primul număr este mai mic ca al doilea.
  13. 12. Verificați ca fiecare pereche de caractere dintr-un vector de perechi sa conțină cel puțin o vocala.
  14. 13. Verificați ca fiecare pereche de caractere dintr-un vector de perechi sa conțină cel puțin o consoana.
  15. 14. Verificați ca fiecare pereche de caractere dintr-un vector de perechi sa conțină exact o vocala.
  16. 15. Înlocuiți vocalele dintr-un vector de caractere, cu o consoane data.
  17. 16. Ștergeți toate vocalele dintr-un vector de caractere.
  18. 17. Inserați după fiecare consoana dintr-un vector de caractere, o vocala dată.
  19. 18. Numărați câte perechi dintr-un vector de perechi de caractere sunt formate doar din vocale.
  20. 19. Ștergeți perechile caracter-intreg dintr-un vector de perechi de acest fel, care au întregul egal cu o valoare data.
  21. 20. Modificați toți întregii din perechile caracter-intreg dintr-un vector de astfel de perechi, astfel încât perechile sa fie de forma {caracter, codul ASCII al caracterului}.
  22. 21. Ștergeți perechile care nu conțin litere dintr-un vector de perechi de caractere.
  23. 22. Numărați câte perechi conțin doar litere dintr-un vector de perechi de caractere.
  24. */
  25.  
  26. #include <iostream>
  27. #include <vector>
  28. #include <algorithm>
  29.  
  30. using namespace std;
  31.  
  32. void problema1()
  33. {
  34. cout << "Problema 1:\n";
  35. vector<int> v = {3,0,9,8,0};
  36. int count = 0;
  37. for (auto it = v.begin(); it != v.end(); it++)
  38. {
  39. if(*it)
  40. {
  41. count ++;
  42. }
  43. }
  44. std::cout << "Sunt " << count << " elemente nenule";
  45. cout << endl;
  46. }
  47.  
  48. void problema2()
  49. {
  50. cout << "Problema 2:\n";
  51. vector<int> v = {3,0,9,8,0};
  52. v.erase(remove(v.begin(),v.end(),0), v.end());
  53. std::cout << "Vectorul fara elemente nule este: ";
  54. for (auto it = v.begin(); it != v.end(); it++)
  55. {
  56. cout<<*it << " ";
  57. }
  58. cout << endl;
  59. }
  60.  
  61. void problema3()
  62. {
  63. cout << "Problema 3:\n";
  64. vector<int> v = {3,0,9,8,0};
  65. int value = 2;
  66. for (auto it = v.begin(); it != v.end(); it++)
  67. {
  68. if(!*it)
  69. {
  70. *it = value;
  71. }
  72. }
  73. std::cout << "Dupa inlocuirea elementelor nule cu " << value << " vectorul este: ";
  74. for (auto it = v.begin(); it != v.end(); it++)
  75. {
  76. cout<<*it << " ";
  77. }
  78. cout << endl;
  79. }
  80.  
  81. void problema4()
  82. {
  83. cout << "Problema 4:\n";
  84. vector<int> v = {3,0,9,8,0};
  85. try
  86. {
  87. for (auto it = v.begin(); it != v.end(); it+=2)
  88. {
  89. int index = it - v.begin();
  90. if(*it % 2)
  91. {
  92. throw index;
  93. }
  94. }
  95. }
  96. catch(int e)
  97. {
  98. cout << "Indexul din vector " << e << " nu indeplineste conditia ceruta. Cautare oprita";
  99. }
  100. cout << endl;
  101. }
  102.  
  103. void problema5()
  104. {
  105. cout << "Problema 5:\n";
  106. vector<int> v = {3,0,9,8,0};
  107. int a = 0, b = 4;
  108. int count = 0;
  109. for (auto it = v.begin(); it != v.end(); it++)
  110. {
  111. if(*it >= a && *it <= b)
  112. {
  113. count ++;
  114. }
  115. }
  116. cout << "Sunt " << count << " elemente in intervalul [" << a << "," << b << "]";
  117. cout << endl;
  118. }
  119.  
  120. void problema6()
  121. {
  122. cout << "Problema 6:\n";
  123. vector<int> v = {3,0,9,8,0};
  124. int value = 0;
  125. auto it = find(v.rbegin(), v.rend(), value);
  126. cout << "Ultima aparitie a numarului " << value << " este la pozitia " << v.rend() - 1 - it;
  127. cout << endl;
  128. }
  129.  
  130. void problema7()
  131. {
  132. cout << "Problema 7:\n";
  133. vector<char> v = {'c','v','a'};
  134. vector<char> vowels = {'a','e','i','o','u'};
  135. for(const auto & caracter : v)
  136. {
  137. if(caracter < 'a' || caracter > 'z')
  138. {
  139. cout << "Vectorul nu contine doar consoane";
  140. break;
  141. }
  142. else
  143. {
  144. auto it = find(vowels.begin(), vowels.end(), caracter);
  145. if(it != vowels.end())
  146. {
  147. cout << "Vectorul nu contine doar consoane, contine si vocale";
  148. break;
  149. }
  150. }
  151. }
  152. cout << endl;
  153. }
  154.  
  155. void problema8()
  156. {
  157. cout << "Problema 8:\n";
  158. vector<char> v = {'c','v','a'};
  159. vector<char> vowels = {'a','e','i','o','u'};
  160. for(const auto & caracter : v)
  161. {
  162. auto it = find(vowels.begin(), vowels.end(), caracter);
  163. if(it == vowels.end())
  164. {
  165. cout << "Vectorul nu contine doar vocale";
  166. break;
  167. }
  168. }
  169. cout << endl;
  170. }
  171.  
  172. void problema9()
  173. {
  174. cout << "Problema 9:\n";
  175. vector<pair<int,int>> v = {{3,0}, {6,6}, {9,8}};
  176. for (const auto & pair : v)
  177. {
  178. if(!(pair.first % 2) && !(pair.second % 2) || pair.first % 2 && pair.second % 2)
  179. {
  180. cout << "S-a intalnit o pereche formata din doua numere pare sau doua numere impare. Se opreste cautarea";
  181. break;
  182. }
  183. }
  184. cout << endl;
  185. }
  186.  
  187. void problema10()
  188. {
  189. cout << "Problema 10:\n";
  190. vector<pair<int,int>> v = {{3,0}, {6,6}, {9,8}};
  191. for (const auto & pair : v)
  192. {
  193. if(!pair.first && pair.second || pair.first && !pair.second)
  194. {
  195. cout << "S-a intalnit o pereche formata dintr-un element nul. Se opreste cautarea";
  196. break;
  197. }
  198. }
  199. cout << endl;
  200. }
  201.  
  202. void problema11()
  203. {
  204. cout << "Problema 11:\n";
  205. vector<pair<int,int>> v = {{3,0}, {6,6}, {9,8}};
  206. for (const auto & pair : v)
  207. {
  208. if(pair.first >= pair.second)
  209. {
  210. cout << "S-a intalnit o pereche in care primul element nu este mai mic decat al doilea. Se opreste cautarea";
  211. break;
  212. }
  213. }
  214. cout << endl;
  215. }
  216.  
  217. void problema12()
  218. {
  219. cout << "Problema 12:\n";
  220. vector<pair<char,char>> v = {{'a','e'}, {'e','v'}, {'r','t'}};
  221. vector<char> vowels = {'a','e','i','o','u'};
  222. for (const auto & pair : v)
  223. {
  224. auto itFirst = find(vowels.begin(), vowels.end(), pair.first);
  225. auto itSecond = find(vowels.begin(), vowels.end(), pair.second);
  226. if(itFirst == vowels.end() && itSecond == vowels.end())
  227. {
  228. cout << "S-a intalnit o pereche in care nici un caracter nu este vocala. Se opreste cautarea";
  229. break;
  230. }
  231. }
  232. cout << endl;
  233. }
  234.  
  235. void problema13()
  236. {
  237. cout << "Problema 13:\n";
  238. vector<pair<char,char>> v = {{'a','e'}, {'e','v'}, {'r','t'}};
  239. vector<char> vowels = {'a','e','i','o','u'};
  240. for (const auto & pair : v)
  241. {
  242. if ((pair.first >= 'a' && pair.first <= 'z') && (pair.second >= 'a' && pair.second <= 'z'))
  243. {
  244. auto itFirst = find(vowels.begin(), vowels.end(), pair.first);
  245. auto itSecond = find(vowels.begin(), vowels.end(), pair.second);
  246. if(itFirst != vowels.end() && itSecond != vowels.end())
  247. {
  248. cout << "S-a intalnit o pereche in care sunt doua vocale. Se opreste cautarea";
  249. break;
  250. }
  251. }
  252. else if (pair.first >= 'a' && pair.first <= 'z')
  253. {
  254. auto itFirst = find(vowels.begin(), vowels.end(), pair.first);
  255. if(itFirst != vowels.end())
  256. {
  257. cout << "S-a intalnit o pereche in care un caracter este vocala si celalalt nu este litera. Se opreste cautarea";
  258. break;
  259. }
  260. }
  261. else if (pair.second >= 'a' && pair.second <= 'z')
  262. {
  263. auto itSecond = find(vowels.begin(), vowels.end(), pair.second);
  264. if(itSecond != vowels.end())
  265. {
  266. cout << "S-a intalnit o pereche in care un caracter este vocala si celalalt nu este litera. Se opreste cautarea";
  267. break;
  268. }
  269. }
  270. else if ((pair.first < 'a' || pair.first > 'z') && (pair.second < 'a' || pair.second > 'z'))
  271. {
  272. cout << "S-a intalnit o pereche in care nici un caracter nu este litera. Se opreste cautarea";
  273. break;
  274. }
  275. }
  276. cout << endl;
  277. }
  278.  
  279. void problema14()
  280. {
  281. cout << "Problema 14:\n";
  282. vector<pair<char,char>> v = {{'a','e'}, {'e','v'}, {'r','t'}};
  283. vector<char> vowels = {'a','e','i','o','u'};
  284. for (const auto & pair : v)
  285. {
  286. auto itFirst = find(vowels.begin(), vowels.end(), pair.first);
  287. auto itSecond = find(vowels.begin(), vowels.end(), pair.second);
  288. if(itFirst == vowels.end() && itSecond == vowels.end() || itFirst != vowels.end() && itSecond != vowels.end())
  289. {
  290. cout << "S-a intalnit o pereche in care nu exista exact o vocala. Se opreste cautarea";
  291. break;
  292. }
  293. }
  294. cout << endl;
  295. }
  296.  
  297. void problema15()
  298. {
  299. cout << "Problema 15:\n";
  300. vector<char> v = {'a','t','i','y','u'};
  301. vector<char> vowels = {'a','e','i','o','u'};
  302. char consoana = 'r';
  303. for (auto & caracter : v)
  304. {
  305. auto it = find(vowels.begin(), vowels.end(), caracter);
  306. if(it != vowels.end())
  307. {
  308. caracter = consoana;
  309. }
  310. }
  311. cout << "Dupa inlocuirea vocalelor cu consoana " << consoana << " vectorul este: ";
  312. for (const auto & caracter : v)
  313. {
  314. cout << caracter << " ";
  315. }
  316. cout << endl;
  317. }
  318.  
  319. void problema16()
  320. {
  321. cout << "Problema 16:\n";
  322. vector<char> v = {'a','t','i','y','u'};
  323. vector<char> vowels = {'a','e','i','o','u'};
  324. v.erase(remove_if(v.begin(),v.end(),[&](char caracter) -> bool
  325. {
  326. auto it = find(vowels.begin(), vowels.end(), caracter);
  327. if(it != vowels.end())
  328. {
  329. return true;
  330. }
  331. return false;
  332. }), v.end());
  333. std::cout << "Vectorul fara vocale este: ";
  334. for (const auto & caracter : v)
  335. {
  336. cout << caracter << " ";
  337. }
  338. cout << endl;
  339. }
  340.  
  341. void problema17()
  342. {
  343. cout << "Problema 17:\n";
  344. vector<char> v = {'c','v','a'};
  345. vector<char> vowels = {'a','e','i','o','u'};
  346. char vowel = 'a';
  347. for(int i = 0; i < v.size(); i++)
  348. {
  349. if(v.at(i) < 'a' || v.at(i) > 'z')
  350. {
  351. continue;
  352. }
  353. auto it = find(vowels.begin(), vowels.end(), v.at(i));
  354. if (it != vowels.end())
  355. {
  356. continue;
  357. }
  358. v.insert(v.begin() + i + 1, vowel);
  359. }
  360. std::cout << "Vectorul cu vocala " << vowel << " insertata dupa fiecare consoana este: ";
  361. for (const auto & caracter : v)
  362. {
  363. cout << caracter << " ";
  364. }
  365. cout << endl;
  366. }
  367.  
  368. void problema18()
  369. {
  370. cout << "Problema 18:\n";
  371. vector<pair<char,char>> v = {{'a','e'}, {'e','v'}, {'r','t'}};
  372. vector<char> vowels = {'a','e','i','o','u'};
  373. for (const auto & pair : v)
  374. {
  375. auto itFirst = find(vowels.begin(), vowels.end(), pair.first);
  376. auto itSecond = find(vowels.begin(), vowels.end(), pair.second);
  377. if(itFirst == vowels.end() || itSecond == vowels.end())
  378. {
  379. cout << "S-a intalnit o pereche in care nu sunt doar vocale. Se opreste cautarea";
  380. break;
  381. }
  382. }
  383. cout << endl;
  384. }
  385.  
  386. void problema19()
  387. {
  388. cout << "Problema 19:\n";
  389. vector<pair<char,int>> v = {{'a',3},{'t',4},{'i',3},{'y',5},{'u',6}};
  390. int nr = 3;
  391. v.erase(remove_if(v.begin(),v.end(),[&](auto pereche) -> bool
  392. {
  393. if(pereche.second == nr)
  394. {
  395. return true;
  396. }
  397. return false;
  398. }), v.end());
  399. std::cout << "Vectorul cu perechile sterse care au numarul egal cu " << nr << " este: ";
  400. for (const auto & pereche : v)
  401. {
  402. cout << "{" << pereche.first << "," << pereche.second << "} ";
  403. }
  404. cout << endl;
  405. }
  406.  
  407. void problema20()
  408. {
  409. cout << "Problema 20:\n";
  410. vector<pair<char,int>> v = {{'a',3},{'t',4},{'i',3},{'y',5},{'u',6}};
  411. for(auto it = v.begin(); it != v.end(); it++)
  412. {
  413. (*it).second = (*it).first - '0';
  414. }
  415. std::cout << "Vectorul cu perechile cu cod ascii al caracterului este: ";
  416. for (const auto & pereche : v)
  417. {
  418. cout << "{" << pereche.first << "," << pereche.second << "} ";
  419. }
  420. cout << endl;
  421. }
  422.  
  423. void problema21()
  424. {
  425. cout << "Problema 21:\n";
  426. vector<pair<char,char>> v = {{'a','3'},{'4','t'},{'4','3'},{'e','r'}};
  427. v.erase(remove_if(v.begin(),v.end(),[&](auto pereche) -> bool
  428. {
  429. if((pereche.first < 'a' || pereche.first > 'z') && (pereche.second < 'a' || pereche.second > 'z'))
  430. {
  431. return true;
  432. }
  433. return false;
  434. }), v.end());
  435. std::cout << "Vectorul cu perechile care nu contine litere sterse este: ";
  436. for (const auto & pereche : v)
  437. {
  438. cout << "{" << pereche.first << "," << pereche.second << "} ";
  439. }
  440. cout << endl;
  441. }
  442.  
  443. void problema22()
  444. {
  445. cout << "Problema 22:\n";
  446. vector<pair<char,char>> v = {{'7','e'}, {'e','v'}, {'8','9'}};
  447. int count = 0;
  448. for (const auto & pereche : v)
  449. {
  450. if((pereche.first >= 'a' && pereche.first <= 'z') && (pereche.second >= 'a' && pereche.second <= 'z'))
  451. {
  452. count ++;
  453. }
  454. }
  455. cout << "Sunt " << count << " perechi care contin doar litere";
  456. cout << endl;
  457. }
  458.  
  459. int main() {
  460. //problema1();
  461. //problema2();
  462. //problema3();
  463. //problema4();
  464. //problema5();
  465. //problema6();
  466. //problema7();
  467. //problema8();
  468. //problema9();
  469. //problema10();
  470. //problema11();
  471. //problema12();
  472. //problema13();
  473. //problema14();
  474. //problema15();
  475. //problema16();
  476. problema17();
  477. //problema18();
  478. //problema19();
  479. //problema20();
  480. //problema21();
  481. //problema22();
  482. return 0;
  483. }
  484.  
  485.  
Success #stdin #stdout 0.01s 5460KB
stdin
Standard input is empty
stdout
Problema 17:
Vectorul cu vocala a insertata dupa fiecare consoana este: c a v a a