Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
63 / 63 / 77
Регистрация: 22.11.2012
Сообщений: 241
Записей в блоге: 1
1

Ошибка при занесении записи в список

03.06.2013, 14:08. Показов 528. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет! Вобщем есть программа, которая считывает информацию об учащихся(фамилия, имя, оценки по предметам, средний балл) и заносит её в динамический однонаправленный список. Компилятор как будто пропускае строку, в которой я считываю ФИ(строка №74 и №91). Компилятор FPC 2.6.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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
uses CRT;
 
Type
  ucaz=^uchenik;
  mystrtype=string[30];
  fio=record
    f,
    i:mystrtype;
  end;
  mark=record
    marks:array of byte;
    sr:real;
  end;
  inf=record
    fio:fio;
    mark:mark;
  end;
  uchenik=record
    inf:inf;
    next:ucaz;
  end;
 
Const
  menu_n=3;
  menu:array[1..menu_n] of string=('добавление ученика в список;',
                                   'удаление ученика из списка;',
                                  // 'составление рейтинга учеников класса;',
                                   'вывод списка учеников на экран;');
                                  // 'составление рейтинга класса;',
                                  // 'показ графического рейтинга класса.');
 
Var
  x, head:ucaz;
  key, mark_n:byte;
Procedure print_menu;
var
  i:integer;
Begin
  writeln('Возможны следуйщие действия:');
  for i:=1 to menu_n do
    writeln(i,':',menu[i]);
  writeln('0:выход из программы.');
  writeln('Ваш выбор?');
End;
 
Procedure cut_str(s:string; var s1:mystrtype; var s2:mystrtype);
Begin
  s1:=copy(s, 1, pos(' ', s)-1);
  delete(s, 1, length(s1)+1);
  s2:=s;
End;
 
Procedure press_to_cont;
var a:char;
Begin
  writeln('Нажмите любую клавишу для продолжения работы.');
  a:=readkey;
End;
 
Procedure input_arm;
var
  x:ucaz;
  sum:integer;
  i:integer;
  s:string;
  a:char;
Begin
  clrscr;
  if head=nil then begin
    new(x);
    head:=x;
    writeln('Введите фамилию и имя учащегося.');
    write('->');
    read(s);
    cut_str(s, x^.inf.fio.f, x^.inf.fio.i);
    writeln('Введите через пробел ',mark_n,' оценок учащегося.');
    setlength(x^.inf.mark.marks, mark_n);
    sum:=0;
    for i:=0 to mark_n-1 do begin
      read(x^.inf.mark.marks[i]);
      sum:=sum+x^.inf.mark.marks[i];
    end;
    x^.inf.mark.sr:=sum/mark_n;
    x^.next:=nil;
  end
  else begin
    new(x^.next);
    x:=x^.next;
    writeln('Введите фамилию и имя учащегося.');
    write('->');
    read(s);
    cut_str(s, x^.inf.fio.f, x^.inf.fio.i);
    writeln('Введите через пробел ',mark_n,' оценок учащегося.');
    setlength(x^.inf.mark.marks, mark_n);
    sum:=0;
    for i:=0 to mark_n-1 do begin
      read(x^.inf.mark.marks[i]);
      sum:=sum+x^.inf.mark.marks[i];
    end;
    x^.inf.mark.sr:=sum/mark_n;
    x^.next:=nil;
  end;
  writeln('============================================');
  writeln('Новый учащийся успешно добавлен в список!');
  press_to_cont;
End;
 
Procedure del_zap;
Begin
 
End;
 
Procedure print_list;
var x:ucaz;
Begin
  clrscr;
  if head=nil then
    writeln('Список пуст!')
  else begin
    new(x);
    x:=head;
    while x<>nil do begin
      writeln(x^.inf.fio.f,' ', x^.inf.fio.i ,' ', x^.inf.mark.sr:0:1);
      x:=x^.next;
    end;
  end;
  press_to_cont;
End;
 
BEGIN
  key:=0;
  head:=nil;
  writeln('Введите кол-во оценок учащихся.');
  repeat
    write('->');
    read(mark_n);
    if mark_n<1 then
      writeln('Кол-во оценок должно быть больше 0!');
  until mark_n>0;
  repeat
    clrscr;
    print_menu;
    repeat
      write('->');
      read(key);
      if not(key in [0..menu_n]) then
         writeln('Ваш выбор доджен быть в диапозоне [0..',menu_n,']!');
    until key in [0..menu_n];
    case key of
      1:input_arm;
      2:del_zap;
      3:print_list;
      0:halt;
    end;
  clrscr;
  until key=0;
END.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.06.2013, 14:08
Ответы с готовыми решениями:

Ошибка при занесении данных из DataTimePicker
Ребят такая проблема. есть у меня бд в access. и мне нужно было сделать прогу на с++ чтоб была...

Ошибка при занесении данных в Listview
procedure TForm4.Button1Click(Sender: TObject); var I:integer; listview1:tlistview;...

Ошибка при занесении информации из datagridview в MS excel
Прописал это таким образом но выдает ошибку(представлена на скриншоте), чето не понятно что не...

Ошибка при занесении класса в папку где должны храниться с++ классы (jni)
Добрый ночи. Я вот написал один класс на с++ и когда хочу занести его в папку где должны храниться...

3
63 / 63 / 77
Регистрация: 22.11.2012
Сообщений: 241
Записей в блоге: 1
04.06.2013, 21:23  [ТС] 2
Может ли кто нибудь подсказать, в чём ошибка?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
05.06.2013, 19:29 3
senich, типичная ошибка. Вот тут: Что-то со вводом данных я рассказывал, откуда растёт проблема...
0
63 / 63 / 77
Регистрация: 22.11.2012
Сообщений: 241
Записей в блоге: 1
05.06.2013, 20:16  [ТС] 4
Спасибо!
0
05.06.2013, 20:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2013, 20:16
Помогаю со студенческими работами здесь

Ошибка при записи в список класса
Привет,форумчане.В общем, есть dataGridView с данными. Нужно записать в список класса данные из...

Ошибка при добавлении записи по возрастанию в двусвязный список
Здравствуйте. Задание следующее: Добавлять новые записи в двусвязный список так, чтобы список был...

Занесении записи из формы в несколько таблиц
Подскажите как правильно осуществить: есть база USERS с двумя (пока) таблицами, в первой только...

Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка записи!
Доброго всем времени суток! подскажи пожалуйста как исправить ошибку: Ошибка при чтении изменений...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru