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

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

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

 
 Ответить  Открыть новую тему 
> Перечисляемый тип
сообщение
Сообщение #1


Гость






Помогите пожалуйста. Не могу прогу дописать. sad.gif Что-то уже не соображаю. Не правильно считает "Средний рост женщин". Вот код:

Код


Program laba1;
uses crt;
type name=(V, G, Ge, K, M, N, S, T, F, Sh); {Валя, Гена, Женя, Коля, Маша, Нина, Саша, Таня, Федя, Шура}
var Pol: array [name] of (Man,Woman); {мужской, женский}
   Rost: array [name] of 140..200;
   o,i,j:integer;
   z,r:real;
   c:name;


begin
clrscr;
r:=0;
o:=0;
z:=0;

Writeln ('Введите пол (1:Man, 2:Woman): ');
for c:=V to Sh do
begin
Case C of
V:write ('Валя: ');
G:write ('Гена: ');
Ge:write ('Женя: ');
K:write ('Коля: ');
M:write ('Маша: ');
N:write ('Нина: ');
S:write ('Саша: ');
T:write ('Таня: ');
F:write ('Федор: ');
Sh:write ('Шура: ')
end;
readln (i);
end;
Case i of
1:pol[c]:=Man;
2:pol[c]:=Woman;
end;

Writeln ('Введите рост (от 140 до 200): ');
For c:=V to Sh do
begin
case c of
V:write ('Валя: ');
G:write ('Гена: ');
Ge:write ('Женя: ');
K:write ('Коля: ');
M:write ('Маша: ');
N:write ('Нина: ');
S:write ('Саша: ');
T:write ('Таня: ');
F:write ('Федор: ');
Sh:write ('Шура: ')
end;
readln (j);
If pol[c]=Woman then
begin
r:=r+j;
o:=o+1;
end;
end;

If o=0 then writeln ('Невозможно вычислить средний рост женщин!') else
begin
z:=r/o;
Writeln;
Writeln ('Средний рост женщин: ',z:8:3);
end
end.


 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






DD, а что, обязательно каждый раз использовать Case для распечатки имен? Есть же способ гораздо лучше: использовать типизированные константы...

Кроме этого - используйте "говорящие" имена переменных. Вот, сравните:


Program laba1;
uses crt;
type
name=(V, G, Ge, K, M, N, S, T, F, Sh);
gender = (Man, Woman);

const
people: array[name] of string = (
'Валя', 'Гена', 'Женя', 'Коля', 'Маша',
'Нина', 'Саша', 'Таня', 'Федя', 'Шура');

var
Pol: array [name] of gender; {мужской, женский}
total, count, i, j:integer;
human:name;

begin
clrscr;
total:=0;
count:=0;

Writeln ('Введите пол (1:Man, 2:Woman): ');
for human := low(name) to high(name) do begin
write(people[human], ' '); readln(i);
pol[human] := gender(pred(i));
end;

writeln('Введите рост (от 140 до 200): ');
for human := low(name) to high(name) do begin
write(people[human], ' '); readln(j);
if pol[human] = Woman then begin
total := total + j; inc(count);
end;
end;

If count=0 then writeln ('Невозможно вычислить средний рост женщин!')
else begin
Writeln;
Writeln ('Средний рост женщин: ',total/count:8:3);
end
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата(volvo @ 5.05.05 17:19)
DD, а что, обязательно каждый раз использовать Case для распечатки имен? Есть же способ гораздо лучше: использовать типизированные константы...



Да. Это в условии. Если не сложно, помогите пожалуйста мою программу сделать рабочей.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата(DD @ 5.05.05 19:11)
Если не сложно, помогите пожалуйста мою программу сделать рабочей.

Ну тогда, может быть просто
Case i of
1:pol[c]:=Man;
2:pol[c]:=Woman;
end;

внести внутрь цикла?
Writeln ('Введите пол (1:Man, 2:Woman): ');
for c:=V to Sh do { <--- Вот этого цикла... }


Сейчас это почему-то снаружи, следовательно все считаются лицами мужского пола, и счетчик женщин = 0... А на ноль делить нельзя... smile.gif
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 15.05.2024 13:48
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name