![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Лена |
![]()
Сообщение
#1
|
Гость ![]() |
Огромное спасибо тому человеку, который сделал мне прошлую программу!
Но сейчас нам задали еще одну и к завтрашнему дню: нужно найти среднее арифметическое n чисел. Причем n может быть любым. Сначала нужно спросить, сколько чисел надо. Помогите, плиз. |
hiv |
![]()
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Поиском надо пользоваться!
Подобная задача -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
Лена |
![]()
Сообщение
#3
|
Гость ![]() |
Я это читала, но чем можно заменить array и extended? Мы это не проходили.
Можно ли написать программу по-другому? |
volvo |
![]()
Сообщение
#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. |
Altair |
![]()
Сообщение
#5
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Массив можно вообще убрать
в связи с тем, что Вольво подправил свой пост, этот уже не нужен ![]() Сообщение отредактировано: Oleg_Z - 2.03.2005 17:00 -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Лена |
![]()
Сообщение
#6
|
Гость ![]() |
Огромное всем Вам спасибо, кто мне помог, особенно Volvo.
|
Len |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Женский Репутация: ![]() ![]() ![]() |
Это снова я и с этой же программой. Ситуация уже критическая. Завтра нам выставят двойки
за несданные программы. А у меня их две. Среднее арифметическое вы написали абсолютно правильно. Но информатичке не нравится sum:=0.0 и sum:=sum+x. Она говорит, что это не надо. Ей нужна какая-то формула, вероятно вместо (sum/n). Если убрать sum:=0.0 и sum:=sum+x, то программа начинает каждый раз выводить другое число, когда я спрашиваю, продолжить выполнение или нет. Подскажите, пожалуйста, какая нужна формула? |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата(Len @ 16.03.05 10:49) информатичке не нравится sum:=0.0 и sum:=sum+x. Она говорит, что это не надо. Ей нужна какая-то формула, вероятно вместо (sum/n). ![]() Что касается второй части вопроса, то возможно она хочет, чтобы это делалось так: Код for i := 1 to n do begin write(i, '-е число = '); readln(x); sum := sum + x/n end; writeln('среднее арифметическое = ', sum:8:5) Если не так, то я просто не знаю, чего она от вас требует. Ну не придумали способа вычисления среднего арифметического без ввода и суммирования всех значений в цикле... Кстати, если она все-таки соизволит рассказать, что это за способ, обязательно напишите о нем сюда... Очень хочется знать, как это - не вводя числа (или не суммируя их) - подсчитать их среднее арифметическое. |
hiv |
![]()
Сообщение
#9
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Вообще-то в старые советские времена нас учили оптимизации с самого начала. А сечас в школы выбирают учителей информатики из каких-то дворников. Самое простое - операция деления выполняется медленнее операции сложения на порядок (в 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 - 16.03.2005 15:25 -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
Len |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Женский Репутация: ![]() ![]() ![]() |
Нет, не так...
Ей нужна формула, a sum:=sum+x и sum:=0.0 мне приказали убрать... ПОМОГИТЕ, ПЛИЗ! :molitva: |
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
Цитата(Len @ 16.03.05 14:27) Ей нужна формула В таком случае тут одно из 2-х: либо Вы неправильно даете задание (возможно, оно звучало не совсем так, как записано в первом посте), либо - Ваша информатичка просто хочет Вас что называется "завалить". (Есть еще третья опция, но я не буду вдаваться в подробности...) hiv Цитата Нам в свое время за такие ошибки двойки ставили! :zdorov: |
Len |
![]()
Сообщение
#12
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Женский Репутация: ![]() ![]() ![]() |
вроде это задание. у нас в классе один человек сделал такую программку и 5 получил, но увы, он очень жадный..
Ну как-нибудь можно нули убрать и чтобы все работало? |
hiv |
![]()
Сообщение
#13
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Увы больше ничем помочь не получится... Проще волшебную палочку найти или понять, чего женщины хотят...
Берите сделанную прогу и талкайте ее училке, и пусть проверяет верность ответа, ведь задача решена верно! Если будет отпираться - пожалуйся на нее директрисе, чего это она от вас требует от вас того, чего сама не объясняла и выполненное задание с правильными ответами не принемает. Ей влетит по первое число, особенно если заставить директрису посчитать среднее арифметическое 10 чисел и показать, что программа выдала такой же результат как у директрисы! ![]() -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
Len |
![]()
Сообщение
#14
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Женский Репутация: ![]() ![]() ![]() |
Легко так писать...
|
volvo |
![]()
Сообщение
#15
|
Гость ![]() |
По-моему тема опять уходит в offtop. Давайте все-таки не отклоняться...
|
hiv |
![]()
Сообщение
#16
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Нули убрать можно так:
Код 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('Данные отсутствуют! Среднее арифметическое посчитать не возможно!'); -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:48 |