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

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

26 страниц (Word-файл)

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

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

 Разработка программ  с ветвлениями.

Студент(ы)             Смирнова К. А.

Группа                    РН12-72

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

Преподаватель       Кудашов А. Г.

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

Задание №1. В данном задании требовалось проанализировать и исполнить программы Murka-2007 раздела if_else (часть Ветвления) и на приведенных примерах освоить синтаксис операторов if и if-else и особенности их использования. Восстановить и зарисовать блок-схемы, реализованные в программах 3_ifelse, 4_ifelse, 5_ifelse, 6_ifelse, 7_ifelse, 8_ifelse.

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

Задание №3(2). В данном задании требуется  разработать программу для расчета значения следующей кусочно-разрывной функции:

Входные данные: x; тип - doublе(вещественные переменные).

Выходные данные: f; тип – doublе(вещественные переменные).

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

#include <iostream.h>  //включение заголовочного файла ввода/вывода С++

#include <conio.h>      //включение заголовочного файла для функции getch()

#include <math.h>       // включение заголовочного файла с мат. функциями

void main()

{

//описание данных

double x,f;

clrscr();

cout<<"x=";

cin>>x;

// расчет

if (x<=0)

f=exp(x);

if  ((x>0)&&(x<1))

f=x*x-x;

if   (x>=1)

f=cos(x);

//вывод результата

cout<<endl<<"f="<<f<<endl;

getch();

}

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

Набор 1.    x=-1

f=0.367879

Набор 2.    x=1.5

f=0.070737

Набор 3.    x=1

f=0.540302

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

Задание №4(2). В данном задании требовалосьразработать программу для расчета значения кусочно-разрывной функций, заданной следующим графиком.

При разработке необходимо было записывать уравнение прямой, проходящей через две точки с координатами x1, y1 и x2, y2:

.

Входные данные: x; тип - doublе(вещественные переменные).

Выходные данные: f; тип – doublе(вещественные переменные).

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

#include <iostream.h>

#include <conio.h>

#include <math.h>

void main()

{

double x,f;

clrscr();

cout<<"x=";

cin>>x;

if (x<=-1)

f=0;

if  ((x>=-1)&&(x<=0))

f=2*(x+1);

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

f=-3*x+2;

if ((x>=1)&&(x<4))

f=-2+x;

if ((x>=4)&&(x<=5))

f=22-5*x;

if (x>5)

f=-3;

cout<<endl<<"f="<<f<<endl;

getch();

}

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

Набор 1.   x=-6

f=0

Набор 2.   x=4

f=2

Набор 3.    x=6

f=-3

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

Задание № 5. В данном заданиитребовалось разработать программу для проверки, попадает ли точка с заданными на плоскости координатами x и y внутрь пересекающихся окружностей с центрами в точках , и , и радиусами  и . Программа должна выдавать в виде результата сообщение, в какую область попала точка:

-  не принадлежащую ни одному из кругов;

-  принадлежащую только первому кругу;

-  принадлежащую только второму кругу;

-  принадлежащую и первому, и второму кругу.

Входные данные: x01,x02,y01,y02,R1,R2,y,x,r1,r2; тип - doublе(вещественные переменные).

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

#include <iostream.h>

#include <conio.h>

#include <math.h>

void main()

{

double x01,x02,y01,y02,R1,R2,y,x,r1,r2;

clrscr();

cout<<"x01=";

cin>>x01;

cout<<"y01=";

cin>>y01;

cout<<"x02=";

cin>>x02;

cout<<"y02=";

cin>>y02;

cout<<"R1=";

cin>>R1;

cout<<"R2=";

cin>>R2;

cout<<"x=";

cin>>x;

cout<<"y=";

cin>>y;

r1=sqrt((x-x01)*(x-x01)+(y-y01)*(y-y01));

r2=sqrt((x-x02)*(x-x02)+(y-y02)*(y-y02));

if ((r1<=R1)&&(r2>R2))

cout<<endl<<"tochka prinadlegit pervomu krugu"<<endl;

if  ((r1>R1)&&(r2>R2))

cout<<endl<<"tochka ne prinadlegit ni odnomu iz cruqov"<<endl;

if   ((r2<=R2)&&(r1>R1))

cout<<endl<<"tochka prinadlegit vtoromu krugu"<<endl;

if ((r1<=R1)&&(r2<=R2))

cout<<endl<<"tochka prinadlegit i pervomu crugu i vtoromu"<<endl;

getch();

}

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

Набор 1.    x01=0

y01=0

x02=3

y02=0

R1=4

R2=2

x=0

y=1

tochka prinadlegit pervomu krugu

Набор 2.   x01=0

y01=0

x02=3

y02=0

R1=4

R2=2

x=5

y=6

tochka ne prinadlegit ni odnomu iz cruqov

Набор 3.    x01=0

y01=0

x02=4

y02=0

R1=6

R2=3

x=5

y=0

tochka prinadlegit i pervomu crugu i vtoromu

Вывод: Была разработана программа для проверки, попадает ли точка с заданными на плоскости координатами x и y внутрь пересекающихся окружностей с центрами в точках , и , и радиусами  и . Программа выдает  в виде результата сообщение, в какую область попала точка:

-  не принадлежащую ни одному из кругов;

-  принадлежащую только первому кругу;

-  принадлежащую только второму кругу;

-  принадлежащую и первому, и второму кругу.

При написании использовали оператор if. Результаты исполнения работы приведены после текста программы. Программа успешно работает.

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

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

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