
- •1 Введение в теорию алгоритмизации 6
- •Введение
- •1 Введение в теорию алгоритмизации
- •1.1 Понятие алгоритма
- •1.2 Свойства алгоритмов
- •1.3 Формы представления алгоритма
- •1.4 Основные алгоритмические структуры
- •1.5 Алгоритмический язык
- •2.3 Инструменты программирования Microsoft Visual Studio
- •2.5 Консольные и оконные приложения
- •2.6 Компилирование программы
- •3.2 Простые типы данных
- •3.3 Операции над числовыми данными
- •3.4 Объявление переменных
- •3.7 Директива #define
- •3.9 Библиотека математических функций
- •4 Условный оператор
- •4.1 Условный оператор if
- •4.2 Составной оператор
- •4.3 Вложенный оператор
- •4.4 Оператор выбора switch
- •5 Операторы циклов
- •5.1 Определение цикла
- •5.2 Оператор цикла for
- •5.3 Оператор цикла while
- •5.4 Оператор цикла do while
- •5.5 Табулирование функций
- •5.6 Вычисление конечных сумм и произведений
- •5.7 Управляющие конструкции break, continue, return, goto
- •6 Массивы
- •6.1 Понятие и описание массивов
- •6.2 Одномерные массивы
- •6.3 Двумерные массивы (матрицы)
- •7 Символьные массивы
- •7.1 Описание символьного массива
- •7.2 Стандартные библиотечные функции над строками
- •8 Указатели и операции над указателями
- •8.1 Описание указателей
- •8.2 Операции над указателями
- •8.3 Сравнение указателей
- •8.4 Связь между массивом и указателем
- •9 Функции
- •9.1 Модульное программирование
- •9.2 Объявление функции
- •9.3 Формальные и фактические параметры функции
- •9.4 Локальные и глобальные переменные
- •10 Элементы объектно-ориентированного программирования
- •10.1 Инструментальное программное обеспечение
- •10.2 Технологии программирования
- •10.3 Создание класса
- •11 Полиморфизм
- •12 Этапы разработки программного обеспечения
- •12.1 Идея и цель объектно-ориентированного программирования
- •12.2 Основные понятия объектно-ориентированного программирования
- •12.3 Методы тестирования программных продуктов
- •Список литературы
4 Условный оператор
Цель работы: приобрести навыки в решении задач с помощью условного оператора, усвоить назначение и правила его применения.
4.1 Условный оператор if
Очень часто на практике ход решение задачи зависит от выполнения какого-либо условия. В этом случае при программировании необходимо использовать условный оператор (рисунки 7,8).
В языке С существуют три возможных варианта организации ветвлений (таблица 10).
Таблица 10 – Варианта организации ветвлений
Формат условного оператора |
Форма |
Комментарий |
If (Выражение)Оператор;
|
неполная форма условного оператора |
Если Выражение истинно, то выполняется Оператор, если выражение ложно, то выполняется следующий за if оператор |
if(Выражение)Оператор1; еlse Оператор2;
|
полная форма условного оператора |
Если Выражение истинно, то выполняется Оператор1, если ложно – Оператор2 |
switch |
Оператор выбора |
Реализуется многоальтернативное ветвление |
Выполнение оператора if начинается с вычисления выражения. Выражение в записи формата условного оператора – это некоторое условие, содержащее операции отношения и логические операции.
Операции отношения – это операции, перечисленные в таблице 11. Результатом операции отношения является целое число (0 – ложь или 1 – истина).
Таблица 11– Операции отношения
Обозначение |
Значение |
> |
больше |
>= |
больше или равно |
< |
меньше |
<= |
меньше или равно |
= = |
равно (сравнение на равенство) |
!= |
не равно |
Логические операции – это операции, перечисленные в таблице 12.
Таблица 12 – Логические операции
Битовые логические операции |
Логические операции |
||
& |
and, и |
&& |
and, и |
| |
or, или |
|| |
or, или |
~ |
отрицание not, не |
! |
отрицание not, не |
^ |
исключающее или, xor |
|
|
Выражения (a==1) && (b>2) и (a== 1) & (b>2) с точки зрения компилятора С являются синтаксически правильными, т.к. в результате выполнения операций отношения = = и > получаются целые числа, с которыми можно производить как логическую операцию &&, так и битовую операцию &. Таблицы истинности для логических операций приведены в таблице 13
Таблица 13 – Таблицы истинности для логических операций
X |
Y |
X and Y |
|
X |
Y |
X or Y |
|
X |
not X |
1 1 0 0 |
1 0 1 0 |
1 0 0 0 |
|
1 1 0 0 |
1 0 1 0 |
1 1 1 0 |
|
1 0 |
0 1 |
|
|
Пример 4.1 Поиск наибольшего значения
Для поиска наибольшего значения из двух переменных a и b следует записать:
if (a<b) max=a
else max=b;
Задание 4.1
Напишите программу, выполняющую поиск наибольшего значения из двух переменных a и b.
Пример 4.2 Определение принадлежности точки фигуре
Напишем программу, определяющую принадлежность точки внутренней области фигуры. Пусть фигура задана ограничивающими ее прямыми (рисунок 9).
Рисунок 9 – Область, ограниченная тремя прямыми
Для каждой прямой определим полуплоскость, в которой находится фигура – треугольник АВС.
Полуплоскость, находящаяся выше оси х определяется неравенством
у > 0
Полуплоскость, находящаяся справа от прямой AB задается неравенством
у – 2х – 2 < 0.
Полуплоскость, находящаяся слева от прямой ВС задается неравенством
у + 1х – 2 < 0.
Условие принадлежности точки (х, у) фигуре:
(y > 0) and (y - 2*x - 2 < 0) and (y + 2*x - 2 < 0)
Код программы:
#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
using namespace System;
int main(array<System::String ^> ^args)
{
float x,y;
printf("введите координаты точки\n");
scanf("%f%f",&x,&y);
if (y>0 & y-2*x-2<0 & y+2*x-2<0) printf("точка принадлежит области\n");
else printf("точка не принадлежит области\n");
getch();
return 0;
}
Задание 4.2
На основе примера 4.2 напишите программу, определяющую, попадает ли точка М(x, y) в круг радиусом r с центром в начале координат.