Upload
srdjan-suknovic
View
7
Download
2
Embed Size (px)
DESCRIPTION
dw
Citation preview
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.
#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
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!
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
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“); }
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;}
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