Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 32
1

При вводе более двух студентов программа выдает ошибку

21.01.2015, 21:43. Показов 561. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
программу начал делать для сортировки списка студентов, сделал процедуры ввода и вывода списка студентов
при вводе более двух студентов выдает ошибку помогите исправить пожалуйста!

Delphi
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
program txtfl;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils, windows;
 
 
 
var
  index:string[10];
  fam:string[20];
  name:string[10];
  year:1994..2000;
  month:1..12;
  day:1..31;
 f1,f2,f3:textfile;
 n:integer;
  procedure vvod(var fx:textfile; nx:integer);
var i:integer;
begin
for i:=1 to nx do
begin
  write('Введите индекс группы: ');
  readln(index);write(fx,index:7);
  Writeln('Введите фамилию: ');
  Readln(fam);write(fx,fam:15);
 
 
  Writeln('Введите имя: ');
  Readln(name);write(fx,name:10);
 
 
  Writeln('Введите день рождения: ');
  Readln(day);write(fx,day:2);
 
 
  Writeln('Введите месяц рождения: ');
  Readln(month);write(fx,month:2);
 
 
  Write('Введите год рождения (1994-2000): ');
  Readln(year);write(fx,year:4);
  writeln(fx);
writeln;
end;
end;
procedure  vyvod(var fx:textfile);
var
  xindex:string[10];
  xfam:string[20];
  xname:string[10];
  xyear:1994..2000;
  xmonth:1..12;
  xday:1..31;
begin
writeln('индекс   фамилия       имя      день      месяц      год');
writeln;
while not eof(fx) do
 
begin
 
  read(fx,xindex);write(xindex:7);
  Read(fx,xfam);write(' ':3,xfam:15);
  Read(fx,xname);write(' ':8,xname:10);
  Read(fx,xday);write(' ':9,xday:2);
  Read(fx,xmonth);write(' ':6,xmonth:2);
  Read(fx,xyear);write(' ':6,xyear:4);
  readln(fx);
writeln;
end;
writeln;
end;
 
 
 
 
Begin
setconsolecp(1251);
setconsoleoutputcp(1251);
assignfile(f1,'file1.txt');
rewrite(f1);
assignfile(f2,'file2.txt');
rewrite(f2);
assignfile(f3,'file3.txt');
rewrite(f3);
 
//Ввод текстового файла
writeln('Введите кол-во студентов');readln(n);
writeln;
vvod(f1,n);
//вывод текстового файла
writeln(' ':20,'Исходный список студентов: ');
writeln;
reset(f1);
vyvod(f1);
writeln;
  { TODO -oUser -cConsole Main : Insert code here }
  readln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2015, 21:43
Ответы с готовыми решениями:

При вводе данных выдает ошибку
uses Unit1; {$R *.dfm} procedure TForm2.FormShow(Sender: TObject); begin ...

Программа выдает ошибку при запуске на другом компьютере
У меня программа имеет привязку к базе данных access через ADOconnection ,ADOtable ,ADOquery, и на...

При открытии консоли и вводе некоторых данных, программа выбивает ошибку, белое окно, типа закрыть программу
При открытие консоли и вводе некоторых данных, резко выбиввет ошибку) белое окно, типа закрыть...

Программа которая выдает платформу компьютера выдает ошибку
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

4
522 / 398 / 213
Регистрация: 28.07.2011
Сообщений: 2,207
22.01.2015, 19:26 2
это все из-за того что ты записываешь через ' ':3
надо без этих всяких записывать
0
11 / 11 / 5
Регистрация: 27.01.2014
Сообщений: 201
22.01.2015, 20:30 3
PavErm, А что за ошибку выдаёт?
0
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 32
29.01.2015, 16:13  [ТС] 4
Fakeoke, это всего лишь добавление пробелов в выводе

Добавлено через 29 секунд
ТКН, при вводе более двух студентов выдает ошибку
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
29.01.2015, 17:54 5
PavErm,
ты пишешь данные одной длины, а читаешь другой.
Например:
Delphi
1
2
3
fam:string[20];
...
write(fx,fam:15);
И количество знаков при сохранении чисел должно быть на 1 больше, чем знаков в числе, чтобы их всегда разделял пробел, иначе при чтении они сольются в одно число.
1
29.01.2015, 17:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2015, 17:54
Помогаю со студенческими работами здесь

Почему программа при работе выдает ошибку 'INVALID POINTER OPERATION' и работает потом как надо?
Суть в следующем: программа генерирует задания, создает через Create панель на нее помещает...

Выдает ошибку если в файле более 106 символов
procedure TForm1.Button1Click(Sender: TObject); var MasText :array of string; Ft ...

Почему выдает ошибку при вводе?
Вот моя программа. Она перестала работать после того как я добавил функцию (invers). Эта функция...

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

D-link Dir-300 при вводе 192.168.0.1 выдает ошибку
Помогите с настройкой роутера dlink dir-300, винда 7 пробовал настаивать вводя IP роутера...

Неверная обработка данных при вводе двух и более величин
У меня по коду все правильно, при вводе одного значения n вывод верный. Если ввод включает 2 и...


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

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