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

отчет 1 семестр практика 3 16 вариант

.docx
Скачиваний:
5
Добавлен:
06.07.2021
Размер:
363.99 Кб
Скачать

Балтийский государственный технический университет «ВОЕНМЕХ» им. Д. Ф. Устинова

Кафедра И5 «Информационные системы и программная инженерия»

Практическая работа №3 по дисциплине «Информатика: Основы программирования» на тему «Циклы»

Вариант №16

Выполнил: Студент Эрмекбаев Рустам Хурваевич Группа О401Б Преподаватель: Лазарева Татьяна Ильинична

Санкт-Петербург 2020 г.

Задача 1

Условие задачи:

Последовательно вводятся n натуральных чисел. Вычислить произведение чётных чисел

Исходные данные:

Количество вводимых чисел, обозначим n, тип int.

Последовательность из n натуральных чисел, обозначим каждый элемент znch, тип int.

Результирующие данные:

Произведение четных чисел, обозначим pr, тип int.

Дополнительные переменные:

Отсутствуют.

Структурная схема программы:

Текст программы:

#include <stdio.h>

#include<stdlib.h>

int main()

{

int i, n, znch, pr;

scanf_s("%d", &n);

pr = 1;

for (i = 0; i < n; i++)

{

scanf_s("%d", &znch);

if (znch % 2 == 0)

pr *= znch;

}

if (pr == 1)

printf("no values\n");

else

printf("%d", pr);

return 0;

}

Таблица тестирования программы:

Входные данные

Ожидаемый результат

Результат программы

n = 6

1

1

1

1

1

1

no values

no values

n = 3

2

6

4

48

48

n = 4

1

2

3

5

2

2

Вывод:

Ожидаемые результаты и результаты тестирования совпали. Поэтому можно сказать, что программа работает правильно.

Задача 2

Условие задачи:

Найти число Фибоначчи, ближайшее к заданному натуральному числу n.

Исходные данные:

Натуральное число, обозначим n, тип int.

Результирующие данные:

Число Фибоначчи, ближайшее к заданному натуральному числу n, обозначим num, тип int.

Дополнительные переменные:

Предыдущее число 1, обозначим num1, тип int.

Предыдущее число 2, обозначим num2, тип int.

Структурная схема программы:

Текст программы:

#include <stdio.h>

#include<stdlib.h>

int main()

{

int n, num, num1, num2;

scanf_s("%d", &n);

num1 = 0;

num2 = 1;

num = 0;

while (num < n)

{

num = num1 + num2;

num1 = num2;

num2 = num;

}

if (num - n <= n - num1)

printf("%d\n", num);

else

printf("%d\n", num1);

return 0;

}

Таблица тестирования программы:

Входные данные

Ожидаемый результат

Результат программы

89

89

89

9

8

8

18

21

21

Вывод:

Ожидаемые результаты и результаты тестирования совпали. Поэтому можно сказать, что программа работает правильно.

Задача 3

Условие задачи:

Вычислить значение суммы бесконечного ряда с заданной точностью и значение функции (для проверки) , учесть, что x2 < 1.

Исходные данные:

Заданная точность 10-5, обозначим eps, тип double.

Значение аргумента, обозначим x, тип double.

Результирующие данные:

Значение функции y, обозначим y, тип double, с точностью .

Значение функции f, обозначим f, тип double, с точностью .

Дополнительные переменные:

Значение прибавляемой дроби, обозначим dr, тип double.

Структурная схема программы:

Текст программы:

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

int main()

{

double y, f, x, dr, eps;

int i = 0;

scanf_s("%lf", &x);

if (x * x < 1)

{

dr = 1;

eps = 0.00001;

f = 1;

while (fabs(dr) >= eps)

{

i++;

dr *= -(i * 2.0 - 1) / (i * 2.0) * x;

f += dr;

}

y = 1 / sqrt(1 + x);

printf("y = %.5lf\nf = %.5lf\n", y, f);

}

else

printf("no values\n");

return 0;

}

Таблица тестирования программы:

Входные данные

Ожидаемый результат

Результат программы

1

no values

no values

0.5

y = 0.81650

f = 0.81650

y = 0.81650

f = 0.81650

0.1

y = 0.95346

f = 0.95346

y = 0.95346

f = 0.95346

Вывод:

Ожидаемые результаты и результаты тестирования совпали. Поэтому можно сказать, что программа работает правильно.

Задача 4

Условие задачи:

Последовательность а1, а2, а3, … образована по закону

, i = 2, 3, … Найти первый отрицательный член последовательности для различных b = 3, 4, 5, 6, 7, 8, 9.

Исходные данные:

Различные значения b {3, 4, 5, 6, 7, 8, 9}, обозначим x, тип int.

Результирующие данные:

Первый отрицательный член последовательности, обозначим ai, тип double.

Структурная схема программы:

Текст программы:

nclude<stdio.h>

#include<stdlib.h>

#include<math.h>

int main()

{

int b, i;

double ai;

for (b = 3; b < 10; b++)

{

ai = b;

for (i = 2; ai > 0; i++)

ai -= 1 / sqrt(i);

printf("First negative number %lf for b = %d\n", ai, b);

}

return 0;

}

Результат тестирования программы:

Вывод:

Ожидаемые результаты и результаты тестирования совпали. Поэтому можно сказать, что программа работает правильно.