infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Catalin din Ianuarie 19, 2014, 18:22:29



Titlul: Vector
Scris de: Catalin din Ianuarie 19, 2014, 18:22:29
Salut. Am si eu o nelamurire la o problema de la variante de bac. Dati-mi va rog o idee la subpunctul b). Subpunctul a) l-am facut, dar la b) nu am nicio idee :|  Multumesc.

Cod:
Subprogramul sub, cu trei parametri, primeÅŸte prin intermediul parametrului:
– v un tablou unidimensional cu cel mult 100 de componente ce memorează numere
întregi cu cel mult 4 cifre;
– n un număr natural nenul mai mic sau egal cu 100 ce reprezintă numărul efectiv de
componente ale tabloului primit prin intermediul parametrului v;
– a un număr întreg cu cel mult 4 cifre.
Subprogramul sub returnează numărul componentelor tabloului primit prin intermediul
parametrului v ale căror valori sunt egale cu valoarea parametrului a.
Exemplu: pentru valorile n=5, v=(1,21,9,21,403), a=21 ale parametrilor, în urma
apelului, subprogramului sub va returna valoarea 2.
a) Scrieţi definiţia completă a subprogramului sub.
b) Scrieţi un program C/C++ care să citească de la tastatură un număr natural nenul n
(n≤100) şi n numere întregi, fiecare având cel mult 4 cifre, şi care, folosind apeluri utile ale
subprogramului sub, să afişeze pe ecran mesajul DA dacă oricare două dintre cele n
numere citite sunt distincte două câte două, sau mesajul NU în caz contrar.
Exemplu: pentru n=6 şi cele n numere citite de la tastatură: 47 183 69 8 134 -56
se va afiÅŸa pe ecran mesajul DA


Titlul: Răspuns: Vector
Scris de: Ropotan Cristian din Ianuarie 21, 2014, 05:25:29
Apelezi subprogramul pentru fiecare element din vector.
Daca subprogramul returneaza de fiecare data 1, atunci afisezi DA, altfel afisezi NU.
De ex:
int k=0;
for (int i=0;i<n;i++)
    if(sub(v)!=1)
    {    k=1;
          cout<<"NU";
          i=n; // pt iesire din for
    }
if(!k)
    cout<<"DA";