Bosna i Hercegovina


Stranice (2): 1, 2

#1 13.12.2013-11:33
Amelasar Offline
Clan
Registrovan/a od: 07.04.2011-18:28
Komentari: 234


Subject: C Zadaci za ispit - pomoc
Prijateljica mi ide na fax (tehnicko) i imaju ispit iz programiranja i to u C. Ja joj nemogu pomoci. Moze li neko rijesiti neki od zadataka da joj mogu bar malo objasniti:

1. Sa tastature se unosi broj n, a potom jos i n brojeva koji se cuvaju u nizu. Odrediti koliko brojeva
ima osobinu da im je krajnja lijeva cifra jednaka krajnjoj desnoj.

2. Sa tastature se unosi broj k i broj n. Odrediti sve zajednicke djelioce ova dva broja.

3. Sa tastature se unosi broj n, a nakon toga i n brojeva koji se cuvaju u nizu. Nakon unosa niza se
unose jos dva broja, k i r. Na ekranu ispisati k-ti, (k + r)-ti, (k + 2r)-ti itd. element niza.

4. Sa tastature se unosi broj k. Odrediti sve brojeve manje od 10000 koji imaju iste proste faktore
kao broj k.

5. Sa tastature se unosi broj n, a potom jos n brojeva koji se cuvaju u nizu. Na osnovu tog niza
formirati novi niz koji se sastoji samo od onih brojeva koji su treci stepen nekog cijelog broja.
Dozvoljeni su i negativni brojevi.

6. Sa tastature se unosi broj n, a potom jos i n brojeva koji se cuvaju u nizu. Odrediti da li niz
ima osobinu da je prvi element jednak posljednjem, drugi pretposljednjem, treci jednak trecem od
natrag itd.

7. Sa tastature se unosi broj n, a potom jos i n brojeva koji se cuvaju u nizu. Odrediti par elemenata
niza koji su na najvecem rastojanju.

8. Sa tastature se unosi broj n, a potom jos i n brojeva koji se cuvaju u nizu. Sortirati niz, a kriterijum
za sortiranje je najveca cifra, tj. broj b1 ≼ b2 akko najveca cifra(b1) ≤ najveca cifra(b2).

9.Sa tastature se unosi broj n, a potom jos i n brojeva. Odrediti koliko brojeva ima osobinu da im je
krajnja lijeva cifra jednaka krajnjoj desnoj.

10. Sa tastature se zahtijeva unos jednog broja. Ako uneseni broj ima neparan broj cifara, na ekranu
ispisati srednju cifru, a ako je broj cifara paran, na ekranu ispisati dvije "srednje" cifre.

11. Sa tastature se unosi 20 brojeva, s tim sto se neki brojevi mogu i ponavljati. Odrediti da li postoji
broj koji je unesen tacno 3 puta.

12. Napisati funkciju f1 koja za dati broj n odreduje najmanji prost broj koji je njegov djelilac. Sa
tastature se unosi niz od 20 brojeva. Sortirati elemente niza po kriterijumu de nisanom pomocu
funkcije f1 (broj a je "manji ili jednak" od broja b akko f1(a)  f1(b)).

SVAKA POMOC BI DOBRO DOSLA. HVALA UNAPRIJED.
Pozdrav, Amela
↑  ↓

#2 13.12.2013-17:58
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,488


