Главная страница

Программирование разветвленных алгоритмов. Задача. Лабораторная работа 2 Программирование разветвленных алгоритмов


Скачать 65.94 Kb.
НазваниеЛабораторная работа 2 Программирование разветвленных алгоритмов
АнкорПрограммирование разветвленных алгоритмов
Дата05.01.2023
Размер65.94 Kb.
Формат файлаdocx
Имя файлаЗадача .docx
ТипЛабораторная работа
#873770

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

Программирование разветвленных алгоритмов.

Операторы передачи управления
Структура условного оператора передачи управления:

if (<выражение>) <оператор 1> else <оператор 2>;

(Если) (иначе) - ключевые слова,

где <условие> - это произвольное выражение логического типа, которое может принимать два значения: истина (TRUE) и ложь (FALSE);

<оператор> - любой оператор языка СИ, заканчивается точкой с запятой.

Сокращенная форма условного оператора:

if (<выражение>) <оператор>;

Оператор безусловного перехода: goto <идентификатор-метка>;

Меткой является идентификатор. Метка размещается перед оператором С/С++, к которому выполняется переход и отделяется двоеточием (:).

Пример 1. Составить программу для начисления базовой зарплаты согласно следующему правилу: если стаж работы сотрудника менее трех лет, то зарплата равна 100$, при стаже работы от трех до 5 лет - 150$, свыше 5 лет зарплата повышается с каждым годом на 10$, причем при стаже, превышающем 20 лет, она составляет 300$.

Для программирования решения этой задачи определим математичес­кую формулировку задачи:

100, если ST < 3;

ZP= 150, если 3 ≤ST  5;

150+ (ST -5)*10, если 5 < ST≤ 20;

300, если ST > 20;

где ZP - зарплата, ST - стаж работы. Далее построим СА (рис.2,а), ей соответствует следующая программа:

#include

#include

void main ()

{ int ST; // ST - стаж (байтовый (целый) тип беззнаковый)

float ZP; // ZP - зарплата (плавающий тип)

printf ("\n Введите стаж ");

scanf ("%d",&ST);

if (ST<3) ZP = 100;

else if (ST<5) ZP = 150;

else if (ST>=20) ZP=300;

else ZP=150+(ST- 5)*10;

printf ("\n Зарплата = %10.2f$\n",ZP);

getch();

}

Оператор выбора switch позволяет в зависимости от значения ка­кой-либо переменной или выражения (ключа выбора) выполнить те или иные операторы, помеченные соответствующими константами.

Структура оператора:

switch (<выражение> )

{

case <константа 1>: <группа операторов 1>;

case <константа 2>: <группа операторов 2>;

. . .

case <константа N>: <группа операторов N>

default: <операторы>;


}

где <выражение> - выражение (переменная) любого порядкового типа;

<константа> - константа того же типа, что и <выражение>;

<оператор> - произвольный оператор C/C++.
Пример 2.Напечатать в зависимости от числа углов название фигуры (треугольник, четырехугольник, пятиугольник, шестиугольник, многоугольник).

Вариант реализации задачи с применением оператора выбора представлен СА (рис.2,б) и следующей программой:

#include

#include

void main ()

{

int T; // T – число углов

clrscr(); // очистка экрана

printf ("Введите число углов ");

scanf ("%d",&T);

switch (T)

{

case 1: case 2 : printf ("Это не фигура\n "); break;

case 3: printf ("С %d углами - треугольник\n ", T); break;

case 4: printf ("С %d углами - четырехугольник\n ", T); break;

case 5 : printf ("С %d углами - пятиугольник\n ", T ); break;

case 6: printf ("С %d углами - шестиугольник\n ", T ); break;

default : printf ("С %d углами - многоугольник\n ", T );

}

getch();

}

Задача
С клавиатуры ввести число k (1..30). Определить, какому дню недели оно соответствует, если первое число - понедельник.
Текст программы:
#include

#include

#include

void main()

{

int k,s;

clrscr();

printf("vvedite den");

scanf("%d",&k);

s= fmod(k,7);

switch(s)

{

case 1: printf("ponedelnik"); break;

case 2: printf("vtornik"); break;

case 3: printf("sreda"); break;

case 4: printf("chetverg"); break;

case 5: printf("pjatnitcsa"); break;

case 6: printf("subbota"); break;

case 0: printf("voskresenie");

}

getch();

}


написать администратору сайта