Добавил:
anrakhmanowa@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2 сем / Рахманова А.А. Лабораторная работа_2_экстремум

.docx
Скачиваний:
8
Добавлен:
16.06.2023
Размер:
131.88 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ивангородский гуманитарно-технический институт (филиал) федерального государственного автономного образовательного учреждения высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

КАФЕДРА ПРИКЛАДНОЙ МАТЕМАТИКИ, ИНФОРМАТИКИ И ИНФОРМАЦИОННЫХ ТАМОЖЕННЫХ ТЕХНОЛОГИЙ

ОЦЕНКА

ПРЕПОДАВАТЕЛЬ

кандидат технических наук, доцент

Л.Н. Бариков

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №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;

}

Скриншот результатов выполнения программы