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

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

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

> Необходимо выяснить сколько студентов группы имеют средний балл, наименее всего отклоняющийся по абсолютному значению от среднего балла всей группы.
natik3
сообщение 5.04.2012 21:00
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 34
Пол: Женский

Репутация: -  0  +


известно,что в следующем фрагменте программы массив матрица содержит оценки студентов группы,фамилии которых перечислен в типе фамилия.
> type
> фамилия=(Иванов,Просветкин,Ленин,Михайлов,Маслова,Юрьева,Беляев,Малащенко,Нагайц
ев,Семыкин).
> предмет=(матанализ,алгебра,информатика,история,матлогика,механика,педагогика,диф
уруравнения,статистика).
> var
> матрица: array[ фамилия,предметы ] of integer.
Необходимо выяснить сколько студентов группы имеют средний балл, наименее всего отклоняющийся по абсолютному значению от среднего балла всей группы. помогите решить через процедуры и функции.вот,что у меня есть,проверьте.исправьте.а то она работает некорректно.помогите решить через процедуры и функции.вот,что у меня есть,проверьте.исправьте.а то она работает некорректно.

type
fam=(Ivanov, Prosvetkin, Lenin, Mikhaylov, Maslov, Yuryev, Belyaev, Malashenko, Nagaytsev, Semykin);
pred=(matan, algebra, informatics, history, matlogica, mechanics, pedagogics, difururavneniye, statistics);
matr=array[fam ,pred] of integer;
var
a:matr;

Procedure vvodM(var a:matr);
var j: pred;
i:fam;
begin
randomize;
for i:= Ivanov to Semykin do
begin
For j:=matan to statistics do
begin
a[i,j]:=random(4)+2;
write( a[i,j]:3);
end;
writeln
end;
end;

function sred(Student: fam): real;
var
j: pred;
i:fam;
s: real;
begin
s:= 0;
for i:= Ivanov to Semykin do
begin
For j:=matan to statistics do

begin
s:= s + a[Student,j];
sred:= s/9
end;
write(sred(i))
end;
readln
end;

function TotalAverege(var a:matr):real;
var
j: pred;
i:fam;
s: real;
begin
s:= 0;
for i:=Ivanov to Semykin do

begin
For j:=matan to statistics do

begin
s:= s +sred(i);
TotalAverege:= s/9;

end;
write(TotalAverege(a)) ;
end;
readln
end;

Procedure MinDev (a:matr);
var
j: pred;
i:fam;
k:integer;
begin
k:=0;
for i:=Ivanov to Semykin do
begin
For j:=matan to statistics do
begin
if TotalAverege(a)<>abs(TotalAverege(a)-sred(i))then
k:=k+1;
If k>0 then
WriteLn(k,' студентов имеют минимальное отклонение от cреднего балла группы')
else
WriteLn(k,'Таких студентов нет');

end;
end;
end;
begin
setconsolecp(1251);
setconsoleoutputcp(1251);
vvodM(a);
MinDev(a);
readln
end.
Нужно еще сделать так.чтобы выводились все промежуточные действия.т е средний балл каждого ученика,общий средний балл.а только потом уже выводился ответ.помогите!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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