Определить функцию СредРост(ГР), находящую средний рост женщин из группы ГР - Pascal
Формулировка задачи:
Используя следующий фрагмент программы , опишите перечисленные ниже ф-ции:
-Функция СредРост(ГР) определяет средний рост женщин из группы ГР.
имя=(Аня,Валя,Женя,Петя,Саша,Таня,Шура,Юра);
данные=record
пол: (муж,жен);
рост:140..200;
end;
группа=array[имя] of данныеРешение задачи: «Определить функцию СредРост(ГР), находящую средний рост женщин из группы ГР»
textual
Листинг программы
const nm:array[0..7] of string[4]=('Аня','Валя','Женя','Петя','Саша',
'Таня','Шура','Юра');
mz:array[0..1] of string[3]=('муж','жен');
type imya=(an,vl,jn,pt,sh,tn,sr,yr);
date=record
pl:(m,z);
rs:140..200;
end;
grp=array[imya] of date;
function SrRost(a:grp):real;
var gr:grp;
i:imya;
k:integer;
s:real;
begin
k:=0;
s:=0;
for i:=an to yr do
if a[i].pl=z then
begin
k:=k+1;
s:=s+a[i].rs;
end;
if k=0 then SrRost:=0
else SrRost:=s/k;
end;
var a:grp;
i:imya;
begin
randomize;
writeln('Исходные данные');
writeln('--------------------');
writeln('| Имя |Пол| Рост |');
writeln('--------------------');
for i:=an to yr do
begin
if i in [an,vl,tn,sh] then a[i].pl:=z
else a[i].pl:=m;
a[i].rs:=140+random(61);
writeln('|',nm[ord(i)]:5,' |',mz[ord(a[i].pl)]:3,'|',a[i].rs:5,' |');
end;
writeln('--------------------');
write('Средний рост женщин=',SrRost(a):0:2)
end.
Объяснение кода листинга программы
- Объявляется массив строк
nmс именами участников группы. - Объявляется массив строк
mzс обозначением пола (м/ж). - Объявляются перечислимые типы
imya(с именами участников) иdate(с полями pl - пол, и rs - рост). - Объявляется массив
grpс информацией о каждом участнике. - Объявляется функция
SrRost, которая находит средний рост женщин в группе. - В основном блоке программы объявляются переменные
aиi, происходит заполнениеaслучайными данными и вывод этой информации в консоль. - Вычисляется средний рост женщин в группе и выводится на экран.