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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 10)
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

 

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