помогите закончить программу по нахождению среднего арифметического с подсчетом суммы положительных чисел(пока не будет введён ноль) . используя оператор repeat,в Паскале
Давайте разбираться. Начнём непосредственно с ошибки:
writeln(N); - программа примет лишь 1 значение в переменную N.
Так как мы не знаем, когда именно мы закончим выполнять программу, то нам цикл for не подходит. Заместо него лучше использовать цикл While...do.
Идея решения: внутри цикла мы каждый раз будем получать от пользователя число. Если число окажется равно 0, то мы останавливаем цикл. С этим хорошо справляется команда break. Во всех остальных случаях, мы должны использовать переменную, которая будет считать количество введёных пользователем чисел (т.е., пользователь ввёл новое число, наш счётчик увеличился). Также нам понадобится переменная, которая будет в себе содержать сумму чисел и, получается, каждый раз, когда пользователь введёт число, оно приплюсовывается к нашей сумме. Когда пользователь ввёл 0 и мы завершили цикл, нам остаётся рассчитать среднее арифметическое. Для этого сумма элементов делится на их количество. Попробуйте реализовать данную программу.
0 votes Thanks 1
NickCantBeEmpty
Пока кто-то указывает на ошибки и дают советы, другие просто выкладывают готовые решения... Даже не знаю, что лучше :P
rinatmuxekto86
Всё зависит от того, что вы ставите своей целью, помогая ребятам на данном портале. Я, всё таки, надеюсь, что они прочтут объяснение и/или хотя бы попытаются в нём разобраться ^_^
NickCantBeEmpty
Ни в коем случае не имею ничего против такой позиции, вот только... В задании четко указано, что следует использовать оператор "repeat"... То есть связка while+break тут не подходит сразу)) Хотя, если бы этого ограничения не было, я бы и сам его использовал. Привычнее.
Answers & Comments
Давайте разбираться. Начнём непосредственно с ошибки:
writeln(N); - программа примет лишь 1 значение в переменную N.
Так как мы не знаем, когда именно мы закончим выполнять программу, то нам цикл for не подходит. Заместо него лучше использовать цикл While...do.
Идея решения: внутри цикла мы каждый раз будем получать от пользователя число. Если число окажется равно 0, то мы останавливаем цикл. С этим хорошо справляется команда break. Во всех остальных случаях, мы должны использовать переменную, которая будет считать количество введёных пользователем чисел (т.е., пользователь ввёл новое число, наш счётчик увеличился). Также нам понадобится переменная, которая будет в себе содержать сумму чисел и, получается, каждый раз, когда пользователь введёт число, оно приплюсовывается к нашей сумме. Когда пользователь ввёл 0 и мы завершили цикл, нам остаётся рассчитать среднее арифметическое. Для этого сумма элементов делится на их количество. Попробуйте реализовать данную программу.
Хотя, если бы этого ограничения не было, я бы и сам его использовал. Привычнее.
<немного текста, чтобы ответ приняли>