Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ минимальные элементы массива

Автор: Spaun 4.06.2008 16:25

Подскажите пожалуйста, как со всего масива вывести 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 4.06.2008 23:15

Может так 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 4.06.2008 23:38

Цитата(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 4.06.2008 23:45

Цитата
да возможно но программа зацикливается...
Интересно... Покажи на каком примере зацикливается
Цитата
при этом их не сортируя
if mas[i]>mas[i+1] then... // а вот тут что?

Автор: Spaun 4.06.2008 23:58

За

Цитата
без сортировки
извиняюсь.
То что прога зацикливается это факт... могу скинуть фото.
а в том варианте что предложил Vinsent90 не всегда точно выводиться значение... есть фото...




Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: Client 5.06.2008 0:03

Цитата
могу скинуть фото
Давай

Автор: compiler 5.06.2008 0:21

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