МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра Радиотехнических систем
Отчет
по лабораторной работе №3
по дисциплине «Информатика»
Тема: ОПЕРАТОРЫ ВЕТВЛЕНИЯ, ПРОГРАММИРОВАНИЕ ВЕТВЯЩИХСЯ ПРОЦЕССОВ.
Студент гр. 1102 |
|
Кузембаева А. С. |
Преподаватель |
|
Андреева О. М. |
Санкт-Петербург
2021
Цель работы: освоение способов реализации ветвящихся процессов на основе конструкций языка С++.
1. Создала новый консольный проект. Имя файла модуля – unit_If_1, имя файла проекта – Pr_If_1.
Написала код, позволяющий:
Cсообщить пользователю, что запущенная программа позволяет вычислить либо значение функции , либо значение функции .
Вводить значение аргумента функции (переменная х)
Вводить целое число-«флажок» (переменная fl), который будет управлять режимом расчета. Будем полагать, что при вводе в качестве значения «флажка» 1 (единицы) будет вычисляться 2 y x 1 , а при вводе в качестве значения «флажка» 0 (нуля) будет вычислять функция 2 y x 1 .
П ример кода и работы 1 программы:
#include <iostream>
#include <cmath>
float fl;
float x;
float y;
int main()
{
using namespace std;
cout << "Vvedite chislo x, chtob raschitat y=1-x^2\n";
cout << "x = "; cin >> x;
y = 1 - x * x;
cout << "y="; cout << y;
cout << "\n";
cout << "Vvedite chislo 1 chtoby raschitat y=|y|\n";
cout << "fl = "; cin >> fl;
if (fl == 1) {
cout << "y=|y|\n";
cout << abs(y);
}
if (fl != 1)
{
cin >> y;
}
начало
Ввод
: fl,x,y
Конец
y=|y|
Fl=1?
y
= 1 - x * x
П ример кода и работы 2 программы:
#include <iostream>
#include <cmath>
float fl;
float x;
float y;
int main()
{
using namespace std;
cout << "Vvedite chislo 0 chtoby raschitat y=1-x^2,ili luboe drugoe chislo chtob raschitat y=|1-x^2|\n";
cout << "fl = "; cin >> fl;
if (fl == 0) {
cout << "Vicheslyaem y=1-x^2\n";
cout << "x = "; cin >> x;
y = 1 - x * x;
cout << "y=1-x^2\n";
cout << (y);
}
if (fl != 0)
{
cout << "Vicheslyaem y=|1-x^2|\n";
cout << "x = "; cin >> x;
cout << "y=|1-x^2|\n";
cout << abs(1 - x * x);
Начало
}
y
= 1 - x * x
Fl=0?
float
fl; float x; float y;
Конец
y
= |1 - x * x|
УПР 2
Открыла проект OperatorSwitch.
Сохранила проект и модуль в другой папке (для избегания порчи исходников).
Просмотрела код его модуля с целью понимания принципа его работы, при необходимости произвела его выполнение в пошаговом режиме в отладчике.
Блок-схема программы:
Начало
y=3x+7
num=1||2||3?
Ввод: float x, res; int
num
нет
1 3
Конец
y=lg(x)
y=sin(x)
5) Запустила проект, убедилась в его работоспособности:
6) Убрала команды break, запустила проект и просмотрела его работу во всех возможных ветвях. Программа не верна:
7) Просмотрела работу проекта в пошаговом режиме (трассировка должна
начаться с оператора switch), чтобы пронаблюдать причины ошибки. Вернула
исходный вариант работы.
8)Изменила проект так, чтобы при расчете третьей функции учитывалась
бы ее область определения. Запустила, убедилась в его работоспособности,
сохранила все изменения.
Вывод: на примере программ освоила способы реализации ветвящихся процессов на основе конструкций языка С++. Поняла, как проводить трассировку, а также научилась писать программы с ветвящимися процессами.