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

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

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

 
 Ответить  Открыть новую тему 
> Среднее арифметическое всех четных чисел, ПОМОГИТЕ ДО КОНЦА РЕШИТЬ! СОВСЕМ НЕМНОЖКО!!!
сообщение
Сообщение #1





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

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


У меня вот задача:
Найти сумму чисел, вводимых с пульта, и среднее арифметическое этих чисел, если они заранее неизвестны. Программа должна суммировать только четные числа.
Вот что у меня получилось:
 program sum6;
var
S: real;
str: string;
a, ch: integer;
Begin
ch:=0;
S:=0;
Writeln ('С помощью этой программы можно вычислить сумму любого количества четных чисел и их среднее арифметическое. Вас это интересует? Д/Н');
Readln(str);
if str='Д' then
Begin
Writeln ('В таком случае введите первое число');
Readln (a);
if (a mod 2 = 0) then
begin
While str='Д' do
begin
s:=s+a;
ch:=ch+1;
writeln ('Еще вводить числа будете? Д/Н');
Readln(str);
if str='Д' then begin writeln ('Введите число'); readln (a); end;
end;
write ('S=', S, 'Среднее арифметическое', S/ch);
end
else write ('Вы ввели нечетное число!');
readln;
end
else write ('Извините, эта программа не для Вас.');
readln;
end.
.

Но дело в том, что когда я проверяла программу, выяснилось вот что:
если ввожу НЕчетное число в первый раз, она говорит, что "Вы ввели нечетное число".
А когда я ввожу сначала четное число, потом она меня спрашивает "Еще вводить числа будете?", я отвечаю Д, потом ввожу НЕчетное число (для проверки), и она его принимает! А мне же надо, чтоб она суммировала только четные... Куда и что вставить?..
Извините за длинное и путанное объяснение)))
Надеюсь ,вы мне поможете! wink.gif

Сообщение отредактировано: йцукен -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

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



var
S: real;
str: string;
a, ch: integer;
Begin
ch:=0;
S:=0;
Writeln ('С помощью этой программы можно вычислить сумму любого количества четных чисел и их среднее арифметическое. Вас это интересует? Д/Н');
Readln(str);
if str='Д' then
begin
writeln('В таком случае введите первое число');
repeat
Readln(a);
if(a mod 2=0) then
begin
s:=s+a;
ch:=ch+1;
end
else
writeln('Вы ввели нечетное число!');
writeln ('Еще вводить числа будете? Д/Н');
readln(str);
until str='Н';
write ('S=', S:0:0, 'Среднее арифметическое', S/ch:0:2);
end
else
write ('Извините, эта программа не для Вас.');
readln;
end.




Сообщение отредактировано: Bokul -


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Вводим букву 'Д' потом число 3 потом букву 'Н' и о чудо, получаем DivByZero ! rolleyes.gif


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

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


Цитата
Вводим букву 'Д' потом число 3 потом букву 'Н' и о чудо, получаем DivByZero ! rolleyes.gif

good.gif smile.gif
Исправляем:
      
if ch<>0 then
write ('S=', S:0:0, 'Среднее арифметическое', S/ch:0:2)
else
write('Не было введено ни одного четного числа');



--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





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

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


Спасибо вам огромное, но можно вас еще помучать и попросить как нибудь заменить until? Мы просто этого еще не проходили, а эта задача на while!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

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



var
S: real;
str: string;
a, ch: integer;
Begin
ch:=0;
S:=0;
Writeln ('С помощью этой программы можно вычислить сумму любого количества четных чисел и их среднее арифметическое. Вас это интересует? Д/Н');
Readln(str);
if str='Д' then
begin
writeln('В таком случае введите первое число');
while str='Д' do
begin
Readln(a);
if (a mod 2=0) then
begin
s:=s+a;
ch:=ch+1;
end
else
writeln('Вы ввели нечетное число!');
writeln ('Еще вводить числа будете? Д/Н');
readln(str);
end;
if ch<>0 then
write ('S=', S:0:0, 'Среднее арифметическое', S/ch:0:2)
else
write('Не было введено ни одного четного числа');
end
else
write ('Извините, эта программа не для Вас.');
readln;
end.




--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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