![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Killer1995 |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: ![]() ![]() ![]() |
Проверьте на правильность программу!Где тут ошибка в ней?Напиши где и исправте программу пожалуйста!
вот условия-------- Составить программу для определения среднего роста женщин и определения людей одинакового роста в группе. 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 |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Репутация: ![]() ![]() ![]() |
Во первых, приведем Ваш код в порядок
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?? т.е. не используете?? Сообщение отредактировано: @nto$ka - 17.12.2012 9:19 |
![]() ![]() |
![]() |
Текстовая версия | 7.08.2025 6:05 |