Subject: Re: C Zadaci za ispit - pomoc
Evo prvi zadatak.
Neka provjeri posto sam radio u C++.
Citat:
1. Sa tastature se unosi broj n, a potom jos i n brojeva koji se cuvaju u nizu. Odrediti koliko brojeva
ima osobinu da im je krajnja lijeva cifra jednaka krajnjoj desnoj.
DownloadIzvorni kod (C++):
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. int main ()
  6. {
  7. int n,i,duzina,brojac=0;
  8. string str_broj,str;
  9.  
  10. cout << "Niz od:" << endl;  
  11. cin >>n;
  12. string  niz[n],iste[n];
  13.         for (i=0; i<n; i++)
  14.         {
  15.         cout << "unesi broj:" << endl;
  16.         cin>>str_broj;
  17.         std::string prvib= str_broj.substr (0,1);
  18.         duzina=str_broj.size()-1;
  19.         std::string zadnjib= str_broj.substr (duzina,1);
  20.         niz[i]=str_broj;
  21.             if (prvib==zadnjib)
  22.             {
  23.             brojac++;                  
  24.             iste[i]=str_broj;                  
  25.             }
  26.        
  27.         }
  28.         system("cls");
  29.         cout <<"uneseni brojevi su:" <<  endl;
  30.         for (i=0; i<n; i++)
  31.         {
  32.          cout <<niz[i]<<  endl;    
  33.         }
  34.         cout <<"_______________" <<  endl;  
  35.     if (brojac>0)
  36.     {
  37.        cout <<"iste prva i zadnja:" <<endl;        
  38.         for (i=0; i<n; i++)
  39.         {
  40.               str=iste[i];
  41.               if (str != "")
  42.               {      
  43.               cout <<str<<  endl;                            
  44.               }  
  45.         }            
  46.     }
  47.     else
  48.     {
  49.      cout <<"Nema istih" <<  endl;    
  50.     }    
  51. system("PAUSE");
  52. return 0;  
  53. }

Pozdrav
↑  ↓

#3 13.12.2013-18:36
Amelasar Offline
Clan
Registrovan/a od: 07.04.2011-18:28
Komentari: 234


Subject: Re: C Zadaci za ispit - pomoc
Hvala puno. Jel moze malo objasnjenje koda?
Moze li koristiti DEV C++ ili ide neki drugi?
Pozdrav, Amela
↑  ↓

#4 13.12.2013-19:46
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,488


Subject: Re: C Zadaci za ispit - pomoc
da u dev je i radjeno.
U Sad imam sijelo pa cu sutra bar nesto opisati i jos koji uraditi.
Drugi je lagan pa kontam mozda jos neko uradi koji.
Pozdrav
↑  ↓

#5 13.12.2013-20:18
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,488


Subject: Re: C Zadaci za ispit - pomoc
evo sa objasnjenjem.
DownloadIzvorni kod (C++):
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. int main ()
  6. {
  7. int n,i,duzina,brojac=0;// dimenzionisanje variabli
  8. string str_broj,str;//Dimenzionisanje variabli
  9.  
  10. cout << "Niz od:" << endl;  //Tekst na konzoli u komand promptu
  11. cin >>n;// unos vrijednosti sa tastature u var n
  12. string  niz[n],iste[n];// dimenzionisanje niza
  13.         for (i=0; i<n; i++)// for petlja broji od 0 do broja unesenih variabli
  14.         {
  15.         cout << "unesi broj:" << endl; // tekst
  16.         cin>>str_broj; // unos vrijednosti broja
  17.         std::string prvib= str_broj.substr (0,1);// prva cifra od unesenog broja
  18.         duzina=str_broj.size()-1;//Duzina odnosno broj cifri
  19.         std::string zadnjib= str_broj.substr (duzina,1);//Zadnja cifra od broja
  20.         niz[i]=str_broj;// Unos broja u variablu niz
  21.             if (prvib==zadnjib)// provjera dali je zadnji i prvi isti
  22.             {
  23.             brojac++; // broji broj prolaza za one koji su isti            
  24.             iste[i]=str_broj;//Upis u niz iste broja koji ima iste cifre                  
  25.             }//Kraj ifa uslova dali su iste
  26.        
  27.         }// kraj for petlje
  28.         system("cls");// brise ekran
  29.         cout <<"uneseni brojevi su:" <<  endl;// ispis na ekran
  30.         for (i=0; i<n; i++)// Petlja broji od 0 do broja unesenih brojeva
  31.         {
  32.          cout <<niz[i]<<  endl; // ispis Unesenih brojeva iz memorijske niz    
  33.         }
  34.         cout <<"_______________" <<  endl;  // ispis obicne linije
  35.     if (brojac>0)// Ako je brojac veci od 0 onda kod ispod
  36.     {
  37.        cout <<"iste prva i zadnja:" <<endl; // ispis na ekran        
  38.         for (i=0; i<n; i++)// for petlja broji od o do broj unesenih
  39.         {
  40.               str=iste[i];//upis u str iz memorijke niz
  41.               if (str != "")// ako je str razli
  42. ito od prazan strin tada kod ispod
  43.               {      
  44.               cout <<str<<  endl;   //Ispisi na ekran str                        
  45.               } //Kraj ifa  
  46.         } // kraj for petlje            
  47.     }//Kraj ifa od brojaca
  48.     else //inace od ifa brojac>0
  49.     {
  50.      cout <<"Nema istih" <<  endl;   //ispis na kran da nema istih
  51.     }    
  52. system("PAUSE");// cekanje na pritisak bilo kog tastera
  53. return 0; // procedura vraca 0  
  54. }

