Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

По дисциплине: Объектно-ориентированное программирование

Лабораторная работа №5

На тему: «Решение задач с одномерными массивами»

По дисциплине: Объектно-ориентированное программирование

 


 


 


Выполнил:
Студент группы Y2333
Григорьев Петр

Оценка:_______

Проверил:
Сорокин Д.Ю.
Дата:__________

Подпись:_______

 

Санкт-Петербург
2017г.


Задача:

 

Составить программу, которая реализована с помощью функций (их должно быть больше 2). Программа:

a) Запрашивает у пользователя массив чисел и выводит этот массив на экран. Среди чисел должны быть отрицательные, положительные и равные нулю. Дополнительные параметры, если они упоминаются в тексте задания, вводятся с клавиатуры.

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

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

 

Вариант 5

Задание варианта:

 

Даны целые массивы X[10], Y[10]. Каждый массив преобразовать так, чтобы его компоненты располагались в обратном порядке, т.е. получить массивы:
X[10]={X[9],…, X[0]}; Y[10]={Y[9],…, Y[0]}, компоненты, которых пронумерованы также от 0 до 9.

 


Блок схема программы

 

 

 



Листинг программы

 

#include <iostream>

#include <stdio.h>

using namespace std;

//функция выделения динамической памяти

int* DynMemoryArrayAllocForIntValue (int size){

int *array = new int[size];

return array;

}

//функция освобождения динамической памяти

int DynMemoryArrayClean(int array[]){

delete []array;

return 0;

}

//фунция переворота массива

int* reverseArray (int size, int array[]){

int* reverseArr=DynMemoryArrayAllocForIntValue(size);

int z=size-1;

for(int i=0;i<size;i++){

reverseArr[i]=array[z];

z--;

}

return reverseArr;

}

//функция заполнения массива с клавиатуры

int setArray(int size, int array[]){

for(int i=0;i<size;i++){

scanf("%d",&array[i]);

}

return 0;

}

//функция вывода массива в строку

int printArrayCol(int size,int array[]){

for(int i=0;i<size;i++){

cout<<array[i]<<"; ";

}

cout<<""<<endl;

return 0;

}

int main()

{

cout << " Lab5" << endl;

cout << "First task" << endl;

cout << "Enter the number of elements in the array" << endl;

int size; //Объявление переменной, которая хранит размер массива

scanf("%d",&size); //ввод числа в переменную

int *array=DynMemoryArrayAllocForIntValue(size); //объявление и выделение памяти под массив

cout << "Enter numbers by dividing them by pressing 'enter' (format int)" << endl;

setArray(size,array);//вызов метода заполнения массива

//вывод введенного массива, с помощью метода

cout << "Your array:" << endl;

printArrayCol(size,array);

cout << "Second task" << endl;

//объявление 4 массивов Х,У и обратные им

int *x=DynMemoryArrayAllocForIntValue(10);

int *y=DynMemoryArrayAllocForIntValue(10);

int *reverseX;

int *reverseY;

cout << "Enter numbers by dividing them by pressing 'enter' (format int) Array X" << endl;

setArray(10,x); //вызов функции заполнения массива

cout << "Enter numbers by dividing them by pressing 'enter' (format int) Array Y" << endl;

setArray(10,y); //вызов функции заполнения массива

reverseY=reverseArray(10,y);

reverseX=reverseArray(10,x);

 

cout << "Output:" << endl;

cout << "Array X:" << endl;

printArrayCol(10,x);//вывод массива с помощью функции

cout << "Array reverseX:" << endl;

printArrayCol(10,reverseX);//вывод массива с помощью функции

cout << "Array Y:" << endl;

printArrayCol(10,y);//вывод массива с помощью функции

cout << "Array reverseY:" << endl;

printArrayCol(10,reverseY);//вывод массива с помощью функции

//освобождение динамической памяти

DynMemoryArrayClean(array);

DynMemoryArrayClean(x);

DynMemoryArrayClean(y);

DynMemoryArrayClean(reverseX);

DynMemoryArrayClean(reverseY);

return 0;

}


Протокол работы программы

 

В программе существуют пять функций:

1) setArray – принимает две переменные, первая это размер массива, вторая указатель на массив. Эта процедура заполняет массив принимая переменные с помощью scanf возвращает 0 после завершения работы

2) printArrayCol – принимает те же переменные что и предыдущая процедура. Но она выводит массив в виде строки, с помощью cout. Возвращает 0 после завершения работы.

3) DynMemoryArrayAllocForIntValue – принимает int значение размера массива. Выделяет динамическую память под int массив размером size. Возвращает указатель на массив

4) DynMemoryArrayClean – принимает указатель массива освобождает динамическую память. Возвращает 0 после завершения работы

5) reverseArray – принимает int значение размера массива и указатель на массив. Возвращает указатель на перевернутый массив.

 

После старта программа запрашивает у пользователя размер массива и сам массив. После этого она выводит этот массив.
Затем программа запрашивает два массива X и Y, после этого создает два других массива, обратных X и Y.
Перед завершением, программа выводит эти 4 массива.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...