IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Помогите изменить программу!, Списки!
Greck
сообщение 24.06.2006 13:05
Сообщение #1





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Пашка

Репутация: -  0  +


Помогите пожалуйста по образцу этой программы выполнить следующие задания :
1. Написать программу поиска максимального элемента в линейном однонаправленном списке.
2. Написать программу поиска минимального элемента в линейном однонаправленном списке

Либо если незатруднит написать с нуля новую программу!

{
Spiski
}

program list;
uses crt;
type
typeofelement = integer;
spisok = ^knot;
knot = record
data: typeofelement; { Tip dannyh }
next: spisok; { Sledujushii element }
end;
var
esim: spisok; { Pervyi element }
p: spisok; { Ukazatel }
pp: spisok; { Ukazatel dlja vnesenija elementa v centr }
pnew: spisok;
key: integer;

{ dobavljaet pervyi element }
procedure add_first;
begin
clrscr;
esim:=nil; { Ochishhaem pervyi element }
new(p); { Vydeljaem pamjat }
writeln('Vvedite element:');
readln(p^.data); { Zapolnjaem element }
p^.next:=nil; { Ochishhaem sledujushhii element }
esim:=p;
writeln('Element dobavlen!');
readln;
end;

{ vyvodit spisok na ekran }
procedure show;
begin
clrscr;
{ Esli pervyi pust, to vyvodim soobshhenie }
if esim = nil then
writeln('Spisok pust!')
else
{ Esli ne pust, to vyvodim spisok na ekran }
begin
writeln('Spisok:');
p := esim;
while p <> nil do
begin
writeln(p^.data);
p := p^.next;
end;
end;
readln;
end;

{ dobavljaet ocherednoi element v konec }
procedure add_to_end;
begin
clrscr;
new(p);
writeln('Vvedite element:');
readln(p^.data);
p^.next:=nil; { Sledujushii element - NIL }
esim^.next:=p;
writeln('Element dobavlen!');
readln;
end;

{ dobavljaet ocherednoi element v nachalo }
procedure add_to_begin;
begin
clrscr;
new(p);
writeln('Vvedite element:');
readln(p^.data);
p^.next:=esim;
esim:=p;
writeln('Element dobavlen!');
readln;
end;

{ menu }
procedure menu;
begin
writeln('1 - Dobavlenie pervogo elementa');
writeln('2 - Dobavlenie ocherednogo elementa v konec');
writeln('3 - Dobavlenie ocherednogo elementa v nachalo');
writeln('4 - Vyvod spiska na ekran');
writeln('0 - Vyhod');
end;

{ glavnaja programma }
begin
repeat
clrscr;
menu;
readln(key);
case key of
1: add_first; { Dobavit pervyi element }
2: add_to_end; { Dobavit element v konec }
3: add_to_begin; { Dobavit element v nachalo }
4: show; { Vovesti spisok na ekran }
end;
until
key = 0;
end.



Заранее спасибо!!!!!!!!!!! cool.gif

Сообщение отредактировано: volvo - 3.11.2006 20:11
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Greck
сообщение 25.06.2006 6:33
Сообщение #2





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Пашка

Репутация: -  0  +


Нет так неполучается вовод идёт много раз а вот запоминает он только 1 элемент который был введён последним! А мне нужно чтоб например в начале можно былло ввести данные сколько элементов будет в списке а потом все эти елементы ввести и чтоб они все сохранились и из этого списка найти наименьший елемент а потом наибольший............. Тебе несложно будет написать полностью весь код программы ??? чтоб нече лишнего там небыло.... только позаданию... мне скоро это здавать а решения нету паподаю жестоко unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 25.06.2006 8:08
Сообщение #3


Гость






Цитата(Greck @ 25.06.2006 6:33) *
Нет так неполучается вовод идёт много раз а вот запоминает он только 1 элемент который был введён последним!
Да, придется заменить ту строчку, которая есть сейчас в процедуре add_first на вот такую:
p^.next:=esim; { Ochishhaem sledujushhii element }
... Тогда все работает.

Цитата(Greck @ 25.06.2006 6:33)
А мне нужно чтоб например в начале можно былло ввести данные сколько элементов будет в списке а потом все эти елементы ввести и чтоб они все сохранились
Значит, тебе не в списки, а в массивы... Список потому и является списком, что заранее ты не знаешь количества элементов.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 10:37
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"