Курсовая
ВАРИАНТ 58
Задание N5
Cоставить простейшие программы по условиям приведенных ниже задач и записать их на диск.
5.1.Найти площадь сегмента.
Расчетная формула:
где Sсегм —площадь сегмента, см2;
R —радиус круга, см;
a —дуга сегмента, рад.
Исходные данные для расчета приведены в табл.5.1.
Таблица 5.1
Парметры расчета | R | a |
Числовые значения | 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.Определить свободную длину винта из условия работы на продольный изгиб.
Расчетная формула:
где hсв - свободная длина винта, мм ;
E - модуль упругости для стали, н/мм2;
J - осевой момент инерции поперечного сечения винта, мм4;
m - коэффициент, учитывающий способ закрепления концов винта;
n - коэффициент запаса прочности ;
F - приложенная осевая сила, н.
Исходные данные для расчета приведены в табл.5.2.
Таблица 5.2
Параметры расчета | E | J | m | n | F |
Числовые значения | 2,15.105 | 3,9.104 | 2,0 | 4,0 | 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 | a |
Числовые значения | 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 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 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 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 Ход программы. 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 Составить программу, содержащую цикл, для вычисления следующей суммы: Расчет выполнить по двум вариантам: 1. В качестве ak принять значения a из таблицы 10.1; 2. В качестве ak принять значения 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 и a. Значения параметров R и a приведены в таблице 10.1. Организовать вывод на печать в виде таблицы значений R, a и Sсегм. Записать программу на диск под новым именем. Таблица 10.1 Ход программы. 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.№ R a 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 Параметр 1 2 3 4 5 R 15,7 14,2 16,4 10,3 8,1 a 0,5 0,4 0,7 0,8 ───
Корни уравнения вычисляются по формуле:
Усова Елизавета