Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2010, 16:39   #1
4otenado
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 39
По умолчанию Pascal (процедуры и функиции)

Тип функции и процедуры:
Вводится информация об итогах зимней сессии в группе. Сведения о каждом студенте (всего их 25) заданы в виде следующего текста: "фамилия", "имя", "год рождения", "оценка 1", "оценка 2", "оценка 3" (первая оценка - за экзамен по высшей математике, вторая по физике, третья по программированию), "форма обучения" (бюджетная , договорная).
Рассортировать по возрасту (процедура) и вывести на печать список студентов.
Определить количество студентов бюджетной формы, у которых по математике 4 или 5 баллов.

Вот задача: помогите исправить
program lab4;
type
mm=array[1..5] of string;
nn=array[1..5] of integer;
oo=array[1..5] of integer;
a=record
name:string;
surname:string;
year:integer;
s:array[1..3] of integer;
forma:string;
end;
var per:a;i,x,i1,c,i2,r,xzx:integer;n:n n;m,m1,m2:mm;st,j:string;o1,o2,o3,z p:oo;
procedure sps(per:a;i,x,i1,c,r,i2:integer;n:n n;m,m1,m2:mm;st,j:string;o1,o2,o3:o o;
var zp:oo);


begin randomize;
repeat i:=i+1;i2:=i2+1;
write('surname '); readln(per.surname);
write('name '); readln(per.name);
write('year '); per.year:=random(10)+1985; write(per.year);

write(' matem-'); per.s[1]:=random(2)+3;write(per.s[1]);
write(' fisic-'); per.s[2]:=random(2)+3;write(per.s[2]);
write(' program-'); per.s[3]:=random(2)+2;write(per.s[3]);
write(' forma-'); readln(per.forma);

zp[1]:=zp[1]+per.s[1];
zp[2]:=zp[2]+per.s[2];
zp[3]:=zp[3]+per.s[3];

if (per.s[1]=2) or (per.s[2]=2) or (per.s[3]=2) then begin x:=x+1;
m1[x]:=per.name;
m2[x]:=per.forma;o1[x]:=per.s[1]; o2[x]:=per.s[2];o3[x]:=per.s[3];
m[x]:=per.surname;n[x]:=per.year end;until i>=5;
for i1:=1 to x do begin
write(n[i1],', ');
write(m[i1],' ':15-length(m[i1]));
write(m1[i1],' ':15-length(m1[i1]));
write(m2[i1],' ':5-length(m2[i1]));
writeln('matem ',o1[i1],' fizic ',o2[i1],' program ',o3[i1]); end;


end;
function best(zpp:oo):integer;
begin
if (zpp[1]>zpp[2])and(zpp[1]>zpp[3]) then write('the best subject is matematic');
if (zpp[2]>zpp[1])and(zpp[2]>zpp[3]) then write('the best subject is phisic');
if (zpp[3]>zpp[1])and(zpp[3]>zpp[2]) then write('the best subject is programing');
if (zpp[1]=zpp[3])and(zpp[1]=zpp[2]) then write('the best subject is matematic,phisic and programing' );
if zpp[1]=zpp[2] then write('the best subject is matematic and phisic');
if zpp[1]=zpp[3] then write('the best subject is matematic and programing');
if zpp[2]=zpp[3] then write('the best subject is phisic and programing');
end;


begin
sps(per,i,x,i1,c,r,i2,n,m,m1,m2,st, j,o1,o2,o3,zp);

xzx:=best(zp);

readln;
end.
пож-та(заранее спасибо).

Последний раз редактировалось 4otenado; 09.01.2010 в 16:41.
4otenado вне форума Ответить с цитированием
Старый 10.01.2010, 18:51   #2
4otenado
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 39
Лампочка

Цитата:
Сообщение от 4otenado Посмотреть сообщение
Тип функции и процедуры:
Вводится информация об итогах зимней сессии в группе. Сведения о каждом студенте (всего их 5) заданы в виде следующего текста: "фамилия", "имя", "год рождения", "оценка 1", "оценка 2", "оценка 3" (первая оценка - за экзамен по высшей математике, вторая по физике, третья по программированию), "форма обучения" (бюджетная , договорная).
Рассортировать по возрасту (процедура) и вывести на печать список студентов.
Определить количество студентов бюджетной формы, у которых по математике 4 или 5 баллов.

