Форум программистов, компьютерный форум, киберфорум
Наши страницы

Turbo Pascal

Войти
Регистрация
Восстановить пароль
 
Erato
20 / 8 / 3
Регистрация: 22.10.2012
Сообщений: 73
#1

Динамические структуры(списки) - Turbo Pascal

13.01.2013, 13:13. Просмотров 302. Ответов 0
Метки нет (Все метки)

Дан файл(фамилия,имя, группа, год рождения, средний бал). Сформировать динамическую структуру-связанный список и выполнить обработку (все студенты младше 20 лет)....
Я впринципе часть написала, только не пойму, где ошибки(. Заранее благодарю.....
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
program dynamic_structures;
type
    student=record
            fam,name,group:string[20];
            year:integer;
            sr:real;
            end;
    pstud=^dstud;
    dstud=record
          s:student;
          p:pstud
          end;
    var stud:student;
        f,g:text;
        st:string;
{ÂñïîìГ*ГЈГ*òåëüГ*Г*Гї ïðîöåäóðГ* Г°Г*çäåëåГ*ГЁГї ñòðîêè}
procedure get_string(st:string; var s:student);
var kod:integer;
BEGIN
     with s do
          begin
               fam:=copy(st,1,pos('',st)-1);
               delete(st,1,pos('',st)-1);
               name:=copy(st,1,pos('',st)-1);
               delete(st,1,pos('',st)-1);
               group:=copy(st,1,pos('',st)-1);
               delete(st,1,pos('',st)-1);
               val(copy(st,1,pos('',st)-1),year,kod);
               delete(st,1,pos('',st));
               val(st,sr,kod)
          end;
END;
{ÂïîìîãГ*òåëüГ*Г*Гї ïðîöåäóðГ* äëÿ âûâîäГ* Г§Г*ãîëîâêГ* Гў ГґГ*éë}
procedure put_header(header:string);
Begin
     writeln(g,header);
     writeln(g,'|---------------------------------');
     writeln(g,'|Sename|Name | Group | year | bal|');
     writeln(g,'|---------------------------------');
end;
{ÂïîìîãГ*òåëüГ*Г*Гї ïðîöåäóðГ* äëÿ âûâîäГ* ñòðîêè Гў ГґГ*éë}
procedure put_string(s:student);
BEGIN
     with s do
     writeln(g,'|',fam:11,'|',name:9,'|',group:10,'|',year:6,'|',sr:6:1,'|');
END;
{ÂñïîìГ*ГЈГ*òåëüГ*Г*Гї ïðîöåäóðГ* äëÿ âûâîäГ* ïîñëåäГ*ГЁГµ Г¤Г*Г*Г*ûõ Гў ГґГ*éë}
procedure put_sub;
BEGIN
     writeln(g.'|----------------------------------------------');
     writeln(g);
END;
{ÏðîöåäóðГ* äîáГ*âëåГ*ГЁГї Г*îâîãî ýëåìåГ*ГІГ* Гў îäГ*îñâÿçГ*ûé ñïèñîê}
procedure AddElem(var spis1:List;znach1:student);
var
  tmp:pstud;
begin
  if spis1=nil then {Ïðîâåðÿåì Г*ГҐ ГЇГіГ±ГІ ëè ñïèñîê, åñëè ГЇГіГ±ГІ, ГІГ® }
  begin
      GetMem(spis1,sizeof(dstud));  {ñîçäГ*ВёГ¬ ГҐГЈГ® ïåðâûé ýëåìåГ*ГІ}
    tmp:=spis1;
  end
  else {Гў ñëó÷Г*ГҐ åñëè ñïèñîê Г*ГҐ ГЇГіГ±ГІ}
  begin
    tmp:=spis1;
   while tmp^.p<>nil do
      tmp:=tmp^.p; {Г±ГІГ*ГўГЁГ¬ tmp Г*Г* ïîñëåäГ*ГЁГ© ýëåìåГ*ГІ Г±ГЇГЁГ±ГЄГ*}
    GetMem(tmp^.p,sizeof(dstud)); {ñîçäГ*ВёГ¬ ñëåäóþùèé ýëåìåГ*ГІ}
    tmp:=tmp^.p;   {ïåðåГ*îñèì tmp Г*Г* Г*îâûé ýëåìåГ*ГІ}
  end;
  tmp^.p:=nil; {Г§Г*Г*óëÿåì ГіГЄГ*Г§Г*òåëü}
  tmp^.s:=znach1; {Г§Г*Г*îñèì Г§Г*Г*Г·ГҐГ*ГЁГҐ}
end;
{ïðîöåäóðГ* ГЇГҐГ·Г*ГІГЁ Г±ГЇГЁГ±ГЄГ*}
procedure Print(spis1:pstud);
begin
  if spis1=nil then
  begin
    writeln();
    exit;
  end;
  while spis1<>nil do
  begin
    Write(spis1^.s, ' ');
    spis1:=spis1^.p
  end;
end;
{ïðîöåäóðГ* ГіГ¤Г*ëåГ*ГЁГї Г±ГЇГЁГ±ГЄГ*}
Procedure FreeStek(spis1:pstud);
var
  tmp:pstud;
begin
  while spis1<>nil do
  begin
    tmp:=spis1;
    spis1:=spis1^.p;
    FreeMem(tmp,SizeOf(dstud));
  end;
end;
{ïðîöåäóðГ* ïîèñêГ* Гў Г±ГЇГЁГ±ГЄГҐ}
Function SearchElemZnach(spis1:pstud;znach1:dstud):pstud;
begin
  if year<1992 then
    while (Spis1<>nil) and (znach1<>spis1^.s) do
      spis1:=spis1^.p;
  SearchElemZnach:=spis1;
end;
{ГЈГ«Г*ГўГ*Г*Гї ïðîãðГ*ììГ*}
BEGIN
   assign(g,'resukt.txt');
   {$i-}append(g); {$i+} if ioresult <>0 then rewrite(g);
   assign(f,'data.txt');
   close(f);close(g); writeln('OK')
   end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2013, 13:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамические структуры(списки) (Turbo Pascal):

Динамические структуры данных (списки, очереди, стеки, деревья) - Turbo Pascal
создать программу на языке Паскаль для реализации операций над одной из структур данных: - Однонаправленный список -...

Динамические структуры данных (списки, очереди, стеки, деревья) - Turbo Pascal
Решил я начать писать мини FAQ по моим любимым Динамическим структурам данных. Все программы я пишу на Turbo Pascal 7.0 версии, не...

Динамические структуры. Списки: Составить программу, которая переворачивает список L - Turbo Pascal
Начали проходить динамические структуры и я ничего не понимаю. Какие-то списки, как-то их надо заполнять. В общем прошу помочь. Вот задача:...

Динамические списки - Turbo Pascal
1)задача. процедуры: • создания динамического линейного списка, выбирая числа из текстового файла; • вывода динамического линейного...

