МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ивангородский гуманитарно-технический институт (филиал) федерального государственного автономного образовательного учреждения высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
КАФЕДРА ПРИКЛАДНОЙ МАТЕМАТИКИ, ИНФОРМАТИКИ И ИНФОРМАЦИОННЫХ ТАМОЖЕННЫХ ТЕХНОЛОГИЙ
|
ОЦЕНКА
ПРЕПОДАВАТЕЛЬ
кандидат технических наук, доцент |
|
|
|
Л.Н. Бариков |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №2
|
Поиск экстремума
|
по дисциплине: Основы программирования |
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
Z222K |
|
|
|
А.А. Рахманова |
|
номер группы |
|
подпись, дата |
|
инициалы, фамилия |
|
|
|
|
|
Ивангород 2023
Лабораторная работа №2
Поиск экстремума
Цель лабораторной работы: изучение концепций и освоение технологии структурного программирования, приобретение навыков структурного программирования на языке C/C++ при решении логических задач.
Задание на программирование: используя технологию структурного программирования разработать разветвляющуюся программу для решения индивидуальной задачи поиска экстремума.
Порядок выполнения работы:
1) Получить у преподавателя индивидуальное задание и выполнить постановку задачи: сформулировать условие, определить входные и выходные данные.
2) Разработать математическую модель вычислений.
3) Построить схему алгоритма решения задачи двумя способами:
- с использованием управляющей структуры «Выбор»;
- с использованием управляющей структуры «Обход».
4) Составить программу на языке C/C++.
5) Входные данные целого типа int вводить с клавиатуры по запросу.
Выходные данные (сообщения) выводить на экран в развернутой форме.
6) Подготовить набор тестов для проверки логики работы программы с различными исходными данными. Набор тестов представить в виде таблицы с графами: номер теста, входные данные, выходные данные.
7) Запустить программу на исполнение и проверить её работу на каждом тесте.
8) Продемонстрировать преподавателю работу программы.
9) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, текст программы, контрольные примеры.
10) Вариант задания определяется как две последних цифры номера зачетной книжки (цц), взятых по модулю 50, плюс 1 (цц mod 50 + 1). Например, 00 – 1-й вариант, 01 – 2-ой вариант, 49 – 50-ый вариант, 60 – 11-ый вариант, и т.д.
Моё задание определилось двумя последними цифрами зачётной книжки 68, т.е. задание №33
33.
Схемы алгоритма и текста программы определения экстремума для варианта задания вида:
Начало
max
= (a-a)
Ввод a,
b, c, d
max
< (c-a)
(a-а)>(с-a)
max
= (c-a)
max
= (a-a)
max
= (c-a)
(b+d)
< (c+d)
min
=(b+d)
да нет
min
> (c+d)
min
=(c+d)
min
=(b+d)
min
=(c+d)
max
< min
x
= min
x
= max
x
= max
x
< min
Вывод x
x
= min
Вывод x
Конец
Текст программы
//Определение максимального или минимального значения
//с использованием структур "выбор" и "обход".
//Вычислить x=max(max(a,c)-a,min(b,c)+d)
#include <stdio.h>
#include<locale.h>
using namespace std ;
int main ()
{
setlocale(LC_ALL, "Russian");
int a, b, c, d, //исходные данные
max, min, //промежуточные значения
X; //результат вычисления
int i ;
printf("Введите значения a, b, c, d: ");
scanf("%i%i%i%i", &a, &b, &c, &d);
//Решение задачи с использованием структуры "Выбор"
if ((a - a) > (c - a)) max = (a - a); //определяем наибольшее значение между (a - a) и (c - a)
else max = (c - a);
if ((b + d) < (c + d)) min = (b + d); //определяем наименьшее значение между (b + d) и (c + d)
else min = (c + d);
if (max < min) X = min; //определяем наибольшее значение между max и min
else X = max;
//вывод результатов решения с использованием структуры "Выбор"
printf(" Использование структуры Выб ор: x = %i\n", X);
//Решение задачи с использованием структуры "Обход"
max = (a-a); //определяем наибольшее значение между (a - a) и (c - a)
if (max < (c-a)) max = (c-a);
min = (b+d); //определяем наименьшее значение между (b + d) и (c + d)
if (min > (c+d)) min = (c+d);
X = max; //определяем наибольшее значение между max и min
if (X < min) X = min;
//вывод результатов решения с использованием структуры "Обход"
printf("Использование структуры Обход: x = %i\n", X);
printf("\n Повторить-1, Выход-2: ");
scanf("%i", &i) ;
if (i == 1) main();
return 0;
}
Скриншот результатов выполнения программы