Вот задача: помогите исправить
program lab4;
type
mm=array[1..5] of string;
nn=array[1..5] of integer;
oo=array[1..5] of integer;
a=record
name:string;
surname:string;
year:integer;
s:array[1..3] of integer;
forma:string;
end;
var per:a;i,x,i1,c,i2,r,xzx:integer;n:n n;m,m1,m2:mm;st,j:string;o1,o2,o3,z p:oo;
procedure sps(per:a;i,x,i1,c,r,i2:integer;n:n n;m,m1,m2:mm;st,j:string;o1,o2,o3:o o;
var zp:oo);


begin randomize;
repeat i:=i+1;i2:=i2+1;
write('surname '); readln(per.surname);
write('name '); readln(per.name);
write('year '); per.year:=random(10)+1985; write(per.year);

write(' matem-'); per.s[1]:=random(2)+3;write(per.s[1]);
write(' fisic-'); per.s[2]:=random(2)+3;write(per.s[2]);
write(' program-'); per.s[3]:=random(2)+2;write(per.s[3]);
write(' forma-'); readln(per.forma);

zp[1]:=zp[1]+per.s[1];
zp[2]:=zp[2]+per.s[2];
zp[3]:=zp[3]+per.s[3];

if (per.s[1]=2) or (per.s[2]=2) or (per.s[3]=2) then begin x:=x+1;
m1[x]:=per.name;
m2[x]:=per.forma;o1[x]:=per.s[1]; o2[x]:=per.s[2];o3[x]:=per.s[3];
m[x]:=per.surname;n[x]:=per.year end;until i>=5;
for i1:=1 to x do begin
write(n[i1],', ');
write(m[i1],' ':15-length(m[i1]));
write(m1[i1],' ':15-length(m1[i1]));
write(m2[i1],' ':5-length(m2[i1]));
writeln('matem ',o1[i1],' fizic ',o2[i1],' program ',o3[i1]); end;


end;
function best(zpp:oo):integer;
begin
if (zpp[1]>zpp[2])and(zpp[1]>zpp[3]) then write('the best subject is matematic');
if (zpp[2]>zpp[1])and(zpp[2]>zpp[3]) then write('the best subject is phisic');
if (zpp[3]>zpp[1])and(zpp[3]>zpp[2]) then write('the best subject is programing');
if (zpp[1]=zpp[3])and(zpp[1]=zpp[2]) then write('the best subject is matematic,phisic and programing' );
if zpp[1]=zpp[2] then write('the best subject is matematic and phisic');
if zpp[1]=zpp[3] then write('the best subject is matematic and programing');
if zpp[2]=zpp[3] then write('the best subject is phisic and programing');
end;


begin
sps(per,i,x,i1,c,r,i2,n,m,m1,m2,st, j,o1,o2,o3,zp);

xzx:=best(zp);

readln;
end.
пож-та(заранее спасибо).
исправляю студентов не 25 а 5*

Последний раз редактировалось 4otenado; 10.01.2010 в 18:54.
4otenado вне форума Ответить с цитированием
Старый 10.01.2010, 18:53   #3
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

а что исправить то? В чем ошибка?
Базиля вне форума Ответить с цитированием
Старый 10.01.2010, 18:58   #4
4otenado
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 39
По умолчанию

ну мне нужно рассортировать по возрасту (процедура) и вывести на печать список студентов и
определить количество студентов бюджетной формы, у которых по математике 4 или 5 баллов(функция), а здесь вывести на печать список студентов, имеющих задолжности хотя бы по 1 предмету(процедура), вывести на печать название предмета который был сдан лучше всего(функция).
4otenado вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедуры ( Pascal ) P1RoG Помощь студентам 1 09.12.2009 20:11
Pascal. Функциии и процедуры cudalover Помощь студентам 20 08.05.2009 17:45
Процедуры (Pascal) [Smarik] Помощь студентам 6 16.01.2008 14:52