11
Univerzitet u Istočnom Sarajevu Fakultet za proizvodnju i menadžment Trebinje Drugi kolokvijum iz PROGRAMIRANJA I PROGRAMSKIH JEZIKA Grupa I 1. (30 %) Napisati program kojim se učitava string S, od maksimalno 50 karaktera, i koji broji koliko ima parnih, a koliko neparnih cifara u stringu S. Ukoliko je broj parnih veći od broja neparnih cifara štampati poruku „Vise je parnih“, ukoliko je više neparnih štampati poruku „Vise je neparnih“. Ukoliko je isti broj parnih i neparnih, štampati taj broj. 2. (25 %) Napisati funkciju Fun koja za argument ima ceo broj M. U slučaju da je M paran broj veći od 22, funkcija treba da vrati sumu prirodnih brojeva manjih od N. U suprotnom, funkcija treba da vrati ostatak deljenja broja M 2 i broja 9. Na primer, poziv Fun(22) će vratiti broj 231 (1+2+... +20+21=231), dok će poziv Fun(5) vratiti broj 7. 3. (10 %) Napisati glavni program koji učitava jedan prirodan broj, poziva funkciju Fun i štampa dobijeni rezultat. 4. (25 %) Napisati funkciju Umanji2Puta koja za argumente ima niz celih brojeva X, njegovu dužinu N i ceo broj P. Funkcija treba da umanji dva puta sve elemente niza koji su deljivi brojem P, i da vrati broj izvršenih umanjenja. 5. (10 %) Napisati glavni program koji učitava niz celih brojeva X, maksimalne dužine 30, i broj P, poziva funkciju Umanji2Puta, i na kraju štampa broj koji je funkcija vratila i niz X. Na primer, ako je učitani niz X=[10,12,13,20] i P=4, nakon poziva funkcije Umanji2Puta, štampaće se broj 2 (dve izvršene zamene) i niz X=[10,3,13,5].

Drugi Kolokvijum Jun2012 v2d

Embed Size (px)

DESCRIPTION

dw

Citation preview

Page 1: Drugi Kolokvijum Jun2012 v2d

Univerzitet u Istočnom SarajevuFakultet za proizvodnju i menadžment Trebinje

Drugi kolokvijum iz PROGRAMIRANJA I PROGRAMSKIH JEZIKA

Grupa I

1. (30 %) Napisati program kojim se učitava string S, od maksimalno 50 karaktera, i koji broji koliko ima parnih, a koliko neparnih cifara u stringu S. Ukoliko je broj parnih veći od broja neparnih cifara štampati poruku „Vise je parnih“, ukoliko je više neparnih štampati poruku „Vise je neparnih“. Ukoliko je isti broj parnih i neparnih, štampati taj broj.

2. (25 %) Napisati funkciju Fun koja za argument ima ceo broj M. U slučaju da je M paran broj veći od 22, funkcija treba da vrati sumu prirodnih brojeva manjih od N. U suprotnom, funkcija treba da vrati ostatak deljenja broja M2 i broja 9. Na primer, poziv Fun(22) će vratiti broj 231 (1+2+...+20+21=231), dok će poziv Fun(5) vratiti broj 7.

3. (10 %) Napisati glavni program koji učitava jedan prirodan broj, poziva funkciju Fun i štampa dobijeni rezultat.

4. (25 %) Napisati funkciju Umanji2Puta koja za argumente ima niz celih brojeva X, njegovu dužinu N i ceo broj P. Funkcija treba da umanji dva puta sve elemente niza koji su deljivi brojem P, i da vrati broj izvršenih umanjenja.

5. (10 %) Napisati glavni program koji učitava niz celih brojeva X, maksimalne dužine 30, i broj P, poziva funkciju Umanji2Puta, i na kraju štampa broj koji je funkcija vratila i niz X. Na primer, ako je učitani niz X=[10,12,13,20] i P=4, nakon poziva funkcije Umanji2Puta, štampaće se broj 2 (dve izvršene zamene) i niz X=[10,3,13,5].

