Sunteți pe pagina 1din 4

Ministerul Educației, Culturii și Cercetării din Republica Moldova

Academia de Studii Economice a Moldovei

Lucrare de laborator
la disciplina: Structuri de date şi algoritmi

Tema: Algoritmi repetitivi şi recursivi

Profesor: Tutunaru S.

Elev: Barbuţa Dumitru, gr. TI-181

Chișinău 2019
Laborator 1. Algoritmi repetitivi şi recursivi

Problemă 1. Se consideră un tabloul A[10][10] de numere întregi. Să se elaboreze un program care include
următoarele funcţii:
a) completează tabloul de la tastatură;
b) afişează elementele tabloului;
c) găseşte elementul maxim din tablou;
d) afişează câte elemente sunt impare pe fiecare coloană;
e) afişeze suma elementelor amplasate sub de diagonala secundară.
f)
Problemă 2. Se consideră tab[n] de n numere întregi, unde n<100, domeniul de valori – -50  +50. Tabloul
se completează cu ajutorul generatorului de numere aleatoare. În toate consecutivităţile de numere pozitive
să se schimbe cu locul primul cu ultimul element.
Notă:
a) 0 este considerat număr pozitiv;
b) consecutivitatea se consideră şirul ce include nu mai puţin de două elemente;
c)
Problemă 3. Să se elaboreze un program care implimentează recursiv funcţia de calcul a factorialului (
n!).

Problemă 4. Să se elaboreze un program, ce implimentează recursiv funcţia de calcul şirul lui


Fibonacci, care generează primii n termeni. Propuneți și alți algoritmi de calcul.

Cod Problema 1:

Chișinău 2017
import java.util.Scanner;
public class laborator1 {
/**
* @param args
*/
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int n = 10;
int m = 10;
int[][] a = new int[n][m];

System.out.println("a) completeaza tabloul de la tastatura ");


for (int i = 0; i<n; i++){
for (int j = 0; j<m; j++){
a[i][j] = s.nextInt();
}
}

System.out.println("\nb) afiseaza elementele tabloului ");


for (int i = 0; i<n; i++){
for (int j = 0; j<m; j++){
System.out.print(a[i][j]+ " ");
}
System.out.println("");
}

System.out.println("\nc) gaseste elemetul maxim din tablou ");


int max = a[0][0];
for (int i = 0; i<n; i++){
for (int j = 0; j<m; j++){
if(a[i][j] > max){
max = a[i][j];
}
}
}

System.out.println("Elemetul maxim din tablou este:" + max);

System.out.println("\nd) afiseaza cite elemente sunt impare pe


fiecare coloana");
int impare = 0;
for (int i = 0; i<n; i++){
for (int j = 0; j<m; j++){
if(a[i][j] % 2 != 0){
impare++;
}
}
System.out.println("Pe coloana: "+ (i+1) +" sunt " + impare
+ " numere impare");
impare = 0;
}

System.out.println("e)\nafiseze suma elementelor amplasate sub de


diagonala secundara.");

int sum = 0;
for ( int i=2 ; i<=n;i++){
for (int j=n-i+2 ; j<=n; j++){
sum = sum + a[i-1][j-1];
}
}
System.out.println(sum);}}

Chișinău 2017
Screen Shot problema 1:

Chișinău 2017

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