Программы циклической структуры с использованием векторов

 

Министерство образования и науки Российской Федерации

Федеральное агентство по высшему образованию

Вятский государственный университет

Кафедра радиоэлектронных средств








Контрольная работа №2

По дисциплине "Информатика"













Киров 2013 г.


Цель работы: составление алгоритмов и написание программ циклической структуры с использованием векторов, указателей и векторов указателей на вектор на языке C++. Статическое и динамическое распределение памяти.

Задание: для решения задачи разработать следующие функции:

-функцию ввода элементов вектора или матрицы в соответствии с индивидуальным заданием;

-функцию обработки вектора или матрицы по правилу, определяемому индивидуальным вариантом;

-функцию вывода вектора или матрицы на экран в общепринятом виде;

-функцию main(), которая организует работу всех разработанных функций; в этой функции предусмотреть возможность многократного решения задачи с различными исходными данными.

-Программу разработать в двух видах:

-используя статическое распределение памяти для хранения исходного вектора или исходной числовой матрицы (предусмотреть некоторые максимально возможные значения параметров вектора или матрицы);

-используя динамическое распределение памяти для хранения исходного вектора или исходной матрицы.

Предусмотреть вывод на экран вектора или матрицы, как вновь введенных, так и сформированных, а также проверку данных на соответствие диапазону, предусматриваемому для данного типа данных.

Текст задания: Дан целочисленный массив S(n).Сформировать матрицу B, первая строка которой будет содержать элементы массива с четными номерами, а вторая - с нечетными.


Ход работы


Последовательность действий:

.сохранить введенное с клавиатуры число N;

.в цикле с параметром N заполнить массив вводимыми с клавиатуры числами;

.вывести на экран полученный массив;

.создать матрицу и заполнить её так, чтобы первая строка содержала элементы массива с четными номерами (0,2,4…), а вторая - с нечетными (1,3,5…);

.вывести на экран полученную матрицу.

В функции main() объявляются массив mass и размер массива N. В случае со статическим распределением памяти размер массива будет ограничен 100 элементами, при динамическом - mass объявлен как указатель. Выбор распределения памяти производится с начала запуска программы, и организован он при помощи оператора switch-case. Далее происходит считывание введенного с клавиатуры значения N и если оно удовлетворяет условию 0<N<100 и является четным числом (для одинакового числа столбцов обеих строк будущей матрицы), циклически производится заполнение массива значениями с помощью функции fill(), затем элементы массива выводятся на экран функцией show().

Функция input() считывает с клавиатуры строку, затем преобразует ее в число типа int и возвращает управление обратно.

Функция fill() организует заполнение массива вводимыми с клавиатуры числами.

Функция show() выводит на экран требуемое количество элементов предложенного массива.

В функции matrix() производится объявление матрицы B и поочередное заполнение её строк элементами массива с четными (1-ая строка) и нечетными (2-ая строка) номерами. После заполнения матрицы выполняется вывод её содержимого на экран.

Тексты программы приведен ниже.

/*

Дан целочисленный массив S(n).Сформировать матрицу B, первая строка которой будет

содержать элементы массива с четными номерами, а вторая - с нечетными.

*/

#include "stdafx.h"input(void);fill(int*,int);show(int*,int);matrix(int*,int);_tmain(int argc, _TCHAR* argv[])

{N;

{inp;

// выбор задачи по виду распределения памяти

printf("\nChoose and input: 0 - static 1 - dynamic\n");

inp=input();(inp)

{0: //статическое распределение памяти

{mass[100];

{("\nN= ");=input();(N<=100&&(N%2)==0)

{(mass,N);('\n');(mass,N);('\n');putchar('\n');("Result:");('\n');putchar('\n');(mass,N);;

} printf("Please try input N else: <100 and 4etnoe",100);

} while (1);;

} 1: //динамическое рапсределение памяти

{

{("\nN= ");=input();

if (N<=100&&(N%2)==0)

{* mass = new int[N]; //выделение памяти для массива

fill(mass,N);('\n');(mass,N);('\n');putchar('\n');("Result:");('\n');putchar('\n');(mass,N);[] mass; //освобождение памяти;

} printf("Please try input N else: <100 and 4etnoe",100);

} while (1);;

}

}('\n');("\nPress any key to continue or [N] to cancel...\n");

} (getch()!=0x6E);

//цикл будет продолжаться до тех пор

//пока пользователь не нажмет N

}

/* считывание вводимых символов*/input(void)

{str[256];("%s",&str);

/*Функция atoi (из ASCII в целое число) используется

для приведения символов строки в символы знакового челого (тип int)

*/atoi(str);

}

/*заполнение массива*/

void fill(int* dst,int size)

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

{("mass[%i]:",i);[i]=input();

}

}

/*вывод массива на экран*/show(int* mass,int size)

{(int i=0;i<size;i++) printf("%i ",mass[i]);

}

/*формирование матрицы*/matrix(int* mass,int size)

{B [2][100];j=0;

//первая строка матрицы заполняется четными номерами элементов массива [0,2,4...]

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

{[0][j]=mass[i];

++j;

}k=0;

//вторая строка матрицы заполняется нечетными номерами элементов массива [1,3,5...]

for (int i=1;i<size;i+=2)

{[1][k]=mass[i];

++k;

//вывод матрицы на экран

for (int i=0;i<2;++i)('\n');(int l=0;l<size/2;++l)("%i ", B[i][l]);

}

Схемы алгоритмов функций приведены на рисунке, пример работы программы приведен на рисунке 1. Пример исполнения программы на рисунке 2.

алгоритм программа вектор матрица


Рисунок 1 - Схемы алгоритмов функций


Рисунок 2 - Результат исполнения программы


Министерство образования и науки Российской Федерации Федеральное агентство по высшему образованию Вятский государственный университет Кафедра радиоэле

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