Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2009, 22:09   #1
innaa639
Пользователь
 
Аватар для innaa639
 
Регистрация: 13.11.2008
Сообщений: 80
Стрелка

Построить односвязный список, в котором каждый элемент содержит поле связи с предыдущим или следующим элементом списка. Определить число узлов списка. Найти узел с заданным значением и напечатать его порядковый номер.

Только пожалуйста напишите обьяснение немного как ее проверять на работоспособность

Последний раз редактировалось Stilet; 02.03.2009 в 08:12.
innaa639 вне форума Ответить с цитированием
Старый 01.03.2009, 08:39   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) на каком языке то надо?
2) обратите внимание внизу на "Похожие темы" и/или воспользуйтесь поиском - тут подобные задачи решались не один раз!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.03.2009, 14:55   #3
innaa639
Пользователь
 
Аватар для innaa639
 
Регистрация: 13.11.2008
Сообщений: 80
По умолчанию ОТВЕТ

НА АНГЛИЙСКОМ ИЛИ НА РУССКОМ

From Stilet:Прекращаем прикалываться вопрошая о помоши. Язык программирования какой?

Последний раз редактировалось Stilet; 02.03.2009 в 08:13.
innaa639 вне форума Ответить с цитированием
Старый 02.03.2009, 00:32   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от innaa639
НА АНГЛИЙСКОМ ИЛИ НА РУССКОМ
Вот пример на РУССКОМ. Но я не очень умею реализовывать списки на этом языке. А еще у меня нет для него компилятора
Код:
СПИСОК
 НАЧ
 значение : ЧИСЛО
 след : УКАЗАТЕЛЬ НА СПИСОК
 КОН

ФУНКЦИЯ добав(тек : УКАЗАТЕЛЬ НА СПИСОК) : УКАЗАТЕЛЬ НА СПИСОК
 НАЧ
 нов : УКАЗАТЕЛЬ НА СПИСОК
 нов->значение = тек->значение + 1
 тек->след = нов
 нов->след = НИЧЕГО
 ВЕРНУТЬ нов
 КОН

ГЛАВНАЯ ФУНКЦИЯ
спис : УКАЗАТЕЛЬ НА СПИСОК
еще_один_спис : УКАЗАТЕЛЬ НА СПИСОК
спис->значение=0
спис->след = НИЧЕГО
еще_один_спис = спис

спис = добав(спис)
спис = добав(спис)
спис = добав(спис)

колич_элем : ЧИСЛО
колич_элем = 0

спис = еще_один_спис
ПОКА (спис != НИЧЕГО)
 НАЧ
 колич_элем = колич_элем + 1
 ПОКАЗАТЬ(спис->значение)
 спис = спис->след
 КОН

ПОКАЗАТЬ(колич_элем)	
КОНЕЦ ГЛАВНОЙ ФУНКЦИИ
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 02.03.2009, 00:57   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Sazary, +100 :D

Мы с Вами очень похоже мыслим — я хотел сделать тоже самое (написать программу "по русски"), но мне стало лень. Да и не все оценят шутку... :D
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.03.2009, 00:12   #6
innaa639
Пользователь
 
Аватар для innaa639
 
Регистрация: 13.11.2008
Сообщений: 80
По умолчанию

на Паскале, я просто думала что в этом разделе только он,когда я писала прошлую задачу здесь,то меня не просили это уточнять,а сразу написали
innaa639 вне форума Ответить с цитированием
Старый 03.03.2009, 01:01   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Разбирайтесь. И в следующий раз задавайте конкретные вопросы.

Код:
uses crt;
type
pspis = ^spis;
spis = record
n : integer;
next : pspis
end;

var
p,t : pspis;
cnt : integer;

function spadd(tek : pspis) : pspis;
 var newsp : pspis;
 begin
 new(newsp);
 newsp^.n := tek^.n+1;
 tek^.next := newsp;
 newsp^.next := nil;
 spadd := newsp;
 end;

procedure delsp(tek : pspis);
 begin
 dispose(tek);
 end;

begin
clrscr;
cnt := 0;
new(p);
p^.n := 0;
p^.next := nil;
t := p;

p := spadd(p);
p := spadd(p);
p := spadd(p);
p:=t;
while p <>nil do
 begin
 inc(cnt);
 writeln(p^.n);
 t := p;
 p := p^.next;
 delsp(t);
 end;
writeln('cnt= ',cnt);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.03.2009, 02:01   #8
innaa639
Пользователь
 
Аватар для innaa639
 
Регистрация: 13.11.2008
Сообщений: 80
По умолчанию

Огромное спасибо,но где беруться числа 0 1 2 3 и как их поменять при запуске программы и где порядковый номер показывает
innaa639 вне форума Ответить с цитированием
Старый 03.03.2009, 02:08   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Здесь:
Код:
new(p);
p^.n := 0;
p^.next := nil;
создается первый элемент. Значение n = 0.

Затем создаются еще 3 элемента:
Код:
p := spadd(p);
p := spadd(p);
p := spadd(p);
В функции spadd атрибуту n нового элемента присваивается значение n предыдущего элемента + 1:
Код:
newsp^.n := tek^.n+1;
Фактически это и есть порядковый номер (отсчет ведется с нуля).

После всего этого запускается цикл, в котором мы, начиная с первого элемента, проходим по всем остальным, увеличивая счетчик (cnt), выводя значение n и освобождая память для пройденного элемента.

Думаю, этих слов достаточно, чтобы вы могли изменить нужные вам числа.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.03.2009, 02:19   #10
innaa639
Пользователь
 
Аватар для innaa639
 
Регистрация: 13.11.2008
Сообщений: 80
По умолчанию

Огромное тебе или вам СПАСИБО!!!!!!!!!
innaa639 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на линейные списки Ser Паскаль, Turbo Pascal, PascalABC.NET 8 06.05.2011 20:22
Задача: списки/сортировка uranus Паскаль, Turbo Pascal, PascalABC.NET 4 22.05.2007 14:34