Pascal – Naredbe ponavljanja

Nakon što ste naučili naredbe za organizaciju ciklusa, vreme je da utvrdimo gradivo. Na ovoj stranici se nalazi nekoliko specijalnih zadataka za čije je rešavanje potrebno dobro poznavanje svega što smo do sada učili, ali su malo drugačiji od zadataka koje smo radili na časovima. Učenici koji prvi tačno reše jedan od ovih zadataka i njegovo rešenje ostave u komentaru biće adekvatno nagrađeni🙂  Učenicima koji tačno reše neki od zadataka a ipak ne budu „prvi“ sledi utešna nagrada🙂 Jedan učenik može biti nagrađen za samo jedan zadatak. Svaki trud se „isplati“, a o sticanje znanja ne treba posebno ni spominjati – podrazumeva se…

Napomena: Svi komentari budu pregledani pre objavljivanja. Samo tačna rešenja će biti objavljena i nagrađena.

-SPECIJALNI ZADACI-

1. Napisati program koji će računati S = 1 + 3 + 9 +27 + 81 + … tako da zbir brojeva bude najveći mogući, ali da ne bude veći od 10000. (naredba WHILE)

2. Napisati program koji će računati S = 1 + 2 + 4 + 8 + 16+ 32 + … tako da zbir brojeva bude najveći mogući, ali da ne bude veći od 2012. (naredba REPEAT)

3. Napisati program koji će tražiti od korisnika da unese 10 realnih brojeva i postepeno formirati i prikazivati na ekranu njihov zbir. (naredba REPEAT)

4. Napisati program koji će prebrojavati kojiko ima članova niza 1, 2, 4, 8, 16, 32, … koji su manji od 15000. (naredba WHILE)

5. Napisati program koji će prikazivati redom cifre unetog celog broja od mesta najmanje težine pomoću naredbe REPEAT (Uputstvo: koristiti operacije DIV i MOD)

primer: ako se unese broj 26375 program treba da ispiše: 5  7  3  6  2

6. Napisati program koji će računati sumu svih parnih prirodnih brojeva manjih od broja x. Predvideti da broj x unosi korisnik preko tastature. (naredba REPEAT)

7. Napisati program koji će ispisati tablicu množenja od 1 x 1 do 5 x 10 (naredba FOR).

8. Napisati program koji će pronaći maksimum od 15 proizvoljnih brojeva unetih preko tastature (naredbe IF i FOR)

9. Napisati program koji će izračunavati zbir i aritmetičku sredinu od proizvoljnih n brojeva koji se učitavaju preko tastature (naredba FOR)

10. Napisati program koji pomoću naredbe FOR izračunava:

11. Napisati program koji će prikazivati na ekranu brojeve deljive sa 23 manje od 2012 (naredbe FOR i IF)

