Sprawdzanie najwyższego wyniku

0

Witam, mam program, który pyta się o liczbę do wylosowania liczb. Nie umiem niestety aby program sprawdzał która z wygenerowanych jest największa. Z góry dziękuję za pomoc.

var n,i,x:integer;

begin

Write('Podaj ilosc liczb, ktora chcesz wczytac: ');
Readln(n);
Randomize;
for i:=1 to n do begin
Writeln('Pierwsza wylosowana liczba: ',i,': ',Random(1000) );
Random(x)
end;
Readln;
end.

 
0

A czego konkretnie nie umiesz?

0

użyj "if"

0

Tam powinno byc

Writeln('Wylosowana liczba: ',i,': ',Random(1000) );
0

Nie umiem poprawnie napisać tej części programu, żeby po wylosowaniu np 30 liczb, program sprawdzał która jest największa.

0

To napisz nie poprawnie, pomożemy poprawić. Albo użyj tablicy albo szukaj maksymalnej już w trakcie losowania.

0

Wychodzi mi ze liczba największa to rzędu 20 milionów, a jest ustawiony zakres Random 1000).

 var n,i,x,max:integer;

begin

Write('Podaj ilosc liczb, ktora chcesz wczytac: ');
Readln(n);
Randomize;
max:=0;
for i:=1 to n do begin
Writeln(' Wylosowana liczba nr: ',i,': ',Random(1000) );
if x>max then begin max:=x; end;
 Random(x);

end;

writeln('Najwieksza wartosc wczytanej liczby to ',max);
Readln;
end.
0

może pierwszą liczbę sprawdź z następną która z nich jest większa aż do n elementów

0

A gdzie masz inicjalizacje tego x? To znaczy gdzie to x dostało jakąś wartość?

0
var n,i,x,max:integer;
 
begin
 
Write('Podaj ilosc liczb, ktora chcesz wczytac: ');
Readln(n);
Randomize;
max:=0;
for i:=1 to n do begin
Writeln(' Wylosowana liczba nr: ',i,': ',Random(1000) );
if x>max then begin max:=x; end;
 Random(x);
 
end;
 
writeln('Najwieksza wartosc wczytanej liczby to ',max);
Readln;
end.

Ten kod w ogóle nie ma sensu - może najpierw zastanów się co trzeba zrobić krok po kroku, a później zacznij pisać?

Nie rozumiem po co drugi raz losujesz - przecież następna wylosowana liczba najprawdopodobniej nie będzie równa tej pierwszej, więc max będzie rózne od prawdziwych wyników; Poprawiłem Twój kod - działa jak należy:

var
  n, i, x, Max: Integer;
begin
  Write('Podaj ilosc liczb, ktora chcesz wczytac: ');
  Readln(n);

  Randomize;
  Max := 0;

  for I := 1 to n do
    begin
      x := Random(1000);
      Writeln(' Wylosowana liczba nr: ', i, ': ', x);

      if x > Max then
        Max := x;
    end;

  Writeln('Najwieksza wartosc wczytanej liczby to ', Max);
  Readln;
end.

Powinieneś był wylosowaną liczbę zapisywać do x, wyświetlić ją, następnie sprawdzić czy jest większa od maksimum i jeśli tak - wpisać ją do zmiennej max; No i ucz się formatowania kodu, bo wygląda tragicznie;

1 użytkowników online, w tym zalogowanych: 0, gości: 1