
- •Г.В. Ваныкина, т.О. Сундукова
- •Часть 1. Введение в программирование Тула - 2009
- •Содержание
- •Предисловие
- •Лабораторная работа №1
- •Лабораторная работа №2 Типы данных. Стандартные потоки ввода-вывода данных
- •Лабораторная работа №3 Константы. Стандартные потоки ввода-вывода вещественных данных
- •Лабораторная работа №4 Форматированный ввод-вывод данных
- •Лабораторная работа №5 Присваивание. Арифметические операции
- •Лабораторная работа №6 Логические и поразрядные операции. Операции сравнения и определения размера
- •Лабораторная работа №7 Математические функции. Выражения
- •Математические функции – файл math.H
- •Лабораторная работа №8 Линейные программы. Преобразование типов
- •Лабораторная работа №9 Операторы выбора: оператор условия if
- •Лабораторная работа №10 Решение задач с использование оператора условия if
- •Лабораторная работа №11 Операторы перехода. Операторы выбора: оператор-переключатель switch
- •Лабораторная работа №12 Решение задач с использованием оператора-переключателя switch
- •Лабораторная работа №13 Операторы цикла: оператор цикла с параметром for
- •Лабораторная работа №14 Операторы цикла: оператор цикла с предусловие while
- •Лабораторная работа №15 Операторы цикла: оператор цикла с постусловием do … while
- •Лабораторная работа №16 Решение задач с использованием операторов цикла
- •Лабораторная работа №17 Функции пользователя
- •Лабораторная работа №18 Решение задач методом процедурной абстракции
- •Лабораторная работа №19 Рекурсивные функции
- •Индивидуальные задания Требования к оформлению индивидуальных заданий
- •Задание 1. Линейные программы
- •Задание 2. Задачи на составление логических выражений
- •Задание 3. Условный оператор
- •Задание 4. Цикл с параметром
- •Задание 5. Циклы с условиями
- •Задание 6. Числовые функции
- •Задание 7. Функции
- •Задание 8. Рекурсия
- •Литература
- •Часть 1. Введение в программирования
Лабораторная работа №9 Операторы выбора: оператор условия if
Цель работы: изучить условные операторы и научиться работать с оператором условия if в языке C++.
Теоретические сведения
Операторы выбора управляют направлением выполнения вычислительного процесса программы в зависимости от результатов проверки в нем определенных значений.
В языке С++ имеется несколько таких операторов:
оператор условия if (условного перехода);
оператор-переключатель swich (оператор множественного выбора).
Оператор условия if
Данный оператор записывается в формах:
а) сокращенная форма оператора условия:
if (выражение-условие) оператор;
б) полная форма оператора условия:
if (выражение-условие) оператор1;
else оперaтop2;
выражение-условие – управляющее выражение (логическое или арифметическое выражение, отношение), которое используется только для проверки на равенство нулю. Каждый из операторов (оператор, оператор1, оператор2) может быть либо отдельным оператором, либо набором операторов.
В сокращенной форме оператора условия: если значение выражения-условия отлично от нуля (т.е. истинно), то выполняется оператор. Например:
if (x<y && x<z) min=x;
В полной форме оператора условия: если значение выражения-условия отлично от нуля (т.е. истинно), то выполняется оператор1, при нулевом значении выражения-условия (т.е. ложно) выполняется оператор2. Например:
if (d>=0)
{
x1=(-b-sqrt(d))/(2*a);
x2=(-b+sqrt(d))/(2*a);
cout<< "\nx1="<<x1<<"x2="<<x2;
}
else cout<<"\nРешения нет";
Допускается использование вложенных операторов условия if. Оператор условия if может быть включен в конструкцию if или в конструкцию else другого оператора условия if. Чтобы сделать программу более читаемой, рекомендуется группировать операторы и конструкции во вложенных операторах условия if, используя фигурные скобки. Если же фигурные скобки опущены, то компилятор связывает каждое ключевое слово else с наиболее близким if, для которого нет else.
Например:
#include <stdio.h>
void main ( ) {
int t=2, b=7, r=3;
if (t>b) {
if (b < r) r=b;
}
else r=t;
}
В результате выполнения программы r станет равным 2.
Если же в программе опустить фигурные скобки, стоящие после оператора if, то программа будет иметь следующий вид:
#include <stdio.h>
void main ( ) {
int t=2, b=7, r=3;
if (t>b)
if (b < r) r=b;
else r=t;
}
В этом случае r получит значение равное 3, так как ключевое слово else относится ко второму оператору условия if, который не выполняется, поскольку не выполняется условие, проверяемое в первом операторе условия if.
Короткий способ записи оператора if – условная операция. Форма записи оператора следующая:
выражение1 ? выражение2 : выражение3;
Выражение1 должно быть целого или плавающего типа или указатель. Если значение выражения1 отлично от нуля (истинно), то результатом операции является значение выражения2. Если выражение1 равно нулю (ложно), то вычисляется выражение3, и его значение является результатом операции.
Например: Нахождение максимального из двух значений и сохранение его в переменной max.
max=(a<b) ? b : a;
Условную операцию удобно использовать в тех случаях, когда переменной необходимо присвоить одно из двух возможных значений.
Пример 1: Введите три целых числа и выведите наибольшее из них на печать.
#include <stdio.h>
void main() {
int x1, x2, x3;
printf("Введите 3 числа \n");
scanf("%d %d %d", &x1, &x2, &x3);
if ((x1>x2)&&(x1>x3))
printf("наибольшее число %d", x1);
if ((x2>x1)&&(x2>x3))
printf("наибольшее число %d", x2);
if ((x3>x2)&&(x3>x1))
printf("наибольшее число %d", x3);
}
Пример 2: Введите три целых числа и выведите их на печать в порядке возрастания.
#include <stdio.h>
void main() {
int x, y, z;
printf("x="); scanf("%d",&x);
printf("y="); scanf("%d",&y);
printf("z="); scanf("%d",&z);
printf("\nРезультат: \n");
if (x>y)
if (y>z) {
printf("z=%d\n",z);
printf("y=%d\n",y);
printf("x=%d\n",x);
}
else {
printf("y=%d\n",y);
if (x>z) {
printf("z=%d\n",z);
printf("x=%d\n",x);
}
else {
printf("x=%d\n",x);
printf("z=%d\n",z);
}
}
else
if (x>z) {
printf("z=%d\n",z);
printf("x=%d\n",x);
printf("y=%d\n",y);
}
else {
printf("x=%d\n",x);
if (y>z) {
printf("z=%d\n",z);
printf("y=%d\n",y);
}
else {
printf("y=%d\n",y);
printf("z=%d\n",z);
}
}
}
Задания
Составить программу проверяющую, можно ли из отрезков с длинами x, y, z, построить треугольник.
Вычислить
На плоскости даны квадраты со стороной а, одна из вершин которых расположена в начале координат. Определить является ли точка с координатами (x, y) точкой пересечения диагоналей одного из таких квадратов.
Домашние задания
Наберите коды программ из Примеров 1 и 2. Сохраните коды программ. Выполните компиляцию и запуск программ. Введите свои данные в качестве входных.
Составить программу поиска суммы минимального и максимального из трех введенных чисел.
Вычислить
Определить лежит ли точка с координатами (x, y) вне круга радиуса r с центром в точке (a, b) или внутри него.