Файл: Отчет по практической работе 12 Элементы алгоритмизации и процедурного программирования по дисциплине.pdf

ВУЗ: Не указан

Категория: Отчеты по практике

Дисциплина: Не указана

Добавлен: 12.04.2024

Просмотров: 20

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Москва 2022
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение высшего образования
"МИРЭА - Российский технологический университет"
РТУ МИРЭА
Институт Искусственного Интеллекта
Кафедра общей информатики
ОТЧЕТ
ПО ПРАКТИЧЕСКОЙ РАБОТЕ № 12
Элементы алгоритмизации и процедурного программирования
по дисциплине
«ИНФОРМАТИКА»
Выполнил студент группы ИКБО-21-21
Кожеуров В. Я.
Принял
Смирнов С. С.
Старший преподаватель кафедры ОИ
Практическая
«__» _________ 2022 г.
_________________ работа выполнена
«Зачтено»
«__» _________ 2022 г.
_________________

2
СОДЕРЖАНИЕ
1. ПОСТРАНОВКА ЗАДАЧИ ........................................................................... 3
2. БЛОК-СХЕМЫ АЛГОРИТМОВ ПРОГРАММЫ .................................... 4
3. СТРУКТУРИРОВАННЫЙ КОД ПРОГРАММЫ С
КОММЕНТАРИЯМИ .................................................................................... 6
4. ПРИМЕРЫ ТЕСТИРОВАНИЯ .................................................................. 10
5. ВЫВОДЫ ........................................................................................................ 11
6. ИНФОРМАЦИОННЫЕ ИСТОЧНИКИ ................................................... 12

3
1
ПОСТАНОВКА ЗАДАЧИ
Требуется разработать блок-схему алгоритма и написать программу обработки данных в соответствии с выбранным и согласованным с преподавателем вариантом. При этом требуется контролировать типы и диапазоны вводимых данных, а также предусмотреть обработку других исключительных ситуаций (если они есть), например, ситуацию деления на ноль. Блок-схема должна быть полной, т. е. должна описывать и процесс диалога с пользователем, и контроль вводимых данных, и подпрограммы вычислений с обработкой возможных исключительных операций. Блок-схема должна изображаться по ГОСТу. При обнаружении ошибки ввода или ошибки вычислений программа должна информативно уведомлять пользователя о причине ошибки. Если ошибка произошла на этапе ввода данных, то программа должна просить пользователя повторить ввод.
Персональный вариант – 2.9


4
2
БЛОК-СХЕМЫ АЛГОРИТМОВ ПРОГРАММЫ
Рисунок 1 - блок схема функции сортировки

5
Рисунок 2 - блок схема основной программы

6
3
СТРУКТУРИРОВАННЫЙ КОД ПРОГРАММЫ С
КОММЕНТАРИЯМИ
#include
#include using namespace std;
//сортировка пузырьком void BubbleSort(int* MAS, int size) { int temp; for (int i = 0; i < size; i++) { for (int j = 0; j < size - 1; j++) { if (MAS[j] > MAS[j + 1]) { temp = MAS[j];
MAS[j] = MAS[j + 1];
MAS[j + 1] = temp;
}
}
} return;
} int main() { setlocale(LC_ALL, "RUS"); int i, j, N, a[5][5]; label_name1: label_name:
//ввод размера матрицы cout << "введите размер матрицы (от 2 до 5): "; cin >> N; if (N < 2 || N > 5) { cout << "неверный размер матрицы, попробуйте ещё раз !" << endl;

7 goto label_name;
} else {
//ввод содержания матрицы cout << "введите матрицу построчно (разрешен ввод чисел от 1 до 100): "
<< endl; for (i = 0; i < N; i++) for (j = 0; j < N; j++) { cin >> a[i][j]; if (a[i][j] < 1 || a[i][j] > 100) { cout << "введенные числа не входят в разрешенный диапазон, попробуйте снова !" << endl; goto label_name1;
}
}
}
//вывод введенной матрицы cout << "вот введенная матрица: " << endl; for (i = 0; i < N; i++)
{ for (j = 0; j < N; j++) cout << a[i][j] << " "; cout << endl;
} int size = N * N; int* MAS = new int[size + 1]; int* MAS2 = new int[size + 1]; int k = 0;

8 int sizek = size - 1; for (i = 0; i < N; i++)
{ for (j = 0; j < N; j++)
{
MAS[k] = a[i][j]; k++;
}
}
BubbleSort(MAS, size); k = 0; for (i = 0; i < size; i++)
{ if (MAS[i] % 2 == 0)
{
//запись четных чисел матрицы в новый массив
MAS2[k] = MAS[i]; k++;
} else
{
//запись нечетных чисел матрицы в новый массив
MAS2[sizek] = MAS[i]; sizek--;
}
}
//вывод результата

9 cout << "результат: "; for (i = 0; i < size; i++) { cout << MAS2[i] << " ";
} cout << endl; system("pause"); return 0;
}

10
2
ПРИМЕРЫ ТЕСТИРОВАНИЯ

11
3
Выводы
Созданная программа на языке С++ позволяет обрабатывать квадратные матрицы размером от 2 до 5. Вводимые в матрицу числа ограничены в пределах от 1 до 100. При неверном вводе данных программа просит повторить ввод. В результате работы программы выводится одномерный массив с четными числами по возрастанию в начале и нечетными по убыванию - после.

12
4
Информационные источники
1. Смирнов С. С., Карпов Д. А. Информатика: Методические указания по выполнению практических работ /– М.: МИРЭА — Российский технологический университет, 2020. –102с.
2. Лекции: Кафедра Общей Информатики, Карпов Д. А., РТУ МИРЭА /–М.,
2021.
3. Среда разработки Visual Studio: [сайт]. – 2021. – URL: https://visualstudio.microsoft.com/ru/ (дата обращения: 13.10.2021).