Osnove računarstva Tutorijal 6 Potrebno je napisati ... · PDF fileOsnove računarstva Tutorijal 6 Berina Cocalić Potrebno je napisati program koji će vršiti unos i sortiranje

  • Upload
    hadan

  • View
    242

  • Download
    7

Embed Size (px)

Citation preview

  • Osnove raunarstva Tutorijal 6

    Berina Cocali

    Potrebno je napisati program koji e vriti unos i sortiranje niza cjelobrojnih brojeva. Elemente niza treba

    sortirati od najmanjeg ka najveem, a potom je potrebno ispisati sortirani niz. Za sortiranje koristiti Bubble sort

    algoritam.

    sortiranje niza od manjeg ka veem

    sortiranje niza od veeg ka manjem

    #include #define velicina 10

    /*Za duzinu niza se koristi simbolicka konstanta*/

    int main() { int niz[velicina]; int i; /* Unos niza*/ for ( i = 0; i < velicina; i++ ) { printf("Unesite %i. element niza:", i+1); scanf("%i", &niz[i]); } int j; /* Sortiranje niza*/ for ( i = 0; i < velicina; i++) { for ( j = i+1; j < velicina; j++) { if (niz[j] < niz[i]) { int temp = niz[i]; niz[i] = niz[j]; niz[j] = temp; } } } /*Ispis niza*/ printf("Sortiran niz: "); for ( i = 0; i < velicina; i++ ) printf("%i ", niz[i]); return 0; }

    #include #define velicina 10

    /*Za duzinu niza se koristi simbolicka konstanta*/

    int main() { int niz[velicina]; int i; /* Unos niza*/ for ( i = 0; i < velicina; i++ ) { printf("Unesite %i. element niza:", i+1); scanf("%i", &niz[i]); } int j; /* Sortiranje niza*/ for ( i = 0; i < velicina; i++) { for ( j = i+1; j < velicina; j++) { if (niz[j] > niz[i]) { int temp = niz[i]; niz[i] = niz[j]; niz[j] = temp; } } } /*Ispis niza*/ printf("Sortiran niz: "); for ( i = 0; i < velicina; i++ ) printf("%i ", niz[i]); return 0; }

  • Osnove raunarstva Tutorijal 6

    Berina Cocali

    Napisati program koji trai da se unesu dva niza cijelih pozitivnih brojeva A i B ija duina ne prelazi 10

    elemenata. Nakon unosa, nizove A i B je potrebno spojiti u novi niz C koji je potrebno ispisati na ekranu. Prilikom

    unosa nizova A i B koristiti koristiti unos broja -1 kao kraj unosa.

    #include #define velicina 10 /* Za duzinu niza se koristi simbolicka konstanta*/ int main() { int A[velicina]; int a_vel = 0; /*Unos niza A.*/ printf("Unesite elemente niza A:"); do { scanf("%i", &A[a_vel]); } while (A[a_vel] != -1 && ++a_vel < velicina); int B[velicina]; int b_vel = 0; /*Unos niza B*/ printf("Unesite elemente niza B:"); do { scanf("%i", &B[b_vel]); } while (B[b_vel] != -1 && ++b_vel < velicina); int C[velicina]; int i; /*Smjestanje nizova A i B u niz C*/ for ( i = 0; i < a_vel + b_vel; i++) { if(i < a_vel && A[i] != -1) C[i] = A[i]; else if (i < a_vel + b_vel && B[i - a_vel] != -1) C[i] = B[i - a_vel]; } /*Ispis niza C*/ printf("Niz C: "); for ( i = 0; i < a_vel + b_vel; i++) { if (i != a_vel + b_vel - 1) printf("%i, ", C[i]); else printf("%i", C[i]); } return 0; }

  • Osnove raunarstva Tutorijal 6

    Berina Cocali

    Potrebno je napisati program koji de iz unesenog niza izbaciti elemente koji imaju odreenu vrijednost. Od korisnika se trai da unese niz pozitivnih cijelih brojeva koji ima maksimalnu duinu od 100 elemenata, a potom se trai da se unese broj koji je potrebno izbaciti. Program treba da iz unesenog niza izbaci sve pojave unesenog broja, i potom ispie novi niz na ekranu. Prilikom unosa niza, koristiti unos broja -1 kao kraj unosa. #include #define velicina 100 /* Za duzinu niza se koristi simbolicka konstanta*/ int main() { int niz[velicina]; int niz_vel = 0; /*Varijabla koja cuva broj unesenih elemenata*/ /*Unos niza*/ printf("Unesite niz od maksimalno 100 elemenata (-1 + ENTER za kraj unosa): "); do { scanf("%i", &niz[niz_vel]); } while ( niz[niz_vel] != -1 && ++niz_vel < velicina ); /*Odabir broja*/ int izbaci; printf("Unesite broj koji treba izbaciti: "); scanf("%i", &izbaci); /*Izbacivanje broja*/ int i; for ( i = 0; i < niz_vel; i++) { /*Kada se naidje na element koji se podudara sa unesenim brojem,

    ostatak niza se pomijera za jedno mjesto ulijevo, a duzina niza se smanjuje*/ if ( niz[i] == izbaci ) { int j; for ( j = i+1; j < niz_vel; j++) niz[j - 1] = niz[j]; niz_vel-- ; } } /*Ispis niza sa izbacenim elementima*/ printf("Elementi novog niza su: "); for ( i = 0; i < niz_vel; i++) { if (i == niz_vel - 1) printf("%i ", niz[i]); else printf("%i, ", niz[i]); } return 0; }

  • Osnove raunarstva Tutorijal 6

    Berina Cocali

    Napisati program koji uitava realnu matricu dimenzija 10 x 10 te pronalazi najmanji/najvei element na glavnoj dijagonali.

    najmanji element na glavnoj dijagonali

    najvei element na glavnoj dijagonali

    #include #define velicina 10 /* Za velicinu matrice se koristi simbolicka konstanta*/ int main() { float matrica[velicina][velicina]; int i, j; /*Unos matrice*/ printf("Unesite matricu dimenzija 10 x 10: "); for (i = 0; i < velicina; i++) { for (j = 0; j < velicina; j++) scanf("%f", &matrica[i][j]); } /*Trazenje najmanjeg elementa*/ float najmanji = matrica[0][0]; for (i = 0; i < velicina; i++) { if (matrica[i][i] < najmanji) najmanji = matrica[i][i]; } /*Ispis najmanjeg elementa*/ printf("Najmanji element na glavnoj dijagonali je %.2f.", najmanji); return 0; }

    #include #define velicina 10 /* Za velicinu matrice se koristi simbolicka konstanta*/ int main() { float matrica[velicina][velicina]; int i, j; /*Unos matrice*/ printf("Unesite matricu dimenzija 10 x 10: "); for (i = 0; i < velicina; i++) { for (j = 0; j < velicina; j++) scanf("%f", &matrica[i][j]); } /*Trazenje najveceg elementa*/ float najveci = matrica[0][0]; for (i = 0; i < velicina; i++) { if (matrica[i][i] > najveci) najveci = matrica[i][i]; } /*Ispis najveceg elementa*/ printf("Najveci element na glavnoj dijagonali je %.2f.", najveci); return 0; }

  • Osnove raunarstva Tutorijal 6

    Berina Cocali

    Napisati program koji uitava realnu matricu dimenzija A x B (gdje su A i B konstante), a potom pronalazi sumu elemenata na rubu matrice. Rub matrice sainjavaju elementi prvog i zadnjeg reda, te prve i zadnje kolone. Pri sabiranju voditi rauna da elementi u okovima ne budu uraunati dva puta. #include #define A 4 #define B 4 /* Za velicinu matrice se koriste se simbolicke konstante*/ int main() { float matrica[A][B]; int i, j; /*Unos matrice*/ printf("Unesite matricu dimenzija %i x %i: ", A, B); for (i = 0; i < A; i++) { for (j = 0; j < B; j++) scanf("%f", &matrica[i][j]); } /*Sabiranje elemenata na rubovima matrice*/ float suma = 0; for (i = 0; i < A; i++) { for (j = 0; j < B; j++) { if ( i == 0 || i == A - 1 || j == 0 || j== B - 1) suma += matrica[i][j]; } } /*Ispis sume*/ printf("Suma elemenata na rubovima matrice je %.2f", suma); return 0; }

  • Osnove raunarstva Tutorijal 6

    Berina Cocali

    Napisati program koji uitava matricu dimenzija 10 x 10, a potom nalazi red sa najveim i najmanjim elementom matrice. Ako su oba elementa u istom redu, program treba ispisati odgovarajuu poruku i zavriti sa radom. U suprotnom, potrebno je u matrici zamijeniti pronaene redove i potom ispisati rezultirajuu matricu. #include #define velicina 10 /* Za dimenziju matrice se koristi simbolicka konstanta*/ int main() { int matrica[velicina][velicina]; int i, j; /*Unos matrice*/ printf("Unesite matricu dimenzija %i x %i: ", velicina, velicina); for ( i = 0; i < velicina; i++) { for ( j = 0; j < velicina; j++) scanf("%i", & matrica[i][j]); } int najveci = matrica[0][0], red_najveceg, najmanji = matrica[0][1], red_najmanjeg; /*Odredjivanje najveceg i najmanjeg elementa*/ for ( i = 0; i < velicina; i++) { for ( j = 0; j < velicina; j++) { /*Trazenje najveceg elementa i 'pamcenje' reda u kome se nalazi*/ if (najveci = matrica[i][j]) { najmanji = matrica[i][j]; red_najmanjeg = i; } } } if (red_najveceg == red_najmanjeg) printf("Najveci i najmanji element se nalaze u istom redu.\n"); /*Mijenjanje mjesta redova sa najvecim i najmanjim elementom i ispis matrice*/ else { for ( j = 0; j < velicina; j++) { int temp = matrica[red_najveceg][j]; matrica[red_najveceg][j] = matrica[red_najmanjeg][j]; matrica[red_najmanjeg][j] = temp; } printf("Matrica je sada oblika:\n"); for ( i = 0; i < velicina; i++) {