програма со списком

Ответить
maner0k
Сообщения: 3
Зарегистрирован: 13 апр 2009, 20:19

здрасЬте, мне нужна помощь в паскале. есть одна задачка которую я не могу написать. вот условия :
"Дано целое число n>1, за которым следует n вещественных чисел.
Напечатать порядковые номера тех чисел последовательности, которые
имеют наименьшую величину(выбрать для представления данных подходящую списковую структуру)."

список я умею создавать)))
type plist=^tlist;
tlist=record
info:byte;
next: plist;
end;

а как дальше развивать прогу я не знаю..... помогите
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Это называется "Найти минимум". Ищем по форуму соответствующие темы
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Хыиуду, для динамических списков возможно, что и не решали еще...
dr.Jekill
Сообщения: 526
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

Писал на скорую руку. Мне кажется можно попробовать следующее:
[syntax=pascal]
uses crt;
type plist=^tlist;
tlist=record
info:real;
next :p list
end;

var top,p :p list;
n,er,i,nom:integer;
s:string;
num,min,el:real;

procedure add(x:real);
begin
new(p);
p^.info:=x;
p^.next:=top;
top:=p;
end;

begin
clrscr;
write('Zadaite celoe chislo: ');
readln(n);
add(n);
clrscr;
writeln('Vvodite chilsla. V konce vvedite liubuiu bukvu: ');
i:=0;
repeat
i:=i+1;
readln(s);
val(s,num,er);
if er=0 then add(num);
if (i>1) and (num<=min) then
begin
min:=num;
nom:=i;
end
else if i=1 then
begin
min:=num;
nom:=1;
end;
until er<>0;
writeln('Element: ',min:5:2);
writeln(nom);
readln;
end.
[/syntax]
Нет религии выше истины
maner0k
Сообщения: 3
Зарегистрирован: 13 апр 2009, 20:19

dr.Jekill, спасибо даже за это, очень помог... спасибо еще раз!
Ответить