Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 28.02.2010
Сообщений: 6

Файлы и записи. Ошибка в программе

07.03.2010, 17:21. Показов 944. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Еще раз Здравствуйте!
написал программу, а она выдает ошибку "Invalid numeric format" из-за чего, понятия я не имею. Прошу, посмотрите на досуге.
Вот описание задачи:
В текстовом файле Stud.txt Хранится информация о результатах рейтинговых испытаний некоторого вуза. Испытание считается не пройденным,если абитуриент набрал менее 25 баллов. Зачисляется в вуз абитуриент, средний бар которого по результатам трех туров не менее 25. Необходимо, воспользовавшись информацией, хранящейся в текстовом файле, создать файл записей, сформировав поле "Средний балл". Удалить из файла фамилии всех абитуриентов, не преодолевших барьер в 25 баллов. Информацию об абитуриентах,зачисленных в вуз, вывести на экран.

Результаты рейтинговых испытаний:
ФИО абитуриента 1-й тур 2-й тур 3-й тур средний балл
----------------------------------------------------------------------------------------------------
Иванов И.И. 26 16 34
Козлов Д.Д. 21 18 35
Петров Ф.Ф. 18 27 35
Сидоров П.П. 12 21 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
115
116
117
118
119
Program studenti;
type
 stud = record
 Fio: string [25];
 tur_1:byte;
 tur_2:byte;
 tur_3:byte;
 ball:byte;
end;
var
   F: Text; {Ранее созданный фаил, в котором хранится текстовая информация}
   F1: file of stud; {Фаил записей, который необходимо создать на базе текстового файла}
   p:stud; {Переменная типа Запись.}
 
Procedure CreateArchive; 
{Создание файла записей.}
var
  t1,t2,t3: byte;
begin
reset(F); {Открыть текстовый фаил для считывания информации.}
Rewrite(F1); {Открыть фаил записей для занесения информации.}
While not eof (F) do {Пока не достигнут конец файла, ...}
with p do
begin
{... считать текущую запись, }
     readln(F, Fio, tur_1, tur_2, tur_3);
{ если результат испытания по одному из туров менее 25 баллов,  }
{ обнулить вспомогательную переменную.}
     if tur_1 < 25 then T1:=0
     else t1:=tur_1;
     if tur_2 < 25 then T2:=0
     else t2:=tur_2;
     if tur_3 < 25 then T3:=0
     else t3:=tur_3;
{Вычислить среднее значение по итогам терех туров, }
{результат занести в соответствующие поля записи.}
     ball:=trunc((T1+T2+T3)/3);
     write (F1,P);
   end;
   close(f); {закрываем текстовый фаил}
   close(F1); {закрываем фаил записей}
   writeln ('File of record is created. For go on press ENTER');{}
   readln;
end; {конец процедуры CreateArchive}
 
Procedure WriteArchive;
{вывод информации на экран}
var
  i: integer;
begin
 reset(F1); {Открыть фаил записей для считывания информации}
 Writeln ('Results of Raiting Competitios');
 writeln('-------------------------------------------------------');
 writeln(':FIO            : 1_tur : 2_tur : 3_tur : Sredn Ball :');
 writeln('-------------------------------------------------------');
 while not eof (F1) do { Пока не достигнут конец файла, ... }
 begin
  read(F1,p); { считать запись и вывести ее на экран.}
  with p do
  writeln (':',FIO,':',tur_1:7,':', tur_2:7, ':', tur_3:7, ':', Ball:12, ':')
 end;
 writeln('-----------------------------------------------------');
 close(F1);
 writeln('For go on press ENTER');
 readln;
end; {Конец процедуры WriteArchive}
Procedure Sr_ball;
{удаление записей со срдним баллом, равным 0}
var
  n,k,i,j: integer;
  sr:byte;
Begin
  reset(F1);
  i:=0;
  n:=Filesize(F1) - 1; {Определить кол-во компонентов в файле записей}
  k:=0;
  while i<=n do {Пока не достигнут конец файла, }
  begin
    seek(f1,i); {установить указатель на текущую позицию}
    read(f1,p);
    with p do
       if ball=0 then {Если средн баллрен нулю,  то}
       begin {удалить запись сдвигом последующих компонентов} 
          for j:=i to n-1 do {от текущей записи и до конца файла.}
          begin
{Установить указатель на следующую запись.}
             seek(f1,j+1);
{Прочитать следующую запись.}
             read(f1,p);
{Установить указатель на текущую запись.}
             seek(f1,j);
{Переписать следующую запись на текущую}
             write(f1,p);
          end;
          seek(f1,n); {Установить указатель на последнюю запись и удалить ее.}
          truncate(f1);
          n:=n-1; {Уменьшить кол-во записей на единицу}
          k:=k+1;{Увеличить счетчик удаленных записей}
        end
{Если средний балл отличен от нуля, перейти к следующей записи.}
        else i:=i+1;
  end;
  close (f1); {Закрыть фаил}
  writeln('Proizoshlo ydalenie zapisei dlya abiturientov co Sr_ball < 25');
  writeln('Deleted ',k,' records');
  writeln('Ostalos ',n,' records');
  readln;
  writeln ('Dla prosmotra results ydalenia press ENTER');
end;{Конец процедуры Sr_Ball}
 
begin {Основная программа}
{Связь файловых переменных с файлами на диске}
Assign (F1,'e:\dipl\st.dat');
Assign (F,'e:\dipl\stud.txt');
createarchive; {Вызов процедуры создания файла записей}
writearchive; {Вызов процедуры вывода на печать информации}
sr_ball; {Вызов процедуры удаления записей из фаила}
writeArchive; {Вызов процедуры вывода на печать информации}
end. {Конец основной программы}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.03.2010, 17:21
Ответы с готовыми решениями:

Ошибка в программе на записи
Помогите пожалуйста найти ошибку в программе, заранее СПАСИБО! Сведения о продажах фирмы представлены в виде таблицы. Составить...

Ошибка в программе на текстовые файлы и множества
Program worktext4; Type kirillica='а'..'я'; cyfry='1'..'9'; Var F:text; n,m:word; bukvy:set of kirillica; cyfra:set of cyfry; S:string;...

Ошибка учетной записи - исчезли файлы с рабочего стола
Здравствуйте. Проблема началась с того, что при включении компа я обнаружил что важные папки с рабочего стола исчезли, и на середине экрана...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.03.2010, 17:21
Помогаю со студенческими работами здесь

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

Прикреплять файлы в программе к БД
Здравствуйте! Есть небольшое приложение WPF, которое связано с БД SQL Server. В приложении для каждого пользователя определены права...

Файлы, ошибки в программе.
Program Srednee; Uses Crt; Var Kol,Element,{ïåðåìåííàÿ äëÿ õðàíåíèÿ î÷åðåäíîãî ýëåìåíòà ôàéëà} Summa:integer; {ïåðåìåííàÿ...

Ошибка записи *.xmcd (при успешной записи того-же файла в *.mcd)
День добрый, уважаемые. Ситуация следующая: маткад 15 М020, имеется файл (в приложении), который при попытке записи в формат xmcd выдает...

Добавление записи в программе
В общем, ребята проблема....:wall: Препод дал баговою программу, сказал исправить, либо попрут с учебного заведения, а как бы не очень...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru