Лабораторные работы / lab_5_отчёт
.docxФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра «Информатика и вычислительная техника»
ОТЧЕТ
по лабораторной работе № 5
«ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ С ПОСТУСЛОВИЕМ»
-
Выполнил:
студент группы ИВТ-234 Кукушкина А.А.
______________________________________
(дата, подпись)
Проверил:
ст. пр. доцент Дорошенко М.С.
_____________________________________________________
(дата, подпись)
Омск 2023
Лабораторная работа №5
Тема: Программирование циклических алгоритмов с постусловием
Вариант 9
Задание 1
Условие задачи:
Модифицировать программу 3_2 для вычисления функций F1(x) и F2 (x) с применением оператора цикла с постусловием. Выполнить ее и сравнить результаты с полученными ранее.
Схема алгоритма:
Текст программы:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define a 1.0
#define b 3.0
#define n 15.0
int main()
{
int i;
float x, F1, F2, s;
x = a;
s = fabs(b - a) / (n - 1);
printf(" ______________________________________\n");
printf("| i | x | F1 | F2 | \n");
i = 1;
do
{
F1 = sqrt(exp(x) - 1);
F2 = x * pow(log(x), 2);
printf(" ______________________________________ \n");
printf("| %3d | %f | %f | %f |\n", i, x, F1, F2);
x += s;
i += 1;
} while (x <= b+s/2);
printf(" ______________________________________ \n");
_getch();
return 0;
}
Результаты выполнения программы, выводы:
После выполнения программы выводятся результаты, полностью совпадающие с результатами выполнения программы 3_2.
Задание 2
Условие задачи:
Дана непустая последовательность различных целых чисел, за которой следует нуль. Определить порядковый номер и величину наибольшего среди отрицательных чисел этой последовательности.
Схема алгоритма:
Текст программы:
#include<iostream>
#include<conio.h>
#include<vector>
#include<locale>
#include<math.h>
using namespace std;
int main()
{
setlocale(LC_ALL, "ru");
int x, q = 32000, n, o;
vector<int> v;
cout << "Введите элементы последовательности:\n";
do
{
cin >> x;
v.push_back(x);
} while (x != 0);
for (int i = 0; i < v.size(); i++)
{
if (v[i] < 0)
if (fabs(v[i]) < q)
{
q = fabs(v[i]);
n = i + 1;
o = v[i];
}
}
cout << "Наибольшее отрицательное число: " << o << endl << "Порядковый номер: " << n;
_getch();
return 0;
}
Результаты выполнения программы, выводы:
После выполнения программы на экран выводится наибольшее отрицательное число из заданной последовательности целых чисел, оканчивающейся на 0, а также порядковый номер найденного числа.
Задание 3
Условие задачи:
Модифицировать программу 4_1 с использованием цикла с постусловием do...while и сравнить с полученными результатами в работе 4.
С хема алгоритма:
Текст программы:
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
float a, x, dx, z;
a = 1;
do
{
x = 0;
dx = a / 2;
do
{
if (0 <= x && x <= 3)
z = -a * exp(x - 3 * a);
else z = -a * (1 + log(x - 3 * a));
printf("a = %f, x = %f, z = %f\n", a, x, z);
x = x + dx;
} while (x <= 4.1);
{}
a += 0.5;
} while (a <= 1.51);
{}
_getch();
return 0;
}
Результаты выполнения программы, выводы:
П осле выполнения программы на экран вывелись вычисленные значения z при соответствующих им значениях a и x, такие же, как в 4_1.