По дисциплине: Объектно-ориентированное программирование
Лабораторная работа №5 На тему: «Решение задач с одномерными массивами» По дисциплине: Объектно-ориентированное программирование
Оценка:_______ Проверил: Подпись:_______
Санкт-Петербург Задача:
Составить программу, которая реализована с помощью функций (их должно быть больше 2). Программа: a) Запрашивает у пользователя массив чисел и выводит этот массив на экран. Среди чисел должны быть отрицательные, положительные и равные нулю. Дополнительные параметры, если они упоминаются в тексте задания, вводятся с клавиатуры. b) Вычисляет значения переменных согласно варианту задания. c) Выводит значения всех полученных переменных с пояснениями.
Вариант 5 Задание варианта:
Даны целые массивы X[10], Y[10]. Каждый массив преобразовать так, чтобы его компоненты располагались в обратном порядке, т.е. получить массивы:
Блок схема программы
#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 значение размера массива и указатель на массив. Возвращает указатель на перевернутый массив.
После старта программа запрашивает у пользователя размер массива и сам массив. После этого она выводит этот массив.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|