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

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

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

> помоги пожалуста со списками, очень надо
serega204
сообщение 8.10.2009 17:05
Сообщение #1


Новичок
*

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

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


Помогите написать программу. Реализовать два однонаправленных линейных списка, элементы в которых символьного типа. Сформировать список из элементов, которые входят только в один из списков.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 13)
amega
сообщение 8.10.2009 19:43
Сообщение #2


?
***

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

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


что такое указатель и динамическая память вам знакома?
если да, то с чем имеено проблемы?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
serega204
сообщение 8.10.2009 21:42
Сообщение #3


Новичок
*

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

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


мне это тяжело...очень...напишите прогу плиз....плиз
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
RathaR
сообщение 8.10.2009 21:49
Сообщение #4


Знаток
****

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

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


Цитата(serega204 @ 8.10.2009 21:42) *

мне это тяжело...очень...напишите прогу плиз....плиз

amega вообщето хотел узнать что именно ты знаеш в области програмирования, от чего мы можем отталкиваться помогая тебе, ибо если ты здаш програму написаную с использованием динамических структур например, а вы их еще не учили, то нетрудно догадаться что тебе скажет преподаватель... мы ведь не знаем что знаеш ты smile.gif


--------------------
Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик!
Я - системный аналитик!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
serega204
сообщение 8.10.2009 22:44
Сообщение #5


Новичок
*

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

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


сейчас мы изучили линейные динамические структуры...уже была лабораторка, но в этом я почти не шарю...как раз я знаю...к этому относится списки, очереди и стеки...а сдавать надо уже в понедельник....поэтому порошу помощи....и буду бесценно благодарен ВАМ....преподавателю тоже много вопросов задавал....поэтому в проге самой я разберусь...СПАСИБО
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 8.10.2009 22:48
Сообщение #6


Гость






Цитата
.напишите прогу плиз....плиз
Вроде бы задание - твое, а не наше, поэтому и "прогу" писать тебе...Начинай, если что не получится - поправим... А так, чтобы с нуля и ты мог скопировать и сдать - смысла не вижу...
 К началу страницы 
+ Ответить 
amega
сообщение 9.10.2009 8:43
Сообщение #7


?
***

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

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


Цитата
amega вообщето хотел узнать что именно ты знаеш в области програмирования, от чего мы можем отталкиваться помогая тебе, ибо если ты здаш програму написаную с использованием динамических структур например, а вы их еще не учили, то нетрудно догадаться что тебе скажет преподаватель... мы ведь не знаем что знаеш ты


хехе, может ето обращение не ко мне а к serega204

я так понял список еще должен быть отсортирован?

нут вот тебе начало( маленький толчок)

type

TPRec=^Trec;
TRec=record
ch:char;
next:TPRec;
end;

var
start1 : TPRec;
start2 : TPRec;
start3 : TPRec;


procedure addtolist(var start:TPRec, newel:TPRec);
begin
{процедру реализует добавление елемента.
Получает старт по вару, поскольку новый елемент может стать в начало списка,
и указатель на новый елемент}
end;

procedure newlist(st1:TPRec; st2:TPRec; var st3:TPRec );
begin
{слияние свух списков в 1 по заданому критерию}
end;


ну вот, 2 основные процедуры которые нужно написать smile.gif

Сообщение отредактировано: amega - 9.10.2009 8:44
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
serega204
сообщение 9.10.2009 8:55
Сообщение #8


Новичок
*

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

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


большое спасибо....но мне там не нужно слияние мы не изучали ещё сортировки....там просто как-то без них нужно....буду очень благодарен если напишите

Добавлено через 7 мин.
я вам добавлю...прогу, а вы посмотрите пожалуйста, что не так....я всё сам писать стараюсь, только мало чего из этого получается


Program Lr1_2; Uses CRT;
Type
Point = ^item;
item = Record
Spisok_1 : Char;
Spisok_2 : Char;
next : Point;
End;
Var r : Point; n : char;
Procedure Form (First:point);
Var p : char;
Begin
First := nil;
While n <> ' ' do Begin
New®;
r^.Next := First;
r^.Spisok_1 := n;
First := r;
exit;
end;
p := n;
end ;
Procedure Print (first:point);
Begin
r := first;
While r<> nil do begin
Writeln ('slovo = ', r^.Spisok_1);
r := r^.next;
end;
end;
Procedure Search (first : point; x : char; var q : point);
var ok : boolean;
begin
r := first;
ok := true;
While (r <> nil) and ok do
if r^.Spisok_1 = x then ok := false
else r := r^.Next;
q := r;
end;
BEGIN clrscr;
Assign (Output, ''); Rewrite (Output);
Writeln ('First Spisok');
Readln;
Form ®;
Writeln ('Second Spisok');
Readln;
Print ®;
Writeln ('Eltmenti, kotorie vhodiat v odin iz spiskov');
{Form ®; }
{ Print ®;}
Search (r, n, r);
{Dispose®; } Close(Output);
END.

и посмотрите пожалуйста что не так
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 9.10.2009 10:44
Сообщение #9


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(amega @ 9.10.2009 9:43) *
хехе, может ето обращение не ко мне а к serega204
а с чего ты решил, что оно к тебе, амега? blink.gif smile.gif


