
- •Основы алгоритмизации и программирования
- •Часть 1
- •Содержание
- •Введение. Цель лабораторного практикума
- •1. Лабораторная работа №1. Простейшие программы
- •1.1. Основные конструкции языка программирования Pascal.
- •1.2. Пример составления программы
- •1.3. Варианты заданий на лабораторную работу №1
- •2. Лабораторная работа №2. Разветвляюшиеся вычислительные процессы
- •2.1. Вычислительные процессы с разветвляющейся структурой
- •2.2. Варианты заданий на лабораторную работу №2
- •3. Лабораторная работа №3. Табулирование функции
- •3.1. Вычислительные процессы с циклами
- •3.2. Варианты заданий на лабораторную работу №3
- •4. Лабораторная работа №4. Обработка одномерного массива
- •4.1. Обработка одномерных массивов
- •4.2. Варианты заданий на лабораторную работу №4
- •5. Лабораторная работа №5. Обработка двумерных массивов
- •5.1. Варианты заданий на лабораторную работу №5
- •6. Лабораторная работа №6. Подпрограммы
- •6.1. Разработка вычислительных процессов сложной структуры
- •6.2. Варианты заданий на лабораторную работу №6
- •7. Лабораторная работа №7. Решение нелинейных алгебраических уравнений
- •7.1. Методы решения нелинейных уравнений
- •7.2. Варианты заданий на лабораторную работу №7
- •8. Рекомендации по выполнению лабораторных работ
- •9. Рекомендации по выполнению контрольной работы
- •Рекомендуемая литература
1.2. Пример составления программы
Пример 1. Пусть требуется по известным трем сторонам треугольника вычислить R - радиус описанной окружности.
Из курса «Геометрии» известно, что R можно вычислить по формуле:
,
где a,b,c
– стороны треугольника, S
– его площадь.
Площадь
S
можно вычислить по формуле Герона:
,
где
Последовательность действий по решению задачи, т.е. ее алгоритм, можно представить следующей БСА:
Тогда текст программы может иметь следующий вид (фразы на русском языке, приглашающие ввести исходные данные набраны латинскими буквами):
program z1;
var a,b,c,r,p,s:real;
begin
Writeln ('Vvedite a:');
readln (a);
Writeln ('Vvedite b:');
readln (b);
Writeln ('Vvedite c:');
readln (c);
p:=(a+b+c)/2;
s:= sqrt(p*(p-a)*(p-b)*(p-c))
r:=a*b*c/(4*s);
writeln ('radius=',r);
end.
1.3. Варианты заданий на лабораторную работу №1
Ввести a,b,c – стороны треугольника. Вычислить параметр треугольника по варианту таблицы 1.
Таблица 1. Варианты заданий
Вариант |
Вычисляемый параметр |
1 |
Площадь треугольника |
2 |
Высота на сторону a |
3 |
Биссектриса на сторону b |
4 |
Медиана к стороне c |
5 |
Радиус вписанного круга |
6 |
Высота на сторону b |
7 |
Биссектриса на сторону c |
8 |
Медиана к стороне a |
9 |
Радиус описанного круга |
10 |
Угол между сторонами a, b |
11 |
Радиус вписанного круга |
12 |
Высота на сторону c |
13 |
Биссектриса на сторону a |
14 |
Медиана к стороне b |
15 |
Диаметр вписанного круга |
16 |
Угол между сторонами b, c |
17 |
Радиус вписанного круга |
18 |
Высота на сторону b |
19 |
Биссектриса на сторону b |
20 |
Медиана к стороне c |
21 |
Диаметр описанного круга |
22 |
Угол между сторонами c, a |
23 |
Медиана к стороне c |
24 |
Высота на сторону a |
25 |
Биссектриса на сторону b |
2. Лабораторная работа №2. Разветвляюшиеся вычислительные процессы
Цель работы: овладеть практическими навыками разработки и программирования вычислительного процесса разветвляющейся структуры, получить навыки по отладке и тестированию программ. Выполнить программу по различным ветвям.
2.1. Вычислительные процессы с разветвляющейся структурой
Для организации вычислительного процесса разветвляющейся структуры в Pascal используются условный и составной операторы.
Условный оператор. Общий синтаксис:
if <условие> then <оператор1> [else <оператор2>];
Эта запись означает, что проверяется условие. Если оно имеет значение истина, то выполняется оператор1, если оно имеет значере ложь, то выполняется оператор2.
Квадратные скобки означают, что оператор2 может отсутствовать. Тогда условный оператор выглядит так:
if <условие> then <оператор1>;
Блок-схемы алгоритмов, соответствующие двум формам оператора if, представлены на рисунке 1.
Составной оператор. В условном операторе в любой из ветвей может быть только одон оператор. А если требуется поставить больше? В этом случае надо воспользоваться составным оператором. Его синтаксис:
begin <Оператор1> <Оператор2> … <Оператор N> end
Другими словами любую последовательность операторов можно заключить в операторные скобки begin…end и они будут восприниматься как один составной оператор.
Пример 2. Определить, расположена ли точка с координатами X,Y в I квадранте.
Нумерация квадрантов в геометрии:
Точка с координатами X,Y окажется в первом квадранте, если X>0 и Y>0.
На рисунке 2 представлена блок-схема алгоритма.
program z2;
var x,y:real;
begin
Writeln ('Vvod x:');
readln (x);
Writeln ('Vvod y:');
readln (y);
if (x>0) and (y>0) then writeln ('to4ka v 1 kvadrante')
else writeln ('to4ka NE v 1 kvadrante');
end.