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

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

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

 
 Ответить  Открыть новую тему 
> Срочно нужна программа для курсовой на линейные списки
Gizmo
сообщение 17.05.2006 18:05
Сообщение #1





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

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


Вот и сессионый петух клюнул в неподходящее время в неподходящее место,поэтому огромная просьба помочь в написании программы на создание и упорядоченние линейных списков.
1)Создать список упорядоченный по возрастанию ключей.Структура данных эл-та:фамилия,номер телефона.По номеру тел. звонящего абонента выдать его фамилию.
2)По заданной фамилии выдать телефоны всех однофамильцев.
Разницы нету что использовать :стеки,деки или очереди.
PS Уже писал на других форумах посвящённых этой тематики,им оказалось СЛАБО.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.05.2006 18:12
Сообщение #2


Гость






Ну, на форумы-то ты писал... А сам пробовал?

Полностью ЗА ТЕБЯ и у нас тебе решать не будут. Помочь - пожалуйста, но ты ХОТЯ БЫ начни !!!
 К началу страницы 
+ Ответить 
Gizmo
сообщение 17.05.2006 21:30
Сообщение #3





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

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


Программу работающую я написал ,токо использовал ссылки.Декан не принял,а вот про линейные списки я ноль.Если не саму программу ,то хотя бы дайте ссылку на сайт где можно найти эту прогу. wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Gizmo
сообщение 22.05.2006 18:58
Сообщение #4





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

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


Я почти сделал,но остались недоработки.
Ниже привожу текст программы :
program z1; 
uses crt;
var chel:record
fam:string;
nom:longint;
end;
x:string;
fa:text;
kol,i:byte;

begin
clrscr;
assign(fa,'a.txt');
{rewrite(fa);
writeln('vvedite kol-vo dannuh');
readln(kol);
for i:=1 to kol do begin
with chel do begin
writeln('vvedite familiyu');
readln(fam);
writeln(fa,fam);
writeln('vvedite nomer');
readln(nom);
writeln(fa,nom);
end;
end;
close(fa);}
reset(fa);
readln(x);
while not eof(fa) do with chel do begin
readln(fa,fam);
readln(fa,nom);
if x=fam then writeln(nom);
end;
close(fa);
end.

Токо осталось добавить блок в котором будет по заданной фамилии выводить тел. всех однофамильцев.Программа токо написанна по-этому возможны ошибки.И если кто знает как можно упорядочить списки по возрастанию.
PS курсач сдаю 25 мая

Сообщение отредактировано: volvo - 3.11.2006 22:06
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 22.05.2006 19:06
Сообщение #5


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Так, ну во первых у тебя какая-то ерунда ... ты уточни тебе список записей нужен или массив ?


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Gizmo
сообщение 22.05.2006 19:23
Сообщение #6





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

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


Цитата(klem4 @ 22.05.2006 20:06) *

Так, ну во первых у тебя какая-то ерунда ... ты уточни тебе список записей нужен или массив ?

Нужен линейный список,а данные ввожу сначала в файл,а потом из файла перебираю
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 22.05.2006 19:35
Сообщение #7


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


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

в первой строке файла храни кол-во элементов (n), а далее например n*2 строк

имя1
номер1
имя2
номер2
...

читай их и пиши в список.

uses crt;

const

max = 10;

type

TData = record
name, number : string;
end;

PItem = ^TItem;

TItem = record
data : TData;
next : PItem;
end;

procedure InputData(var DB : PItem; n : integer);
var
newItem : PItem;
name, number : string;

begin

DB := nil;

while (n > 0) do begin

writeln;
write('Name = '); readln(name);
write('Number = '); readln(number);

New(newItem);
newItem^.next := DB;
newItem^.data.name := name;
newItem^.data.number := number;

DB := newItem;

dec(n);
end;
end;

procedure PrintData(var DB : PItem; n : integer);
var
item : PItem;
begin
item := DB;
while (item <> nil) do begin
writeln;
writeln(item^.data.name);
writeln(item^.data.number);
item := item^.next;
end;
end;

var

n : integer;

DataBase : PItem;
begin

clrscr;

write('n = '); readln(n);

InputData(DataBase, n);

writeln;

PrintData(DataBase, n);
readln;
end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Gizmo
сообщение 22.05.2006 22:41
Сообщение #8





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

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


Одна проблема ,кто нибудь знает как упорядочить список по возрастанию ключей?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 22.05.2006 22:53
Сообщение #9


Гость






сортировка списка простыми вставками

чем не устраивает? Правда, подправить малость придется, чтоб сортировало по нужному тебе ключу...
 К началу страницы 
+ Ответить 
Gizmo
сообщение 23.05.2006 17:23
Сообщение #10





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

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


Сликом геморройно переделывать эту прогу для моей(я уже писал что в списках я ноль).Мне не вся прога нужна а токо кусок чтобы сортировал ключи по возрастанию(по фамилии сортируем).Но всё равно Thanks
Если у кого есть этот кусок проги ,просьба скинуть.
PS А чё с моим вводом данных в файл,он правильный или нет?У меня прога пашет,но здесь писали типа это ерунда. wacko.gif

Сообщение отредактировано: Gizmo - 23.05.2006 18:02
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 23.05.2006 22:53
Сообщение #11


Гость






Цитата(Gizmo @ 23.05.2006 17:23)
Сликом геморройно переделывать эту прогу для моей(я уже писал что в списках я ноль). Мне не вся прога нужна а токо кусок чтобы сортировал ключи по возрастанию(по фамилии сортируем).
Ну я же написАл, что исправлений будет очень мало:

С учетом тех типов, которые привел в программе klem4, функция сортировки будет выглядеть так:
function insert_sort(L: pitem): pitem;

function insert(a: pitem; L: pitem): pitem;
begin
a^.next := nil;
if l = nil then insert := a
else
if a^.data.name < L^.data.name then begin { <--- Это - единственное исправление !!! }
a^.next := L; insert := a;
end
else begin
L^.next := insert(a, L^.next);
insert := L;
end;
end;

begin
if L = nil then insert_sort := nil
else insert_sort := insert(L, insert_sort(L^.next));
end;


P.S. Не забудь как она вызывается !!!
DataBase := insert_sort(DataBase);
, и никак иначе...
 К началу страницы 
+ Ответить 

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

 



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