М
serega204, используй тэги!! Правила раздела, п.2, и Правила Форума, п.5
Нечитаемая же программа.. Как, ты думаешь, тебе будут помогать?..





--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
serega204
сообщение 9.10.2009 12:52
Сообщение #10


Новичок
*

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

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


посмотрите плиз...процедуру New_list и что там не так!!! СПАСИБО


Прикрепленные файлы
Прикрепленный файл  1_1.TXT ( 1.19 килобайт ) Кол-во скачиваний: 173
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
serega204
сообщение 9.10.2009 13:44
Сообщение #11


Новичок
*

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

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



[Procedure New_list (L1, L2 : Tptr);]
[Var pl_1, pl_2 : tptr;]
[Begin]
[pl_1 := L1; pl_2 := L2;]
[While (pl_1 <> nil) and (pl_2 <> nil) do]
[Begin]
[ If L1^.inf = pl_2^.inf then]
[ Begin]
[ pl_1 := L1;]
[ While (pl_1 <> nil) and (pl_2 <> nil) and (pl_1^.inf = pl_2^.inf) do]
[ Begin]
[ pl_1 := pl_1^.next;]
[ pl_2 := pl_2^.next;]
[ End;]
[ End]
[ else pl_2 := pl_2^.next;]
[End;]
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
amega
сообщение 9.10.2009 18:32
Сообщение #12


?
***

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

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


Цитата
а с чего ты решил, что оно к тебе, амега?

чет я ступил blink.gif blink.gif

и так пишем процедуру добавления

procedure addtolist(var start:TPRec, newel:TPRec);
var
wp,pp:TPRec;
begin
pp:=nil;
wp:=start;
{ищем место вставки нашего елемента}
while (wp<>nil) and (newel^.ch > Wp^.ch) do
begin
pp:=wp;
wp:=wp^.next;
end;
{проверям указатель пп(пред поинт), если он = нил то єто значит что у нас нет элементов в списке,
либо вставляемый элемент меньше первого}
if pp=nil then
begin
newel^.next:=start;
start:=newel;
end
else
begin
newel^.next:=pp^.next;
pp^.next:=newel;
end;
end;




как видим нет никаких процедур сортировки!

да в списке могут бить повторяющие елементы?

Сообщение отредактировано: amega - 9.10.2009 18:35
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
serega204
сообщение 9.10.2009 22:00
Сообщение #13


Новичок
*

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

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


спасибо...большое....если что там не так будет я потом скину прогу (в задании про повторяющиеся элементы ничего не скказано)

Добавлено через 13 мин.
там я много чего поправил, из-за того что я начал ваше сравнивать и своё набранное....там процедура удаления списка не работает и задание не выпоняется....посмотрите пожалуйста в чём я там не прав

Прикрепленный файл  3_1.TXT ( 1.24 килобайт ) Кол-во скачиваний: 294




Добавлено через 36 сек.
Цитата(serega204 @ 9.10.2009 23:00) *

спасибо...большое....если что там не так будет я потом скину прогу (в задании про повторяющиеся элементы ничего не скказано)

Добавлено через 13 мин.
там я много чего поправил, из-за того что я начал ваше сравнивать и своё набранное....там процедура удаления списка не работает и задание не выпоняется....посмотрите пожалуйста в чём я там не прав

Прикрепленный файл  3_1.TXT ( 1.24 килобайт ) Кол-во скачиваний: 294


Program spiski; Uses Crt;
Type
Tinf = Char;
Tptr = ^Tlist;
Tlist = record
inf : Tinf;
next : Tptr;
end;
Var A, B : Tptr;
n : char;

Procedure Create_list (Var L : Tptr);
Var q, p : Tptr; e : Tinf;
Begin L := nil;
while not eoln do Begin
New(p);
Read(e);
p^.inf := e;
p^.next := nil;
if L = nil then L := p;
q := p;
end;
Readln
end;

Procedure New_list (Var L1, L2 : Tptr);
Var pl_1, pl_2 : Tptr;
Begin
pl_1 := nil; pl_2 := L1;
While (pl_1 <> nil) and (L2^.inf > pl_1^.inf) do
pl_1 := pl_2;
pl_2 := pl_2^.next;
If (pl_1 = nil) then Begin
L2^.next := L1;
L1 := L2;
end
else Begin
L2^.next := pl_1^.next;
pl_1^.next := L2;
Writeln (pl_1^.inf);
end;
end;

Procedure Delete_list (Var h : Tptr);
Var p : Tptr;
Begin
While h <> nil do
Begin
p := h;
h := h^.next;
Dispose (p);
end;
end;

BEGIN Clrscr;
Writeln ('Enter spisok A');
Create_list(A);
Writeln ('Enter spisok B');
Create_list(B);
Writeln ('Okonchatelniy spisok C');
New_List(A, B);
Delete_list (A); Delete_list(B);
readln;
END.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
serega204
сообщение 10.10.2009 14:45
Сообщение #14


Новичок
*

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

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


посмотрите пожалуйста верхнюю прогу и скажите что здесь не так....спасибо большое
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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