Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Расчётно графическая (оформление).doc
Скачиваний:
3
Добавлен:
19.09.2019
Размер:
528.9 Кб
Скачать

Министерство образования и науки РФ

СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ

Лесосибирский филиал

Кафедра: Информационных и технических систем

Алгоритмы линейной, разветвленной и циклической структуры

Пояснительная записка

(ИТС. 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’