С Новым годом! Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 4
1

Разработать программу для автоматической подготовки и печати списков

10.07.2014, 07:46. Показов 753. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
При чтении любого списка пишет ошибку. Не могу понять в чем проблема. Задание и списки прикреплены.

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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
program xd;
uses crt;
var
f_in,fotl,zar,ost:Text;
FIO: string; 
procedure INFO(key: Integer; pred: String);
label 1,2,3,4,5,6,7,8;
begin
writeln('Исходный файл содержит ошибку (ошибки).');
case key of
1: writeln('Неверно указана Ф.И.О. '+fio+'. Первая буква не является заглавной. Остальные буквы — в нижнем регистре.');
2: writeln('Неверно указана Ф.И.О. '+fio+'. Должны присутствовать только буквы русского алфавита, отсутствовать пробелы и длина не должна превышать 50 символов');
3: writeln('Неверно указано количество предметов в ведомости '+fio+'. Данная величина должна быть числом в диапазоне от 1 до 5000.' );
4: writeln('Неверно указано Наименование предмета '+pred+' в ведомости '+fio+'. Первая буква не является заглавной.');
5: writeln('Неверно указано Наименование предмета '+pred+' в ведомости '+fio+'. Должны присутствовать только буквы русского алфавита и пробелы, длина не должна превышать 60 символов.');
6: writeln('Неверно указана Оценка по предмету '+pred+' в ведомости '+fio+'. Зачету соответствует символ «z» или «Z» без кавычек и пробелов, экзамену — цифра «3″, «4″ или «5″ также указанная без кавычек и пробелов.');
7: writeln('Внимание! Возможна следующая ошибка. Общее количество предметов в ведомости '+fio+' не соответствует указанному.');
8: writeln('Неверно указано Приглашение для '+fio+'. При наличии приглашения следует без кавычек и пробелов указать символ латинского алфавита «Y» или «y», при отсутствии — «N» или «n».');
end;
writeln('Отредактируйте ИСХОДНЫЙ файл и перезапустите программу.');
writeln;
readln;
close(f_in);
close(fotl);
close(zaR);
close(ost);
halt;
end;
procedure open;
var
name: String;
begin
try 
assign(f_in,'C:\Users\Ирина\Desktop\Практика\n.txt');
reset(f_in);
except
end;
writeln('Применить к ВЫХОДНЫМ файлам имена по умолчанию (Y/N)?');
readln(name);
if (pos('Y',name)>0) or (pos('y',name)>0) then
try
assign(fotl,'otl.txt'); rewrite(fotl);
assign(zaR,'zar.txt'); rewrite(zaR);
assign(ost,'fost.txt'); rewrite(ost);
except
writeln('Один из файлов отсутствует');
halt;
end
else BEGIN
writeln('Введите имя файла ОТЛИЧНИКОВ');
readln(name);
try
assign(fotl,name); rewrite(fotl);
except
writeln('Файл отсутствует');
halt;
end;
writeln('Введите имя файла с ПРИГЛАШЕНИЯМИ');
readln(name);
try
assign(zaR,name); rewrite(zaR);
except
writeln('Файл отсутствует');
halt;
end;
writeln('Введите имя файла с ОСТАЛЬНИМИ выпускниками');
readln(name);
try
assign(ost,name); rewrite(ost);
except
writeln('Файл отсутствует');
halt;
end;
END;
end;
procedure C_FIO;{ КОНТРОЛЬ ВВОДА ДАННЫХ ФИО }
var
i:Integer;
label 1,2,3,4,5,6,7,8;
begin
2: writeln('Неверно указана Ф.И.О. '+fio+'. Должны присутствовать только буквы русского алфавита, отсутствовать пробелы и длина не должна превышать 50 символов');
if Length(fio)>50 then goto 2;
if Pos(' ',fio)>1 then goto 2;
for i:=1 to length(fio) do
begin
if not ( (UpCase(fio[i])>='А') and (UpCase(fio[i])<='Я') ) then goto 2;
end;
1: writeln('Неверно указана Ф.И.О. '+fio+'. Первая буква не является заглавной. Остальные буквы — в нижнем регистре.');
if not ((fio[1]>='А') and (fio[1]<='Я')) then goto 1;
for i:=2 to Length(fio) do
if fio[i]<='Я' then goto 1;
end;
procedure C_Total (s: String; var i: Integer);{кол-во предметов в ведомости}
var code: Integer;
label 1,2,3,4,5,6,7,8;
begin
try
Val(s,i,code);
3: writeln('Неверно указано количество предметов в ведомости '+fio+'. Данная величина должна быть числом в диапазоне от 1 до 5000.' );
if (code=0) and ((i<1) or (i>5000)) then goto 3;
except
end;
end;
procedure C_Predmet(s: String);{название предмета}
var
i:Integer;
label 1,2,3,4,5,6,7,8;
begin
if Length(s)>60 then INFO(5,s);
for i:=1 to length(s) do
begin
4: writeln('Неверно указано Наименование предмета '+pred+' в ведомости '+fio+'. Первая буква не является заглавной.');
if not (s[i]=' ') then
if not ((UpCase(s[i])>='А') and (UpCase(s[i])<='Я') ) then goto 4;
if not ((s[1]>='А') and (s[1]<='Я')) then goto 4;
end;
end;
{оценка}
procedure C_Number(s,s_oc: String; var key: Integer); {предмет,оценка, число}
var code: Integer;
begin
if (Pos('z',s_oc)>0) or (Pos('Z',s_oc)>0) then
if length(s_oc)=1
then begin key:=0; exit; end {для зачета key=0}
else INFO(6,s);
try
Val(s_oc,key,code);
if (code=0) and ((key<3) or (key>5)) then INFO(6,s);
except
INFO(6,s);
end;
end;
procedure C_YN(s:String);{приглашение + количество предметов по факту}
label 1,2,3,4,5,6,7,8;
begin
7: writeln('Возможна следующая ошибка. Общее количество предметов в ведомости '+fio+' не соответствует указанному.');
8: writeln('Неверно указано Приглашение для '+fio+'. При наличии приглашения следует без кавычек и пробелов указать символ латинского алфавита «Y» или «y», при отсутствии — «N» или «n».');
if ((Pos('Y',s)>0) or (Pos('y',s)>0)) or ((Pos('N',s)>0) or (Pos('n',s)>0)) then
if length(s)=1
then exit
else goto 8
else {не нашли латискую букву} goto 7;
end;
procedure Sort;{ ЧТЕНИЕ ДАННЫХ И ФОРМИРОВАНИЕ СПИСКОВ }
var
kol, c4, c5 , oc: Integer;
s,s_oc: String;
err, otl:Boolean; {учащийся отличник}
begin
{структура файла исходны данных:фамилия,имя,отчество,кол-во предметов,название_предмета,оценка,наличие_приглашения,следующий студент}
writeln;
while not eof(f_in) do
begin
readln(f_in,fio);
C_FIO;
s:=fio;
readln(f_in,fio);
C_FIO;
s:=s+' '+fio;
readln(f_in,fio);
C_FIO;
s:=s+' '+fio;
fio:=s; {теперь ФИО это ФИО}
readln(f_in,s); {read number with control error}
C_Total(s,kol);
otl:=True;
c4:=0;
c5:=0;
err:=False; {у отличника есть и зачеты и экзамены}
while kol>0 do
begin
readln(f_in,s); {predmet}
C_Predmet(s);
readln(f_in,s_oc); {ocenka}
C_Number(s,s_oc,oc);
if otl=False then {если не отличник то анализ оценок не производим — смотрим файл дальше}
begin
dec(kol);
Continue;
end;
if oc=3 then otl:=False
else if oc=4 then inc(c4)
else if oc=5 then inc(c5);
dec(kol);
end; {while kol}
readln(f_in,s); {read Y/N}
C_YN(s);
if (otl=True) and( (c4=0) and (c5=0)) then begin otl:=False ; err:=True; end; {нет ОЦЕНОК только ЗАЧЕТЫ}
if (otl=TRUE) and (c4*100/(c4+c5)>25) then otl:=False; {сброс флага если очень много 4}
if err=False then begin
if otl{ добавление в списки }
then writeln(fotl,fio){//если отличник, записываем в файл отличников}
else writeln(ost,fio);
if s = 'Y' then {//если есть приглашение — то в файл приглашенных за рубеж}
writeln(zaR,fio);
end; {// if err}
end;{//while eof(f1)}
writeln('Выходные данные успешно записаны.');
writeln('Press any key for exit');
readln;
close(f_in);
close(fotl);
close(zaR);
close(ost);
end;
BEGIN
cls;
open;
sort;
END.
Миниатюры
Разработать программу для автоматической подготовки и печати списков  
Вложения
Тип файла: docx vepusk.docx (13.3 Кб, 4 просмотров)
Тип файла: xlsx n.xlsx (11.7 Кб, 3 просмотров)
Тип файла: txt n.txt (1.2 Кб, 4 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.07.2014, 07:46
Ответы с готовыми решениями:

Разработать программу для автоматической настройки интернета
Добрый день! В наличии: - Delphi XE4 - ПК с 1 сетевой картой - 2 ADSL модема в 1 сети ...

Разработать иерархию не менее 2 классов, и программу Разработать программу для реализации игры пятнашки. Разработать 2-3
Составить описание класса многочленов от одной переменной, задаваемых степенью многочлена и...

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

Разработать программу с реализацией линейных списков, очередей, стеков
Здравствуйте!Помогите, пожалуйста, решить 2 задачи, очень прошу, сама не справлюсь:(((( Заранее...

1
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
10.07.2014, 08:45 2
Исходный файл должен быть обязательно формата VYPUSK.txt
Он должен быть записан удобным для чтения в программе, а именно так.
Кликните здесь для просмотра всего текста
Ульяшин Юлий Геннадиевич
Английский 5
Менеджмент 4
История 5
Философия 5
Экономическая теория 5
Правоведение 5
Социология 5
Деловой иностранный язык 5
Русский язык и культура речи 5
Политология 5
Психология 5
y
Удод Автоном Мирович
Английский 5
Менеджмент 4
История 4
Философия 4
Экономическая теория 5
Правоведение 4
Социология 5
Деловой иностранный язык 5
Русский язык и культура речи 5
Политология 4
Психология 5
n


Добавлено через 1 минуту
Насчет проверки файла в задании ничего не написано.

Добавлено через 2 минуты
Даже не так. Фамилия, имя и отчество нужно написать в отдельных строках
Ульяшин
Юлий
Геннадиевич
0
10.07.2014, 08:45
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.07.2014, 08:45
Помогаю со студенческими работами здесь

Написать программу для автоматической генерации методов
Дан текстовый файл, содержащий исходный код программы на языке Java. Написать программу для...

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru