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

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

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

 
 Ответить  Открыть новую тему 
> Среднее арифметическое N чисел, при помощи счетного оператора цикла FOR
сообщение
Сообщение #1


Гость






Огромное спасибо тому человеку, который сделал мне прошлую программу!
Но сейчас нам задали еще одну и к завтрашнему дню: нужно найти среднее арифметическое n чисел. Причем n может быть любым. Сначала нужно спросить, сколько чисел надо.
Помогите, плиз.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

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

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


Поиском надо пользоваться!
Подобная задача


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Я это читала, но чем можно заменить array и extended? Мы это не проходили.
Можно ли написать программу по-другому?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Лена, Extended можно заменить на Real, а вот Array к сожалению заменить ни на что не получится :no: Массив должен быть описан...

Хотя зачем?
Код

var i, n: integer;
 sum, x: real;
begin
 write('n = '); readln(n);
 sum := 0.0;
 for i := 1 to n do
   begin
     write(i, '-е число = '); readln(x);
     sum := sum + x
   end;
 writeln('среднее арифметическое = ', (sum/n):8:5)
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Ищущий истину
******

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

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


Массив можно вообще убрать

в связи с тем, что Вольво подправил свой пост, этот уже не нужен smile.gif

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


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Огромное всем Вам спасибо, кто мне помог, особенно Volvo.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


Это снова я и с этой же программой. Ситуация уже критическая. Завтра нам выставят двойки
за несданные программы. А у меня их две.
Среднее арифметическое вы написали абсолютно правильно. Но информатичке
не нравится sum:=0.0 и sum:=sum+x. Она говорит, что это не надо.
Ей нужна какая-то формула, вероятно вместо (sum/n).
Если убрать sum:=0.0 и sum:=sum+x, то программа начинает каждый раз выводить другое число, когда я спрашиваю, продолжить выполнение или нет.
Подскажите, пожалуйста, какая нужна формула?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата(Len @ 16.03.05 10:49)
информатичке
не нравится sum:=0.0 и sum:=sum+x. Она говорит, что это не надо.
Ей нужна какая-то формула, вероятно вместо (sum/n).

blink.gif объясните Вашей информатичке, что если не сделать "sum := 0.0", то программа может начать подсчет суммы не с 0 (как положено), а с какого-то постороннего значения, т.к. компилятор Паскаля автоматически обнуляет переменные только тогда, когда программа запускается из среды Паскаля; если же она запускается из ОС, то в переменной sum может оказаться (и окажется) совершенно посторонее значение. Так что обнуление переменных - обязательно.

Что касается второй части вопроса, то возможно она хочет, чтобы это делалось так:
Код
 for i := 1 to n do
  begin
    write(i, '-е число = '); readln(x);
    sum := sum + x/n
  end;
writeln('среднее арифметическое = ', sum:8:5)

Если не так, то я просто не знаю, чего она от вас требует. Ну не придумали способа вычисления среднего арифметического без ввода и суммирования всех значений в цикле...

Кстати, если она все-таки соизволит рассказать, что это за способ, обязательно напишите о нем сюда... Очень хочется знать, как это - не вводя числа (или не суммируя их) - подсчитать их среднее арифметическое.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Профи
****

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

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


Вообще-то в старые советские времена нас учили оптимизации с самого начала. А сечас в школы выбирают учителей информатики из каких-то дворников. Самое простое - операция деления выполняется медленнее операции сложения на порядок (в 4-10 раз).
И учить школьников писать код:
Код
for i := 1 to n do
 begin
   write(i, '-е число = '); readln(x);
   sum := sum + x/n
 end;
writeln('среднее арифметическое = ', sum:8:5)

вместо:
Код
for i := 1 to n do
 begin
   write(i, '-е число = '); readln(x);
   sum := sum + x;
 end;
 sum:=sum/n;
writeln('среднее арифметическое = ', sum:8:5)

это просто издевательство!
В первом коде производится n суммирований и n делений, а во втором примере (как по началу писал Volvo) n суммирований и всего-то ОДНО деление. Нам в свое время за такие ошибки двойки ставили!

ЗЫ: Я конечно понимаю, что там ручной ввод данных, а если из файла? Учить надо сразу правильному кодингу. Да, мощности компов выросли немеренно, но и объемы обрабатываемых данных растут не отставая!

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


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

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

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


Нет, не так...
Ей нужна формула, a sum:=sum+x и sum:=0.0 мне приказали убрать...
ПОМОГИТЕ, ПЛИЗ! :molitva:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Цитата(Len @ 16.03.05 14:27)
Ей нужна формула

В таком случае тут одно из 2-х: либо Вы неправильно даете задание (возможно, оно звучало не совсем так, как записано в первом посте), либо - Ваша информатичка просто хочет Вас что называется "завалить". (Есть еще третья опция, но я не буду вдаваться в подробности...)

hiv
Цитата
Нам в свое время за такие ошибки двойки ставили!

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


Новичок
*

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

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


вроде это задание. у нас в классе один человек сделал такую программку и 5 получил, но увы, он очень жадный..
Ну как-нибудь можно нули убрать и чтобы все работало?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Профи
****

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

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


Увы больше ничем помочь не получится... Проще волшебную палочку найти или понять, чего женщины хотят...
Берите сделанную прогу и талкайте ее училке, и пусть проверяет верность ответа, ведь задача решена верно! Если будет отпираться - пожалуйся на нее директрисе, чего это она от вас требует от вас того, чего сама не объясняла и выполненное задание с правильными ответами не принемает. Ей влетит по первое число, особенно если заставить директрису посчитать среднее арифметическое 10 чисел и показать, что программа выдала такой же результат как у директрисы! smile.gif


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

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

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


Легко так писать...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Гость






По-моему тема опять уходит в offtop. Давайте все-таки не отклоняться...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Профи
****

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

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


Нули убрать можно так:

Код
if n>0 then
begin
 write('1-е число = '); readln(sum);
 for i := 2 to n do
 begin
   write(i, '-е число = '); readln(x);
   sum := sum + x;
 end;
 sum:=sum/n;
 writeln('среднее арифметическое = ', sum:8:5)
end
else writeln('Данные отсутствуют! Среднее арифметическое посчитать не возможно!');


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Гость






Keflex Side Effects
 К началу страницы 
+ Ответить 

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

 





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