Помощь - Поиск - Пользователи - Календарь
Полная версия: Опять же записи
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Zundell
Ребят,помогите плиз!че за фигню пишет?Задание следующее:
Вычислить средний балл группы и распечатать список студентов, имеющих средний балл ниже среднего балла группы!(Я понял так,что средний бал нам уже дан и его я ввожу с клавивтуры.что я и написал)
Type
student=record
Fio:string[50];
GodRow:integer;
GodPost:integer;
SredOz:real;
Kurs:integer;
Gruppa:string[10];
end;
var
S:student;
grup:array[1..25] of student;
i,j,k,sr:integer;
begin
for i:=1 to 25 do
begin with S do begin
writeln('Vvedite FIO:');
readln(FIO);
writeln('Vvedite GodRow:');
readln(GodRow);
writeln('Vvedite GodPost:');
readln(GodPost);
writeln('Vvedite SredOz:');
readln(SredOz);
writeln('Vvedite Gruppa:');
readln(Gruppa);
writeln('Vvedite Kurs:');
readln(Kurs);
end;
sr:=0;
for i:=1 to 25 do
begin
sr:=sr+S.SredOz;{Пишет Type mismatch}
volvo
Присваивание Integer <- Real недопустимо... Делай Sr типа Real ...
Zundell
Сенкс..говорю же туплю(((
Zundell
sr:=0;
for i:=1 to 25 do
begin
sr:=sr+S.SredOz;
end;
sr:=sr/25;
for i:=1 to 25 do
if sr > S.SredOz then begin
S.SredOz:=


извиняюсь я,но вот терь чет не соображу,как запомнить средний бал меньший общего среднего бала,чтобы его уже потом вывести на печать?
Zundell
Ребят,помогите плиз...нидапераю никак))заранее признателен
Zundell
Если я пытаюсь сохранить например в A[i] массив,то паскаль ругается!
Zundell
Никак не получается сделать...все проблемы со средним балом...я уже 100 переделал..окончат вариант такой,правда там без вывода,но эт не сложно...помогить с нахожд среднего бала всех студентов и сравнения его с сред. балом каждого..плиз!

Uses crt;
Const
n=3;
Type student=record
Fio:string[20];
Grow:integer;
Gpos:integer;
Kurs:integer;
Gruppa:integer;
inf,ist,mat:byte;
sball:real;
Osball:real
end;
var
i,j:integer;S:student;
mas:array[1..5] of student;
s_inf,s_ist,s_mat,osball:real;
begin
for i:=1 to n do with mas[i] do
begin
writeln('i=',i:4);
writeln('FIO');
readln(FIO);
writeln('Grow');
readln(Grow);
writeln('Gpos');
readln(GPos);
writeln('Kurs');
readln(Kurs);
Writeln('Gruppa');
readln(Gruppa);
writeln('Otzenki{[inf,ist,mat]');
readln(inf,ist,mat);
sball:=(inf+ist+mat)/3;
Osball:=(s_inf+s_ist+s_mat)/3;
clrscr;
end;
s_inf:=0;s_ist:=0;s_mat:=0;
for i:=1 to n do
begin
s_inf:=s_inf+mas[i].inf;
s_ist:=s_ist+mas[i].ist;
s_mat:=s_mat+mas[i].mat;
end;
s_inf:=s_inf/n;
s_ist:=s_ist/n;
s_mat:=s_mat/n;
Osball:=(s_inf+s_ist+s_mat)/3;
for i:=1 to n do with mas[i] do
begin
if mas[i].sball<mas[i].osball then
begin
writeln(Fio);



мисс_граффити
речь идет про такую табличку:
Код
           матем.  физик.  ин.яз
Иванов            5          4          5
Петрова           4         3           3
Сидоров          5          5           5

то есть средний балл Иванова (5+4+5)/3, Петровой (4+3+3)/3, Сидорова (5+5+5)/3
Общий средний (5+4+5+4+3+3+5+5+5)/9
Zundell
фуф...вроде все сделал...терь осталась проблема в том,что он выводит на экран только по одному человеку,чей средний бал меньше общего и чтобы просмотреть другого необходимо на enter нажать!как это исправить,сделать чтоб сразу весь список выводился?
uses crt;
Type
student=record
Fam:string[10];
Grow:integer;
Gpost:integer;
Kurs:integer;
Gruppa:integer;
sr_ball:real;
inf,ist,mat:real;
end;
var
s:student;
mas:array[1..10] of student;
i,j:integer;
SR_grup:real;
s_inf,s_ist,s_mat:real;
begin
for i:=1 to 5 do with mas[i] do
begin
write('Vvedite Familiju: ');
readln(Fam);
write('Vvedite God rowdenija: ');
readln(Grow);
write('Vvedite God postuplenija: ');
readln(Gpost);
write('Vvedite Kurs: ');
readln(Kurs);
write('Vvedite gruppu: ');
readln(gruppa);
write('Vvedite ozenki po informatike,istorii,mathematike: ');
readln(inf,ist,mat);
sr_ball:=(inf+ist+mat)/3;
end;
s_inf:=0;s_ist:=0;s_mat:=0;
for i:=1 to 5 do begin
s_inf:=s_inf+mas[i].inf;
s_ist:=s_ist+mas[i].ist;
s_mat:=s_mat+mas[i].mat;
end;
s_ist:=s_ist/5;
s_inf:=s_inf/5;
s_mat:=s_mat/5;
Sr_grup:=sr_grup+s_inf;
Sr_grup:=sr_grup+s_ist;
Sr_grup:=sr_grup+s_mat;
sr_grup:=sr_grup/3;
for i:=1 to 5 do with mas[i] do begin
if sr_grup>sr_ball then begin
clrscr;
writeln(Fam,' ',Gpost,' ',Grow,' ',Kurs,' ',Kurs,' ',sr_ball:3:2);
writeln('Srednij ball po gruppe',sr_grup:3:2);
readln;
end;
end;
end.


в массиве опечатка [1..5] smile.gif
мисс_граффити
Цитата
for i:=1 to 5 do with mas[i] do begin
if sr_grup>sr_ball then begin
clrscr;
writeln(Fam,' ',Gpost,' ',Grow,' ',Kurs,' ',Kurs,' ',sr_ball:3:2);
writeln('Srednij ball po gruppe',sr_grup:3:2);
readln;
end;

что, по-твоему, делает выделенный оператор?
Zundell
дает возможность просмотреть что получилось не нажимая кнтрл ф9! unsure.gif я ошибаюсь?без него у меня не показывает..я попробовал
мисс_граффити
он заставляет программу ждать, пока ты на что-то нажмешь.
и у тебя он ВНУТРИ цикла - то есть ждет после вывода КАЖДОЙ записи.
поставь перед последним end - будет ждать один раз.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.