Помощь - Поиск - Пользователи - Календарь
Полная версия: минимальные элементы массива
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Spaun
Подскажите пожалуйста, как со всего масива вывести 2 минимальных значения при условии того что значения задаются рэндомом
ЗЫ да забыл при этом их не сортируя. Заранее очень благодарен.
 
Program nomer1;
const N=10;
var
mas:array[1..N]of integer;
i,min: integer;
begin
     randomize;
     for i:=1 to N do
     begin
     mas[i]:=random(108)+1900;
     write(mas[i], '|');
     end;
writeln;
     min:=mas[i];
     for i:=2 to N do
     if mas[i] < min then
     begin
     min:= mas [i];
     writeln (min)
     end;
     end.


вроде так но чегото не получается.... помогите..
Vinsent90
Может так smile.gif
Program nomer1;
uses crt;
const N=10;
var
mas:array[1..N] of integer;
i,min1,min2: integer;
begin
     randomize;
     for i:=1 to N do
     begin
     mas[i]:=random(108)+1900;
     write(mas[i], '|');
     end;
writeln;
     min1:=mas[i];
     for i:=1 to N do
     if mas[i] < min1 then
     begin
     min1:= mas [i];
    end;
 min2:=mas[i];
     for i:=1 to N do
     if (mas[i]<min2) and (mas[i] >min1) then
     begin
     min2:= mas [i];
     end;
 writeln ('min1 = ',min1);
 writeln ('min2 = ',min2);
readkey;
clrscr;
end.

Spaun
Цитата(Vinsent90)
Может так smile.gif

да возможно но программа зацикливается...
спасибо что ответил но я уже нашел другой способ:

Program nomer1;
uses crt;
const N=10;
var
mas:array[1..N]of integer;
i,min,j,k,rab: integer;
begin
     randomize;
     for i:=1 to N do
     begin
     mas[i]:=random(108)+1900;
     end;for i:=1 to n do
     write (mas[i], '|');
     for j:=1 to n-1 do
     for i:=1 to n-1 do
     if mas[i]>mas[i+1] then
     begin
     rab:=mas[i+1];
     mas[i+1]:=mas[i];
     mas[i]:=rab;
     for k:=1 to n do
     end;
     writeln;
     writeln ('1 ', mas[1]);
     writeln ('2 ', mas[2]);
     end.


Client
Цитата
да возможно но программа зацикливается...
Интересно... Покажи на каком примере зацикливается
Цитата
при этом их не сортируя
if mas[i]>mas[i+1] then... // а вот тут что?
Spaun
За
Цитата
без сортировки
извиняюсь.
То что прога зацикливается это факт... могу скинуть фото.
а в том варианте что предложил Vinsent90 не всегда точно выводиться значение... есть фото...

Client
Цитата
могу скинуть фото
Давай
compiler
Цитата(Spaun @ 4.06.2008 19:58) *
То что прога зацикливается это факт... могу скинуть фото.
а в том варианте что предложил Vinsent90 не всегда точно выводиться значение... есть фото...
Ну.. зацикливание это приувеличинно.. Есть readkey, а как с ним поступать в ABC и как осуществляется операция ввода я не знаю, и эти вопросы сдесь, как я понимаю, не обсуждаются.. Просто убери его... Насчет ошибок в нахождении минимума, есть такой грешок, все кроется в троке min2:=mas[i]; , где присваивание происходит без проверки.. Да и вообще вышеупомянутая строка может начудить и не такое с НЕинициализированым i.
и еще, говорят, не плохо приводить тип результата от random
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.