- •Основные понятия программирования
- •Понятие алгоритма. Алгоритмизация
- •Свойства алгоритма
- •Запись алгоритма на естественном языке
- •Изображение алгоритма в виде схемы
- •Понятие о языках программирования
- •Понятие о структурном подходе к разработке алгоритмов
- •4 Идти к 8
- •6 Идти к 8
- •8 Останов
- •Первая программа на Си
- •Процесс создания программы
- •Комментарии
- •Директива #include
- •Макросы
- •Переменные и типы данных
- •Правила именования идентификаторов
- •Типы данных
- •Int двухбайтовое целое число
- •Оператор printf: вывод на экран
- •Последовательности для вывода специальных символов
- •Спецификация вывода
- •X тип int в шестнадцатеричном виде
- •Оператор scanf: ввод с клавиатуры
- •Логическая организация программы на Си
- •Функция main
- •Глобальные и локальные переменные
- •Операторы и операции
- •Арифметические операции
- •Битовые операции
- •Операции отношения
- •Логические операции
- •Операции присваивания
- •Другие операции
- •Математические функции
- •Управляющие структуры
- •Операторы ветвления
- •Операторы цикла
- •Массивы
- •Функции
- •Интегрированная среда разработки turbo c
- •Общие сведения и принципы работы
- •Стандартные органы управления
- •Главное меню
- •Запуск иср и выход
- •Работа с окнами и файлами
- •Система помощи
- •Редактор
- •Компиляция и выполнение программ
- •Технология создания с-программы
- •Лабораторные работы
- •Лабораторная работа №1
- •Создание нового файла
- •Ввод и редактирование исходного текста
- •Сохранение
- •Выполнение программы
- •Исправление ошибок
- •Просмотр результатов выполнения
- •Закрытие файла
- •Открытие и выполнение ранее сохраненного файла
- •Вызов справки
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Список вопросов
- •Литература
- •Приложение Пример оформления отчета по лабораторной работе
- •Блок-схема алгоритма
- •Текст программы
- •Результат выполнения программы
- •Теория и технология программирования
-
Управляющие структуры
Управляющие структуры или операторы управления служат для управления последовательностью действий в программе. Операторы ветвления и цикла позволяют переходить к выполнению другой части программы или выполнять какую-то часть программы многократно, пока удовлетворяется одно или более условий.
Для реализации управляющих структур используются логические выражения. Как уже отмечалось выше, логическое выражение в качестве результата вырабатывает значение типа int (истина = 1, ложь = 0).
-
Операторы ветвления
К операторам ветвления в Си относятся if (if — если), if else (else — иначе), тренарный оператор ?:, switch (switch — переключить, case — случай). Ниже приведен общий вид операторов ветвления.
if (логическое выражение) оператор_1; |
Если значение логического выражения истинно, то выполняется оператор_1, иначе следующий за if оператор.
if (логическое выражение) оператор_1; else оператор_2; |
Если значение логического выражения истинно, то выполняется оператор_1, иначе выполняется оператор_2.
(логическое выражение) ? (выражение_1) : (выражение_2); |
Если значение логического выражения истинно, то вычисляется выражение_1, иначе вычисляется выражение_2.
switch (выражение целого типа) { case значение_1: последовательность_операторов_1; break; ... case значение_n: последовательность_операторов_n; break; default: последовательность_операторов_n+1; } |
Если значение выражение совпадает с одним из значений ветвей case, то производится выполнения последовательности операторов данной ветви до тех пор, пока не встретится оператор break. Ветка default (значение по умолчанию) выполняется, если ни одно из значений case не равно значению выражения. Ветку default можно не описывать.
Листинг 11 — Использование операторов ветвления
/* branch.c – пример использования операторов ветвления */
#include <stdio.h> #include <conio.h>
void main() { float a1, a2, m;
clrscr();
printf(“\nВведите два числа: ”); scanf(“%f %f”, &a1, &a2);
if (a2 != 0) printf(“\n%f делить на %f равно %f”, a1, a2, a1 / a2);
if (a1 > a2) printf(“\nЧисло %f больше %f”, a1, a2); else printf(“\nЧисло %f меньше или равно %f”, a1, a2);
m = (a1 > a2) ? a1 : a2; printf(“\nМаксимальное из двух чисел: %f”, m); } |
Рисунок 26 — Результат выполнения программы branch.c
Листинг 12 — Использование оператора ветвления switch
/* switch.c – пример использования оператора switch */
#include <stdio.h> #include <conio.h>
void main() { int mark;
clrscr();
printf(“\nВведите оценку: ”); scanf(“%d”, &mark);
printf(“\nВаша оценка: ”, mark); switch (mark) { case 1: case 2: printf(“неудовлетворительно”); break; case 3: printf(“удовлетворительно”); break; case 4: printf(“хорошо”); break; case 5: printf(“отлично”); break; default: printf(“неправильная”); } } |
Рисунок 27 — Результат выполнения программы switch.c