programiranje k2

15
/* 4. Data su dva skupa celih brojeva A od N elemenata i B od M elemenata. Skupovi su predstavljeni celobrojnim nizovima. Napisati program na C-u kojim se određuje skup C=AUB. */ //*** ! *** //Unija dva skupa A i B definise se kao skup svih elemenata //koji pripadaju barem jednom od skupova A i B. #include<stdio.h> main() { int A[100], B[100], C[100], nA, nB, nC=0, i, j; //***** STANDARDNI UNOS NIZOVA ***** printf("Unesite broj elemenata niza A: "); scanf("%d", &nA); printf("Unesite elemente niza A:\n"); for(i=0;i<nA;i++) scanf("%d", &A[i]); printf("Unesite broj elemenata niza B: "); scanf("%d", &nB); printf("Unesite elemente niza B:\n"); for(i=0;i<nB;i++) scanf("%d", &B[i]); //***** UNIJA SKUPOVA ***** //PRVO UPIS NIZA A U NIZ C (ELEMENTI KOJI SE PONAVLJAJU UPISUJU SE SAMO JEDNOM!) for(i=0;i<nA;i++) { for(j=0;j<nC;j++) if(A[i]==C[j]) break; //AKO JE NEKI ELEMENT VEC U NIZU C j NECE DOCI DO nC ZATO STO CE break DA PREKINE PETLJU //AKO j DODJE DO nC ZNACI DA ELEMENT NIJE UPISAN U NIZ C I ON CE SE SADA UPISATI if(j==nC) C[nC++]=A[i]; } //UPIS NIZA B U NIZ C (SAMO ONIH ELEMENATA KOJI VEC NISU U NIZU C! for(i=0;i<nB;i++) { for(j=0;j<nC;j++) if(B[i]==C[j]) break; //AKO JE NEKI ELEMENT VEC U NIZU C j NECE DOCI DO nC ZATO STO CE break DA PREKINE PETLJU //AKO j DODJE DO nC ZNACI DA ELEMENT NIJE UPISAN U NIZ C I ON CE SE SADA UPISATI if(j==nC) C[nC++]=B[i]; } //***** STANDARDNI ISPIS NIZA C ***** printf("Niz C=(A)U(B) je:\n"); for(i=0;i<nC;i++) printf("%d ", C[i]); printf("\n\n"); system("pause"); } /* 5. Napisati program na C-u kojim se određuje koliko puta se zadati podniz pojavljuje

Upload: kuknik3

Post on 11-Sep-2015

215 views

Category:

Documents


0 download

DESCRIPTION

Zadaci za vjezbe iz Programiranja

