Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
 
evilr2l
0 / 0 / 3
Регистрация: 20.10.2013
Сообщений: 10
1

Некорректная работа

07.12.2013, 23:35. Просмотров 238. Ответов 0
Метки нет (Все метки)

Доброго времени суток.Такая проблема,создаю список из н человек загоняю информацию,сортировка и запись и чтение в файл работают,но не корректно из-за того,что при попытки вывести основной список выдает только последнюю запись.Прошу хелп!!!
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
Program spisrealesered1;
Uses System.SysUtils;
type data=record
  Familiya,Name,pred1,pred2:string[100];
      nomGrup,kurs,mark1,mark2: integer;
 
end;
type ff=file of data;
   pList = ^stud;
   Stud = record
      d:data;
      next:pList;
   end;
 
 var
 list,start:plist;
 n,i,g:integer;
procedure vvodspiska( var l:plist);
var
  list:pList;
begin
 Write('Количество студентов: ');
 readln(n);
 For i:=1 to n do
 begin
    New(l);
    Write(i,' Фамилия: ');
    readln(l^.d.Familiya);
    Write(' Имя: ');
    readln(l^.d.Name);
    Write('курс: ');
    readln(l^.d.kurs);
    Write('№ группы: ');
    readln(l^.d.nomGrup);
    write(' Предмет №1: ');
    readln(l^.d.pred1);
    write(' оценка: ');
    readln(l^.d.mark1);
    write(' Предмет №2: ');
    readln(l^.d.pred2);
    write(' оценка№2: ');
    readln(l^.d.mark2 );
    l^.next := nil;
 end;
 end;
 procedure sort( list:plist);
 begin
    while list <> nil do
    begin
    If (list^.d.mark1= 5) and (list^.d.mark2=5)  then
     writeln(list^.d.Familiya,' ', list^.d.Name,' ',list^.d.kurs,' ', list^.d.nomGrup,' ', list^.d.pred1,' ',list^.d.mark1,' ',list^.d.pred2,' ',list^.d.mark2);
     list := list^.next;
    end;
    readln;
 end;
 procedure outputosn(var list:plist);
 var
    lp:plist;
 begin
    lp := list;
    while lp <> nil do
    begin
     writeln(lp^.d.Familiya,' ', lp^.d.Name,' ',lp^.d.kurs,' ', lp^.d.nomGrup,' ', lp^.d.pred1,' ',lp^.d.mark1,' ',lp^.d.pred2,' ',lp^.d.mark2);
     lp := lp^.next;
    end;
 end;
 function fname:string;
var s:string;
begin write('Filename=');
readln(s);
fname:=s;
end;
procedure file_out(var list:Plist;fname:string );
var f:ff;lp:plist;
begin
assignfile(f,fname);
rewrite (f);
lp:=list;
 
  while lp<>nil do
  begin
    write(f,lp^.d);
    lp:=lp^.next;
  end;
closefile(f);
writeln('Файл записан!');
end;
Procedure file_in(var list:plist;fname:string);
var f:ff;
lp:plist;
begin
assignfile(f,fname);
writeln;
{$I-}
reset(f);
{$I+}
if ioresult <> 0 then begin writeln('файл не найден ');
exit;
end;
new (list);
lp := list;
while not (eof(f)) do
begin
new (lp^.next);
lp := lp^.next;
read(f,lp^.d);
end;
close(f);
lp := list;
list := list^.next;
//dispose (lp);
outputosn(list);
end;
 begin
 repeat
  writeln('1 ввод списка');
  writeln('2 сортировка');
  writeln('3 вывод основного списка');
  writeln('4 запись в файл ');
  writeln('5 чтение файла');
  writeln('0 выход');
  readln(g);
  case g of
  1:vvodspiska(list);
  2:sort(list);
  3:outputosn(list);
  4:file_out(list,fname);
  5:file_in(list,fname);
  end;
 until g=0;
 readln;
 end.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2013, 23:35
Ответы с готовыми решениями:

Fp ubuntu некорректная работа
ОС Ububntu 11.04. Недавно установил freepascal через терминал командой apt-get install. Набрал fp и...

Некорректная работа Free Pascal в windows7 64bit
Не работает нормально модули crt и graph в free pascal ,Windows 7 64 bit.Например ,если написать...

Работа с файлом (корректный код, некорректная работа программы)
Для записи и чтения файла использую разные функции. По одиночке они работают нормально. Вставляю...

Работа с INI: некорректная работа пользовательской функции
Ранее нашел код для работы с ini-файлами: public class INI { ///...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2013, 23:35

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Некорректная работа
Подскажите пожалуйста. Поставил win10, как-то сразу криво пошла установка anaconda. Запуск только...

Некорректная работа
Здравствуйте. Есть триггер который удаляет запись и сохраняет ее в другую таблицу.(из таблицы билет...

Некорректная работа
Почему когда ввожу численные значения (1.2.3.4) все столбцы ровные и все корректно отображается ,но...


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

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

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