Динамические списки, процедура удаления последнего повторяющегося числа - Turbo Pascal
доброго времени суток, нужна процедура, которая сравнивает числа и удаляет последнее. например: 45 4 6 3 4 7 5 4 3 6, то должно...

Динамические структуры данных - Turbo Pascal
Помогите решить, пожалуйста. Задача: В двусвязных списках каждый узел содержит два указателя – на предыдущий и последующий узлы....

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2013, 13:13
Привет! Вот еще темы с ответами:

Динамические объекты сложной структуры - Turbo Pascal
Сформировать двунаправленный кольцевой список, вывести его на печать, удалить N последних элементов.

Динамические структуры данных. Pascal - Turbo Pascal
Дан адрес P1 записи типа TNode, содержащей поле Data (целого типа) и поле Next (типа PNode — указателя на TNode). Эта запись связана ...

Динамические списки. Процедура / функция определяет, сколько раз входит элемент в список - Turbo Pascal
вечер добрый, всем. нужна процедурка или функция, которая определяет, сколько раз входит элемент Е в список L и каждое значение Е заменяет...

Динамические структуры данных - слова по алфавиту - Turbo Pascal
Нужна помощь! Не знаю как даже начать... В общем, само задание: Дана последовательность слов, длиной от 1 до 6, разделённые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.