Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Ispisivanje najmanjeg broja.

[es] :: Pascal / Delphi / Kylix :: Ispisivanje najmanjeg broja.

[ Pregleda: 2868 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Flamethrower

Član broj: 316645
Poruke: 22



Profil

icon Ispisivanje najmanjeg broja.05.12.2014. u 21:42 - pre 113 meseci
Pozdrav svima.

Ukratko , moram da napišem program u kojem od nekoliko nepoznatih ( n brojeva ) brojeva x, da program napiše koji od tih brojeva je najmanji.
Program izgleda ovako;


PROGRAM najmanjibroj1;
VAR
x,i,n,min:integer;
BEGIN
min:=0;
writeln('Unesi broj n');
read(n);
FOR i:=2 TO n DO
BEGIN
writeln('Unesi brojeve x');
read(x);
?
?
?
END;
writeln('min=',min);
readln(i);
END.

Znači , imam nekoliko brojeva x, tačnije n tih brojeva x. Kada ubacim koliko tih brojeva ima, treba da ispišem te brojeve x. Na primjer, ubacim 3 za n ( može ih biti 10 ), znači imam 3 nepoznate x. Od te 3 nepoznate, program treba da ispiše koji od te 3 su najmanje. U djelu sa upitnicima treba da iskoristim komandu IF. Problem je u tome ne znam kako da to zapišem, pa ako je neko voljan da pomogne bilo bi dobro jer želim da shvatim ovo.

Hvala unaprijed.

[Ovu poruku je menjao Flamethrower dana 05.12.2014. u 23:28 GMT+1]

[Ovu poruku je menjao Flamethrower dana 05.12.2014. u 23:28 GMT+1]
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Ispisivanje najmanjeg broja.05.12.2014. u 22:10 - pre 113 meseci
Uzmes neku dodatnu promenljivu (vidim ti si je nazvao min), njoj ili dodelis najveci moguci broj (MaxInt) ili prvi iz liste i onda prodjes kroz ostatak liste i kada je broj iz liste manji od min, dodelis ga min, tako da ce na kraju petlje min sadrzati najmanji broj. Kod otprilike ide ovako:

Code:

var
  TempMin: Integer;
  i: Integer;
  ListaBrojeva: array of Integer;
begin
   // Ovde alociras i uneses sve brojeve u niz ListaBrojeva

  TempMin := MaxInt; // Dodelis najveci moguci broj
  
  for i := 0 to High(ListaBrojeva) do 
  begin
    if ListaBrojeva[i] < TempMin then
      TempMin := ListaBrojeva[i];
  end;

  WriteLn('Najmanji broj je: ', TempMin);
end;

 
Odgovor na temu

Flamethrower

Član broj: 316645
Poruke: 22



Profil

icon Re: Ispisivanje najmanjeg broja.05.12.2014. u 22:12 - pre 113 meseci
Nisam pisao program na ovakav način. Program se mora napisati samo onim što sam naveo gore.

Hvala na pokušaju.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Ispisivanje najmanjeg broja.05.12.2014. u 22:45 - pre 113 meseci
Pretpostavljam da je ovo neki zadatak za skolu, ne verujem da bi profesor informatike inisistirao na imenovanju promenljivih, u svakom slucaju
TempMin nije komanda vec promenljiva, ti je mozes nazvati kako god zelis, kao sto sam ti rekao mozes koristiti i min.
 
Odgovor na temu

Flamethrower

Član broj: 316645
Poruke: 22



Profil

icon Re: Ispisivanje najmanjeg broja.05.12.2014. u 22:49 - pre 113 meseci
Nije mi jasno korištenje ove promjenive ListaBrojeva: array of Integer; i na način na koji si ti napisao cjeli ovaj kod.

Ako može malo da mi detaljnije pojasniš.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Ispisivanje najmanjeg broja.05.12.2014. u 23:18 - pre 113 meseci
ListaBrojeva je dinamički niz, niz čija se dužina može menjati u toku izvršavanja prograrama, (može biti 5, 10 ili 100...) nasuprot tome je statički niz, niz čija je veličina i broj elemenata unapred određen, npr ListaBrojeva: array[0..50] of Integer može imati samo 51 element (od 0 do 50), ne 100.
E sad ne znam šta ti možeš koristiti, da li Delphi, ili TurboPascal. Ako je Delphi onda koristi array of Integer, ako je TurboPascal onda koristi statički niz (može se i tamo emulirati dinamički niz ali je to malo naprednija tehnika koju verovatno niste radili).

Elem ako je dinamički niz onda bi unos išao ovako:

Code:

var
  ListaBrojeva: array of Integer;
  i, n: Integer;
begin
  ReadLn(n); // Broj elemenata niza
  SetLength(ListaBrojeva, n);

  for i := 0 to High(ListaBrojeva) do
    ReadLn(ListaBrojeva[i]); // Unose se pojedini elementi niza
end;


 
Odgovor na temu

Flamethrower

Član broj: 316645
Poruke: 22



Profil

icon Re: Ispisivanje najmanjeg broja.06.12.2014. u 12:07 - pre 113 meseci
Mi radimo u DEV-Pascalu , Turbo Pascal i Dephi nismo još ni zagrebali. Ovde ti si upotrebio neke stvari koje još nismo radili. Takođe za Array of Integer; pokazuje sintaksnu grešku, to jest: Syntax Error, [ expected but OF found jer radim u drugom programu, to jest DEV Pascalu.

 
Odgovor na temu

Milan Milosevic

Član broj: 67
Poruke: 932
*.dynamic.isp.telekom.rs.



+31 Profil

icon Re: Ispisivanje najmanjeg broja.06.12.2014. u 13:10 - pre 113 meseci
Malo sam ti modifikovao algoritam tako da bi ovo trebalo da radi

Code:

PROGRAM najmanjibroj1;
 VAR
 x,i,n,min:integer;
 BEGIN
   writeln('Unesi broj n');
   read(n);
   writeln('Unesi brojeve x');
   read(min);
   FOR i:=2 TO n DO
   BEGIN
     writeln('Unesi brojeve x');
     read(x);
     IF x<min THEN min:=x;
   END;
   writeln('min=',min);
 END.
end.


Naravno ode moras da imas bar jedan element unet jer nema smisla traziti minimum bez elemenata.

 
Odgovor na temu

Flamethrower

Član broj: 316645
Poruke: 22



Profil

icon Re: Ispisivanje najmanjeg broja.06.12.2014. u 13:28 - pre 113 meseci
Hvala na pomoći, program radi. Problem je bio što ja nisam dobro napisao dio sa komandom IF i nisam dobro postavio promjenjivu min.
 
Odgovor na temu

vstamenovic4
Borland

Član broj: 325786
Poruke: 10
*.com
Via: [es] mailing liste



Profil

icon Re: Ispisivanje najmanjeg broja.06.12.2014. u 15:09 - pre 113 meseci
>
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Ispisivanje najmanjeg broja.

[ Pregleda: 2868 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.