Pozdrav
↑  ↓

#6 14.12.2013-11:35
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,488


Subject: Re: C Zadaci za ispit - pomoc
Citat:
2. Sa tastature se unosi broj k i broj n. Odrediti sve zajednicke djelioce ova dva broja.

DownloadIzvorni kod (C++):
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main ()
  5. {
  6. int prvi_broj,drugi_broj,brojac,i,djelioc,ostatak,djeljiv=0;
  7. cout << "Unesi prvi broj:" << endl;
  8. cin >>prvi_broj;
  9. cout << "Unesi drugi broj:" << endl;
  10. cin >>drugi_broj;
  11. if(prvi_broj>drugi_broj)
  12. {
  13. brojac=drugi_broj;                        
  14. }
  15. else
  16. {
  17. brojac=prvi_broj;
  18. }//Kraj ifa
  19. cout << "Zajednicki djelioci su" << endl;
  20. for (i=1; i<=brojac; i++)
  21. {
  22.     if ( prvi_broj % i == 0 )
  23.     {
  24.     djeljiv++;    
  25.     }
  26.     if ( drugi_broj % i == 0 )
  27.     {
  28.     djeljiv++;    
  29.     }
  30.     if ( djeljiv==2 )
  31.     {
  32.     cout <<i<<  endl;  
  33.     }
  34.     djeljiv=0;
  35. }
  36.  
  37. system("PAUSE");
  38. return 0;  
  39. }

Pozdrav
↑  ↓

#7 14.12.2013-13:01
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,488


Subject: Re: C Zadaci za ispit - pomoc
Citat:
3. Sa tastature se unosi broj n, a nakon toga i n brojeva koji se cuvaju u nizu. Nakon unosa niza se
unose jos dva broja, k i r. Na ekranu ispisati k-ti, (k + r)-ti, (k + 2r)-ti itd. element niza.
ako sam dobro razumio pisca ove kreacije.

DownloadIzvorni kod (C++):
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main ()
  5. {
  6. int n,i,k,r,zbir;
  7.  
  8. cout << "Niz od:" << endl;
  9. cin >>n;
  10. cout << "Unesi niz:" << endl;
  11. int  niz[n];
  12.         for (i=1; i<=n; i++)
  13.         {
  14.          cin >>niz[i];  
  15.         }
  16. cout << "Unesi k:" << endl;
  17. cin >>k;
  18. cout << "Unesi r:" << endl;
  19. cin >>r;
  20. if (k<=n)
  21. {
  22. cout << "k-ti element niza:" << endl;
  23. cout<<niz[k]<< endl;
  24. }
  25. else
  26. {
  27. cout << "Ne postoji:" << endl;
  28. goto stop;
  29. }
  30. zbir=k+r;
  31. if (zbir<=n)
  32. {
  33. cout << "k+r  element niza:" << endl;
  34. cout<<niz[zbir]<< endl;
  35. }
  36. else
  37. {
  38. cout << "Ne postoji:" << endl;
  39. goto stop;    
  40. }    
  41.         for (i=2; i<=n; i++)
  42.         {
  43.         zbir=k+r*i;
  44.             if (zbir<=n)
  45.             {  
  46.             cout << "k+" <<i<< "r element niza"<< endl;
  47.             cout<<niz[zbir]<< endl;
  48.             }
  49.             else
  50.             {
  51.             goto stop;
  52.             }    
  53.         }
  54. stop:                                
  55. system("PAUSE");
  56. return 0;
  57.      
  58. }

