
- •1.Введение
- •Рекомендуемая литература
- •1.1Этапы решения инженерных задач с помощью эвм.
- •1.2Алгоритмы решения задач.
- •1.2.1Понятие алгоритма, его свойства.
- •Свойства алгоритма
- •1.2.2Обозначения элементов алгоритмов (блоки).
- •1.2.3Базовые управляющие конструкции.
- •Основные блочные символы.
- •Базовые алгоритмические структуры.
- •1.2.4Некоторые стандартные приемы алгоритмизации.
- •1. Поменять местами содержимое двух переменных (три ведра).
- •Определить, имеют ли две переменные один знак.
- •Проверить делимость числа на 3.
- •Алгоритм обработки массива.
- •Найти сумму элементов массива.
- •Найти максимальный элемент массива.
- •Использование флага наступления события.
- •Построить таблицу значений функции на отрезке и найти ее максимальное значение.
- •1.3Системы программирования.
- •1.3.1Состав.
- •1.3.2Язык программирования, алфавит, синтаксис, семантика.
- •1.3.3Реализация языка.
- •1.4Характеристики языков программирования.
- •1.5Целевое назначение систем программирования.
- •1.5.1Машинно-ориентированные.
- •1.5.1.1Системы символического кодирования.
- •1.5.1.2Ассемблеры.
- •1.5.2Машинно-независимые.
- •1.5.2.1Процедурно-ориентированные.
- •1.5.2.2Проблемно-ориентированные.
- •1.6Этапы обработки программы машиной.
- •2.1История создания.
- •2.3Алфавит, структура программы.
- •2.3.1Алфавит.
- •2.3.2Структура программы.
- •2.4Типы данных Си. Константы. Переменные. Описания переменных.
- •2.5Выражения в языке Си.
- •2.5.1Арифметические операции и выражения.
- •2.5.2Логические операции и выражения.
- •2.5.3Некоторые другие операции в языке Си.
- •2.5.3.1Операция присваивания.
- •2.5.3.2Условная операция.
- •2.5.3.3Операция последовательного вычисления (запятая).
- •2.5.3.4Специфические формы операции присваивания.
- •2.5.3.5Приоритет выполнения операций.
- •2.5.4Стандартные функции.
- •2.5.4.1Правила записи.
- •2.5.4.2Основные математические функции.
- •2.6.2.2Оператор бесформатного ввода с клавиатуры.
- •2.6.2.3Функция форматного вывода на экран.
- •2.6.2.4Функция ввода символа с клавиатуры.
- •2.6.3Составной оператор.
- •3.Операторы управления.
- •3.1Условные операторы.
- •3.1.1Оператор if-else.
- •3.1.2Оператор else-if.
- •3.2Оператор-переключатель. Оператор break.
- •3.3Операторы для организации цикла.
- •3.3.1Оператор цикла с предусловием (while).
- •3.3.2Оператор цикла с постусловием (do).
- •3.3.3Оператор цикла с параметром (for) или пошаговый.
- •3.3.4Вложенные циклы.
- •3.3.5Операторы break и continue.
- •3.3.6Оператор безусловного перехода.
- •4.Использование массивов. Указатели.
- •4.1Массивы.
- •4.1.1Понятие массива. Описание массива.
- •4.1.2Инициализация массивов.
- •4.1.2.1Инициализация массивов при их объявлении.
- •4.1.2.2Инициализация массивов вводом с клавиатуры.
- •4.1.3Вывод массивов.
- •4.1.4Работа с массивами.
- •4.2Указатели.
- •4.2.1Адреса и указатели.
- •4.2.2Массивы и указатели.
- •4.2.3Строки и указатели.
- •5.Функции пользователя в языке Си.
- •5.1Назначение функций. Описание функции.
- •5.2Обращение к функции. Прототип функции. Область видимости и время жизни переменных.
- •5.3Правила соответствия формальных параметров и фактических аргументов.
- •5.4Передача данных по значению и по адресу. Функция scanf().
- •5.5Использование массивов в качестве аргументов функции.
- •Int na, nb; // количества введенных элементов этих массивов
- •Vvod_mas1(&na,a) // Ввод количества элементов na и массива a
- •Vvod_mas1(&nb,b) // Ввод количества элементов nb и массива b
- •If password("Мой пароль")
- •6.Работа с внешними файлами в Си.
- •6.1Файловый указатель. Открытие файла.
- •6.2Чтение данных из текстового файла.
- •6.3Запись данных в текстовый файл. Закрытие файла.
3.1.2Оператор else-if.
Д
ля
многоступенчатого принятия решений
используют конструкцию else-if
(синтаксис):
if (условие1)
оператор1
else if (условие2)
оператор2
else if (условие3)
оператор3
·························
[else оператор]
Семантика: условия операторов “if” проверяются сверху вниз. Как только встречается истина, выполняется соответствующий оператор и последовательность проверок прекращается. Последняя else-часть срабатывает, если все предыдущие условия ложны. Эта часть может отсутствовать.
П
ример
8. Пусть reit
- рейтинг студента после сессии.
Предлагаемый оператор показывает, кто
он такой.
if (reit >= 45)
cout << "Вы - отличник!\n";
else if (reit > 34)
cout << "Вы неплохо учитесь!\n";
else if (reit > 25)
{ if (reit > 29)
cout << "Вам нужно подтянуться!\n";
else
cout
<< "Такие
инженеры нам не нужны!\n";
}
else
cout << "Вас давно ждут в призывном пункте!\n ";
3.2Оператор-переключатель. Оператор break.
Оператор-переключатель (оператор множественного выбора) предназначен для выбора одного из многих путей выполнения программы. Имеет вид (синтаксис):
switch(выражение)
{
case константы1: // метки1
операторы1
case константы2: // метки2
операторы2
····················
[default
операторы]
}
Семантика: сначала вычисляется значение выражения, которое должно быть целого типа. Затем это значение сравнивается со значениями констант, указанных после слов case в виде меток. Если есть совпадение, то выполняются операторы, соответствующие этому case и все последующие.
Операторы, стоящие за default, выполняются, если значение выражения не совпало ни с одной из констант. Если default отсутствует, то не выполняется ни один оператор.
Пример 9.
Операторы |
Выведут на экран |
i=2; switch(i) { case 1: cout << "Привет 1\n"; case 2: cout << " Привет 2\n"; case 5: cout << " Привет 5\n"; default cout << "Просто привет \n"; } |
Привет 2 Привет 5 Просто привет
|
Каждая ветвь case может быть помечена одной или несколькими константами (или константными выражениями). Все константы должны отличаться друг от друга. В каждой ветви может быть несколько операторов, может их не быть совсем.
Если нужно выйти из переключателя, не выполняя все последующие ветви case, можно использовать оператор break (выход из switch) или return (выход из функции).
Пример 10. В указанном фрагменте программы после нажатия пользователем одной из клавиш ее код занесется в переменную c и в случае нажатия клавиш 'А', 'а', 'Б' или 'б' будет выдано соответствующее сообщение.
c=getch();
switch(c)
{
case 'A': 'a': cout << "Нажата буква А\n"; break;
case 'Б':
case 'б': cout << "Нажата буква Б\n"; break;
}
Последний оператор break не обязателен, но лучше его всегда ставить. Это поможет не забыть его указать, если в будущем будут добавляться ветви case в этот переключатель.