Условие задачи : Найти произведение элементов одномерного массива, состоящего из n элементов. Элементы вводятся с клавиатуры.
Сложность : легкая .
Для решения задачи нам понадобиться.
- Переменная под массив.
- Для того чтобы заполнить массив нам понадобиться цикл for а для него нужна переменная счетчик.
- Переменная для количества элементов массива.
- И переменная куда мы будем заносить наш ответ(произведение).
Для правильной работы с массивом нам нужно создать отдельный тип. Например для чисел у нас есть тип integer, это числа от -32768..32767, а мы создадим свой тип данных, пишем :
type massiv = array [1..100] of integer;
Вот теперь у нас есть свой тип данных mass, количество элементов 100 и они целого типа.
Дальше мы объявим переменные и попросим пользователя ввести количество элементов :
type massiv = array [1..100] of integer; var mass : massiv; n , i, proiz : integer; begin clrscr; // очищаем экран write('Введите кол-во элементов массива : '); readln(n); end.
До начала цикла нам нужно присвоить переменной proiz единицу, чтобы мы могли считать произведение, если мы этого не сделаем то у нас постоянно будет произведение равняться 0.
Теперь нам нужно сделать цикл в котором мы будем просить пользователя ввести число и сразу же будем считать наше произведение :
proiz := 1 ; for i:=1 to n do begin write('Введите ', i , ' число : '); readln(mass[i]); proiz := proiz * mass[i]; end;
Как здесь работает цикл ? Допустим мы ввели число 3 , это значит что у нас будет 3 элемента в массиве, и также это значит что цикл у нас будет выполняться 3 раза.
1-й раз :
// нас просят ввести число , допустим мы вводим 2. // переменной proiz мы присваиваем proiz := 1 * 2 = 2; // т.к. изначально proiz = 1
2-й раз :
// нас просят ввести число , допустим мы вводим 3. // переменной proiz мы присваиваем proiz := 2 * 3 = 6 ; // т.к. уже proiz = 2
И 3-й раз :
// нас просят ввести число , допустим мы вводим 4. // переменной proiz мы присваиваем proiz := 6 * 4 = 24; // т.к. уже proiz = 6
Вот и вся работа цикла.
Весь код программы :
uses crt ; type massiv = array [1..100] of integer; var mass : massiv; n , i, proiz : integer; begin clrscr; // очищаем экран write('Введите кол-во элементов массива : '); readln(n); proiz := 1 ; for i:=1 to n do begin write('Введите ', i , ' число : '); readln(mass[i]); proiz := proiz * mass[i]; end; writeln('Произведение массива из ', n , ' элементов = ', proiz); readln; // чтобы программа не закрывалась end.