Задачи и порядок выполнения работы

Лабораторная работа состоит из двух частей: одномерные массивы и многомерные массивы. Студент выполняет обе части.

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

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

Примеры выполнения работы

Пример 1

Условие задачи:

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

Для решения задачи в среде Microsoft Visual Studio 2013 было создано стандартное консольное приложение (проект типа Win32 Console Application) с установленным свойством «пустой проект» (Empty project). В проект добавлен файл с расширением .cpp, исходный код которого приведен ниже.

Листинг программы с комментариями:

#include <stdio.h>

#include <stdlib.h>

void main()

{

double *pMas; // Указатель на массив

int n; // Заранее неизвестная размерность массива

// Вводим размерность массива с клавиатуры

printf_s("n=");

scanf_s("%d", &n);

// Выделяем память динамически

pMas = (double *)malloc(n*sizeof(double));

// Заполняем массив случайными числами в интервале [0, 100)

// и печатаем число

for (int i = 0; i<n; i++)

{

pMas[i] = rand() % 100;

printf("%f ", pMas[i]);

}

// Переворачиваем массив

for (int i = 0; i<n / 2; i++)

{

// Меняем 2 элемента местами, используя буферную переменную

double buf = pMas[i];

pMas[i] = pMas[n - 1 - i];

pMas[n - 1 - i] = buf;

}

// Печатаем полученный массив

printf("\n");

for (int i = 0; i<n; i++)

printf("%f ", pMas[i]);

// Освобождаем память

free(pMas);

// Останавливаем программу, ждем нажатия любой клавиши

system("pause");// Останавливаем программу, ждем нажатия любой клавиши

}

Наши рекомендации