- •Методические указания
- •«Алгоритмизация и программирование»
- •Часть 1. Понятие алгоритма и принципы алгоритмизации 4
- •Часть 2. Составление и отладка программы. Вычисление и
- •Часть 1. Понятие алгоритма и принципы алгоритмизации
- •1 Основные принципы разработки алгоритмов и программ
- •Лабораторная работа 1
- •3 Циклический вычислительный процесс
- •Задания для самостоятельной работы
- •Лабораторная работа 2 селективная обработка массивов
- •Общие сведения
- •1 Селективная (выборочная) обработка информации
- •2 Нахождение экстремального значения
- •3 Формирование одномерного рабочего массива
- •3.7 Сортировка элементов массива
- •Задания для самостоятельной работы
- •Лабораторная работа 3 вложенные циклы. Обработка двумерных массивов
- •Общие указания
- •1 Вложенные циклы
- •3.9 Обработка заданной строки (столбца) матрицы
- •3.10 Обработка заданной диагонали матрицы
- •3.11 Селективная обработка строки (столбца) матрицы, удовлетворяющей заданному условию
- •Часть 2. Составление и отладка программы. Вычисление и обработка результатов
- •Ход работы
- •Вопросы для контроля и самостоятельной работы
- •Лабораторная работа 5
- •Задание к лабораторной работе
- •Лабораторная работа №6 Разветвляющийся вычислительный процесс с различными логическими условиями: оператор if... Else, условная операция (?:).
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа 7 Программирование разветвляющегося циклического вычислительного процесса.
- •Теоретические сведения
- •Задание к лабораторной работе
- •Лабораторная работа №8 Оператор switch, оператор break, оператор goto
- •Теоретические сведения
- •Ход работы
- •Задание к лабораторной работе
- •Лабораторная работа №9 Операции с, их приоритеты и использование. Преобразование типов
- •Приоритет операций и порядок выполнения (ассоциативность)
- •(Новый_тип) операнд
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №10 Массивы. Селективная обработка массивов
- •Теоретические сведения
- •Индивидуальное задание к лабораторной работе
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №11 Формирование рабочих массивов с помощью операций селекции исходного массива
- •Теоретические сведения
- •Пример 18
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №12 Сортировка одномерных массивов
- •Теоретические сведения
- •Многомерные массивы.
- •Теоретические сведения
- •Индивидуальное задание к лабораторной работе
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Вложенные циклы. Многомерные массивы.
- •Теоретические сведения
- •Лабораторная работа № 15 Изучение графических средств с
- •Графические функции
- •Графические примитивы
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Рекомендована література
Задание к лабораторной работе
Составьте программу для вычисления функции b=f(x,y,z), где z=(x,y). Вид функции и исходные данные приведены в таблице 14.
Таблица 14
Вар. |
f(x,y,z) |
(x,y) |
x |
y |
1 |
e|x-y|(tg2z)x |
-4,52 |
0,75 | |
2 |
2,87 |
0,84 | ||
3 |
1,82 |
18,25 | ||
4 |
|
5,34 |
3,85 | |
5 |
-2,75 |
-1,42 | ||
6 |
1,54 |
-3,26 | ||
7 |
1,82 |
18,23 | ||
8 |
-0,85 |
1,25 | ||
9 |
0,12 |
-8,75 | ||
10 |
1,58 |
3,42 | ||
11 |
0,42 |
-0,87 | ||
12 |
-15,24 |
4,67 | ||
13 |
6,55 |
-2,78 | ||
14 |
0,84 |
0,65 | ||
15 |
1,12 |
0,87 | ||
16 |
0,27 |
4,38 | ||
17 |
6,35 |
7,32 | ||
18 |
0,42 |
1,23 | ||
19 |
4,32 |
-0,54 | ||
20 |
0,83 |
2,38 | ||
21 |
-0,93 |
-0,25 | ||
22 |
3,25 |
4,12 | ||
23 |
-0,72 |
-1,42 | ||
24 |
3,98 |
-1,63 | ||
25 |
2sin(x+y) |
3,91 |
-0,51 | |
26 |
-0,62 |
5,54 | ||
27 |
-4,58 |
2,32 | ||
28 |
-3,44 |
5,28 | ||
29 |
5,48 |
2,25 |
Лабораторная работа №6 Разветвляющийся вычислительный процесс с различными логическими условиями: оператор if... Else, условная операция (?:).
Цель работы: Изучить реализацию в языке ветвящихся вычислительных процессов . Научиться писать программы, используя операторы: ветвления if...else, переключения switch в паре с оператором break, оператор перехода goto, тернарную условную операцию (?:).
Теоретические сведения
Условный оператор имеет сокращенную форму:
if (выражение_условие) оператор;
где в качестве выражения_условия могут использоваться: арифметическое выражение, отношение и логическое выражение. Оператор, включенный в условный, выполняется только в случае истинности (т.е. при ненулевом значении) выраж-ния_условия. Пример:
if (х < 0 && х > -10) х=-х:
Кроме сокращенной формы, имеется еще и полная форма условного оператора:
if (выражение_условие)
оператор _1;
else
оператор _2;
Здесь в случае истинности выражения-условия выполняется только оператор_1, при нулевом значении выражения-условия выполняется только оператор_2. Например:
if (x > 0)
b=х ;
else
b=-х;
Оператор в сокращенном варианте оператора if, и оператор_1 и оператор 2 в полном операторе if могут быть как отдельными, так и составными операторами.
Например, при решении алгебраического уравнения 2-й степени ax2+bx+c=0 действительные корни имеются только в случае, если дискриминант (b2~4ас) неотрицателен. Следующий фрагмент программы иллюстрирует использование условного оператора при определении действительных корней х1, х2 квадратного уравнения:
...............
d=b*b - 4*а*с; /* d - дискриминант */
if (d>=0.0)
{
xl=(-b+sqrt(d))/2/a;
х2=(-b-sqrt(d))/2/а;
printf("\n Корни: xl=%e, x2=%e", xl, х2);
}
else
printf("\n Действительные корни отсутствуют.");
Во фрагменте предполагается, что переменные d, b, a, xl, х2 - вещественные (типа float либо double). До приведенных операторов переменные а, b, с получили конкретные значения, для которых выполняются вычисления. В условном операторе после if находится составной оператор, после else - только один оператор - вызов функции printf(). При вычислении корней используется библиотечная функция sqrt() из стандартной библиотеки компилятора. Ее прототип находится в заголовочном файле math.h.
Операции отношений (сравнения):
< меньше, чем (ранг 6); ,
> больше, чем (ранг 6);
<= меньше или равно (ранг 6);
>= больше или равно (ранг б);
== равно (ранг 7);
!= не равно (ранг 7).
Операнды операций отношений должны быть арифметического типа или могут быть указателями. Результат целочисленный: 0 (ложь) или 1 (истина). Последние две операции (операции сравнения на равенство) имеют более низкий приоритет по сравнению с остальными операциями отношений. Таким образом, выражение
(х < В ==А < х) есть 1,
когда значение х находится в интервале от А до В и А<В либо х, А, В равны. (Вначале вычисляются х<В и А<х, к результатам применяется операция сравнения на равенство ==.)
Логические бинарные операции:
&& - конъюнкция (И) арифметических операндов или отношений (ранг 11. Целочисленный результат 0 (ложь) или 1 (истина);
|| - дизъюнкция (ИЛИ) арифметических операндов или отношений (ранг 12). Целочисленный результат 0 (ложь) или 1 (истина). (Вспомните о существовании унарной операции отрицания '!'.)
Результаты отношений и логических операций:
3<5 равняется 1;
3>5 равняется 0;
3=5 равняется 0;
3!=5 равняется 1;
3!=5 || 3=5 равняется 1;
3+4>5 && 3+5>4 && 4+5>3 равняется 1.
Условная трехместная операция (ранг 13). В отличие от унарных и бинарных операций условная тернарная операция используется с тремя операндами. В изображении условной операции применяются два символа '?' и ':' и три выражения-операнда:
выражение_1 ? выражение_2 : выражение_3
Первым вычисляется значение выражения_1. Если оно истинно, т.е. не равно нулю, то вычисляется значение выражения_2, которое становится результатом. Если при вычислении выражения_1 получится 0, то в качестве результата берется значение выражения_3. Классический пример:
х < 0 ? -х : х;
Выражение возвращает абсолютную величину переменной х.