Курсовая

ВАРИАНТ 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

                                   Конец.