Анализ и исполнение программы Murka-2007 раздела if_else (часть Ветвления). Разработка программы для вычисления корней кубического уравнения

Страницы работы

Содержание работы

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

Кафедра ППиМЭ

Лабораторная работа № 2

Студент                  Зазуля Полина Сергеевна

Группа                    РН12 - 71

Дата выполнения  11.02.2008

Преподаватель        Кудашов Алексей Геннадьевич

Отметка о защите     _________________

НОВОСИБИРСК 2008

1.  Проанализировать и исполнить программы Murka-2007 раздела if_else (часть Ветвления). На приведенных примерах освоить синтаксис операторов if и if-else и особенности их использования. Восстановить и зарисовать блок-схемы, реализованные в программах 3_ifelse, 4_ifelse, 5_ifelse, 6_ifelse, 7_ifelse, 8_ifelse. Зафиксировать в рабочем журнале результаты их исполнения для четырех возможных комбинаций ключей, оформив их в виде следующей таблицы:

key1

0

0

1

1

key2

0

1

0

1

3_ifelse

...

8_ifelse



В разделе if_else (часть Ветвления) представлены программы с использованием операторов выбора. Оператором единственного выбора является опеператор if(). В скобках записывается условие, которое проверяется на истинность. Если условие истинно, то выполняется выражение стоящее после оператора. Если при данном условии должно выполняться несколько инструкций, то для этого используется составной оператор, т.е. инструкции объединяются фигурными скобками в блок. Для бинарного ветвления предназначен оператор if-else. Операторы if и if-else могут входить внутрь блоков других операторов if и if-else. Ниже представлены блок-схемы программ с использованием операторов выбора.

Блок-схема программы 3_ifelse

Блок-схема программы 4_ifelse




Блок-схема программы 5_ifelse

Блок-схема программы 6_ifelse


Блок-схема программы 7_ifelse

Блок-схема программы 8_ifelse


Результаты исполнения программ разделаif_else (часть Ветвления) следующие:

Key 1

0

0

1

1

Key 2

0

1

0

1

3_ifelse

Key = 0

Key = 0

Key не равен 0

Key не равен 0

4_ifelse

A

B

C

C

5_ifelse

A

A

B

C

6_ifelse

A

B

C

D

7_ifelse

A

B

-

-

8_ifelse

A

-

B

B

2.  Проанализировать и исполнить программы Murka раздела Логические операции (часть Ветвления). Освоить правила записи сложных логических выражений, использующих несколько операций отношения и операции NOT, OR и AND.

В языке си++ имеется возможность записи логических операций: отрицание NOT (!a), логическое сложение  OR (a||b) и логическое умножение AND (a&&b). Они работают по правилу де Моргана:

Отрицание суммы равно произведению отрицаний слагаемых.

Отрицание произведения равно сумме отрицаний сомножителей.

3.  Разработать программу для расчета значения одной из следующих ниже кусочно-разрывных функций. Выполнить двумя способами: с использованием вложенной структуры операторов if-else и с использованием только операторов if. При проверке работы программы особое внимание обратить на правильность расчета в точках разрыва.

Структура входных и выходных данных следующая:

x – данное вещественное значение, которое вводятся в программу с клавиатуры. f -  вещественное значение, рассчитанное по заданным формулам.

Блок-схема программы:

Способ первый с использованием вложенной структуры if-else:

#include <iostream.h>

#include <conio.h>

#include <math.h>

void main()

{

double x,f;

clrscr();

cout<<"Введите аргумент: x = ";

cin>>x;

if(x<0)

f=x;

else

if(x<2)

f=x*x+1;

else

f=sqrt(x*x+x);

cout<<"Значение функции: "<<f<<endl;

getch();

}

Набор входных данных1:   x = -3.

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

Введите аргумент: x = -3

Значение функции: -3

Набор входных данных2:   x = 1.

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

Введите аргумент: x = 1

Значение функции: 2

Набор входных данных3:   x = 4.

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

Введите аргумент: x = 4

Значение функции: 4.472136

Способ второй с использованием только операторовif:

#include <iostream.h>

#include <conio.h>

#include <math.h>

void main()

{

double x,f;

clrscr();

cout<<"Введите аргумент: x = ";

cin>>x;

if(x<0)

f=x;

if((x>=0)&&(x<2))

f=x*x+1;

if(x>2)

f=sqrt(x*x+x);

cout<<"Значение функции: "<<f<<endl;

getch();

}

Набор входных данных1:   x = -3.

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

Введите аргумент: x = -3

Значение функции: -3

Набор входных данных2:   x = 1.

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

Введите аргумент: x = 1

Значение функции: 2

Набор входных данных3:   x = 4.

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

Введите аргумент: x = 4

Значение функции: 4.472136

4.  Разработать программу для расчета значения одной из кусочно-разрывных функций, заданных следующими ниже графиками.

Похожие материалы

Информация о работе

Предмет:
Информатика
Тип:
Отчеты по лабораторным работам
Размер файла:
2 Mb
Скачали:
0