ВАРИАНТ 58
Задание N 5
Cоставить простейшие программы по условиям приведенных ниже задач и
записать их на диск.
5.1.Найти площадь сегмента.
Расчетная формула:
где Sсегм —площадь сегмента, см2;
R —радиус круга, см;
( —дуга сегмента, рад.
Исходные данные для расчета приведены в табл.5.1.
Таблица 5.1
|Парметры | R | ( |
|расчета | | |
|Числовые | 220,0| 161,3|
|значения | | |
Ход программы
Program zadacha5_1;
Var r,a,s:real;
Begin
Write('ввудите радиус круга в см. r =');
Readln(r);
Write('введите дугу сегмента в рад а=');
Readln(a);
s:=1/(2*r*r*(a-sin(a)));
Writeln('Площадь сегмента s=',s:17:13);
end.
Блок-схема.
Решение
ввудите радиус круга в см. r =220.0
введите дугу сегмента в рад. a=161.3
Площадь сегмента s=0.00000006370
5.2.Определить свободную длину винта из условия работы на продольный
изгиб.
Расчетная формула:
[pic][pic][pic][pic][pic]
где hсв — свободная длина винта, мм ;
E — модуль упругости для стали, н/мм2;
J — осевой момент инерции поперечного сечения винта, мм4;
( — коэффициент, учитывающий способ закрепления концов винта;
n — коэффициент запаса прочности ;
F — приложенная осевая сила, н.
Исходные данные для расчета приведены в табл.5.2.
Таблица 5.2
|Параметры | E | J | ( | n | F |
|расчета | | | | | |
|Числовые |2,15.10| | 2,0| 4,0 | 104|
|значения |5 |3,9.104| | | |
Ход программы.
Program zad5_2;
Var e,j,m,n,f,h:real;
Const p=3.14;
Begin
Write('Модуль упругости для стали, e=');
Readln(e);
Write('Осевой момент инерции поперечного сечения винта j=');
Readln(j);
Write('Коэффициент, учитывающий способ закрепления концов винта m=');
Readln(m);
Write('Коэффициент запаса прочности n=');
Readln(n);
Write('Приложенная осевая сила f=');
Readln(f);
h:=(p*p*e*j)/(m*m*n*f);
Writeln('Свободная длина винта h=',h:10:5);
end.
Блок- схема.
Решение.
Модуль упругости для стали, e=2.15e05
Осевой момент инерции поперечного сечения винта j=3.9e04
Коэффициент, учитывающий способ закрепления концов винта m=2.0
Коэффициент запаса прочности n=4.0
Приложенная осевая сила f=1e04
Свободная длина винта h=516704.66250
Задание № 6
Загрузить в оперативную память компьютера программу, разработанную в
задании 5.1. На ее основе составить программу для определения наибольшего
из двух значений Sсегм. Исходные данные для расчета Sсегм1 приведены в
табл.5.1, Sсегм2 — в табл. 6.1. При составлении программы использовать
оператор условного перехода. Записать программу на диск под новым именем.
Таблица 6.1
|Параметры | R | ( |
|расчета | | |
|Числовые | 10,2 | 0,89 |
|значения | | |
Ход программы.
Program zadacha_6;
Var r,a,s1,s2:real;
Begin
Write('r1=');
Readln(r);
Write('a1=');
Readln(a);
s1:=1/(2*r*r*(a-sin(a)));
Writeln('s1=',s1:10:14);
Write('r2=');
Readln(r);
Write('a2=');
Readln(a);
s2:=1/(2*r*r*(a-sin(a)));
Writeln('s2=',s2:10:14);
Readln;
If s1>s2 then Writeln('s1>s2')
Else Writeln('s2>s1')
end.
Блок схема.
Решение.
r1=220.0
a1=161.3
s1=0.00000006370
r2=10.2
a2=0.89
s2=0.04255661272
s2>s1
Задание № 7
Загрузить в оперативную память компьютера программу, разработанную в
задании 5.2. На ее основе составить программу с шагом ( цикл с известным
числом повторений ), используя дополнительные исходные данные из таблицы
7.1. Предусмотреть вывод на печать всех полученных значений hсв.
Программу составить в трех вариантах:
а. Используя операторы WHILE … DO;
б. Используя операторы REPEAT … UNTIL;
в. Используя оператор IF.
Записать все варианты программы на диск.
Таблица 7.1
| Осевая сила, F | Начальное | Конечное | Шаг |
| | | | |
| |значение |значение |изменения |
| Числовые | 104 | 1,5.104 | 0,05.104 |
|значения | | | |
Ход программы.
Program zadacha_7a;
Var e,j,m,n,f,f2,h,k:real;
Const p=3.14;
Begin
Write('Модуль упругости для стали e=');
Readln(e);
Write('Осевой моментинерции поперечного сечения винта j=');
Readln(j);
Write('Коэф., учитывающий способ закрепления концов винта m=');
Readln(m);
Write('Коэф. запаса прочности n=');
Readln(n);
Write('Осевая сила, начальное значение f=');
Readln(f);
Write('Осевая сила, конечное значение f2=');
Readln(f2);
Write('Введите шаг k=');
Readln(k);
While f<f2 Do
Begin
h:=(p*p*e*j)/(m*m*n*f);
Writeln('h=',h:10:5);
f:=f+k;
end;
Readln;
end.
Ход программы
Program zadacha_7b;
uses crt;
Var e,j,m,n,f,f2,h,k:real;
Const p=3.14;
Begin
clrScr;
Write('Модуль упругости для стали e=');
Readln(e);
Write('Осевой момент инерции поперечного сечения винта j=');
Readln(j);
Write('Коэф., учитывающий способ закрепления концов винта m=');
Readln(m);
Write('Коэф. запаса прочности n=');
Readln(n);
Write('Осевая сила, начальное значение f=');
Readln(f);
Write('Осевая сила, конечное значение f2=');
Readln(f2);
Write('Введите шаг k=');
Readln(k);
Repeat
Begin
f:=f+k;
h:=(p*p*e*j)/(m*m*n*f);
Writeln('h=',h:10:5);
Readln;
end;
Until f<f2;
Readln;
end.
Program zadacha_7c;
Var e,j,m,n,f,f2,h,k:real;
Const p=3.14;
Begin
Write('Модуль упругости для стали e=');
Readln(e);
Write('Осевой моментинерции поперечного сечения винта j=');
Readln(j);
Write('Коэф., учитывающий способ закрепления концов винта m=');
Readln(m);
Write('Коэф. запаса прочности n=');
Readln(n);
Write('Осевая сила, начальное значение f=');
Readln(f);
Write('Осевая сила, конечное значение f2=');
Readln(f2);
Write('Введите шаг k=');
Readln(k);
If f<f2 then
Begin
f:=f+k;
h:=(p*p*e*j)/(m*m*n*f);
Writeln('h=',h:10:5);
end;
Readln;
end.
Решение.
Модуль упругости для стали e=2.15e05
Осевой моментинерции поперечного сечения винта j=3.9e04
Коэф., учитывающий способ закрепления концов винта m=2.0
Коэф. запаса прочности n=4.0
Осевая сила, начальное значение f=1e04
Осевая сила, конечное значение f2=1.5e04
Введите шаг k=0.05e04
h=516704.66250
h=492099.67857
h=469731.51136
h=449308.40217
h=430587.21875
h=413363.73000
h=397465.12500
h=382744.19444
h=369074.75893
h=356348.04310
Задание № 8
Загрузить в оперативную память компьютера программу, разработанную в
задании 5.1. На ее основе составить программу с организацией цикла типа FOR
для определения величины Sсегм. Дополнительные исходные данные приведены в
табл. 8.1. Организовать вывод на печать в виде таблицы значений R и Sсегм.
Записать программу на диск под новым именем.
Таблица 8.1
| №| R | ( |
| 1| 15,7 | 0,5 |
| 2| 10,4 | 1,1 |
| 3| 12,8 | 0,76 |
| 4| 8,2 | 0,4 |
| 5| 9,3 | 1,2 |
Ход программы.
Program zadacha_8;
Var r,a,s :array [1..5] of real;
i:integer;
Begin
For i:=1 to 5 do
Begin
Write('введите радиус круга r[',i,']=');
Read(r[i]);
Write('введите длину дуги сегмента a[',i,']=');
Readln(a[i]);
s[i]:=1/(2*r[i]*r[i]*(a[i]-sin(a[i])));
end;
Writeln('———————————————————');
Writeln(' № r a s ');
Writeln('———————————————————');
For i:=1 to 5 do
Writeln(i, r[i]:17:1,a[i]:17:2,s[i]:17:14);
Readln;
end.
Решение.
введите радиус круга r[1]=15.7
введите длину дуги сегмента a[1]=0.5
введите радиус круга r[2]=10.4
введите длину дуги сегмента a[2]=1.1
введите радиус круга r[3]=12.8
введите длину дуги сегмента a[3]=0.76
введите радиус круга r[4]=8.2
введите длину дуги сегмента a[4]=0.4
введите радиус круга r[5]=9.3
введите длину дуги сегмента a[5]=1.2
———————————————————
№ r a s
———————————————————
1 15.7 0.50 0.09859212439
2 10.4 1.10 0.02214053650
3 12.8 0.76 0.04293500082
4 8.2 0.40 0.70273015694
5 9.3 1.20 0.02157409847
Задание № 9
Составить программу, содержащую цикл, для вычисления следующей суммы:
[pic]
Расчет выполнить по двум вариантам: 1. В качестве (k принять значения ( из
таблицы 10.1; 2. В качестве (k принять значения R из таблицы 10.1.
Ход программы.
Program zadacha_9;
Var c,a:real;
z,n:integer;
Begin
Write('Введите количество значений а ');
Readln(n);
For z:=1 to n do
Begin
Write('a=');
Readln(a);
c:=3*a+c;
end;
c:=1+c;
Writeln('С=',c:1:2);
Readln;
end.
Решение 1.
Введите количество значений а 4
a=0.5
a=0.4
a=0.7
a=0.8
С=8.20
Решение 2.
Введите количество значений а 5
a=15.7
a=14.2
a=16.4
a=10.3
a=8.1
С=195.10
Задание № 10
Загрузить в оперативную память компьютера программу, разработанную в
задании 5.1. На ее основе составить программу с организацией вложенного
цикла типа FOR для определения всех возможных значений Sсегм при изменении
параметров R и (. Значения параметров R и ( приведены в таблице 10.1.
Организовать вывод на печать в виде таблицы значений R, ( и Sсегм. Записать
программу на диск под новым именем.
Таблица 10.1
|Парамет| 1 | 2 | 3 | 4 | 5 |
|р | | | | | |
| R | 15,7 | 14,2 | 16,4 | 10,3 | 8,1 |
| ( | 0,5 | 0,4 | 0,7 | 0,8 | — |
Ход программы.
Program zadacha_10;
Var r,a :array [1..5] of real;
s:array [1..5,1..5] of real;
i,j:integer;
Begin
For i:=1 to 5 do
Begin
Write('Введите r[',i,']=');
Read(r[i]);
end;
For i:=1 to 4 do
Begin
Write('Введите a[',i,']=');
Readln(a[i]);
end;
Writeln('r a s');
For i:=1 to 5 do
For j:=1 to 4 do
Begin
s[i,j]:=1/(2*r[i]*r[i]*(a[j]-sin(a[j])));
end;
Writeln('———————————————————');
Writeln(' № r a s ');
Writeln('———————————————————');
For i:=1 to 5 do
For j:=1 to 4 do
Writeln(i:3,j:2,r[i]:15:1,a[j]:15:1,s[i,j]:16:8);
Writeln('———————————————————') ;
Readln;
end.
Решение.
Введите r[1]=15.7
Введите r[2]=14.2
Введите r[3]=16.4
Введите r[4]=10.3
Введите r[5]=8.1
Введите a[1]=0.5
Введите a[2]=0.4
Введите a[3]=0.7
Введите a[4]=0.8
———————————————————
№ r a s
———————————————————
1 1 15.7 0.5 0.09859212
1 2 15.7 0.4 0.19169774
1 3 15.7 0.7 0.03636421
1 4 15.7 0.8 0.02454482
2 1 14.2 0.5 0.12052159
2 2 14.2 0.4 0.23433632
2 3 14.2 0.7 0.04445256
2 4 14.2 0.8 0.03000423
3 1 16.4 0.5 0.09035534
3 2 16.4 0.4 0.17568254
3 3 16.4 0.7 0.03332620
3 4 16.4 0.8 0.02249425
4 1 10.3 0.5 0.22906940
4 2 10.3 0.4 0.44539142
4 3 10.3 0.7 0.08448878
4 4 10.3 0.8 0.05702755
5 1 8.1 0.5 0.37040044
5 2 8.1 0.4 0.72018863
5 3 8.1 0.7 0.13661659
5 4 8.1 0.8 0.09221236
———————————————————
Задание № 11
Изменить программу, разработанную в задании № 10, использовав для ввода
массивов процедуру.
Ход программы.
Program zadacha_11;
Type massiv=array [1..5] of real;
Procedure q(var z:massiv; n:integer; x:char);
Var i:integer;
Begin
For i:=1 to n do
Begin
Write('Введите ',x,'[',i,']=');
Readln(z[i]);
end;
end;
Var r,a :massiv;
s:array [1..5,1..5] of real;
i,j,n:integer;
Begin
n:=5;
q(r,n,'r');
n:=4;
q(a,n,'a');
Writeln('r a s');
For i:=1 to 5 do
For j:=1 to 4 do
Begin
s[i,j]:=1/(2*r[i]*r[i]*(a[j]-sin(a[j])));
end;
Writeln('———————————————————');
Writeln(' № r a s ');
Writeln('———————————————————');
For i:=1 to 5 do
For j:=1 to 4 do
Writeln(i:3,j:2, r[i]:15:1,a[j]:15:1,s[i,j]:16:8);
Writeln('———————————————————') ;
Readln;
end.
Решение.
Введите r[1]=15.7
Введите r[2]=14.2
Введите r[3]=16.4
Введите r[4]=10.3
Введите r[5]=8.1
Введите a[1]=0.5
Введите a[2]=0.4
Введите a[3]=0.7
Введите a[4]=0.8
———————————————————
№ r a s
———————————————————
1 1 15.7 0.5 0.09859212
1 2 15.7 0.4 0.19169774
1 3 15.7 0.7 0.03636421
1 4 15.7 0.8 0.02454482
2 1 14.2 0.5 0.12052159
2 2 14.2 0.4 0.23433632
2 3 14.2 0.7 0.04445256
2 4 14.2 0.8 0.03000423
3 1 16.4 0.5 0.09035534
3 2 16.4 0.4 0.17568254
3 3 16.4 0.7 0.03332620
3 4 16.4 0.8 0.02249425
4 1 10.3 0.5 0.22906940
4 2 10.3 0.4 0.44539142
4 3 10.3 0.7 0.08448878
4 4 10.3 0.8 0.05702755
5 1 8.1 0.5 0.37040044
5 2 8.1 0.4 0.72018863
5 3 8.1 0.7 0.13661659
5 4 8.1 0.8 0.09221236
———————————————————
Задание № 12
Составить программу для вычисления функции
S = ex1-x2/ey1-y2 ,
где х1, х2 —корни уравнения 3.х2 + 4.х —2 = 0;
у1, у2 —корни уравнения 6.у2 —2.у —5 = 0;
Результат округлить до двух десятичных знаков.
Корни уравнения вычисляются по формуле:
где а, b, с —коэффициенты уравнения а.x2 + b.х + с = 0.
Для вычисления корней уравнения использовать:
а) процедуру;
б) модуль.
В случае получения комплексных корней (при b2 — 4а.с < 0) предусмотреть
вывод на экран сообщения:
“Комплексные корни. Выполнение программы прекращено”.
Записать программу на диск.
Министерство образования Р.Ф.
Архангельский Государственный Технический Университет.
Курсовая работа по информатике.
Программирование на языке Turbo Pascal.
Выполнила студентка 1 курса
Факультета МТД
Усова Елизавета
Проверил: Старкова АВ
Архангельск 2004.
————————
a
[pic]
Начало.
)
sin
(
R
2
1
S
2
сегм
?
—
?
?
?
’
2
c
a
4
b
b
k
2
2
,
1
?
?
?
—
±
—
’
Ввод r, a.
S=1/(2*r*r*(a-sina)
Вывод S
Конец
Начало.
Ввод e, j, m, n, f.
P=3.14
[pic]
Вывод h
Конец.
Начало.
Ввод a1, r1, a2, r2
s1=1/(2*r*r*(a-sina))
s2=1/(2*r*r*(a-sina))
S1>s2
нет
да
S1>S2
S2>S1
Конец.