Pozdrav
↑  ↓

#8 14.12.2013-14:34
Amelasar Offline
Clan
Registrovan/a od: 07.04.2011-18:28
Komentari: 234


Subject: Re: C Zadaci za ispit - pomoc
Hvala puno. Ispit je polovinom januara pa ima vremena, a i ja da nesto naucim. Hvala.
Pozdrav, Amela
↑  ↓

#9 14.12.2013-21:31
dex Offline
Super Moderator
Registrovan/a od: 23.02.2012-19:59
Komentari: 553


Subject: Re: C Zadaci za ispit - pomoc
Ne poznajem naredbe C-a, ali bih da primetim da je kod 5 zadatka poenta u tome da se kao uslov ne uzme

pow(x, 0.3333) = round(pow(x, 0.3333))

vec

abs(pow(x,0.3333) - round(pow(x, 0.3333)) < 0.00001

Naime racunari kod izracunavanja vrse zaokruzivanje. Tako da je moguce da se razkuju u 17-toj decimali. Uostalom, kubni koren je pow(x, 0.33333333333...)

Probajte da provrtite kroz petlju, na primer od 1 do 100

If (pow(sqrt(x), 2) == x // da li je kvadrat korena nekog broja jednak tom broju
cout << "Isti su " << endl;
else
cout << "Nisu isti" << endl;

Iznenadicete se rezultatom!

Pravilo koje vazi uopste u programiranju:

Ako imamo

a = neko izracunavanje;
b = neko drugo izracunavanje ili neki broj;

nepravilno je

if (a == b)

vec treba

if ( abs(a - b) < 0.00001)

jer je moguce da se zbog zaokruzivanja pri racunanju razlika javi na ko zna kojoj decimali

ps. radi se o pseudo – kodu, ne poznajem sintaksu C-a
↑  ↓

#10 18.12.2013-20:20
mirsadz Offline
Moderator
Registrovan/a od: 26.05.2011-21:40
Komentari: 31


Subject: Re: C Zadaci za ispit - pomoc
Evo rjesenje zadatka broj 11. Grinning

DownloadIzvorni kod (C++):
  1. /*---------------------------------------------------------------------
  2.   Rjesenje zadatka broj 11.
  3.   E-mail: prowider@icentar.ba
  4.   Author: Mirsad
  5.   Date: 18.12.13 20:11
  6.   Description: Sa tastature se unosi 20 brojeva,
  7.   s tim sto se neki brojevi mogu i ponavljati. Odrediti da li postoji
  8.   broj koji je unesen tacno 3 puta.
  9. ----------------------------------------------------------------------*/
  10.  
  11.  
  12. #include <iostream>
  13. using namespace std;
  14.  
  15. int main()
  16. {
  17.    int i,niz[19],n,prolaz=1,broj=0;
  18.    cout<<"Unesi 20 brojeva\n";
  19.    for (i=0;i<20;i++)
  20.    {
  21.        cout<<i+1<<"=> ";
  22.        cin>>niz[i];        
  23.    }
  24.    for (i=0;i<20;i++)
  25.    {
  26.        for (n=i+1;n<20;n++)
  27.         {
  28.            if(niz[i]==niz[n])
  29.            {
  30.            prolaz++;
  31.          
  32.            if(prolaz>2)
  33.                        {                  
  34.            broj=niz[i];
  35.                        }
  36.                        
  37.            }        
  38.          }
  39.    prolaz=1;    
  40.     }
  41.     if(broj>0)
  42.    {
  43.    cout<<"Broj: "<<broj<<" se ponavlja"<<endl;
  44.    }
  45.    
  46.    
  47. system ("pause");
  48. return 0;
  49. }
↑  ↓

#11 18.12.2013-20:31
mirsadz Offline
Moderator
Registrovan/a od: 26.05.2011-21:40
Komentari: 31


Subject: Re: C Zadaci za ispit - pomoc
Evo i zadatak broj 10. Happy

DownloadIzvorni kod (C++):
  1. /*---------------------------------------------------------------------
  2.   Rjesenje zadatka broj 10.
  3.   E-mail: prowider@icentar.ba
  4.   Author: Mirsad
  5.   Date: 18.12.13 20:20
  6.   Description: Sa tastature se zahtijeva unos jednog broja.
  7.   Ako uneseni broj ima neparan broj cifara, na ekranu
  8.   ispisati srednju cifru, a ako je broj cifara paran,
  9.   na ekranu ispisati dvije "srednje" cifre.
  10. ----------------------------------------------------------------------*/
  11.  
  12.  
  13. #include <iostream>
  14. #include <cmath>
  15. using namespace std;
  16.  
  17. int main()
  18. {
  19.     int broj,orgb,brojac1=0,brojac2=0,poz;
  20.     float decimalni=0,cijeli=0,srednji;
  21.     cout<<"Unesi broj =>";
  22.     cin>>broj;
  23.     orgb=broj;
  24.     while (broj!=0)
  25.     {
  26.     broj=broj/10;
  27.     brojac1++;
  28.     }
  29.      poz=brojac1/2;
  30.      broj=orgb;
  31.      if (brojac1<=2) goto kraj;            
  32.     while (broj!=0)
  33.     {
  34.     brojac2++;                
  35.         if (poz ==brojac2)
  36.         {    
  37.           cijeli=broj;        
  38.           decimalni=cijeli/100;
  39.           srednji = modf (decimalni, &cijeli);
  40.           if (brojac1 % 2==0)
  41.           {  
  42.           broj=srednji*100;
  43.           }
  44.           else
  45.           {
  46.           broj=srednji*10;
  47.           }
  48.           goto kraj;
  49.         }
  50. broj=broj/10;  
  51.     }    
  52. kraj:
  53. cout <<"SREDNJA CIFRA BFOJA JE: " <<broj<< endl;
  54. system("PAUSE");
  55. return 0;
  56. }    
↑  ↓

#12 21.12.2013-00:16
dex Offline
Super Moderator
Registrovan/a od: 23.02.2012-19:59
Komentari: 553


Ocjena: Ocjena:100 Subject: Re: C Zadaci za ispit - pomoc
Zadatak 11 glasi: Odrediti da li POSTOJI broj koji je unesen TACNO 3 puta.
Zadatak je dat da se vidi kako se djaci snalaze sa naredbama za prisilno upravljanje petljama.

pogledati
http://www.programiz.com/...-statement

U ovom zadatku imamo dve petlje, spoljnu i unutrasnju.
U spoljnoj uzima jedan po jedan clan niza, pa u unutrasnjoj proverava jos koliko istih clanova ima . Po izlasku iz unutrasnje proveravamo da li se clan ponavlja tri puta i ako se ponavlja nasilno prekidamo petlju, saopstavamo rezultat i zavrsavamo program.
Unutrasnju petlju ne smemo nasilno da prekinemo, jer moramo da proverimo da se broj ne sadrzi 4 ili vise puta. Ako program prodje kroz obe petlje i ne prekine se nasilno saopstavamo da takav broj ne postoji. Unutrasnja petlje mora da krene od 0, a ne od i+1 jer ako imamo na primer imali niz 1, 4, 2, 4, 4, 4, 5 ... druga cetvorka bi prekinula petlju i prijavila 4 kao broj koji se javlja TACNO 3 puta. Kao uslov postavljamo =4, jer svaki broj po jednom uporedjujemo i sa samim sobom.

Da je zadatak glasio koji je unesen tri ili vise puta, unutrasnja petlja bi mogla da startuje od i+1. Onda bi uslov za prekid stavili u okviru unutrasnje petlje, i cim naidje broj koji se ponavlja tri puta prekidamo obe petlje, saopstimo rezultat i kraj programa.

Prepravio sam Mirsadov kod, valjda je sve gramaticki ispravno, nemam kompajler da proverim
DownloadIzvorni kod (C++):
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.    int broj ;
  7.    int prolaz = 0;
  8.    int k[20] ;
  9.    cout<<"Unesite 20 brojeva\n";
  10.    for (i=0;i<20;i++)
  11.    {
  12.        cout<<i+1<<"=> ";
  13.        cin>>niz[i];        
  14.    }
  15.    for (i=0;i<20;i++)
  16.    {
  17.        for (j=0;j<20;j++)
  18.         {
  19.            if(niz[i]==niz[j])
  20.            {
  21.            prolaz++;          
  22.            }        
  23.          }
  24.    if(prolaz==4)
  25.                        {                  
  26.            broj=niz[i];
  27.                    break
  28.                        }
  29.                         prolaz = 0 ;
  30.     }
  31.     if(prolaz==4)
  32.    {
  33.    cout<<"Broj: "<<broj<<" se ponavlja tacno 3 puta"<<endl;
  34.    }
  35.    else
  36.    {
  37.    cout<<"Nijedan broj se ne ponavlja tacno 3 puta"<<endl;
  38.    }
  39.    
  40.    
  41. system ("pause");
  42. return 0;
  43. }

P.S. 10. zadatak je resen na veoma interesantan nacin, ali zar nije bilo jednostavnije da se broj pretvori u string i rade operacije sa stringovima Happy
↑  ↓

#13 21.12.2013-09:39
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,488


Subject: Re: C Zadaci za ispit - pomoc
Citat:
P.S. 10. zadatak je resen na veoma interesantan nacin, ali zar nije bilo jednostavnije da se broj pretvori u string i rade operacije sa stringovima

Da mislim da bi mnogo bilo lakse sa stringovima samo je pitanje sta bi na to profesor rekao.
I ja sam jedan cini mi se tako uradio mada znam da neki profesori nedaju koristiti dodatne biblioteke.
Pozdrav
↑  ↓

#14 22.12.2013-20:58
dex Offline
Super Moderator
Registrovan/a od: 23.02.2012-19:59
Komentari: 553


Subject: Re: C Zadaci za ispit - pomoc
Citat:
I ja sam jedan cini mi se tako uradio mada znam da neki profesori nedaju koristiti dodatne biblioteke.

Bogami surovo!
Čuo sam priče o nekim profesorima Jave koji zahtevaju da se sav kod i GUI (raspored kontrola i dizajn formi ) pišu ručno u Notpedu!
↑  ↓

#15 22.12.2013-21:43
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,488


Subject: Re: C Zadaci za ispit - pomoc
Po meni trebalo bi ocjenjivati ideje na koji nacin je nesto uradjeno a sitne greske u kodu se isprave a i naredbe se vremenom nauce ako radis.

Mogu ih razumjeti kada nedaju biblioteke koristiti jer te tjera da razmisljas kako uraditi ali kucanje u notepadu bas je ludost.
Pozdrav
↑  ↓

Stranice (2): 1, 2


All times are GMT +01:00. Current time: 20.11.2017-08:42.