Лабораторная работа№2
Тема: Операторы ветвления
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Инструкция if
Вариант 1:
if (условное выражение)
оператор1;
Вариант 2:
if (условное выражение)
оператор1;
Else
оператор2;
· инструкция if используется для выбора одного из двух направлений дальнейшего хода программы;
· выбор последовательности инструкций осуществляется в зависимости от значения условия— заключенного в скобки выражения, записанного после if;
· инструкция, записанная после else, выполняется в том случае, если значение выражения условие равно нулю, во всех остальных случаях выполняется инструкция, следующая за условием;
· если при соблюдении или несоблюдении условия надо выполнить несколько инструкций программы, то эти инструкции следует объединить в группу — заключить в фигурные скобки;
· при помощи вложенных одна в другую нескольких инструкций if можно реализовать множественный выбор.
·
Пример 1. Отыскание максимума из трех чисел а, b, с.
#include<stdio.h>
void main ()
{
int a=2, b=5, c=8, max;
if (a > b && a > c) max=a;
else if (b > c) max=b;
else max=c;
printf ("max = %d", max);
}
Пример 2. Ввести число и определить, оно больше нуля, меньше или равно
#include<stdio.h>
void main ()
{
int n;
printf ("Enter n");
scanf (“%d”, &n);
if (n>0) printf ("n>0");
else if (n<0) printf ("n<0");
else printf ("n=0");
}
Пример 3: Напишите программу (используя инструкцию if), которая запрашивает упользователя номер месяца и затем выводит соответствующее название времени года. В случае, если пользователь введет недопустимое число, программа должна вывести сообщение
"Ошибка ввода данных".
#include<stdio.h>
void main ()
{
int n;
printf ("Введите номер месяца");
scanf (“%d”, &n);
if (n==1 || n==2 || n==12) printf("Zima");
else if (n>=3 && n<=5) printf ("Весна");
else if (n>=6 && n<=8) printf ("Лето");
else printf ("Осень");
}
Задание 1: Выполнить пример 1, пример 2 и пример 3, приведенный в методических рекомендациях.
Задание 2: Написать программу (используя инструкцию if) вычисления стоимости разговора по телефону с учетом 20% скидки, предоставляемой по субботам и воскресеньям. Ниже приведен рекомендуемый вид экрана программы во время ее работы (данные, введенные пользователем, выделены полужирным шрифтом).
Вычисление стоимости разговора по телефону.
Введите исходные данные:
Длительность разговора (целое количество минут) -> 3
День недели (1— понедельник,... 7— воскресенье) -> 6
Предоставляется скидка 20%.
Стоимость разговора: 5.52 руб.
Задание 3: Написать программу (используя инструкцию if), которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: "Рабочий день", "Суббота" или "Воскресенье".
Задание 4: Написать программу, в которой вводятся три вещественных числа и находиться минимальное и максимальное значение среди этих трех чисел.
Инструкция switch
Вариант 1:
switch (выражение)
{
case константа1: оператор1; break;
case константа2: оператор2; break;
case константа N: операторы; break;
default: оператор; break;
}
Вариант 2:
switch (выражение)
{
case константа1: оператор1; break;
case константа2: оператор2; break;
case константа N: операторы; break;
}
· инструкция switch предназначена для выбора одного из нескольких возможных направлений дальнейшего хода программы;
· выбор последовательности инструкций осуществляется в зависимости от равенства значения переменной-селектора константе, указанной после слова case;
· если значение переменной-селектора не равно ни одной из констант, записанных после case, то выполняются инструкции, расположенные после слова default;
· в качестве переменной-селектора можно использовать переменную целого (int) или символьного (char) типа.
·
Пример 4. Требуется вывести на экран оценку, введенную цифрой, прописью.
#include<stdio.h>
void main ()
{
int rez;
printf ("Введите оценку");
scanf (“%d”, &rez);
switch (rez)
{
case 5: printf ("Оценка— отлично."); break;
case 4: printf ("Оценка— хорошо."); break;
case 3: printf ("Оценка— удовлетворительно."); break;
case 2: printf (''Оценка— неудовлетворительно."); break;
default: printf ("Heвернoe значение.");
}
}
Пример 5. Программа выводит на экран меню, в котором пользователь может выбрать одно из следующих действий введя соответствующее число: подсчитать сумму двух чисел, подсчитать разность двух чисел, выйти из программы.
#include<stdio.h>
void main ()
{
int n, a,b;
printf ("Меню:\n”);
printf ("1 – подсчет суммы двух чисел\n ");
printf ("2 – подсчет разности двух чисел\n ");
printf ("3 – выход из программы\n ");
printf ("Ваш выбор? \n ");
scanf (“%d”, &n);
switch (n)
{
case 1:
printf ("Введите два числа\n ");
scanf( "%d%d", &a, &b );
printf ("Сумма равна %d\n ", a+b);
break;
case 2: printf ("Введите два числа\n ");
scanf( "%d%d", &a, &b );
printf ("Разность равна %d\n ", a-b);
break;
case 3: return; break;
default: printf ("Heвернoe значение.");
}
}
Задание 4: Выполнить пример 4 и пример 5, приведенный в методических
рекомендациях.
Задание 5: Напишите программу (используя инструкцию switch), которая
запрашивает у пользователя номер дня недели, затем выводит название дня недели или
сообщение об ошибке, если введены неверные данные.
ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ
1. Создать файл проекта и разработать Си-программу в соответствии с вариантом.
Вариант 1: Известны два расстояния: одно в километрах, другое – в футах (1 фут = 0,45м). Какое из расстояний меньше, а какое больше?
Вариант 2: Даны радиус круга и сторона квадрата. У какой фигуры площадь больше?
Вариант 3: Даны объемы и массы двух тел из разных материалов. Материал какого из тел имеет большую плотность?
Вариант 4: Известны сопротивления двух несоединенных друг с другом участков электрической цепи т напряжение на каждом из них. По какому участку протекает меньший ток?
Вариант 5: Дано натуральное число. Определить является ли оно четным.
Вариант 6: Дано двузначное число. Определить какая из его цифр больше: первая или вторая.
2. Создать файл проекта и разработать Си-программу в соответствии с вариантом.
Вариант 1: Составить программу, которая в зависимости от порядкового номера месяца (1,2,…,12) выводит на экран его название (январь, февраль, …,декабрь)и количество дней в этом месяце. При вводе неверных данных
вывести сообщение об ошибке.
Вариант 2: Мастям игральных карт условно присвоены следующие порядковые номера: масти «пики» -1, масти «трефы» - 2, масти «бубны» - 3, масти «червы» - 4. По заданному номеру масти определить название
соответствующей масти. При вводе неверных данных вывести
сообщение об ошибке.
ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