Pagina informaticii

Teste de informatică pentru liceu, articole C#, C/C++, PHP

Test recapitulativ structuri de date

1. Se citeşte un număr natural n. Să se depună cifrele lui n într-un tablou t.

2. Se citeşte un şir de n numere întregi ordonate crescător. Se citeşte apoi un întreg x. Să se insereze x în şir astfel încât şirul să rămână ordonat crescător.
Exemplu: n = 6, t = -3, 2, 2, 8, 17, 25  x= 10
t = -3, 2, 2, 8, 10, 17, 25

3. Se citeşte o matrice pătratică n x n. Să se verifice dacă elementele de pe diagonala principală sunt toate nule şi în caz afirmativ, să se verifice dacă matricea este simetrică faţă de diagonala principală.

4. Scrieţi o funcţie recursivă care afişează elementele unui vector de n numere întregi.

5. Se consideră n puncte în plan P1(x1, y1), P2(x2, y2), ..., Pn(xn, yn), unde xi, yi sunt numere reale.
a) Să se memoreze cele n puncte
b) Să se scrie o funcţie care returnează distanţa dintre două puncte
c) Să se determine două puncte Pi şi Pj pentru care distanţa dintre ele este minimă.

Rezolvări:

1.
cin>>n;
k = 0 ;
while (n != 0)
 {
    t[k++] = n % 10 ;
    n /= 10 ;
 }

2.
if (x >= t[n-1]) t[n] = x ;
 else {
            i = 0 ;
            while (t[i] < x) i++ ;
            for (j=n ; j>i ; j--) t[j] = t[j-1] ;
            t[i] = x ;
}

4.
void Afis(int i)
{
  if (i < n) {cout<<t[i] ; Afis(i+1) ;}
}
Apelul : Afis(0) ;

5.
struct Punct
{float x, y ;} ;
Punct P[100] ;

float Dist(int i, int j)
{ return ((P[i]).x – (P[j]).x) * ((P[i]).x – (P[j]).x) + ((P[i]).y – (P[j]).y) * ((P[i]).y – (P[j]).y)
}

dmin = Dist(1,2) ; a = 1 ; b = 2 ;
for (i=1 ; i<n ; i++)
  for (j=i+1 ; j<=n ; j++)
    {
      d = Dist(i,j) ;
      if (dmin > d) {dmin = d ; a = i ; b = j ;}
    }
cout<<”Dist. minima =” <<dmin<< “intre punctele”<<a<< “ si ”<<b ;

 

Despre autor
Author

Dan Pracsiu deţinător www.dponline.ro
Profesor, Liceul Teoretic "Emil Racoviță" Vaslui
Membru în Comisia Naţională a Olimpiadelor de Informatică
Pasiuni: istoria, călătoriile, fotografia, muzica clasică

Scrie un comentariu
Nume:

Comentariu:

15 + 10 =