Примеры написания программ
Задача. Написать программу, вычисляющую произведение ненулевых элементов целочисленного одномерного массива.
Напишите функции :
Заполнения массива случайными числами в диапазоне от –к до +к.
Вывода одномерного массива.
Вычисления произведения ненулевых элементов одномерного массива.
Анализ решения задачи. Необходимо написать три функции.
Для определения характеристик каждой функции ответим на три вопроса.
Функция заполнения случайными числами:
Имя функции – InMas
Список параметров функции (исходные данные). Функции необходимо передать одномерный массив для его изменения (заполнения) – int*p,intn; и переменную, задающую диапазон изменения чисел -intk;
Тип функции (тип возвращаемого результата). Функция ничего не будет вычислять, поэтому и передавать нечего. Тип функции – void
Функция вывода массива на экран монитора:
Имя функции – OutMas
Список параметров функции (исходные данные). Функции необходимо передать одномерный массив для его вывода, а массив определяется двумя параметрами – int*p,intn;
Тип функции (тип возвращаемого результата). Функция ничего не будет вычислять, поэтому и передавать нечего. Тип функции – void
Функция вычисления произведения:
Имя функции – ProductMas
Список параметров функции (исходные данные). Функции необходимо передать одномерный массив – int*p,intn;
Тип функции (тип возвращаемого результата). Функция определяет произведение целых чисел. Необходимо учитывать, что произведение быстро растет, поэтому тип результата long.
Программа будет строиться в виде проекта.
Текст функций пользователя будет выглядеть так:
#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;
}
- ОбрабоТка строк Цель работы
- Порядок написания программы
- Примеры написания программ
- 1 Вариант решения – обращение к элементу массива идет через имя элемента массива, память выделяется статически, строка вводится без пробелов внутри.
- 2 Вариант решения – обращение к элементу массива идет через адрес элемента массива, память выделяется динамически, строка вводится с пробелами внутри.
- Контрольные вопросы и задания
- Задание
- ОбрабоТка одномерных числовых массивов
- 2 Вариант решения – обращение к элементу массива идет через адрес элемента массива, память выделяется динамически, заполняется массив с клавиатуры.
- Контрольные вопросы и задания
- Задание
- ОбрабоТка двумерных числовых массивов
- 2 Вариант решения – обращение к элементу массива идет через адрес элемента массива, память выделяется динамически, заполняется массив с клавиатуры.
- Контрольные вопросы и задания
- Задание
- Функции с одним результатом Цель работы
- Порядок написания программы
- Примеры написания программ
- Контрольные вопросы и задания
- Задание
- Функции с несколькими результатами Цель работы
- Порядок написания программы
- Примеры написания программ
- Контрольные вопросы и задания
- Задание
- Функции и строки Цель работы
- Порядок написания программы
- Примеры написания программ
- Контрольные вопросы и задания
- Задание
- Функции и одномерные числовые массивы Цель работы
- Порядок написания программы
- Примеры написания программ
- Контрольные вопросы и задания
- Задание
- Функции и матрицы Цель работы
- Порядок написания программы
- Примеры написания программ
- Контрольные вопросы и задания
- Задание
- Шаблоны функций Цель работы
- Порядок написания программы
- Примеры написания программ
- Контрольные вопросы и задания
- Задание