Пример 6. Запишите по правилам алгоритмического языка выражения:
a)
|
|
e)
|
|
б)
|
|
ж)
|
|
в)
|
|
з)
|
|
г)
|
|
и)
|
|
д)
|
|
к)
|
|
Пример 7. Составьте алгоритмы решения задач линейной структуры:
а) в треугольнике известны три стороны a, b и c; найти (в градусах) углы этого треугольника, используя формулы:
|
|
С=180o-(А+В).
|
Пояснение. Обратите внимание на то, что стандартные тригонометрические функции arccos и arcsin возвращают вычисленное значение в радианной мере.
Решение:
алг Углы треугольника(арг вещ a,b,c, рез вещ UgolA,UgolB,UgolC)
нач вещ RadGr,UgolARad
| RadGr — коэф. перевода угла из радианной меры в градусную
| UgolARad — угол A (в радианах)
RadGr:=180/3.14
UgolARad:=ArcCos((b*b+c*c-a*a)/(2*b*c))
UgolA:=UgolARad*RadGr
UgolB:=ArcSin(b*sin(UgolARad)/a)*RadGr
UgolC:=180-(UgolA+UgolB)
кон
б) в треугольнике известны две стороны a, b и угол C (в радианах) между ними; найти сторону c, углы A и B (в радианах) и площадь треугольника, используя формулы:
с2 = a2 + b2 - 2ab cos C.
Пояснение. Сначала нужно найти сторону c , а затем остальные требуемые значения;
в) в треугольнике известны три стороны a, b и c; найти радиус описанной окружности и угол A (в градусах), используя формулы:
где
г) в правильной треугольной пирамиде известны сторона основания a и угол A (в градусах) наклона боковой грани к плоскости основания; найти объем и площадь полной поверхности пирамиды, используя формулы:
д) в усеченном конусе известны радиусы оснований R и r и угол A (в радианах) наклона образующей к поверхности большего основания; найти объем и площадь боковой поверхности конуса, используя формулы:
e) в правильной четырехугольной пирамиде сторона основания равна a , а боковое ребро наклонено к плоскости основания под углом A ; найти объем и площадь полной поверхности пирамиды и площадь сечения, проходящего через вершину пирамиды и диагональ основания d ; использовать формулы:
Пример 8. Составьте алгоритм решения задач разветвляющейся структуры:
а) определить, является ли треугольник с заданными сторонами a, b, c равнобедренным;
Решение:
алг Треугольник(арг вещ a,b,c, рез лог Otvet)
дано | a>0, b>0, c>0, a+b>c, a+c>b, b+c>a
надо | Otvet = да, если треугольник равнобедренный
| Otvet = нет, если треугольник не равноведренный
нач
если (a=b) или (a=c) или (b=c)
то Otvet:= да
иначе Otvet:= нет
все
кон
б) определить количество положительных чисел среди заданных чисел a, b и c;
в) меньшее из двух заданных неравных чисел увеличить вдвое, а большее оставить без изменения;
г) числа a и b — катеты одного прямоугольного треугольника, а c и d — другого; определить, являются ли эти треугольники подобными;
д) даны три точки на плоскости; определить, какая из них ближе к началу координат;
е) определить, принадлежит ли заданная точка (x, y) плоской фигуре, являющейся кольцом с центром в начале координат, с внутренним радиусом r1 и внешним радиусом r2 ;
ж) упорядочить по возрастанию последовательность трех чисел a, b и c.
Содержание отчета:
1. Название и цели работы.
2. Описание основных действий по разработке алгоритма решения задачи.
3. Ответить на контрольные вопросы.
Контрольные вопросы:
1. Дайте определение алгоритма и приведите примеры.
2. Что такое алгоритмизация?
3. Приведите пример математического выражения и составьте алгоритм его решения.
4. Поясните на примерах свойства алгоритма.
5. Как вы понимаете свойство конечности алгоритма? Приведите примеры.
6. Как вы понимаете свойство массовости алгоритма? Приведите примеры.
7. Что такое линейный алгоритм? Приведите примеры.
8. Что такое циклический алгоритм? Приведите примеры.
9. Напишите циклический алгоритм и укажите в нем тело цикла.
10. Как происходит окончание циклического алгоритма?
11. Что такое разветвляющийся алгоритм? Приведите примеры.
12. Как в алгоритме записывается условие?
13. Как записывается полная форма разветвляющегося алгоритма?
14. Как записывается неполная форма разветвляющегося алгоритма? Приведите примеры.
15. Что такое вспомогательный алгоритм? Приведите примеры.
16. Зачем нужна блок-схема алгоритма?
ПРИЛОЖЕНИЕ 14
Лабораторная работа № 3
Тема: Организация программы. Основные типы данных
Цели: выработать практические навыки работы с системой Borland Pascal, научить создавать, вводить в компьютер, выполнять и исправлять простейшие программы на языке Pascal в режиме диалога, познакомить с диагностическими сообщениями компилятора об ошибках при выполнении программ, реализующих линейные алгоритмы.
План:
1. Выполнить задачи 1-5.
2. Выполнить отчет по лабораторной работе.
3. Ответить на контрольные вопросы.
Задача 1. Скорость первого автомобиля v1 км/ч, второго — v2 км/ч, расстояние между ними s км. Какое расстояние будет между ними через t ч, если автомобили движутся в разные стороны?
Согласно условию задачи искомое расстояние s1=s+(v1+v2)t (если автомобили изначально двигались в противоположные стороны) или s2=|(v1+v2)t-s| (если автомобили первоначально двигались навстречу друг другу).
Чтобы получить это решение, необходимо ввести исходные данные, присвоить переменным искомое значение и вывести его на печать.
Program Car;
Var V1, V2, T, S, S1, S2 : Real;
Begin
Write('Введите скорости автомобилей, расстояние между ними и время движения:');
ReadLn(V1, V2, S, T);
S1 := S + (V1 + V2) * T;
S2 := Abs((V1 + V2) * T - S);
WriteLn('Расстояние будет равно ', S1:7:4, ' км или ', S2:7:4, ' км')
End.
Задача 3. Вычислить значение выражения
Для решения задачи достаточно ввести все данные, безошибочно записать выражение и вывести результат. Примечание. При решении этой задачи не учитывается область определения выражения, считается, что вводятся только допустимые данные.
Program Expression;
Var X, Z : Real;
Begin
Write('Введите значения переменной X: '); ReadLn(X);
Z := 6 * ln(sqrt(exp(x+1)+2*exp(x)*cos(x))) /
ln(x - exp(x+3) * sin(x)) + abs(cos(x) / exp(sin(x)));
WriteLn('Значение выражения: ', Z : 12 : 6)
End.
Задача 4. Определить расстояние на плоскости между двумя точками с заданными координатами M1(x1,y1) и M2(x2,y2)
Этапы решения задачи:
Математическая модель: расстояние на плоскости между двумя точками M1(x1,y1) и M2(x2,y2) высчитывается по формуле
Составим схему алгоритма
Уточним содержимое блока "Вычисление и печать расстояния"
Дальнейшая детализация не требуется. Переводим блок-схему на язык Паскаль.
program example1;
var x1, x2, y1, y2: integer;
d:real;
begin
write('x1= '); readln(x1);
write('y1= '); readln(y1);
write('x2= '); readln(x2);
write('y2= '); readln(y2);
d:=sqrt(sqr(x2-x1)+sqr(y2-y1));
writeln('d=',d);
end.
Доработаем программу, так чтобы она обладала некоторым интерфейсом:
program example1;
var x1, x2, y1, y2: integer;
d:real;
begin
writeln('Эта программа вычисляет расстояние между двумя точками на плоскости');
writeln('Введите координаты двух точек:');
write('x1= '); readln(x1);
write('y1= '); readln(y1);
write('x2= '); readln(x2);
write('y2 ='); readln(y2);
d:=sqrt(sqr(x2-x1)+sqr(y2-y1));
writeln('d= ',d);
writeln('нажмите Enter для завершения работы программы');
readln;
end.
Задача 5. Дано действительное а. Для функций f(a), график которой представлен на рисунке, вычислить f(a).
Этапы решения задачи:
Математическая модель: функция вычисляется по следующей формуле
Составим схему алгоритма
Детализируем блок"Определяем к какому промежутку относится x."
Добавим блоки вычисления функции на каждом из промежутков:
Таким образом, окончательный алгоритм выглядит следующим образом:
Дальнейшая детализация не требуется. Переводим блок-схему на язык Паскаль.
Program example1;
var a, f:real;
begin
write('Введите a> '); readln(a);
if a<-1 then f:= -a-1 else
if (a>=-1) and (a<0) then f:= a+1 else
if (a>=0) and (a<1) then f:= -a+1 else f:= a+1;
writeln('F= 'f);
end.
Содержание отчета
Цель работы.
Краткое описание основных действий по работе с системой Borland Pascal: созданию, ввода в компьютер, выполнения и исправления простейших программ на языке Pascal в режиме диалога.
В рабочем отчете зафиксировать все действия пользователя, сделать выводы по основным пунктам лабораторной работы.
Контрольные вопросы
1. Что такое величина?
2. Какие величины называют аргументами, результатами, промежуточными величинами? Приведите примеры.
3. Каковы атрибуты величины?
4. Какие величины называют постоянными? переменными? Приведите примеры.
5. Какие простые типы величин существуют в языке Pascal?
6. Что определяет тип величины?
7. Расскажите о простых типах данных и их атрибутах.
8. Как осуществляется ввод данных в языке Pascal? Приведите примеры.
9. Как осуществляется вывод данных в языке Pascal? Приведите примеры.
10. Какова общая структура программы в языке Pascal?
11. Расскажите об операторе присваивания и совместимости типов.
12. Что такое формат вывода?
13. Расскажите о правилах вычисления алгебраического выражения. Приведите примеры.
14. Расскажите о правилах вычисления логического выражения. Приведите примеры.
15. Расскажите о логических операциях. Приведите примеры.
16. Приведите примеры задач, имеющих линейный алгоритм решения.
17. Определите, какой суммарный объём памяти требуется под переменные в каждом из примеров 1–3.
18. Каково назначение следующей программы?
Program Example;
Var N : 100..999;
Begin Write('Введите натуральное трёхзначное число: '); ReadLn(N);
WriteLn('Искомая величина: ', N Div 100 + N Div 10 Mod 10 + N Mod 10);
End.
ПРИЛОЖЕНИЕ 15
Лабораторная работа № 4
Достарыңызбен бөлісу: |