Помогите написать две несложные программы
Вложений: 2
Знаю, темы несложные, но я, видимо, проспал. Решите и объясните, пожалуйста
|
Ладно. Вот первое задание:
Код:
Const |
Второе задание. Тут отмечу, что об не напортачить в методичке — и речи быть не может! Дают конкретные матрицы с n=3 и тут же заявляют, что n=8. Или нужно сгенерить свои матрицы? Как всегда, мутно.
Код:
Const |
А где в первом задании произведение элементов массива с четными номерами
|
Цитата:
P:=1; и дальше ещё 4 строки. |
Объясните пожалуйста остальные строки вашей первой программы
|
Цитата:
Но так, вкратце: 1. Объявляется (константой) длина массива (20). 2. Методом случайных чисел заполняется массив. После этого двум элементам принудительно присваиваются нулевые значения, чтобы нулевые элементы заведомо присутствовали. 3. Ищется произведение элементов с четными номерами. 4. Ищутся номера первого и последнего нулевых элементов. Считается сумма элементов с номерами между найденными. 5. Организуется новый массив В, в который сначала последовательно помещаются все неотрицательные элементы массива А, а потом с конца — все отрицательные элементы. Результаты всех действий выводятся на экран. |
Сижу, пытаюсь разбирать программу... Объясните, как работает произведение элементов массива, а именно строчку с for и сумма элементов массива особенно циклы repeat и также строчку с for
|
Цитата:
7 2 9 1 3 5 6, т.е. N=7. Нам нужно найти произведение 2*1*5, т.е. произведение A[2]*A[4]*A[6]. 1. Искомому произведению P изначально присваиваем значение 1. 2. Находим (N div 2), т.е результат ЦЕЛОЧИСЛЕННОГО деления N на 2, в данном случае это 3. 3. Проходим в цикле по i от 1 до 3 домножение произведения P на элементы A[2i], т.е. при изменении i от 1 до 3 номера элементов будут приобретать значения 2, 4, 6. Что нам и требуется. Всё! Цитата:
Для этого: 1. Присваиваем Ifirst значение 0. Далее в цикле repeat..until прибавляем к Ifirst по единичке до тех пор, пока не выполнится условие A[Ifirst]=0. Всё, нашли номер первого нулевого элемента. 2. Присваиваем Ilast значение N+1. Далее в цикле repeat..until убавляем от Ilast по единичке до тех пор, пока не выполнится условие A[Ilast]=0. Так находим номер последнего нулевого элемента. 3. Присваиваем искомой сумме S начальное значение 0, а затем в цикле for..to прибавляем к S значения элементов с номерами между Ifirst и Ilast. Всё! |
С суммой массива разобрался, а вот с произведением не очень. Зачем писать (N div 2), если можно сразу написать 10?
И можно подробнее об этом? Цитата:
|
Часовой пояс GMT +4, время: 14:35. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.