logo search
Методичка 2 Программирование

Примеры написания программ

Задача. Написать программу, вычисляющую произведение ненулевых элементов целочисленного одномерного массива.

Напишите функции :

  1. Заполнения массива случайными числами в диапазоне от –к до +к.

  2. Вывода одномерного массива.

  3. Вычисления произведения ненулевых элементов одномерного массива.

Анализ решения задачи. Необходимо написать три функции.

Для определения характеристик каждой функции ответим на три вопроса.

Функция заполнения случайными числами:

Функция вывода массива на экран монитора:

Функция вычисления произведения:

Программа будет строиться в виде проекта.

Текст функций пользователя будет выглядеть так:

#include<iostream> //подключение системных средств для

using namespace std; //возможности использовать потоки ввода-вывода

#include<stdlib.h >

void InMas(int *p, int n, int k)

{

int i;

for(i=0; i<n; i++) //перебор элементов массива

*(p+i)=rand()%(2*k+1) – k; //формируем случ число

return;

}

void OutMas(int *p, int n)

{

int i;

for(i=0; i<n; i++) //перебор элементов массива

cout<< *(p+i)<<’ ‘; //выводим i-ый элемент массива

return;

}

long ProductMas(int*p, int n)

{

int i;

long pr=1; //вычисление произведения начинается с 1

for(i=0; i<n; i++) // перебор элементов массива

if(*(p+i)!=0) // если i-ый элемент массива не 0

pr*= *(p+i); //домножаем произведение на i-ый элемент массива

return pr; // завершаем функцию и передаем результат из pr

}

Текст заголовочного файла будет выглядеть так:

#ifndef MAS_H

#define MAS _H

void InMas(int *p, int n, int k); //прототипы функций

void OutMas(int *p, int n);

long ProductMas(int*p, int n);

#endif

Текст функции main будет выглядеть так:

#include<iostream> //подключение системных средств для

using namespace std; //возможности использовать потоки ввода-вывода

#include<stdlib.h>

#include<time.h>

#include " Mas.h"

#include "Rus.h" //прототип функции русификации

int main(void)

{

const int SIZE=5;

int mas[SIZE]; //объявляем массив

long product; //переменная под произведение

srand(time(NULL)); //инициализируем генератор случайных чисел

InMas(mas,SIZE,10);// массив из SIZE чисел случ числами

cout<<"Исходный массив: "<<endl;

OutMas(mas,SIZE); //выводим массив на экран

product=ProductMas(mas,SIZE); //считаем произвед

cout<< "\nПроизведение равно "<< product<<endl;

return 0;

}