|
0 / 0 / 0
Регистрация: 22.07.2015
Сообщений: 7
|
||||||
Вычисление среднего арифметического массива: принцип работы цикла for23.07.2015, 12:24. Показов 13785. Ответов 16
Метки нет (Все метки)
Всем привет!
Сразу скажу - новичок, самоучка. Был когда-то опыт программирования в Паскале, но уже давно. Сейчас читаю труд Шилдта по Java 8, и встретился мне там небольшой скриптик с одномерным массивом и циклом for, который страсть как хочется разобрать по косточкам:
Прошу прощения за глупые вопросы, но автор издания этот скрипт не разбирает, а просто даёт в качестве примера, и хотелось бы понять всю суть его работы. Помогите!
0
|
||||||
| 23.07.2015, 12:24 | |
|
Ответы с готовыми решениями:
16
Вычисление среднего арифметического: не видно результатов работы программы |
|
95 / 95 / 50
Регистрация: 07.07.2015
Сообщений: 208
|
|
| 23.07.2015, 13:03 | |
|
К сожалению... это не скрипт. Если автор издания не разбирает сей пример, то до него было много страниц и должно быть уже все понятно. Нужно перечитать, либо поменять литературу.
Average - это класс, надеюсь не удивил. psvm - стандартная сигнатура основного метода класса, точка входа в программу. nums - массив вещественных чисел result - переменная, которая хранит результат сложения всех чисел массива nums i - переменная необходимая для реализации цикла for если не понятно, что делает i в цикле, перечитайте литературу. sout - вывод строки в стандартный поток вывода (например консоль).
1
|
|
|
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
|
||||||
| 23.07.2015, 13:07 | ||||||
|
у Шилдта реально так и написано?
1
|
||||||
|
0 / 0 / 0
Регистрация: 22.07.2015
Сообщений: 7
|
|
| 23.07.2015, 13:37 [ТС] | |
|
Паблито, Да, реально - переменная i вынесена.
Добавлено через 2 минуты mocivan, спасибо, но Вы мне перечислили переменные и их назначение. Я же спрашивал про алгоритм действий - почему именно так и именно в такой последовательности? Что именно делает каждая из них именно в этой задаче?
0
|
|
|
6 / 6 / 2
Регистрация: 21.07.2015
Сообщений: 21
|
||||||
| 23.07.2015, 14:45 | ||||||
1
|
||||||
| 23.07.2015, 14:49 | |||||||
0
|
|||||||
|
6 / 6 / 2
Регистрация: 21.07.2015
Сообщений: 21
|
|
| 23.07.2015, 14:56 | |
|
reisal78, сори, ошибся
теперь нашел.
0
|
|
|
0 / 0 / 0
Регистрация: 22.07.2015
Сообщений: 7
|
|
| 23.07.2015, 15:04 [ТС] | |
|
Serg32, Спасибо за развёрнутый ответ, но самое главное не понятно, прошу прощения... Цикл for - суть его работы ясна. Он инициируется на нулевом значении переменной i, затем наращивает её пошагово до значения 4. А далее получается, что result = result + nums[i], т.е. нулевому значению result присваивается сумма переменная result плюс значение одномерного массива, которое взято из цикла for? Как это работает вместе - цикл for и присвоение значения переменной result?
0
|
|
|
6 / 6 / 2
Регистрация: 21.07.2015
Сообщений: 21
|
|
| 23.07.2015, 15:19 | |
|
он пробегает по всему массиву. складывает значения массива и записывает в result. затем result делим на 5. я кстати сам джава только месяц учу. до этого ни кодил ни разу ни на чем. прибило на старости
)
1
|
|
|
0 / 0 / 0
Регистрация: 22.07.2015
Сообщений: 7
|
|
| 23.07.2015, 16:03 [ТС] | |
|
Serg32, спасибо. Я учу еще пока пару недель )) Но по этой задаче я так ничего и не понял, даже после Вашего объяснения... Вот бы на пальцах кто объяснил, пошагово...
0
|
|
|
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
|
|
| 23.07.2015, 16:16 | |
|
1
|
|
|
Автоматизируй это!
|
|
| 23.07.2015, 16:25 | |
|
Aorph, писать долго, чтобы на пальцах, но попробую.
Цикл - это действия по кругу, выполняются снова и снова одно за другим. Итак, for (int i=0; i<5; i++) то бишь 5 кругов пройдем по одним и тем же действиям. 1 круг) начинаем, i=0, переменная result равна 0, к ней прибавляем значение массива nums расположенное в 0 ячейке, так как nums[i] а i у нас 0. Все массивы нумеруются с 0, а не с 1! Получаем result = 0 + 10,1 = 10,1 2 круг) i=1, переменная result равна 10,1 после первого круга , к ней прибавляем значение массива nums расположенное в 1 ячейке, так как nums[i] а i у нас 1. Получаем result = 10,1 + 11,2 = 21,3 3 круг) i=2, переменная result равна 21,3 после 2 круга , к ней прибавляем значение массива nums расположенное в 2 ячейке, так как nums[i] а i у нас 2. Получаем result = 21,3 + 12,3 = 33,6 4 круг) i=3, переменная result равна 33,6 после 3 круга , к ней прибавляем значение массива nums расположенное в 3 ячейке, так как nums[i] а i у нас 3. Получаем result = 33,6 + 13,4 = 47 5 круг) i=4, переменная result равна 47 после 4 круга , к ней прибавляем значение массива nums расположенное в 4 ячейке, так как nums[i] а i у нас 4. Получаем result = 47 + 14,5 = 61,5 далее цикл не пойдет так далее число 5, а тогда условие i<5 не выполнится, потому выходим из цикла Выводим на экран наше число деленное на 5 то есть 61,5 / 5 = 12,3
1
|
|
|
0 / 0 / 0
Регистрация: 22.07.2015
Сообщений: 7
|
|
| 30.07.2015, 12:08 [ТС] | |
|
Welemir1, спасибо громадное за подробный ответ! Если я всё правильно понял, по итогам очередного круга цикла for на месте переменной i, указанной в квадратных скобках массива переменных nums, появляется результат, который является ссылкой на число, перечисленное в фигурных скобках этого самого массива?
0
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 30.07.2015, 12:55 | |
|
Aorph, вы похоже пропустили первые главы книги судя по вашим вопросам
0
|
|
|
Mobile Software Engineer
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
|
||||||
| 30.07.2015, 18:34 | ||||||
|
цикл for действительно сложный, не пользуйтесь им
0
|
||||||
|
0 / 0 / 0
Регистрация: 14.10.2017
Сообщений: 1
|
|
| 15.10.2017, 08:11 | |
|
В приведенном примере все понятно, кроме: почему метод System.out.println выводит результат (result/5) только после того как пройдет весь цикл, и все значения массива запишутся в "result", а не выводит результат каждого шага цикла ?
Первый шаг цикла: result + nums[0]=10.1; System.out.println("Среднее значение равно " + 10.1 / 5) ...и так далее. Добавлено через 16 секунд В приведенном примере все понятно, кроме: почему метод System.out.println выводит результат (result/5) только после того как пройдет весь цикл, и все значения массива запишутся в "result", а не выводит результат каждого шага цикла ? Первый шаг цикла: result + nums[0]=10.1; System.out.println("Среднее значение равно " + 10.1 / 5) ...и так далее. Добавлено через 13 часов 53 минуты Наверное потому что метод System.out.println не является оператором цикла for, так как отделен знаком ";".
0
|
|
| 15.10.2017, 08:11 | |
|
Помогаю со студенческими работами здесь
17
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|