IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Файлы
Guest
сообщение 14.06.2005 17:17
Сообщение #1


Гость






Помогите!!! переделать задачу.

Вот условия:
Составить программу назначения степендиии студентам по результатам сессии
используя следующие правила.

1) Если все оценки 5 назначается повышенная степендия
2) Если все оценки 4 и 5 назначается обычная степендия
3) Еслиоцени 3 стипендия не назначается

В результате работы программы должен быть напечатат список с оценкой
и средним баллом каждого студента
Во втором списке фамилии (назначенные на повышенную и обычную стипендию)



program stude;
uses crt;
type
student=record
kod:byte;
fam:string[20];
im:string[10];
ot:string[15];
gr:string[6];
kurs:byte;
m:array[1..5] of byte;
end;
var
m:array[1..5] of byte;
ysp:integer;
i:byte;
fstud:file of student;
rab:student;
flag:boolean;
fio:string[25];
key:0..4;
procedure vvod; {Ввод данных с клавиатуры}
begin
clrscr;
with rab do
begin
write('Фамилия: ');
readln(fam);
if fam='9999' then exit;
write('Имя: ');
readln(im);
write('Отчество: ');
readln(ot);
write('Группа: ');
readln(gr);
write('Курс: ');
readln(kurs);
write('Успеваемость: ');
readln(m[1],m[2],m[3],m[4],m[5]);
kod:=i;
end {with}
end; {vvod}
procedure vivod; {Ввывод на экран­}
begin
with rab do
begin
fio:=fam+' '+im[1]+' '+ot[1]+' ';
write(kod:4,fio:18);
writeln(gr:8,kurs:8,m[1]:8,m[2]:2,m[3]:2,m[4]:2,m[5]:2);
end
end;
procedure form; {формировать массив}
begin
rewrite(fstud);
i:=1;
vvod;
while rab.fam<>'9999' do
begin
write(fstud,rab);
i:=i+1;
vvod
end;
close(fstud)
end;
procedure print; {Печать}
begin
reset(fstud);
writeln('-----------------------------------------------------------------------------------');
writeln('I № I Фио I Группа  I Курс I Успеваемость I Степендия I Ср. бал');
writeln('-----------------------------------------------------------------------------------');
while not eof (fstud) do
begin
read(fstud,rab);
vivod
end ;
writeln('-----------------------------------------------------------------------------------');
readkey;
close(fstud)
end;
procedure print2; {Печать}
begin
reset(fstud);
writeln('------------------------------------------------------------');
writeln('I Повышенная степендия I Обычная степендия ');
writeln('------------------------------------------------------------');
while not eof (fstud) do
begin
read(fstud,rab);
with rab do
if (m[1]=2)or(m[2]=2)or(m[3]=2)or(m[4]=2)or(m[5]=2)then vivod;
end ;
writeln('------------------------------------------------------------');
readkey;
close(fstud)
end;
begin
flag:=false;
assign(fstud,'Студенты');
repeat
clrscr;
writeln('Выберите пункт меню');
writeln;
writeln('1-Формировать массив');
writeln('2-Печать всего массива');
writeln('3-Печать на повышен. и обычн. степендию');
writeln('0-выход');
readln(key);
case key of
1:form;
2:print;
3:print2;
0:flag:=true
end;
until flag;
end.

 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Guest
сообщение 14.06.2005 22:14
Сообщение #2


Гость







program stude;
uses crt;
type
student=record
kod:byte;
fam:string[20];
im:string[10];
ot:string[15];
gr:string[6];
kurs:byte;
m:array[1..5] of byte;
end;
var
m:array[1..5] of byte;
ysp:integer;
i:byte;
fstud:file of student;
rab:student;
flag:boolean;
fio:string[25];
key:0..4;,
Level : 0..3;
procedure vvod; {Ввод данных с клавиатуры}
begin
clrscr;
with rab do
begin
write('Фамилия: ');
students[i].Level:=3;
readln(fam);
if fam='9999' then exit;
write('Имя: ');
students[i].Level:=3;
readln(im);
write('Отчество: ');
students[i].Level:=3;
readln(ot);
write('Группа: ');
students[i].Level:=3;
readln(gr);
write('Курс: ');
students[i].Level:=3;
readln(kurs);
write('Успеваемость: ');
students[i].Level:=3;
readln(m[1],m[2],m[3],m[4],m[5]);

i:=1;
while(i<=5) do
with ...[i] do begin
if m[i]=4 then level:=2
else if m[i]=3 then
level:=1
else
if m[i]=2 then level:=0;
if level=0 then break
else inc(i);
end;

kod:=i;
end {with}
end; {vvod}
procedure vivod; {Ввывод на экран}
begin
with rab do
begin
fio:=fam+' '+im[1]+' '+ot[1]+' ';
write(kod:4,fio:18);
writeln(gr:8,kurs:8,m[1]:8,m[2]:2,m[3]:2,m[4]:2,m[5]:2);
end
end;
procedure form; {формировать массив}
begin
rewrite(fstud);
i:=1;
vvod;
while rab.fam<>'9999' do
begin
write(fstud,rab);
i:=i+1;
vvod
end;
close(fstud)
end;
procedure print; {Печать}
begin
reset(fstud);
writeln('-----------------------------------------------------------------------------------');
writeln('I № I Фио I Группа I Курс I Успеваемость I Степендия I Ср. бал');
writeln('-----------------------------------------------------------------------------------');
while not eof (fstud) do
begin
read(fstud,rab);
vivod
end ;
writeln('-----------------------------------------------------------------------------------');
readkey;
close(fstud)
end;
procedure print2; {Печать}
begin
reset(fstud);
writeln('------------------------------------------------------------');
writeln('I Повышенная степендия I Обычная степендия ');
writeln('------------------------------------------------------------');
while not eof (fstud) do
begin
read(fstud,rab);
with rab do
if (m[1]=2)or(m[2]=2)or(m[3]=2)or(m[4]=2)or(m[5]=2)then vivod;
end ;
writeln('------------------------------------------------------------');
readkey;
close(fstud)
end;
begin
flag:=false;
assign(fstud,'Студенты');
repeat
clrscr;
writeln('Выберите пункт меню');
writeln;
writeln('1-Формировать массив');
writeln('2-Печать всего массива');
writeln('3-Печать на повышен. и обычн. степендию');
writeln('0-выход');
readln(key);
case key of
1:form;
2:print;
3:print2;
0:flag:=true
end;
until flag;
end.


Так? че-то не прет...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 23.06.2025 16:51
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"