Министерство образования и науки РФ
СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ
Лесосибирский филиал
Кафедра: Информационных и технических систем
Алгоритмы линейной, разветвленной и циклической структуры
Пояснительная записка
(ИТС. 230100.003 ПЗ)
Руководитель:
________П.А. Егармин
(подпись)
____________________
(оценка, дата)
Разработал:
Студент группы 61-1
________ А.П. Жудрак
(подпись)
____________________
(дата)
Содержание
ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ ЛИНЕЙНОЙ СТРУКТУРЫ 3
Задание 1. 3
Задание 2. 5
Задание 3. 11
13
Вариант №2
ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ ЛИНЕЙНОЙ СТРУКТУРЫ
Цель работы: Изучение базовой алгоритмической конструкции «линейное следование». Изучение структуры Pascal-программы, синтаксиса и семантики блоков Pascal-программы. Изучение процедур ввода-вывода WRITELN, WRITE, READ, READLN, оператора присваивания.
Задание 1.
Постановка задачи:
Даны числа x, y, z. Разработать программу вычисления значений переменных a, b, если
a=ln )
b=sin3tg(yx+z)
Математическая формулировка задачи:
В данных формулах трудность представляет только нахождение значения числа в сложной степени. Эта задача решается представлением степени через натуральный логарифм:
Таблица 1 - Таблица внешних спецификаций:
|
Имя переменной |
Назначение переменной |
Тип переменной |
Единицы измерения |
Входные данные |
x y z |
вводимое число вводимое число вводимое число |
real real real |
- |
Промежуточные вычисления |
d c |
число число |
real real |
|
Выходные данные |
a b |
число число |
real real |
- |
Расчет контрольных примеров :
При x=1, y=2, z=3: a = =0, b= =0,0260
При x=1, y=3, z=1: a = ln(3-1)0,3 ( )=0,62 , b=sin3tg(31+1)=-0,0835
Блок-схема:
Рисунок 1 – Блок-схема к заданию №1
Программная реализация:
program chisla;
uses
crt;
var a,b,c,d,x,y,z: real;
begin
clrscr;
writeln('‚Введите x, y, z');
readln(x,y,z);
a:=ln(exp(3/10*ln(y-x)))*exp(sqrt(abs(x))*ln(y));
d:=exp((x+z)*ln(y));
c:=sin(d)/cos(d);
b:=sin(c)*sin(c)*sin(c);
writeln('a= ', a:4:2, ' b= ', b:4:4);
readln
end.
Протокол выполнения программы:
1) в процессе диалога с пользователем вводим значения x=1, y=2, z=3;
2) вычислениеa:=ln(exp(3/10*ln(y-x)))*exp(sqrt(abs(x))*ln(y));
3) вычисление d:=exp((x+z)*ln(y));
4) вычисление c:=sin(d)/cos(d);
5) вычисление b:=sin(c)*sin(c)*sin(c);
6) печать ‘a= 0’
7) печать ‘b= 0.0260’
1) в процессе диалога с пользователем вводим значения x=1, y=3, z=1;
2) вычисление a:=ln(exp(3/10*ln(y-x)))*exp(sqrt(abs(x))*ln(y));
3) вычисление d:=exp((x+z)*ln(y));
4) вычисление c:=sin(d)/cos(d);
5) вычисление b:=sin(c)*sin(c)*sin(c);
6) печать ‘a= 0.62’
7) печать ‘b= -0.0835’
Задание 2.
Постановка задачи:
Даны действительные положительные числа A,B,C. По трем сторонам с длинами A,B,Cможно построить треугольник. Найти угла треугольника.
Математическая формулировка задачи:
В данных формулах трудность представляет только нахождение углов треугольника. Эта задача решается через теорему косинусов:
csa= ; csc= ; csb= ;
u1= ;
u2= ;
u3= ;
Таблица 2 - Таблица внешних спецификаций:
|
Имя переменной |
Назначение переменной |
Тип переменной |
Единицы измерения |
Входные данные |
csa csb csc a
b
c
u1 u2 u3 180/pi |
Косинус альфа Косинус бетта Косинус гамма Сторона треугольника Сторона треугольника Сторона треугольника Угол альфа Угол бета Угол гамма Перевод радиан в градусы |
real real real real
real
real
real real real real |
|
Выходные данные |
u1 u2 u3 |
Угол альфа Угол бета Угол гамма |
real real real |
градусы градусы градусы |
Расчет контрольных примеров :
Приa=4, b=3, c=4:
csa=
csc=
csb= =0,72
u1= )* =68,0
u2= )* =69,0
u3= )* =44,0
Приa=3, b=4, c=5:
csa=
csc=
csb= =0,8
u1= )* =90
u2= )* =53,1
u3= )* =36,9
Блок-схема:
Рисунок 2 – Блок-схема к заданию №2
Программная реализация:
program Project;
uses
crt;
var csa,csb,csc: real;
a,b,c,u1,u2,u3: real;
begin
clrscr;
writeln('Введите а ');
readln(a);
writeln('Введите b');
readln(b);
writeln('Введите с');
readln(c);
if (a<b+c) and (b<a+c) and (c<a+b) then
begin
csa:=(sqr(b)+sqr(c)-sqr(a))/(2*b*c);
csc:=(sqr(a)+sqr(b)-sqr(c))/(2*a*b);
csb:=(sqr(c)+sqr(a)-sqr(b))/(2*a*c);
u1:=((pi/2)-arctan((csa)/(sqrt(1-csa*csa))))*180/pi;
u2:=((pi/2)-arctan((csc)/(sqrt(1-csc*csc))))*180/pi;
u3:=((pi/2)-arctan((csb)/(sqrt(1-csb*csb))))*180/pi;
writeln('Угол 1= ', u1:4:1, ' Градусов.');
writeln('Угол2 = ', u2:4:1, ' Градусов.');
writeln('Угол 3 = ', u3:4:1, ' Градусов.');
end
else writeln(' Это не треугольник, повторите ввод');
readln
end.
Протокол выполнения программы:
1) в процессе диалога с пользователем вводим значения a=4, b=3, c=4;
2) проверка (a<b+c) и (b<a+c) и (c<a+b) (да)
3) вычисление csa:=(sqr(b)+sqr(c)-sqr(a))/(2*b*c);
4) вычисление csc:=(sqr(a)+sqr(b)-sqr(c))/(2*a*b);
5) вычисление csb:=(sqr(c)+sqr(a)-sqr(b))/(2*a*c);
6)u1:=((pi/2)-arctan((csa)/(sqrt(1-csa*csa))))*180/pi;
7)u2:=((pi/2)-arctan((csc)/(sqrt(1-csc*csc))))*180/pi;
8)u3:=((pi/2)-arctan((csb)/(sqrt(1-csb*csb))))*180/pi;
9) печать ('Угол 1 = 68.0 градусов.');
10)печать ('Угол 2 = 44.0' градусов.');
11)печать ('Угол 3 = 68.0' градусов.');
1) в процессе диалога с пользователем вводим значения a=3, b=4, c=5;
2) проверка (a<b+c) и (b<a+c) и (c<a+b) (да)
3) вычисление csa:=(sqr(b)+sqr(c)-sqr(a))/(2*b*c);
4) вычисление csc:=(sqr(a)+sqr(b)-sqr(c))/(2*a*b);
5) вычисление csb:=(sqr(c)+sqr(a)-sqr(b))/(2*a*c);
6)u1:=((pi/2)-arctan((csa)/(sqrt(1-csa*csa))))*180/pi;
7)u2:=((pi/2)-arctan((csc)/(sqrt(1-csc*csc))))*180/pi;
8)u3:=((pi/2)-arctan((csb)/(sqrt(1-csb*csb))))*180/pi;
9) печать ('Угол 1 = 36.9 градусов.');
10)печать ('Угол 2 =53.1 градусов.');
11)печать ('Угол 3 = 90.0 градусов.');
Задание 3.
Постановка задачи:
Написать программу дл я перевода значений температуры, заданной по шкале Цельсия, в значения, соответствующие шкалам Фаренгейта, Кельвина и Ренкина.
Математическая формулировка задачи:
В данных формулах трудность представляет только формулы перевода температур. Эта задача решается через подстановку в формулы:Ф:=1.8*0С+32;К:=0С+273.15;Р:=Ф+460;
Таблица 3 - Таблица внешних спецификаций:
|
Имя переменной |
Назначение переменной |
Тип переменной |
Единицы измерения |
Входные данные |
a |
Вводимая температура |
real |
0C |
Выходные данные |
a
b
c
d |
Температура по Цельсию Температура по Фаренгейту Температура по Кельвину Температура по Ренкину |
real
real
real
real |
0C
0C
0C
0C |
Расчет контрольных примеров :
Приa=1:
b=1,8*1+32=33,800C
c=1+273,15=2740C
d=33,80+460=493,80 0C
При а=5:
b=5*1,8+32=41 0C
c=5+273,15=278 0C
d=41+460=501 0C
Блок-схема:
Рисунок 3 – Блок-схема к заданию №3
Программная реализация:
program nePeBod_ZHa4eHui_TemnEpATyPbI;
uses
crt;
var
a,b,c,d: real;
begin
clrscr;
writeln('‚Введите значение температуры:');
readln(a);
b:=1.8*a+32;
c:=a+273.15;
d:=b+460;
writeln(Градус по Цельсию: ', a:4:2);
writeln('Градус по Фаренгейту: ', b:4:2);
writeln('Градус по Кельвину: ', c:4:2);
writeln('Градус по Кельвину: ', d:4:2);
readln;
end.
Протокол выполнения программы:
1) В процессе диалога с пользователем вводим значения температуры 1:
2) Вычислениеb=1.8*a+32;
3) Вычисление c:=a+273.15;
4) Вычисление d:=b+460;
5) Печать ‘Градус по Цельсию: 1’
6) Печать 'Градус по Фаренгейту: 33.80’
7) Печать 'Градус по Кельвину: 274.15’
8) Печать 'Градус по Кельвину: 493.80’
1) В процессе диалога с пользователем вводим значения температуры 5:
2) Вычислениеb=1.8*a+32;
3) Вычисление c:=a+273.15;
4) Вычисление d:=b+460;
5) Печать ‘Градус по Цельсию: 5.00’
6) Печать 'Градус по Фаренгейту: 41.00’
7) Печать 'Градус по Кельвину: 278.15’
8) Печать 'Градус по Кельвину:501.00’