Вы находитесь на странице: 1из 8

ЦЕЛЬ И ЗАДАЧИ РАБОТЫ

Знакомство на практике с понятиями «алгоритм», «программа»; составление


простейших программ по линейным алгоритмам.

ЗАДАНИЕ НА РАБОТУ
Создать программу по описанию. Разработать две программы по
своему варианту.

Выполнение работы

1) Проверка выполнения работы по вычислению площади треугольника

Сторона Вычисленные значения Результаты работы


треугольника программы
a=4 h = 3,464 s = 6,928 h = 3.4641 s =6.9282
a=5 h = 4,33 s =10,825 h =4,3301 s =10,8253
a = 100 h =86,6 s =4330,127 h =86,6025 s
=4330,12701

2) Создание программы:
Выполнить самостоятельно все этапы по созданию программы для
решения следующей задачи. Вычислить гипотенузу, периметр и площадь
прямоугольного треугольника по длинам a и b двух катетов
(Положительные числа a и b вводятся с клавиатуры). Для тестирования
программы подготовить не менее двух тестов.
1.Решение:
Для нахождения гипотенузы воспользуемся формулой: c := √a 2+ b2
Для нахождения периметра: P=a+b+ c
1
Для нахождения площади: S= 2 ab
2.Схема алгоритма:

Начало

a,b

2 2
√ ( a ) +( b )
P=a+b+ c

1
S= ab
2

c ,P, S
Конец
3. Программа:
Program Triangle;
var a, b, c, P, S:real;
begin
writeln('Введите катеты треугольника');
readln(a, b);
c:=sqrt(sqr(a)+sqr(b));
P:=a+b+c;
S:=(a*b)/2;
writeln('Гипотенуза равна', c);
writeln('Периметр равен', P);
writeln('Площадь равна', S);
end.

4. Расчёт значений:
Стороны Вычисленные значения Результаты работы
треугольника программы
a=4 b=3 c=5 P=12 S=6 c=5 P=12 S=6
a=5 b=2 c=5,385 P=12,385 S=5 c=5,3851 P=12,3851 S=5
a=3 b=4 c=5 P=12 S=6 c=5 P=12 S=6

5. Название файла: Lab_7_0


6. Программа выводит на экран:

Введите катеты треугольника


4
3
Гипотенуза равна 5
Периметр равен 12
Площадь равна 6
Решение задач
№1
Даны действительные числа x1, y1, x2, y2. Вычислить расстояние между
двумя точками с координатами (x1; y1) и (x2; y2).

1) Формула для расчёта расстояния между двумя точками:


2 2
√ ( x 2−x 1 ) + ( y 2− y 1 )
2) Схема алгоритма:

Начало

x1, y1, x2, y2

2 2
√ ( x 2−x 1 ) + ( y 2− y 1 )
p

Конец
3) Текст программы:

Program Distance;
var x1, y1, x2, y2, p: real;
begin
writeln('Введите координаты двух точек');
readln(x1, y1, x2, y2);
p:=sqrt(sqr(x2-x1)+sqr(y2-y1));
writeln('Расстояние между точек равно ', p);
end.

4) Расчёты значений:
Координаты точек Вычисленные значения Результаты работы
программы
(5;3) (1;0) 5 5
(6;8) (0;0) 10 10
(4;7) (2;2) 5.385 5.3851648071345

5) Файл с программой: Lab_7_1


6) Программа выводит на экран:

Введите координаты двух точек


5
3
1
0
Раcстояние между точек равно 5
№2

Дано трехзначное число. В нем поменяли местами первую и вторую цифры.


Найти полученное число.

1) 1.Для того, чтобы отделить первую цифру воспользуемся действием


div. Получаем: a div 100
2.Чтобы получить 2 цифру, для начала отделим 2 и 3 цифры с
помощью операции mod. Получаем: a mod 100. Далее необходимо
отделить только 2 цифру. Получаем: (a mod 100) div 10
3.Чтобы восстановить число обратно, необходимо каждое из
полученных цифр умножить на соответствующий разряд. Для записи
единиц нужно сначала отделить 3 цифру с помощью операции mod.
Получаем: a mod 10.
2)
Начало

b=a÷100

c= ( a mod 100 )÷10

d=c∗100+b∗10+¿
+(a mod 10)

Конец
3) Текст программы:

