Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
11.05.2024
Размер:
156.86 Кб
Скачать

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра «Информатика и вычислительная техника»

ОТЧЕТ 

по лабораторной работе № 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.

Соседние файлы в папке Лабораторные работы