[ Flamethrower @ 05.12.2014. 21:42 ] @
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]
[ savkic @ 05.12.2014. 22:10 ] @
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;
[ Flamethrower @ 05.12.2014. 22:12 ] @
Nisam pisao program na ovakav način. Program se mora napisati samo onim što sam naveo gore.

Hvala na pokušaju.
[ savkic @ 05.12.2014. 22:45 ] @
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.
[ Flamethrower @ 05.12.2014. 22:49 ] @
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š.
[ savkic @ 05.12.2014. 23:18 ] @
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;

[ Flamethrower @ 06.12.2014. 12:07 ] @
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.

[ Milan Milosevic @ 06.12.2014. 13:10 ] @
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.

[ Flamethrower @ 06.12.2014. 13:28 ] @
Hvala na pomoći, program radi. Problem je bio što ja nisam dobro napisao dio sa komandom IF i nisam dobro postavio promjenjivu min.
[ vstamenovic4 @ 06.12.2014. 15:09 ] @
>