Примеры программирования




Теоретические сведения

Иногда необходимо, чтобы программа могла выбирать между двумя альтернативами в зависимости от входного значения. Оператор, который позволяет осуществить такой выбор, называется условным оператором.

Условный оператор if

Синтаксис полной формы условного оператора:

if (логическое выражение) оператор1;

else оператор2;

Если логическое выражение истинно, т.е. не равно нулю, то выполняется оператор1, иначе выполняется оператор2.

 
 

 


Рис.2.1. Обозначение условного оператора в схеме алгоритма

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

if (логическое выражение) оператор;

Оператор выполняется только в том случае, если логическое выражение не равно нулю, т.е. истинно.

Под логическим выражением понимается совокупность операций отношений и логических операций. Основные логические операции приведены в табл.2.1.

Таблица 2.1

Основные логические операции

Операция Значение Пример
! Логическое НЕ !EOF
= = Равно value==0
!= Не равно value!=0
< Меньше i<count
> Больше i>count
> = Больше или равно i>=count
< = Меньше или равно i<=count
|| Логическое ИЛИ !a || b
&& Логическое И a>8 && c<5

Часто каждая из альтернативных возможностей оператора if требует выполнения более одного оператора. В этом случае необходимо заключить группу операторов в фигурные скобки { }.

Список операторов, заключенный в фигурные скобки, называется составным оператором. Составные операторы выполняются так же, как и простые операторы, и могут находиться в любом месте программы.

Оператор множественного выбора

Когда необходимо выбрать один из нескольких вариантов, можно воспользоваться конструкцией if else if…else или оператором множественного выбора switch.

Синтаксис оператора switch:

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

{

case константное выражение: оператор или группа операторов;

break;

case константное выражение: оператор или группа операторов;

break;

case константное выражение: оператор или группа операторов;

break;

defaulf: оператор или группа операторов;

}

Результат вычисленного выражения сравнивается с каждым из константных выражений. Если находится совпадение, то управление передается оператору, связанному с данным case. Исполнение продолжается до конца тела оператора switch или пока не встретится оператор break, который передает управление из тела switch оператору, следующему за switch. Оператор или группа операторов, стоящий после ключевого слова default, выполняется, если выражение не соответствует ни одному из константных выражений в case.

Например, в операторе

switch (c)

{ case ‘A’: capa++;

case ‘a’: letter++;

default: total++;

}

при с=’A’ инкрементируются переменные capa, letter, total, при c=’a’ – letter и total, при всех остальных значениях символьных констант – только total.

 

Константные выражения должны быть целого или символьного типа. Если нескольким константным выражениям соответствует один и тот же оператор, то возможна следующая запись:

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

{

case константное выражение:

case константное выражение:

case константное выражение: оператор или группа операторов;

break;

};


Примеры программирования

Пример 2.1. Написать программу нахождения действительных корней квадратного уравнения общего вида аx2+bx+c=0.

#include <iostream.h>

#include <math.h>

void main()

{

int a, b, c; // Коэффициенты а, // b, // c

cout << "Введите коэффициенты a b c > ";

cin >> a >> b >>c; float d=b*b-4*a*c; if(d>0) { float x1=(-b+sqrt(d))/(2.0*a); float x2=(-b-sqrt(d))/(2.0*a);   // Ввод данных // Вычисление дискриминанта // Если дискриминант больше 0, // Вычислить корни x1, x2  

cout << "Первый корень = " << x1 << endl; // Печать корней

cout << "Второй корень = " << x2 << endl;

}

// Если корней нет, то вывод сообщения "Корней нет"

else cout << "Корней нет" << endl;  

}

Пример 2.2. Написать программу, которая по введенному с клавиатуры номеру дня недели выводит на экран название этого дня.

#include <iostream.h>

#include <conio.h>

void main()

{

int num;  

cout << "Введите номер дня недели >";

cin >> num; // Ввод данных

switch (num) // Выбор варианта

{ case 1: cout << "Понедельник" << endl;

break;

case 2: cout << "Вторник" << endl;

break;

case 3: cout << "Среда" << endl;

break;

case 4: cout << "Четверг" << endl;

break;

case 5: cout << "Пятница" << endl;

break;

case 6: cout << "Суббота" << endl;

break;

case 7: cout << "Воскресенье" << endl;

break;

default: cout << "Номер неверен" << endl;

}

}

Контрольные вопросы

1. Какие операторы позволяют организовать выбор между несколькими альтернативами?

2. Что понимают под логическим выражением?

3. Чем отличается логическое И от логического ИЛИ?

4. Какие операции отношений вы знаете?

5. В чем разница операторов if и switch?

Варианты заданий

Номер варианта Задание
1, 16 Расположить в порядке возрастания значения, полученные в результате вычисления следующих выражений:
2, 17 По номеру y (y > 0) некоторого года определить с - номер его столетия. Учесть, что, к примеру, началом XX столетия был 1901, а не 1900 год
3, 18 Даны произвольные числа a, b, c. Если нельзя построить треугольник с такими длинами сторон, то выдать соответствующее сообщение; если можно, то напечатать какой он: равносторонний, равнобедренный, разносторонний
4, 19 Пользуясь оператором switch, по введенному номеру месяца выдать на экран сообщение о времени года и названии введенного месяца. Например: 1 - январь, зима
5, 20 По введенному времени и известному расписанию занятий вывести сообщение о том, что это: пара (с указанием ее номера) или перемена
6, 21 Даны a и b. Напечатать максимальное и минимальное значения выражений с указанием формул, по которым производились вычисления
7, 22 Пользуясь оператором switch, по введенному номеру месяца вывести на экран сообщение о номере квартала
8, 23 Составить программу, которая по введенному году и номеру месяца определяет число дней в этом месяце
9, 24 Составить программу, которая при вводе символа с клавиатуры выводит "цифра", если введена цифра; "латинская буква" при вводе латинской буквы и "не цифра и не латинская буква" во всех остальных случаях
10, 25 При вводе с клавиатуры символа: + вывести сообщение "сложение", - вывести сообщение "вычитание", * вывести сообщение "умножение", / вывести сообщение "деление" с указанием формулы и примера с конкретными значениями, введенными с клавиатуры

 

Номер варианта Задание
11, 26 Составить программу, которая при вводе символа "{" или "}" выводит сообщение "фигурная скобка";. при вводе "[" или"]" - "квадратная скобка"; при вводе "(" или ")" - "круглая скобка"; в остальных случаях - сообщение "не скобка"
12, 27 Даны произвольные числа a, b и c. Присвоить максимальное из них переменной a, минимальное - переменной с, среднее - переменной b
13, 28 Составить программу, которая при вводе оценки в виде цифры выводит оценку в виде слова: 5 - отлично, 4 - хорошо, 3 - удовлетворительно, 2 - неудовлетворительно
14, 29 Составить программу, которая выводит введенный возраст человека с добавлением слов "год", "года", "лет" (41 год, 3 года, 20 лет)
15, 30 Для заданного числа а найти корень уравнения f (x) = 0, где  

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: