Лабы / Отчёт Лаба 5
.docxЛабораторная работа № 5
Циклы с предусловием и итерационные
выполнила Бибикова А.А
ИВТ-245
5.1
Схема алгоритма:
#include <stdio.h>
#include <math.h>
int main() {
double a = 1.0, b = 3.0;
int n = 15;
int i = 0;
double x, f1, f2;
double step = (b - a) / (n - 1);
printf("x f1 = sqrt(exp(x) - 1) f2 = x * pow(log(x), 2)\n");
printf("----------------------------------------------------------------\n");
do {
x = a + i * step;
if (exp(x) - 1 >= 0) {
f1 = sqrt(exp(x) - 1);
}
else {
f1 = NAN;
}
f2 = x * pow(log(x), 2);
printf("%lf %lf %lf \n", x, f1, f2);
i++;
} while (i < n);
return 0;
}
5.2
#include <stdio.h>
#include <limits.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, "RUS");
int n;
int mn = INT_MIN;
int mni = -1;
int i = 0;
printf("Введите последовательность целых чисел (завершите нулем):\n");
do {
scanf_s("%d", &n);
i++;
if (n < 0) {
if (n > mn) {
mn = n;
mni = i;
}
}
} while (n != 0);
if (mni == -1) {
printf("В последовательности нет отрицательных чисел\n");
}
else {
printf("Наибольшее отрицательное число: %d\n", mm);
printf("Порядковый номер: %d\n", mmi);
}
return 0;
}
Нет отрицательных
Есть отрицательные
5.3
Схема алгоритма:
#include <stdio.h>
#include <math.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, "RUS");
double a = 1.0;
double z, x, dx;
do {
x = 0.0;
dx = a / 2.0; // dx должен быть пересчитан перед внутренним циклом
do {
if (x <= 3)
z = -a * exp(x - 3 * a);
else
z = -a * (1 + log(x + 3 * a));
x = x + dx;
} while (x <= 4.01);
a = a + 0.5;
} while (a <= 1.51);
printf("Результат = %.4f\n ", z);
return 0;
}
5.3
