Практическая часть

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

Разработка программ, реализующих оператор ветвления

Цель работы: приобретение навыка программирования программ с оператором ветвления.

Задание к работе

К работе допущен:

Работу выполнил:

Работу защитил:

Введение.

В C/C++ есть два вида операторов ветвления (их еще называют условными операторами). Первый из них (if) создает два пути для программы (или сюда, или сюда), второй (switch) - несколько (или сюда, или сюда, или сюда и т. д.).

Приведем сразу несколько примеров:

if(a>0){

cout<<"а is positiv"; //a - положительное

}

else{

cout<<"а is negativ or zero"; //a - отрицательное или нуль

}

В C/C++ нет ключевого слова then.

Ветвь else можно не писать. Если внутри фигурных скобок пишется только один оператор:

if(a>0)

cout<<"а is positiv"; //a - положительное

...

Оператор switch:

int grade;

cin>>grade;

switch(grade){

case 5:

cout<<"Otlichnick\n"; //отличник

break;

case 4:

cout<<"Choroshyst\n"; //хорошист

break;

case 3:

cout<<"Troechnick\n"; //троечник

break;

case 1:

case 2:

cout<<"Dvoechnick\n"; //двоечник

break;

default:

cout<<"Error\n"; //ошибка

}

Переменная grade сравнивается со значением после первого case (т. е. с 5). Если выполняется равенство, то выполняются операторы расположенные сразу после строки

case 5:

до первого break;. Если не равно, то grade сравнивается со вторым case (т. е. с 4) и т. д. Если ни одна из проверок не выполняется, то выполняются операторы после строки

default:

Ветвь default можно не писать.

case 1:

case 2:

cout<<"Dvoechnick\n"; //двоечник

break;

...

Здесь после case 1: нет break'а, это значит, что операторы

cout<<"Dvoechnick\n"; //двоечник

break;

будут выполняться при обоих значения grade. Поэтому нужно записать break там, где это надо. Если забыть, компилятор ничего не скажет, так как синтаксической ошибкой это не является.

В C/C++ существует конструкция?;

b = (k>0)?k:-k;

В этом примере в b запишется модуль числа k. Работает эта конструкция следующим образом: проверяется условие до знака? (k>0). Если оно истинно, то в качестве результата возвращается значение выражения между? и двоеточия (k). Если же выражение ложно, то возвращается значение после знака двоеточия (-k).

Выполнение работы.

При выполнение работы студент выбирает из таблицы вариант, указанный преподавателем. При выполнении работы для заданного варианта необходимо составить программу, провести ее компилирование; исправить все выявленные ошибки, запустить программу на исполнение.

Практическая часть.

1) Задание: даны действительные числа x и y, не равные друг другу. Меньшее из этих двух чисел заменить половиной их суммы, а большее – их удвоенным произведением.

При выполнении первого задания лабораторной работы была разработана блок-схема приведенная на рис.1.

 
 


Рис 1.

#include "stdafx.h"

#include <iostream>

#include <math.h>

#include "conio.h"

#include <cmath>

using namespace std;

int _tmain()

{

double x,y,c,t;

cout <<"vvedite X: ";

cin >>x;

cout <<"vvedite Y: ";

cin>>y;

if (x<y)

{

c = ((x+y)/2);

t = ((x*y)*2);

}

else

{

if (x>y)

{

t = ((x+y)/2);

c = ((x*y)*2);

}

else

{

c=0;

t=0;

}

}

cout <<"otvet c= "<<c<<endl;

cout <<"otvet t= "<<t<<endl;

getch();

return 0;

}

2) Задание: для каждой введенной цифры (0-9) вывести соответствующее ей название на английском языке (0-zero, 1-one, 2-two, …).

При выполнении второго задания лабораторной работы была разработана блок-схема приведенная на рис.2.

 
 


Рис 2.

#include "stdafx.h"

#include <iostream>

#include <math.h>

#include "conio.h"

#include <cmath>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

int x;

cout <<"Vvedite x= ";

cin >>x;

if (x<10)

{

switch (x)

{

case 0:

cout <<"zero";

break;

case 1:

cout <<"one";

break;

case 2:

cout <<"two";

break;

case 3:

cout <<"three";

break;

case 4:

cout <<"four";

break;

case 5:

cout <<"five";

break;

case 6:

cout <<"six";

break;

case 7:

cout <<"seven";

break;

case 8:

cout <<"eigch";

break;

case 9:

cout <<"nine";

break;

}

}

else

{

cout <<"Vvedite x<10";

}

getch();

return 0;

}

Вывод: В данной лабораторной работе я поработал с оператором ветвления, в с++ и написал 2 простые программы для разных условий.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: