- •Методические указания по выполнению контрольной работы по курсу «Основы алгоритмизации и программирования» (оАиП)
- •Содержание
- •Общие требования к оформлению контрольной работы
- •Задание №1. Линейный вычислительный процесс
- •1.1. Теоретические сведения
- •Декларация объектов
- •Директивы препроцессора
- •Стандартные функции вывода информации
- •Стандартные функции ввода информации
- •1.2. Пример выполнения задания
- •1.3. Индивидуальные задания
- •Задание №2. Реализация разветвляющихся алгоритмов
- •2.1. Теоретические сведения Оператор условной передачи управления if
- •Оператор выбора switch
- •2.2. Пример выполнения задания
- •2.3. Индивидуальные задания
- •Задание №3. Реализация циклических алгоритмов
- •3.1. Теоретические сведения
- •3.2. Пример выполнения задания
- •3.3. Индивидуальные задания
- •Задание №4. Обработка одномерных массивов
- •4.1. Теоретические сведения
- •4.2. Пример выполнения задания
- •4.3. Индивидуальные задания
- •Задание №5. Обработка двухмерных динамических массивов. Функции пользователя
- •5.1. Теоретические сведения Особенности применения указателей
- •Связь указателей с массивами
- •Декларация многомерного массива:
- •Указатели на указатели
- •Динамическое размещение данных
- •Минимальный набор действий, необходимых для динамического размещения одномерного массива действительных чисел размером n:
- •Минимальный набор действий, необходимых для динамического размещения двухмерного массива действительных чисел размером nm:
- •5.2. Пример выполнения задания
- •5.3. Индивидуальные задания
- •Дополнительное задание №6. Обработка структур с использованием файлов
- •6.1. Теоретические сведения
- •Работа с файлами
- •6.2. Пример выполнения задания
- •6.3. Индивидуальные задания
- •Основная литература
- •Дополнительная литература
2.1. Теоретические сведения Оператор условной передачи управления if
Для выбора одной из ветвей вычислений применяется оператор условного перехода:
if (выражение) оператор 1;
else оператор 2;
вычисляется выражение, и если его значение не равно 0 (истинно), то выполняетсяоператор 1, иначе –оператор 2, например:
if(x>y) max = x;
else max = y;
Если операторы 1,2содержат более одного оператора, то они заключаются в фигурные скобки{ }, т.е. применяетсяблок.
Конструкция else…может отсутствовать и такую форму называютсокращенной, тогда в случае ложности условия управление передается на следующий заifоператор.
Если операторы 1,2в свою очередь являются операторамиif, то такой оператор называютвложенным, при этом ключевое словоelseпринадлежит ближайшему предшествующемуif.
Например, найти наибольшее значение из трех чисел x,y,z:
if (x>y)
if (x>z) max=x;
else max=z;
else if(y>z) max=y;
else max=z;
Операции сравнения:<(меньше),<=(меньше или равно),>(больше),>=(больше или равно),!=(не равно),= =(равно). Пары символов разделять нельзя.
Операции сравнения бинарные, их общий вид:
Операнд 1 знак операции Операнд2
Операндами операций сравнения могут быть данные любых базовых типов, значения которых перед сравнением преобразуются к одному типу.
Логические операции используются в качестве условий при составлении более сложных выражений. Приведем их перечень в порядке убывания приоритета:
!(отрицание или логическое НЕ – унарная операция),&& (конъюнкция или логическое И),||(дизъюнкция или логическое ИЛИ).
Например: (0<x)&&(x<=100)
((!x)&&(y>0)||((z==1)&&(k>0))
Выражения вычисляются слева направо, причем их вычисление прекращается, как только результат становится известен.
Тернарная (условная) операция ?:
Ее общая форма:
Операнд 1 ? Операнд2 : Операнд 3
Если значение операнда 1 истинно (не равно 0), то результатом операции являетсяоперанд2, иначе –операнд3.
Например, найти наибольшее из двух чисел: max = a>b ? a : b;
Оператор выбора switch
Общая форма оператора выбора (переключателя):
switch(выражение) {
case const_1: операторы; break;
…
case const_N: операторы; break;
default: операторы;
}
Вычисляется выражениеи проверяется, совпадает ли его результат со значением одной из констант. При совпадении выполняются операторы этогоcase. Значениямиconst_1,…,const_Nмогут быть только целые или символьные константы. Конструкцияdefaultвыполняется, если результат выражения не совпал ни с одной из констант, и может отсутствовать. Операторbreakвыполняет досрочный выход изswitch(после выполнения ветвиcaseвсе остальные будут опущены). Если операторbreakвcaseне записан, то будут выполняться операторы следующих ветвейcaseдо появления оператораbreak, либо до завершения оператораswitch.
Например:
switсh(i) {
case 1: f=pow(x,2); break;
case 2: f=fabs(x); break;
case 3: f=sqrt(x); break;
default: printf(“Ошибка!”); exit(1);
}
f=f+5;