Помощь - Поиск - Пользователи - Календарь
Полная версия: Исправьте программу.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Killer1995
Проверьте на правильность программу!Где тут ошибка в ней?Напиши где и исправте программу пожалуйста!
вот условия--------
Составить программу для определения среднего роста женщин и определения людей одинакового роста в группе.

Type name=(Anya,Valya,Genya,Petya,Sasha,Tanya,Shura,Yura);
dannye=record
pol:(male,female);
zrist:140..200;
end;
gruppa=array[name]of dannye;
var gr:gruppa;
k:name;x:real;
f1,f:text;
procedure serzrist(var x:real);
var n:name;
s:word;
begin
x:=0;s:=0;
for n:=Anya to Yura do
if gr[n].pol=female then begin
x:=x+gr[n].zrist;s:=s+1;end;
x:=x/s;end;
function odnakzrist:boolean;
var n,n1:name;zrist:140..200;
f:boolean;k1:integer;
begin for n:=Anya to Yura do
zrist:=gr[n].zrist;f:=false;k1:=0;
for n1:=Valya to Yura do
if zrist=gr[n1].zrist then begin
k1:=k1+1;f:=true;end;
odnakzrist:=f;
end;
begin
for k:=Anya to Yura do begin
if k in [Anya,Valya,Tanya]then gr[k].pol:=female
else gr[k].pol:=male;
readln(gr[k].zrist);
end;
serzrist(x);
writeln(odnakzrist,x);
end.
@nto$ka
Во первых, приведем Ваш код в порядок



type
name = (Anya, Valya, Genya, Petya, Sasha, Tanya, Shura, Yura);
dannye = record
pol: (male, female);
zrist: 140..200;
end;
gruppa = array[name] of dannye;

var
gr: gruppa;
k: name;x: real;
f1, f: text;

procedure serzrist(var x: real);
var
n: name;
s: word;
begin
x := 0;s := 0;
for n := Anya to Yura do
if gr[n].pol = female then
begin
x := x + gr[n].zrist;
s := s + 1;
end;
x := x / s;
end;

function odnakzrist: boolean;
var
n, n1: name;
zrist: 140..200;
f: boolean;k1: integer;
begin
for n := Anya to Yura do
zrist := gr[n].zrist;
f := false;
k1 := 0;
for n1 := Valya to Yura do
if zrist = gr[n1].zrist then
begin
k1 := k1 + 1;
f := true;
end;
odnakzrist := f;
end;

begin
for k := Anya to Yura do
begin
if k in [Anya, Valya, Tanya] then
gr[k].pol := female
else
gr[k].pol := male;
readln(gr[k].zrist);
end;
serzrist(x);
writeln(odnakzrist, x);
end.



Теперь становится ясно, что на строке
 for n := Anya to Yura do
zrist := gr[n].zrist;

Ваш зрист хранит возраст Юры. Зачем Вам возраст Юры??
Получается, что вы сравниваете возраста других только с возрастом юры. Это пичаль((

Зачем, Вы используете переменную k1?? т.е. не используете??
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.