Задачи по Pascal. Произведение нечетных элементов массива.

Задачи по Pascal

Условие задачи : Сформировать и вывести на экран массив, элементы которого заданы датчиком случайных чисел на интервале [-19, 26] . Найти произведение элементов с нечетными номерами.

Сложность : легкая .

Задача похожа на (эту), но там мы искали сумму четных элементов, так что будем опираться на неё.

Первое что мы сделаем мы создадим свой тип данных как и зачем читайте (тут) :

type
   massiv = array [1..100] of integer;

Дальше нужно определить какие переменные нам нужны. Они будут те же самые что и в этой задаче, только заместо суммы будет произведение.

var
    n,proizv,i : integer;
    mass : massiv;

Теперь мы просим пользователя ввести размер массива, также нам нужно присвоить начальное значение нашей переменной proizv единицу, т.к. в неё мы будем заносить произведение, а если этого не сделать то произведение всегда будут равна 0. ВСЕГДА!!!

И также заодно включим генератор случайных чисел, чтобы числа у нас не повторялись.

randomize; // генератор случайных чисел.

write('Введите размер массива : '); readln(n);
proizv := 1;

Теперь цикл. Что мы будем в нём делать ?

  1. Сначала мы присвоим значение элементу массива.
  2. Выведем его на экран
  3. И проверим на нечетность.

Условие нечетности :

if (mass[i] mod 2 <> 0) then
     proizv := proizv * mass[i];

Оно противоположно четности, про неё читайте ( здесь )

Сам цикл :

for i:=1 to n do
     begin
         mass[i] := random(46) - 19;
         writeln(i, ' число : ', mass[i]);

         if (mass[i] mod 2 <> 0) then
             proizv := proizv * mass[i]
         else
             writeln('Число ',mass[i],' четное, умножено не БУДЕТ!!! ');
      end;

Думаю что тут всё понятно, единственное что может вызвать трудность это random(), если написать random(46), то число у нас будет от 0 до 46 , а чтобы было только до 26 мы вычитаем 19, чтобы понять попробуйте по подставляйте.

Вот и всё задача решена.

Весь код программы :

uses crt;

type
   massiv = array [1..100] of integer;

var
    n,proizv,i : integer;
    mass : massiv;

begin
    clrscr;
    randomize; // генератор случайных чисел.

    write('Введите размер массива : '); readln(n);
    proizv := 1;

    for i:=1 to n do
        begin
            mass[i] := random(46) - 19;
            writeln(i, ' число : ', mass[i]);

            if (mass[i] mod 2 <> 0) then
                proizv := proizv * mass[i]
            else
                writeln('Число ',mass[i],' четное, умножено не БУДЕТ!!! ');
        end;
    writeln('Произведение массива равно : ', proizv);
    readln; // чтобы программа не закрывалась.
end.

cyber
Оцените автора
CyberLesson | Быстро освоить программирование Pascal и C++. Решение задач Pascal и C++
Добавить комментарий