Hmmm domaći zadatak?!

Hmmm domaći zadatak?!

offline
  • Pridružio: 25 Jul 2003
  • Poruke: 1829
  • Gde živiš: Stara Pazova

E stvarno me nervira, pokušavam da ga uradim, ali nikako ne uspvam...

Zna li iko da mi pomogne, a traži se sledeće:

2. Opisati algoritam (bar na 2 načina) za nalaženje maksimalnog elementa datog niza.
3. Opisati algoritam nalaženje i štampanje svih prostih brojeva manjih od datog broja m.

Znači taman uradim jedan algoritam, kada skontam da ne radi, onda drugi, opet no funkciorano insijene... Pa da popizdim... Može l' neko da pomogne?

Hvala & poz u napred...



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 18 Apr 2003
  • Poruke: 8134
  • Gde živiš: U kesici gumenih bombona...


            int[] s = { 400, 2, 1, 90, 70 };
            int max = s[0];

            for (int j = 1; j < s.Length - 1; j++)
            {
                if (s[j] > max)
                    max = s[j];

            }

             // Ovde, promenljiva max ima broj koji je u nizu najveci.


A recima to se moze reci ovako.

Pretpostavis da je prvi clan niza najveci.
u for petlji koja ide od 1 do velicine niza manje 1 pitas da li je trenutni clan niza veci od pretpostavljene vrednosti max i ako jeste, promenljivoj max dodelis tu novu vrednost.



offline
  • Onsite IT Support Engineer
  • Pridružio: 08 Mar 2005
  • Poruke: 1148
  • Gde živiš: Niš

Zadatak koji si nam postavio podsetio me je na ispit iz Informatike i Fortrana. Boze koliko mrzim taj FORTRAN.

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

prvi zadatak, prvi nacin:
$najveci=0

MRTVA_PETLJA
{
  unesi ( $broj )                              // unosimo jedan broj
  AKO ( $broj = 0 ) ONDA prekini_petlju        // izlazimo iz petlje ako ukucamo 0
  AKO ( $najveci < $broj ) ONDA $najveci = $broj
}

stampaj ("Najveci broj je: ", $najveci)


Dopuna: 22 Okt 2006 12:22

prvi zadatak, drugo resenje:

$v = 0                                    // velicina niza

mrtva_petlja
{
  unesi ( $broj )                         // unesi jedan broj
  AKO ( $broj = 0 ) ONDA prekini_petlju   // izlazimo iz petlje ako ukucamo 0
  $niz[$v] = $broj                        // upisi broj u niz
  $v = $v + 1                             // povecavamo velicinu niza za 1
}

$najveci=0

FOR $i = 0 TO $v                          // vrti petlju, $i ide od 0 do $v (velicina niza)
{
  AKO ( $najveci < $niz[$v] ) ONDA $najveci = $niz[$v]
}

stampaj ("Najveci broj je: ", $najveci)

offline
  • Pridružio: 18 Dec 2003
  • Poruke: 7953
  • Gde živiš: Graceland

Zar covek nije trazio algoritme?

offline
  • Pridružio: 25 Jul 2003
  • Poruke: 1829
  • Gde živiš: Stara Pazova

Kada mi je objašnjeno kao što je Peca, mogu sam da napravim, nije problem...
Hvala svima na trudu, stvarno mi je pomoglo!

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

Drugi zadatak:

unesi ( $m )

FOR $i = 2 TO $m                          // vrti petlju, $i ide od 2 do $m
{
    FOR $n = 2 TO $i
    {
        AKO ( $n = $i ) ONDA stampaj ("Prost broj je", $i)    // dosli smo do kraja ugnjezdene petlje
        AKO ( $i % $n = 0 ) ONDA prekini_ugnjezdenu_petlju
    }
}


sledi objasnjenje...

Dopuna: 22 Okt 2006 18:48

ovde je algoritam malko komplikovaniji.
imas dve petlje.

prva petlja ide da bi proverio sve brojeve od 2 do M koji korisnik unese.

ona druga, ugnjezdena, petlja, proverava da li je dati broj zapravo prost.
evo i kako.

C i C++ imaju operator % koji daje ostatak pri deljenju
ako je ostatak 0, znaci da je broj deljiv sa datim brojem.
taj operator cemo koristiti.

e sad.
da bi proverio da li je neki broj prost, moras da probas da ga podelis sa svim brojevima koji su manji od njega.
i to je ta druga petlja, ugnjezdena.
proba da podeli dati broj sa svim brojevima koji su manji od njega.

ako prilikom deljenja, dobije da je ostatak 0, to znaci da broj nije prost, jer je deljiv.
tu prekida ugnjezdenu petlju, i vraca se u prvu petlju, to jest ispituje sledeci broj.

ako dodjemo do kraja ugnjezdene petlje, to znaci da ni sa jednim brojem nismo uspeli da ga podelimo, i to onda znaci da je to prost broj, i stampamo ga.

offline
  • Strog  Male
  • Stručni saradnik
    Web programiranje
  • Bojan Kopanja
  • Web & Mobile developer @ ZeusSoftware
  • Pridružio: 26 Jul 2003
  • Poruke: 2597
  • Gde živiš: Stara Pazova

A zasto taj drugi ne bi isao u samo jednoj petlji?

Nesto ovako

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

int main()
{
  int deljivo_sa = 0, i, m;
 
  scanf("%d", &m);
 
  for(i=2; i<m; i++)
  {
    if(!(m%i)) deljivo_sa++;
  }
 
  if(deljivo_sa) printf("Nije prost!\n\n");
  else printf("Prost je!\n\n");
   
  system("PAUSE");   
  return 0;
}

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

Nisi dobro shvatio zadatak Smile

"Opisati algoritam nalaženje i štampanje svih prostih brojeva manjih od datog broja m."

Dakle.
Ukucas recimo 5.

I program treba da uradi ovo:
AKO (2 = prost) stampaj...
AKO (3 = prost) stampaj...
AKO (4 = prost) stampaj...
AKO (5 = prost) stampaj...
Smile

Ko je trenutno na forumu
 

Ukupno su 941 korisnika na forumu :: 25 registrovanih, 2 sakrivenih i 914 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: -[CoA]-, Bobrock1, bojank, Dimitrije Paunovic, Djordje29, draganl, dragoljub11987, HrcAk47, ILGromovnik, Karla, kjkszpj, Kriglord, krkalon, Krvava Devetka, LUDI, Nemanja.M, panzerwaffe, powSrb, raykan, Regrut Boskica, Shilok, slonic_tonic, sovanova95, styg, zlaya011