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

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

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

> Исправьте программу.
Killer1995
сообщение 12.12.2012 19:31
Сообщение #1





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

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


Проверьте на правильность программу!Где тут ошибка в ней?Напиши где и исправте программу пожалуйста!
вот условия--------
Составить программу для определения среднего роста женщин и определения людей одинакового роста в группе.

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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
@nto$ka
сообщение 17.12.2012 9:18
Сообщение #2


Новичок
*

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

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


Во первых, приведем Ваш код в порядок



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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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