Uploaded by samatsuiumbekov

lab 3 Suiumbekov Samat

advertisement
Министерство образования и науки Кыргызской Республики
Кыргызский государственный технический университет
им. И.Раззакова
Институт информационных технологий
Кафедра «Программное обеспечение компьютерных систем»
Направление: 710400 «Программная инженерия»
дисциплина: «Введение в программную инженерию»
ОТЧЕТ
По лабараторной работе № 3
Тема: «Программирование алгоритмов циклической структуры»
Выполнилa: студент группы
ПИ(б)-6-23 Суйумбеков Самат
Проверил: доцент Искаков Р.Т.
Бишкек – 2023
Задача № 1
Вычислить значение функции y=(cos2x+sinx2)-etgx, при х изменяющемся от -1
до 1 с шагом 0.1. Реализовать с помощью всех трех операторов цикла.
Код:
//лаб_3_1
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
double x, y;//1.1
for (x = -1.0; x <= 1.0; x += 0.1) {
y = (pow(cos(x), 2) + sin(x * x)) };
//1.2
y, x = -1.0;
while (x <= 1.0) {
y = (pow(cos(x), 2) + sin(x * x)) x += 0.1;
}
//1.3
y, x = -1.0;
do{
y = (pow(cos(x), 2) + sin(x * x)) cout << "x=" << x << " y=" << y <<
x += 0.1;
} while (x <= 1.0);
return 0;
}
exp(tan(x));
exp(tan(x));
exp(tan(x));
endl;
2
Задача № 2
Вычислить значение функции, где x изменяется от -10 до 10 с шагом 0.5.
Значения а и b ввести с клавиатуры.
b

a

 cos x, при x  2

ex

a  b
S 
, при x  6
x

1

e x  sin x, при 2  x  6