20 reagovanja na Pascal – Naredbe ponavljanja

  1. Ne znam gde je „zapelo“ u rešavanju preostala dva zadatka. Ipak, s obzirom da je prošlo desetak dana, a da su dva zadatka još uvek nerešena, ne dozvoljavam da se sasvim „raspustite“🙂 Zbog toga pomažem oko preostalih zadataka sa rešenjem (5. i 8. zadatak)…

    program cifre5;
    var broj,x:INTEGER;
    begin
    writeln(‘Unesite jedan ceo broj’);
    readln(broj);
    REPEAT
    x := broj MOD 10;
    write (x, ‘ ‘);
    broj := broj DIV 10;
    UNTIL broj = 0;
    end.

    program najveci;
    var i, broj, naj: INTEGER;
    begin
    naj := 0;
    FOR i := 1 TO 15 DO
    begin
    writeln(‘Unesite ‘,i,’. broj’);
    readln(broj);
    if broj > naj then naj := broj;
    end;
    writeln(‘Najveci broj je ‘ , naj);
    end.

  2. Milica III-5 kaže:

    program treci;
    var x,y: real;
    i:integer;
    begin
    i:=1;
    y:=0;
    repeat
    begin
    writeln(‘ Unesite ‘,i,’. broj za sabiranje’);
    readln(x);
    y:=x+y;
    writeln( ‘Suma prvih ‘,i,’ brojeva je ‘,y:8:2);
    i:=i+1;
    end;
    until i>10;
    end.

    • Posebno mi se dopalo što program pomoću writeln naredbe jasno govori korisniku šta treba da unese i šta predstavlja rezultat.
      Obratite pažnju na postavljanje uslova kod repeat naredbe:
      naredbe se ponavljaju sve dok je uslov netačan! (kod while naredbe je „obrnuto“).
      Ostalo je još samo dva zadatka koji čekaju da budu rešeni: 5. i 8.🙂

  3. Balango Kristina kaže:

    program smaksveta;
    var i,s:integer;
    begin
    s:=1;
    i:=1;
    repeat
    i:=2*i;
    s:=s+i;
    until s>=2012;
    writeln(‘Zbir je ‘, s);
    end.

  4. Ujfalusi Aleksandra kaže:

    program br4;
    var i,x:integer;
    begin
    x:=0;
    i:=1;
    while i<=15000 do
    begin
    x:=x+1;
    i:=i*2;
    end;
    writeln('Broj clanova je ', x-1);
    end.

    • To je to!
      Kada prebrojavamo koliko ima članova u nekom nizu „brojač“ povećavamo za jedan. Ako ima neko kome nije jasno zašto je na kraju x smanjeno za jedan, savetujem ga da malo bolje razmisli i proveri rešenje zadatka u Pascal-u🙂

  5. Milos Gagovic III-6 kaže:

    Program sesti;
    var i,s,x:integer;
    begin
    writeln(‘Unesite vrednost x’);
    readln (x);
    s:=0;
    i:=0;
    Repeat
    s:=s+i;
    i:=i+2;
    until i>=x;
    writeln(‘Suma parnih brojeva je ‘,s);
    end.

  6. Nikola3-5 kaže:

    program prvizadatak;
    var s,a:integer;
    begin
    s:=1;
    a:=1;
    while s<10000 do
    begin
    a:=a*3;
    s:=s+a;
    end;
    s:=s-a;
    writeln ('S iznosi',s);
    end.

  7. Boris Matijasevic kaže:

    program jedanaesti;
    var a:integer;
    begin
    for a:=1 to 2012 do
    if a mod 23 = 0 then
    writeln (a);
    end.

    • 🙂 Rešavanje ovih zadataka, dok stižu polako jedan po jedan…
      podsetilo me je na pesmicu „Deset ljutih gusara“
      Dok se „borite“ sa rešavanjem zadataka, napravite kratku pauzu i podsetite se stihova iz detinjstva…

  8. Vladimir Zvicer kaže:

    9. Program Brojevi;
    var i,Z,n,x :integer;
    As:real;
    Begin
    Z :=0;
    As :=0;
    writeln ( ‘ uneti broj za n’);
    read (n);
    for i := 1 to n do
    Begin
    readln(x);
    Z := Z+x
    end;
    As:= Z/n;
    writeln ( ‘ zbir je ‘, z);
    writeln ( ‘aritmeticka sredina je ‘, As:6:2);
    end.

    • Evo dodatnog objašnjenja za one koji nisu sami uspeli da reše zadatak.
      U okviru FOR naredbe nalazi se jedna readln naredna koja učitava jedan po jedan broj sa tastature i sabira ih.
      Ovo se ponavlja n puta.
      Na kraju se izračuna aritmetička sredina.
      Nije teže od onoga što smo do sada radili na časovima, samo je malo drugačije😉

  9. Milena kaže:

    program tablica;
    var i,k:integer;
    begin
    for i:=1 to 5 do
    for k:=1 to 10 do
    writeln(i, ‘*’,k, ‘=’,i*k);
    end.

  10. MILICA kaže:

    KAKO DA ZNAM KOJI ZADATAK NE MOGU DA RADIM?

  11. Ema Golijan kaže:

    program deseti;
    const pi= 3.14;
    var i: integer;
    Z: real;
    begin
    Z:=0;
    for i:= 50 downto 1 do
    Z:= Z+sin(i/3.14);
    writeln( ‘Z je ‘, Z:4:2);
    end.

    • Zadatak je tačan. Ipak podsećam vas da ponovite upotrebu konstanti. Konstanta je dobro definisana, ali posle nije upotrebljena. Drugim rečima njena definicija u ovom rešenju je suvišna. Od viška glava ne boli🙂

Ostavite odgovor

Popunite detalje ispod ili pritisnite na ikonicu da biste se prijavili:

WordPress.com logo

Komentarišet koristeći svoj WordPress.com nalog. Odjavite se / Promeni )

Slika na Tviteru

Komentarišet koristeći svoj Twitter nalog. Odjavite se / Promeni )

Fejsbukova fotografija

Komentarišet koristeći svoj Facebook nalog. Odjavite se / Promeni )

Google+ photo

Komentarišet koristeći svoj Google+ nalog. Odjavite se / Promeni )

Povezivanje sa %s