Imam problem sa jednim algoritmom

Imam problem sa jednim algoritmom

offline
  • Nemanja
  • Web Designer and Developer
  • Pridružio: 24 Jan 2007
  • Poruke: 266

Profesor nam je za jedan "kucni" kontrolni dao dva zadatka, i za njih treba da napisemo algoritam. Nikako mi ne ide od ruke da to uradim. Molim vas da mi pomognete!
Prvi zadatak ovako glasi:
Napisati program kojim se za dati broj n izracunava
S=3!-6!+9!-...+(-1)n+1(3n)!
A drugi zadatak glasi:
Napisati program kojim se odredjuju i ispisuju svi savrseni brojevi od 2 do m. Broj je savrsen ako je jednak sumi svih svojih delitelja iskljucujuci njega sasmog. Npr. 28 je savrsen broj, jer je 28=1+2+4+7+14.
Molim vas pomazite!!!!!!!



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Đuro Glumac
  • dipl. ing. informatike
  • Pridružio: 08 Feb 2004
  • Poruke: 3640
  • Gde živiš: ApAtIn

Zadatak ce ti retko ko uraditi, ali mogu da ti dam ideju... cilj tih zadataka i jeste da nesto naucis, a ne prepises.

1. Napravis funkciju koja ce da izracunava faktorijal broja. Tu funkciju realizujes pomocu for petlje. Primer za broj 4 bi bio:

  1. for i:=1 to 4 do
  2. S:=S*i;


Obrati paznju da S postavis na pocetnu vrednost 1, jer je u pitanju mnozenje.

Nakon sto napravis tu funkciju, realizujes jednu petlju, koja ce da se izvrsava dok broj n ne dostigne krajnju vrednost navedenu u izrazu. U svakom prolazu kroz petlju, pozivas funkciju "faktorijal" a kao ulazni parametar dajes broj iz proslog prolaza uvecan za 3.
Da bi realizovao da jednom ide sabiranje, a zatim oduzimanje mozes da uvedes jednu kontrolnu promenljivu koja ce se prilikom svakog prolaza uvecavati za 1, i na osnovu toga da li je parna ili ne izvrsavas sabiranje, odnosno oduzimanje.

2. Napravis funkciju koja ce da proverava da li je broj savrsen. To mozes da realizujes for petljom, tako sto pronalazis sve deljitelje toga broja.
Primer za broj 5.

  1. for i:=1 to 5 do
  2. Begin
  3. if 5 mod i = 0 then S:=S+i;
  4. end;

Nakon ovoga, proveris da li je S=5, odnosno broju koji trazis (S je suma njegovih delitelja). Ako jeste broj je savrsen.

Nakon sto si realizovao tu funkciju, napravis jednu for petlju, koja ide od 2 do m, i u svakom svom prolazu (pozivom funkcije) proverava da li je "i" savrsen, i ako jeste ispisuje ga.

Verujem da ces iz ovoga moci da razumes osnovnu ideju kako mozes da resis ovo.



offline
  • Pridružio: 25 Apr 2006
  • Poruke: 322

Mislim da bi drugi zadatak mogao ovako da se resi

  1. begin
  2.   readln(m);
  3.   for n:=2 to m do
  4.   begin
  5.     suma:=1;
  6.     for i:=2 to n div 2 do
  7.       if n mod i=0 then suma:=suma+i;
  8.         if suma=n then writeln(n);
  9.   end;
  10. end.


Srki_82: koristi code tagove.

offline
  • boris4 
  • Novi MyCity građanin
  • Pridružio: 24 Dec 2007
  • Poruke: 6

Evo ga prvi

  1. program prvi;
  2. var s,n : longint;
  3. begin
  4.        readln(n);
  5.        s := 1;
  6.        n := 3*n;
  7.        while n >= 3 do begin
  8.             s := s*n*(n-1)*(n-2);
  9.             if odd(n) then s := s + 1
  10.             else s := 1 - s;
  11.             n := n - 3;
  12.        end;
  13.        writeln(s-1);
  14. end.


Ne znam da li je dobar jer ga nisam kompajlovao[/code]

Ko je trenutno na forumu
 

Ukupno su 796 korisnika na forumu :: 6 registrovanih, 0 sakrivenih i 790 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: ljubo70, Phaeton, RED4G-304, Saša31LPB, spalev, Zukov