Program Number;
var a, b, c, d: integer;
begin;
writeln('Введите трёхзначное число');
readln(a);
b:=a div 100;
c:=(a mod 100) div 10;
d:=c*100+b*10+(a mod 10);
writeln('Новое число равно ', d);
end.

4) Расчёты значений:
Данное Вычисленные значения Результаты работы
трёхзначное число программы
123 213 213
569 659 659
789 879 879

5) Файл с программой: Lab_7_2


6) Программа выводит на экран:
Введите трёхзначное число
123
Новое число равно 213
Ответы на контрольные вопросы

1) Алгоритм — набор инструкций, описывающих порядок действий


исполнителя для достижения результата решения задачи за
конечное число действий, при любом наборе исходных данных.
2) Дискретность — алгоритм должен представлять процесс решения
задачи как последовательное выполнение некоторых простых
шагов. При этом для выполнения каждого шага алгоритма
требуется конечный отрезок времени, то есть преобразование
исходных данных в результат осуществляется во времени
дискретно.
Детерминированность (определённость). В каждый момент
времени следующий шаг работы однозначно определяется
состоянием системы. Таким образом, алгоритм выдаёт один и тот
же результат (ответ) для одних и тех же исходных данных.
Понятность — алгоритм должен включать только те команды,
которые доступны исполнителю и входят в его систему команд.
Завершаемость (конечность) — в более узком понимании
алгоритма как математической функции, при корректно заданных
исходных данных алгоритм должен завершать работу и выдавать
результат за конечное число шагов. 
Массовость (универсальность). Алгоритм должен быть применим к
разным наборам исходных данных.
Результативность - завершение алгоритма определёнными
результатами.

3) 1 этап. Сформулируем постановку задачи, то есть, что дано и что


надо найти.
2 этап. Разработка алгоритма. Прежде, чем составлять собственно
схему алгоритма, подготовим необходимые формулы для решения
(построим или подготовим математическую модель)
3 этап. Составим программу решения задачи по построенному
алгоритму.
4 и 5 этапы. Отладка программы и проверка ее работы
4) Константа — неизменная величина, и в алгоритме она
представляется собственным значением, например: 15, 34.7, k,
true и т.д.
5) Переменные величины могут изменять свои значения в ходе
выполнения программы и представляются символическими
именами — идентификаторами, например: X, S2, cod_15
6) Задача №1.
Program Distance;
var x1, y1, x2, y2, p: real;
begin
writeln('Введите координаты двух точек');
readln(x1, y1, x2, y2);
p:=sqrt(sqr(x2-x1)+sqr(y2-y1));
writeln('Расстояние между точек равно ', p);
end.
Во второй строке перечислены переменные, которые потребуются в
процессе решения. Выбран тип real, т.к. для того чтобы в
последствии мы могли из числа извлечь корень, нам необходим этот
тип. В четвёртой строке написано writeln для того, чтобы
программа написала результаты на следующей строке, а не на этой.
Так же использовано readln для того, чтобы каждое число
записывалось с новой строки. На следующей строке применяются
математические операции. sqrt – извлекает корень из числа. sqr –
возводит число в квадрат.
7) а) Program Number2;
var a, b, c, d, f: integer;
begin;
writeln('Введите трёхзначное число');
readln(a);
b:=a div 100;
c:=(a mod 100) div 10;
d:=(a mod 10);
f:=b*c*d;
writeln('Произведение равно ', f);
end.
Файл с программой: Lab_7_3

б) Program arif;
var a, d, n, s: real;
begin
writeln('Введите первый член прогрессии');
readln(a);
writeln('Введите разность арифметической прогрессии');
readln(d);
writeln('Введите кол-во членов прогрессии');
readln(n);
s:=((2*a+d*(n-1))/2)*n;
writeln('Сумма равна ', s);
end.
Файл с программой: Lab_7_4

в) Program H3;
var a, b, c, p, s, h1, h2, h4: real;
begin
writeln('Введите стороны треугольника');
readln(a, b, c);
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
h1:=(2*s)/a;
writeln('Высота к стороне a равна ', h1);
h2:=(2*s)/b;
writeln('Высота к стороне b равна ', h2);
h4:=(2*s)/c;
writeln('Высота к стороне c равна ', h4);
end.
Файл с программой: Lab_7_4