Код:
//лаб_3_2
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
double x = -10.0, a, b, S;
cout << "Введите числа a и b: ";
cin >> a >> b;
for (x = -10.0; x <= 10.0; x += 0.5)
{
if (x < 2) {
S = a + (b / exp(x)) + cos(x);
cout << "S=" << S << endl;
}
else if (x >= 6) {
S = (a + b) / (x + 1);
cout << "S=" << S << endl;
}
else if (2 <= x && x < 6) {
S = exp(x) + sin(x);
cout << "S=" << S << endl;
};
}
return 0;
}
3
Задача № 3
Даны целые числа А и В (А < В). Найти сумму и произведение всех целых
чисел от А до В. Реализовать с помощью всех трех операторов цикла.
Код:
//лаб_3_3
#include <iostream>
using namespace std;
int main() {
setlocale(LC_ALL, "rus");
int a, B, sum = 0, product = 1;
cout << "Введите число А: ";
cin >> a;
cout << "Введите число В (больше числа А): ";
cin >> B;
// Цикл for
for (int i = a; i <= B; i++) {
sum += i;
product *= i;
}
// Цикл while
4
sum = 0;
product = 1;
int i = a;
while (i <= B) {
sum += i;
product *= i;
i++;
}
// Цикл do-while
sum = 0;
product = 1;
i = a;
do {
sum += i;
product *= i;
i++;
} while (i <= B);
cout << "Сумма всех чисел: " << sum << endl;
cout << "Произведение всех чисел: " << product << endl;
return 0;
}
Задача № 4
Дано натуральное число n. Вычислить:
2  2  ...  2 ; n –корней
Код:
//лаб_3_4
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
double res = 0.0;
int n, i;
tryaga: cout << "Введите количество корней n: ";
cin >> n;
if (n <= 0) {
cout << "Ошибка: n должно быть натуральным числом." << endl;
goto tryaga;
};
for (i = 1; i <= n; i++)
5
{
res = sqrt(2 + res);
cout << res << endl;
}
cout << "Значение равняется: " << res;
return 0;
}
Задача № 5
Дано натуральное число n. Вычислить:
cos 1 cos 1  cos 2
cos 1  cos 2  ....  cos n
*
* .... *
sin 1 sin 1  sin 2
sin 1  sin 2  ...  sin n
Код:
//лаб_3_5
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
double n, i, res = 1.0, s = 0.0, d = 0.0;
cout << "Введите значение для n: ";
cin >> n;
if (n <= 0) {
cout << "Ошибка: n должно быть натуральным числом." << endl;
return 0;
}
for (i = 1; i <= n; i++) {
s += cos(i);
d += sin(i);
res *= s / d;
cout << "Текущий результат для i = " << i << ": " << res << endl;
}
cout << "Значение равняется: " << res;
6
return 0;
}
Задача № 6
Посчитать сумму и количество всех целых чисел кратных 3 и не кратных 7 в
диапазоне от А до В (А<B). Вывести на экран все эти числа.
Код:
//лаб_3_6
#include <iostream>
using namespace std;
int main() {
setlocale(LC_ALL, "rus");
int A, B, sum = 0, count = 0;
cout << "Введите A и B (A<B): ";
cin >> A >> B;
cout << "Целые числа кратных 3 и не кратных 7 : ";
for (int i = A; i <= B; i++) {
if (i % 3 == 0 && i % 7 != 0) {
cout << i << " ";
sum += i;
count++;
}
}
cout << "\nСумма: " << sum << endl;
cout << "Кол-во: " << count << endl;
return 0;
}
7
Задача № 7
Начав тренировки, лыжник в первый день пробежал 10 км. Каждый
следующий день он увеличивал пробег на 10% от пробега предыдущего дня.
Определить: а) пробег лыжника за второй, третий, ..., десятый день
тренировок; б) какой суммарный путь он пробежал за первые 7 дней
тренировок.
Код:
//лаб_3_7
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "RU");
int gD;
double sumK = 10, sD, per = 10, sumT;
cout << "Введите общее количество дней которое он проехал: ";
cin >> gD;
cout << 1 << "-й день катания на лыжах, " << per << " км пройдено за
день" << endl;
for (int i = 2; i <= gD; i++) {
per += per * 0.1;
sumK += per;
cout << i << "-й день катания на лыжах, " << per << " км пройдено
за день" << endl;
if (i == 7)sD = sumK;
if (i == 10)sumT = sumK;
};
cout << endl << "За " << gD << " дней лыжник пробежал " << sumK << "км"
<< endl;
cout << "За 7 дней лыжник пробежал " << sD << "км" << endl;
cout << "За 10 дней лыжник пробежал " << sumT << "км" << endl;
return 0;}
8
Задача № 8
Гражданин 1 марта открыл счет в банке, вложив 1000 сом. Через каждый месяц
размер вклада увеличивается на 2 % от имеющейся суммы. Определить: а) за
какой месяц величина ежемесячного увеличения вклада превысит 30 сом; б)
через сколько месяцев размер вклада превысит 2000 сом.
Код:
//лаб_3_8
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "RU");
double dt = 1000, dtt = 1000, p = 0.02;
int b = 1, a = 1;
while (dt <= 2000) {
dt *= (1 + p);
b++;
}
for (; dtt * p <= 30;) {
dtt *= (1 + p);
a++;
}
cout << "а)Величина ежемесячного увеличения вклада превысит 30 сом
через " << a << " месяцев." << endl;
cout << "б)Размер вклада превысит 2000 сом через " << b << " месяцев."
<< endl;
return 0;
}
Задача № 9
9
Вычислить:
Код:
//лаб_3_9
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "RU");
double sum = 0;
int fact = 1;
for (int i = 1; i <= 10; i++) {
fact *= i;
sum += 1.0 / fact;
}
cout << sum << endl;
return 0;
}
Задача № 10
Вычислить:
Код:
//лаб_3_10
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "RU");
double sum = 0;
10
for (int i = 1; i <= 100; i++)
{
for (int j = 1; j <= 50; j++)
{
sum += 1.0 / (i + pow(j, 2));
}
}
cout << sum << endl;
return 0;
}
Контрольные вопросы
1. Функциональная схема цикла и назначение ее отдельных частей.
2. Какие виды циклов существуют, в чем их принципиальные отличия?
3. Назначение цикла for и его отдельных компонентов.
4. Как работают операторы while и do-while?
5. Укажите, сколько операторов можно разместить в теле цикла?
6. Можно ли в теле цикла изменять значение параметра цикла?
7. Можно ли вне тела цикла использовать значение параметра цикла?
Ответы:
1.Функциональная схема цикла включает в себя инициализацию (начальные
значения переменных), проверку условия выполнения цикла, выполнение
блока кода, обновление переменных (инкремент/декремент) и повторное
выполнение цикла или выход из него в зависимости от условия.
2.В языке C++ существуют три вида циклов: for, while и do-while. Отличия
между ними заключаются в порядке и условиях выполнения цикла. Цикл for
имеет установленное начальное значение, условие выполнения и шаг
изменения переменной. Цикл while повторяет выполнение блока кода, пока
условие истинно. Цикл do-while выполняет блок кода, а затем проверяет
условие для продолжения выполнения цикла.
3.Цикл for предназначен для выполнения повторяющихся действий
определенное количество раз. Он состоит из инициализации переменных,
условия выполнения цикла и инкремента/декремента переменных.
11
4.Оператор while выполняет блок кода, если условие истинно, и продолжает
его выполнение до тех пор, пока это условие остается истинным. Оператор
do-while сначала выполняет блок кода, а затем проверяет условие. Если оно
истинно, цикл повторяется.
5.В теле цикла можно разместить любое количество операторов, даже другие
циклы.
6.Да, в теле цикла можно изменять значение параметра цикла.
7.Да, значение параметра цикла может быть использовано вне тела цикла,
если переменная объявлена в области видимости, доступной для других
частей программы.
12
Download