TRANSCRIPT

  • /* 4. Data su dva skupa celih brojeva A od N elemenata i B od M elemenata. Skupovi su predstavljeni celobrojnim nizovima. Napisati program na C-u kojim se odreuje skup C=AUB. */ //*** ! *** //Unija dva skupa A i B definise se kao skup svih elemenata //koji pripadaju barem jednom od skupova A i B. #include main() { int A[100], B[100], C[100], nA, nB, nC=0, i, j; //***** STANDARDNI UNOS NIZOVA ***** printf("Unesite broj elemenata niza A: "); scanf("%d", &nA); printf("Unesite elemente niza A:\n"); for(i=0;i
  • u datom nizu (niz ne mora sadrati zadati podniz). tampati broj pojavljivanja podniza. */ //*** ! *** // PROGRAM JE URADJEN ZA CJELOBROJNI NIZ #include main() { int A[100], B[100], M, N, i, j, b=0; //***** STANDARDNI UNOS NIZOVA ***** printf("Unesite dimenziju niza A: "); scanf("%d", &M); printf("Unesite elemente niza A:\n"); for(i=0;i
  • { //UBACIVANJE BROJA NA ODREDJENO MJESTO U NIZU for(j=0;j0) A[k]=A[k-1]; A[j]=broj;//UPISIVANJE BROJA NA PRVO MJESTO (MOGLO JE I A[0]=broj;) } else if(broj>A[j-1]&&brojj;k--) A[k]=A[k-1]; A[j]=broj; } } } } //***** ISPIS ***** printf("Niz sa dodatnih 5 elemenata je:\n"); for(i=0;i
  • //***** UNOS BROJA k ***** printf("Unesite broj pomjeranja K: "); scanf("%d", &k); //AKO TREBAMO DA POMJERIMO ZA k MJESTA TO MOZEMO DA URADIMO TAKO STO POMJERIMO //ZA JEDNO MJESTO I TAJ PROCES PONOVIMO k PUTA for(i=0;i0;j--)//DA BI POMJERALI NIZ U !DESNO! MORAMO DA SE KRECEMO OD POZADI (OD n-1) A[j]=A[j-1];//POMJERANJE NIZA ZA 1 MJESTO UDESNO A[0]=0;//UPISIVANJE 0 NA LIJEVU STRANU NIZA } //***** STANDARDNI ISPIS ***** printf("Niz A pomjeren za %d mjesta u desno je:\n", k); for(i=0;i
  • for(j=0;j
  • 10. Na programskom jeziku C napisati program kojim se odredjuje broj velikih slova, malih slova, cifara i specijalnih karaktera u stringu koji se kao reenica unosi sa tastature. Specijalnim karakterima smatrati sve znakove koji nisu cifra ili slovo. */ #include main() { char string[100]; int i, j, velikih_slova=0, malih_slova=0, cifara=0, specijalnih=0; //***** STANDARDNI UNOS STRINGA ***** printf("Unesite string: "); gets(string); for(i=0;string[i]!='\x0';i++)//KRETANJE KROZ STRING //(string[i]!=0 , 0='\0'=0x0='\x0'-SVEJEDNO JE KAKO PISATI) { if(string[i]>='A' && string[i]='a' && string[i]='0' && string[i]
  • //KOJI NE ZADOVOLJAVA POREDAK NIZA ALI SE NE TRAZI U ZADATKU //***** KREIRANJE NIZA C ***** j=0;k=0;//BROJACI ZA PROLAZ KROZ NIZOVE A i B for(nC=0;nC
  • p=i+1;//AKO NISMO NA POCETKU RECENICE ONDA JE PRVO SLOVO RIJECI POSLE RAZMAKA if(string[p]==' ')//AKO KORISNIK UNESE 2 ILI VISE RAZMAKA TREBA DA IH PRESKOCIMO break; for(q=j-1;p
  • string[j]=string[j+1]; //POMJERAMO CIJELI STRING ZA 1 MJESTO LIJEVO } } //***** ISPIS ***** printf("\n\nRecenica sa zamijenjenim rijecima je:\n%s\n\n", string); system("pause"); } /* 14. Napisati program na C-u kojim se vri izostavljanje svih prostih brojeva iz datog niza prirodnih brojeva NIZ duine N. Prikazati niz pre i posle ureenja. Napomena: broj je prost ako je deljiv samo sa 1 i sa samim sobom. */ //*** ! *** //Prost broj je prirodni broj vei od 1 koji je dijeljiv jedino sa 1 i samim sobom. #include main() { int NIZ[100], N, i, j; //***** STANDARDNI UNOS NIZA ***** printf("Unesite duzinu niza prinrodnih brojeva: "); scanf("%d", &N); printf("Unesite niz prirodnih brojeva:\n"); for(i=0;i
  • int mat[10][10], i, j, M, N, l, s, pom; //***** STANDARDNI UNOS MATRICE ***** printf("Unesite broj redova matrice: "); scanf("%d", &M); printf("Unesite broj kolona matrice: "); scanf("%d", &N); printf("Unesite matricu:\n"); for(i=0;i=0 ON SE TAKAV I ZAMJENJUJE else mat[l][j]=0;//AKO JE ELEMENT [s][j]
  • //SORTIRANJE GLAVNE DIJAGONALE for(i=0;i
  • //*** ! *** //KADA SE VRSI POJERANJE U DESNO KRECE SE OD KRAJA NIZA KA POCETKU NIZA/VRSTE //KADA SE VRSI POMJERANJE U LIJEVO KRECE SE OD POCETKA NIZA KA KRAjU NIZA/VRSTE //KADA SE VRSI POMJERANJE NA DOLE KRECE SE OD KRAJA KOLONE KA POCETKU KOLONE //KADA SE VRSI POMJERANJE NA GORE KRECE SE OD POCETKA KOLONE KA KRAJU KOLONE //***** ROTACIJA PO KOLONAMA ***** for(j=0;j0;i--)//SVI ELEMENTI KOLONE SE POMJERAJU ZA JEDNO MJESTO NA DOLE mat[i][j]=mat[i-1][j];//PREDZADNJI NA MJESTO ZADNJEG ... PRVI NA MJESTO DRUGOG mat[0][j]=pom;//NA MJESTO PRVOG ELEMENTA (INDEX [0][j]) SE UPISUJE POSLEDNJI ELEMENT KOLONE SACUVAN U POMOCNOJ PROMJENJIVOJ } //***** STANDARDNI ISPIS MATRICE ***** printf("\nTransformisana matrica je:\n"); for(i=0;i
  • //BROJAC j CE DA SE PROMIJENI TEK KADA SE ZAVRSI SORTIRANJE j-te KOLONE if(mat[i][j]
  • system("pause"); } /* 20. Napisati program na C-u kojim se matrica A(NxN) modifikuje tako da elementi iznad glavne dijagonale u svakoj vrsti budu ciklino pomjereni za k mjesta udesno (k se unosi sa tastature), i nalazi maksimalni element za elemente ispod glavne dijagonale. */ //*** ! *** //ROTIRANJE/POMJERANJE ZA k MJESTA JE ISTO STO I ROTIRANJE/POMJERANJE //k PUTA ZA JEDNO MJESTO U BILO KOJU STRANU //***** ! ***** //CIKLICNO POMJERANJE U DESNO = ROTACIJA U DESNO //*** ! *** //KADA SE VRSI POJERANJE U DESNO KRECE SE OD KRAJA NIZA KA POCETKU NIZA/VRSTE //KADA SE VRSI POMJERANJE U LIJEVO KRECE SE OD POCETKA NIZA KA KRAjU NIZA/VRSTE //KADA SE VRSI POMJERANJE NA DOLE KRECE SE OD KRAJA KOLONE KA POCETKU KOLONE //KADA SE VRSI POMJERANJE NA GORE KRECE SE OD POCETKA KOLONE KA KRAJU KOLONE #include main() { int mat[10][10], N, i, j, k, p, pom, max; //***** STANDARDNI UNOS KVADRATNE MATRICE ***** printf("Unesite broj vrsta matrice: "); scanf("%d", &N); printf("Unesite matricu %dx%d:\n", N, N); for(i=0;ii max=mat[1][0];//PRETPOSTAVIMO DA JE NEKI ELEMENT ISPOD GLAVNE DIJAGONALE MAKSIMALNI //UZIMAMO [1][0] AKO KORISNIK UNESE MATRICU 2x2, MOLGO JE I [N-1][0] for(i=0;imax)//AKO SE TRENUTNI ELEMENT NALAZI ISPOD GLAVNE DIJAGONALE I AKO JE VECI OD MAKSIMALNOG max=mat[i][j]; //ONDA ON POSTAJE MAKSIMALNI }

  • //***** ISPIS ***** printf("\nMaksimalni element ispod glavne dijagonale je: %d\n", max); printf("\nTransformisana matrica je:\n"); for(i=0;i