PREDMETNI NASTAVNIK

Test traje 45 min.

1. (30 %) Napisati program kojim se učitava string S, od maksimalno 50 karaktera, i koji broji koliko ima parnih, a koliko neparnih cifara u stringu S. Ukoliko je broj parnih veći od broja neparnih cifara štampati poruku „Vise je parnih“, ukoliko je više neparnih štampati poruku „Vise je neparnih“. Ukoliko je isti broj parnih i neparnih, štampati taj broj.

Page 2: Drugi Kolokvijum Jun2012 v2d

#include <stdio.h>

#include <stdlib.h>

int main()

{

char S[50];

int i, broj_parnih =0, broj_neparnih=0;

printf ("Unesi string:\t");

scanf("%s", S);

printf ("\n");

for (i=0;S[i]!='\0';i++) { if((S[i] =='2' || S[i] =='4' || S[i] =='6' || S[i] =='8')

broj_parnih++;

else if (S[i] =='0' || S[i] =='1' || S[i] =='3' || S[i] =='7' || S[i] =='9' )

broj_neparnih++;

}

if(broj_parnih > broj_neparnih)

printf(Ima vise parnih brojeva:\n);

else if(broj_parnih< broj_neparnih)

printf(Ima vise neparnih brojeva:\n);

else printf(Isti je broj parnih i neparnih brojeva i to je: %d \n, broj_parnih);

9 sintaksnih grešaka

Page 3: Drugi Kolokvijum Jun2012 v2d

2. (25 %) Napisati funkciju Fun koja za argument ima ceo broj M. U slučaju da je M paran broj veći od 22, funkcija treba da vrati sumu prirodnih brojeva manjih od N. U suprotnom, funkcija treba da vrati ostatak deljenja broja M2 i broja 9. Na primer, poziv Fun (22) će vratiti broj 231 (1+2+...+20+21=231), dok će poziv Fun (5) vratiti broj 7.

(10 %) Napisati glavni program koji učitava jedan prirodan broj, poziva funkciju Fun i štampa dobijeni rezultat.

#include <stdio.h>#include <stdlib.h>

int Fun(int M) { int i,N, sum=0;

if( M>22 && M%2==0){for(i=1; i<N; i++) sum = sum+i;}

elsesum=(M*M)%9;

return sum;}int main(){ int M; printf("Unesi prirodan broj M\t"); scanf("%d", &M); printf ("\n");

printf("Rezultat funkcije je %d \n", Fun(M)); return 0;}

Odličan zadatak!

Page 4: Drugi Kolokvijum Jun2012 v2d

4. (25 %) Napisati funkciju Umanji2Puta koja za argumente ima niz celih brojeva X, njegovu dužinu N i ceo broj P. Funkcija treba da umanji dva puta sve elemente niza koji su deljivi brojem P, i da vrati broj izvršenih umanjenja.

(10 %) Napisati glavni program koji učitava niz celih brojeva X, maksimalne dužine 30, i broj P, poziva funkciju Umanji2Puta, i na kraju štampa broj koji je funkcija vratila i niz X. Na primer, ako je učitani niz X=[10,12,13,20] i P=4, nakon poziva funkcije Umanji2Puta, štampaće se broj 2 (dve izvršene zamene) i niz X=[10,3,13,5].

#include <stdio.h>

#include <stdlib.h>

int Umanji2Puta(int X[],int N,int P){

int i,brojac=0;

for(i=0;i<N;i++){if(X[i]%P==0){X[i]=(X[i]/2)/2

brojac++;

return brojac }

}

int main()

{

int X[30], int P, int N, int broj_izmjena;

printf("Unesi broj P:\n");

scanf("%d",&P);

printf("Unesi broj broj clanova niza N:\n");

scanf("%d",&N);

for(i=0;i<N;i++) printf("Unesi %d clan niza:\n");

scanf("%d",X[i]);

printf("\n");

printf("Rezultat funkcije je %d\n", Umanji2Puta(X[i],N,P));

return 0;

}

4 greške sintaksne

Page 5: Drugi Kolokvijum Jun2012 v2d

Univerzitet u Istočnom SarajevuFakultet za proizvodnju i menadžment Trebinje

Drugi kolokvijum iz PROGRAMIRANJA I PROGRAMSKIH JEZIKA

Grupa II

1. (30 %) Napisati program kojim se učitava string S, od maksimalno 50 karaktera, i koji određuje da li taj string može predstavljati telefonski broj. String može predstavljati telefonski broj ako mu je dužina tačno 9 karaktera (ne uključujući terminacioni karakter) i ako su svi karakteri cifre. Na kraju programa štampati odgovarajuću poruku.

#include <stdio.h> #include <stdlib.h> int main() { char S[50]; int N,i,brojac=0, brojac_ter_znak=0; printf(„Unesi string:\t“); scanf(„%s“,S); printf(„\n“);

for(i=0;S[i]!='\0';i++){ if (S[i]>= '0' && S[i]<='9' || S[i]<='-') brojac++; }

for(i=0;S[i]!='\0';i++){ if(S[i]<='-')

brojac_ter_znak++; }

if ( (brojac- brojac_ter_znak )= =9) printf(„String može predstavljati telefonski

broj:\n“); else printf(„String ne može predstavljati telefonski broj:\n“); }

Page 6: Drugi Kolokvijum Jun2012 v2d

2. (25 %) Napisati funkciju SumaKvadrata koja za argument ima ceo broj K, i koja računa i vraća sumu kvadrata prirodnih brojeva manjih od N( Ovde bi trebalo da stoji K) . Na primer, poziv SumaKvadrata(5) će vratiti broj 30 (12+22+32+42=30).

(10 %) Napisati glavni program koji učitava jedan prirodan broj, poziva funkciju SumaKvadrata i štampa dobijeni rezultat.

Rjesenje:

#include <stdio.h>#include <stdlib.h>

int SumaKvadrata(int K) { int i, sum=0;

{ for(i=1; i<K; i++) { if(K==0) sum = sum+(i*i);

return sum; }int main(){ int K; printf("Unesi prirodan broj K\t"); scanf("%d", &K); printf ("\n");

printf("Rezultat funkcije je %d \n", SumaKvadrata(K)); return 0;}

Page 7: Drugi Kolokvijum Jun2012 v2d

3. (25 %) Napisati funkciju Dupliraj koja za argumente ima niz celih brojeva X i njegovu dužinu N. Funkcija treba da uveća dva puta sve elemente niza koji su deljivi prvim elementom niza (ne uzimati u obzir prvi element niza), i da vrati broj izvršenih izmena.

(10 %) Napisati glavni program koji učitava niz celih brojeva X, maksimalne dužine 30, poziva funkciju Dupliraj, i na kraju štampa broj koji je funkcija vratila i niz X. Na primer, ako je učitani niz X=[10,12,13,20,30], nakon poziva funkcije Dupliraj, štampaće se broj 2 (dve izvršene izmene) i niz X=[10,12,13,40,60].

#include <stdio.h>#include <stdlib.h>Int Dupliraj(int X[],int N){ int i,brojac=0; for(i=0;i<N;i++){if(X[i]%X[0]= =0){X[i]=(X[i]*2; brojac++; return brojac } }

int main(){int X[30],int N, int i;

printf("Unesi dužinu niza:\n");scanf("%d",&N);

for(i=0;i<N;i++) printf("Unesi %d clan niza:\n", i+1); scanf("%d",X[i]);

printf("Rezultat funkcije je %d\n", Dupliraj(X,N);return 0;}

PREDMETNI NASTAVNIK

Test traje 45 min.

9 greškica