Advertisement
monyca98

simulare2016

Feb 28th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.36 KB | None | 0 0
  1. sub1:
  2.  
  3. 1. b
  4. 2.
  5. a) 634
  6. b) 6234 1205 2114 8679 0
  7. c)
  8.     m<-0
  9.     repeta
  10.         citeste x
  11.         y<-x
  12.         executa
  13.             c<-y%10
  14.             y<-y/10
  15.         cat timp c>y%10
  16.         sfexecuta
  17.         daca y!=0 atunci
  18.             m<-m*10+c
  19.         sfdaca
  20.     pana cand x=0
  21.     sfrepeta
  22.     scrie m
  23. d)
  24. #include<iostream>
  25. using namespace std;
  26. int main()
  27. {
  28.     int x, y, m, c;
  29.     m = 0;
  30.     do
  31.     {
  32.         cin >> x;
  33.         y = x;
  34.         do
  35.         {
  36.             c = y % 10;
  37.             y = y / 10;
  38.         } while (c > y % 10);
  39.         if (y != 0)
  40.             m = m * 10 + c;
  41.     } while (x != 0);
  42.     cout << "m=" << m;
  43.     cout << endl << endl;
  44.     system("pause");
  45.     return 0;
  46. }
  47.        
  48. sub2:
  49.  
  50. 1. d
  51. 2. b
  52. 3. if ((t1.baza*t1.inaltime)/2==(t2.baza*t2.inaltime)/2)
  53.     cout<<"aceeasi arie";
  54.    else
  55.     cout<<"arii diferite";
  56. 4.
  57. #include<iostream>
  58. using namespace std;
  59. void construireMatrice(char a[10][10])
  60. {
  61.     for (int i = 0; i < 5; i++)
  62.         for (int j = 0; j < 5; j++)
  63.             if ((i + j) % 2 == 0)
  64.                 a[i][j] = '!';
  65.             else
  66.                 a[i][j] = '?';
  67. }
  68. void afisareMatrice(char a[10][10])
  69. {
  70.     for (int i = 0; i < 5; i++)
  71.     {
  72.         for (int j = 0; j < 5; j++)
  73.             cout << a[i][j] << " ";
  74.         cout << endl;
  75.     }
  76. }
  77. int main()
  78. {
  79.     char a[10][10];
  80.     construireMatrice(a);
  81.     afisareMatrice(a);
  82.     cout << endl << endl;
  83.     system("pause");
  84.     return 0;
  85. }
  86. 5.
  87. #include<iostream>
  88. using namespace std;
  89. int verifAparitii(char s[], char c)
  90. {
  91.     int aparitii = 0;
  92.     for (int i = 0; i < strlen(s); i++)
  93.         if (s[i] == c)
  94.             aparitii++;
  95.     return aparitii;
  96.  
  97. }
  98. bool anagrame(char s1[], char s2[])
  99. {
  100.  
  101.     int n = strlen(s1);
  102.     int m = strlen(s2);
  103.     for (int i = 0; i < n; i++)
  104.         if(s1[i]!=' ')
  105.         if (verifAparitii(s1, s1[i]) != verifAparitii(s2, s1[i]))
  106.             return false;
  107.  
  108.     return true;
  109.  
  110. }
  111. int main()
  112. {
  113.     char s1[100], s2[100];
  114.     cin.get(s1, 99);
  115.     cin.get();
  116.     cin.get(s2, 99);
  117.     if (anagrame(s1, s2))
  118.         cout << "da";
  119.     else
  120.         cout << "nu";
  121.     cout << endl << endl;
  122.     system("pause");
  123.     return 0;
  124. }
  125. sub3:
  126.  
  127.  
  128. 1. a
  129. 2. rusi sale
  130. 3.
  131. #include<iostream>
  132. using namespace std;
  133. bool verifSPar(int n)
  134. {
  135.     if (n % 2 != 0)
  136.         return false;
  137.     int s = 0;
  138.     for (int i = 2; i <= n / 2; i++)
  139.         if (n%i == 0)
  140.             s += i;
  141.     if (s % 2 != 0)
  142.         return false;
  143.     return true;
  144. }
  145. int sPar(int n)
  146. {
  147.     n = n + 1;
  148.     while (!verifSPar(n))
  149.         n++;
  150.      return n;
  151. }
  152. int main()
  153. {
  154.     int n;
  155.     cout << "n="; cin >> n;
  156.     cout << sPar(n);
  157.     cout << endl << endl;
  158.     system("pause");
  159.     return 0;
  160. }
  161. ----varianta mai buna cu un singur subprogram---
  162. #include<iostream>
  163. using namespace std;
  164. int sPar(int n)
  165. {
  166.     int ok = 1;
  167.     n = n + 1;
  168.     do
  169.     {
  170.         ok = 1;
  171.         if (n % 2 != 0)
  172.             ok = 0;
  173.         int s = 0;
  174.         for (int i = 2; i <= n / 2; i++)
  175.             if (n%i == 0)
  176.                 s += i;
  177.         if (s % 2 != 0)
  178.             ok = 0;
  179.         n = n + 1;
  180.     } while (ok == 0);
  181.        
  182.     return n-1;
  183. }
  184. int main()
  185. {
  186.     int n;
  187.     cout << "n="; cin >> n;
  188.     cout << sPar(n);
  189.     cout << endl << endl;
  190.     system("pause");
  191.     return 0;
  192. }
  193.  
  194. 4.a)am facut un subprogram pentru verificarea daca un numar este sufixul altuia
  195. pentru el am folosit un alt subprogram inversat care inverseaza numarul;in subprogramul de verificare de sufix
  196. am inversat amblele numere si am sters ultima cifra din al doilea numar cat timp
  197. numerele sunt distincte si b este diferit dde 0,cand am iesit din while daca b-ul nu este egal cu 0 inseamna ca e egal cu a deci este
  198. sufixul lui a,iar daca nu inseamna ca nu este sufix; am citit sirul dat si l-am salvat intr-un
  199. vector pentru a putea lucra pe el; dupa care am facut un alt program de afisare unde am parcurs vectorul
  200. am salvat primul numar intr-o variabila,dupa care am verificat daca numarul este de 3 cifre si am luat un alt for si
  201. am parcurs din nou sirul si am verificat daca variabila memorata este sufixul
  202. vreunui numar din sir,cu conditia ca variabila memorata sa fie diferita de numarul din sir;apoi am creat un alt vector in care salvam numerele dorite,daca
  203. acestea nu exista deja in sir,pentru asta am o functie care verifica daca un umar se afla in sir
  204. apoi mai am o functie de sortare pe care o apelez si daca k-numarul de elemente din sirul afis cu numerele dorite nu este 0 inseamna ca avem sufixe si am afisat
  205. elementele din sir,altfel am afisat mesajul "nu exista"
  206. b)
  207. #include<iostream>
  208. #include<fstream>
  209. using namespace std;
  210. int inversat(int a)
  211. {
  212.     int inv = 0;
  213.     while (a != 0)
  214.     {
  215.         inv = inv * 10 + a % 10;
  216.         a /= 10;
  217.     }
  218.     return inv;
  219. }
  220. int verifSufix(int a, int b)
  221. {
  222.     a = inversat(a);
  223.     b = inversat(b);
  224.     while (a != b && b != 0)
  225.         b /= 10;
  226.     if (b != 0)
  227.         return 1;
  228.     return 0;
  229. }
  230. void citire(int v[], int &n)
  231. {
  232.     ifstream fin("bac.txt");
  233.     int a; n = 0;
  234.     while (fin>>a)
  235.         v[n++] = a;
  236.    
  237. }
  238. bool verificare(int sir[], int len, int k)
  239. {
  240.     for (int i = 0; i < len; i++)
  241.         if (sir[i] == k)
  242.             return true;
  243.     return false;
  244. }
  245. void insertionSort(int sir[], int len)
  246. {
  247.     int poz, aux;
  248.     for (int i = 1; i < len; i++)
  249.     {
  250.         aux = sir[i];
  251.         poz = i;
  252.         while (poz > 0 && sir[poz - 1] > aux)
  253.         {
  254.             sir[poz] = sir[poz - 1];
  255.             poz--;
  256.         }
  257.         sir[poz] = aux;
  258.     }
  259. }
  260. void afisare(int v[], int n)
  261. {
  262.     int afis[100],k=0;
  263.     for (int i = 0; i < n; i++)
  264.     {
  265.         int a = v[i];
  266.         if (a >= 100 && a < 1000)
  267.             for (int j = 0; j < n; j++)
  268.                 if (a != v[j] && verifSufix(a, v[j]) && !verificare(afis,k,a))
  269.                     afis[k++] = a;
  270.     }
  271.     if (k != 0)
  272.     {
  273.         insertionSort(afis, k);
  274.         for (int i = 0; i < k; i++)
  275.             cout << afis[i] << endl;
  276.     }
  277.     else
  278.         cout << "nu exista";
  279.        
  280. }
  281. int main()
  282. {
  283.     int v[100], n;
  284.     citire(v, n);
  285.     afisare(v, n);
  286.  
  287.     cout << endl << endl;
  288.     system("pause");
  289.     return 0;
  290. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement