Турбопаскаль

2.Задание №1.

Составить блок – схему и программу. Вычислить значения:

В:=1; FOR K:=10 TO 15 DO BEGIN FOR M:=12 TO 16 DO B:=B+K; B:=K+M; END; WRITE (‘B=’,B); 

БЛОК - СХЕМА

  

 

 

 

 

 
K
 
M
 
B=B+K
 
B=K+M
 
 
10
12

13

14

15

16

11

21

31

41

51

 
 
26
 
 
11
12

13

14

15

16

62

73

84

95

106

 
 
27
 
 
12
12

13

14

15

16

118

130

142

154

166

 
 
28
 
 
13
12

13

14

15

16

179

192

205

218

231

 
 
29

а)  МАТЕМАТИЧЕСКИЙ РАСЧЕТ 

 
 
14
12

13

14

15

16

245

259

273

287

301

 
 
30
 
 
15
12

13

14

15

16

316

331

346

361

376

 
 
31
 
 
 

б) КОМПЬЮТЕРНЫЙ РАСЧЕТ

Program x;

Var b, m, k :integer;

Begin b:=1;

For k:=10 to do

Begin

For m:=12 to 16

B:=b+k; b:=k+m;end;

Write (‘b=’,b);

End.

Ответ: b=31.

3.Задание №2.

  1. Составить блок – схему и программу используя подпрограммы – процедуру и функцию для вычисления 4-х значений выражения, значения – параметры вводим с клавиатуры, результат вывести во внешний файл в таблице.

                             

                               Z =

      б)

           A,X,C-Переменные, m-файловая переменная,b.TXT-файл

           Procedure V- процедура ввода, Function S – функция для вычисления выражения. 

        в) Procedure V                                                                Function S 

  

 

 

 

 

 
 
 
 
 
 
 

 

 

 

г)

   Program e;

   Var z:real; x1,x2,x3,x4,a1,a2,a3,a4,c1,c2,c3,c4:integer;m:text;

   Procedure V (var x,a,c:integer);

   Begin

   Writeln (‘ввести значения х,а,с’);

   Readln (x,a,c);end;

   Function S(x,a,c:integer):real;

   Var z:real;

   Begin

   Z:=(x*sqrt((a+)-sqr(sin(x)))/5*a-3*cos(c))+(sqr(x)*sqr(x))/(c+2*a));

   Writeln (m,’|’,x:5,’|’,a:5,’|’,c:5,’|’,z:9:2,’|’);

   S:=z;end;

   Assign (m,’b.TXT’);

   Rewrite(m);

   V(x1,a1,c1); V (x2,a2,c2); V (x3,a3,c3); V (x4,a4,c4);

   Writeln (m,’-----------------------------’);

   Writeln (m,’|--x--|--a--|--c--|---z-----|’);    

   Writeln (m,’|-----|------|-----|----------|’);

   S(x1,a1,c1); S (x2,a2,c2); S (x3,a3,c3); S (x4,a4,c4);

   Close (m);

   End.

д)

   ввести  значения x,a,c

    1 2 3

   ввести  значения x,a,c

    5 7 8

   ввести  значения x,a,c

    5 6 9

   ввести  значения x,a,c

    8 9 0

x a c z
1 2 3 0.30
5 7 8 28.94
5 6 9 30.34
8 9 0 228.10

е)

    
 
 
 
 

4.Задание №3

а)

    Составить блок – схему и программу, используя подпрограммы – процедуру и функцию. Даны 3-и одномерных массива, состоящих из 16,19 и22 вещественных значений. Вычислить количество чисел кратных 2 и 3 в каждом массиве. Вывести на печать значения кратные 2 и 3 и результат.

б)A[i]- одномерный массив вещественных значений, К-количество.Procedure V- процедура ввода, Function P – функция для вычисления .

   в)

        Procedure V 

  
 

 

 

 

 
 

                     Function P

 

 

 - + 

 

 

 

г)     Program r;

type m=array[1..22] of real;

Var   a1,a2,a3:m;I,k,n: integer;

Procedure V(n:integer;var a:m);

Begin

Writeln(‘ввести’,n,’ элементов’);

For i:=1 to n do’

Read (a[i]);end;

Function P(n:integer;a:m):integer;

begin k:=0;

For i:=1 to do

If (round(a[i]) mod 2=0) and  (round(a[i]) mod 3=0)  then begin

                                                                                                       K:=K+1; end;

Writeln (‘кол-во кратных 2 и 3=’,K);

P:=k;end;

Begin

V (16,a1); V (19,a2); V (22,a3);

P (16,a1); P (19,a2); P (22,a3);end.  
 
 

д)

   Вв.16 эл-тов.

   6.4 5.5 7.9 3.6 4.5 4.1 6.7 8.8 4.3 3.5 6.8 4.3 7.8 3.2 4.6 7.8  

   Вв.19 эл-тов

   3.6 4.6 6.4 6.8 4.2 2.3 2.8 4.2 5.7 4.2 5.7 5.8 6.4 7.3 4.6 2.6 4.1 3.6 5.7 

   Вв.22 эл-тов

   4.6 6.4 7.9 4.7 2.9 4.8 5.9 1.5 8.4 4.5 7.3 6.4 3.8 5.9 4.8 5.7 4.6 1.6 5.7 5.3 6.4 2.8 5.6

   

е)

   Кол-во  кратных 2 и 3=2

   Кол-во  кратных 2 и 3=8

   Кол-во  кратных 2 и 3=15 
 

5.Задание №4

а)

    Составить  блок – схему и программу,  используя подпрограммы – процедур и функцию. Даны 3-и двумерных массива вещественных чисел, состоящий из 4*5, 4*4, 5*4 элементов. Вычислить среднеарифметическую сумму элементов с индексами, кратными 2 в каждом массиве. Результат вывести на печать.

б)A[i,j]-двумерный массив вещественных чисел, SA_SUM-среднеарифметическая сумма,

К-количество,S – сумма. Procedure V- процедура ввода, Function P – функция для вычисления . 
 
 
 
 
 
 

в)

                Procedure V                                                          

 

 

 

 

                                     Function P

 
 

 

     - +

 
 
 

 

 

 

 
 
 
 

г)

   Program x4;

   Type b=array[1..5,1..6]of real;

    Var a1,a2,a3:b;s,SA_SUM:real;

             m,n,i,j,k:integer;

Procedure V(n,m:integer;var a:b);

Begin

Writeln (‘ввести’,n,’на’,m,’элементов’);

For i:=1 to n do

For j:=1 to m do readln(A[i,j]);end;

Function P(n,m;integer;a:b):real;

Begin

S:=0;K:=0;

For i:=1 to n do

For j:=1 to m do

If (I mod 2 =0) and (j mod 2=0) then begin

                                                          S:=S+A[i,j];

                                                          K:=K+1;end;

SA_SUM:=s/k;

Writeln(‘ср.ар.сум из ‘,n,’на’,m,’ эл-тов с индексами кр.2=’,SA_SUM:5:3);

P:=SA_SUM;end;

Begin

V(4,5,a1); V(4,4,a2); V(5,4,a3);

P(4,5,a2); P(4,4,a2); P(5,4,a3);

END. 

д)

      Вв 4 на 5 эл-тов.        Вв 4 на 4 эл-тов.           Вв 5 на 4 эл-тов.       

    2.3 4.4 6.6 7.6 6.6          4.4 7.9 6.4 4.5               4.9 5.5 4.4 5.2

3.3 6.6 2.2 4.4 6.6          6.3 5.5 7.7 9.9               2.2 4.5 6.7 4.2

4.4 6.6 4.4 5.5 2.3          5.5 6.6 3.3 5.5               3.4 6.6 8.6 4.8

8.8 6.6 4.4 3.4 6.8          7.7 6.5 3.5 6.7               4.7 8.6 4.7 5.3

                             4.5 3.4 5.6 4.3 

е)

    Вв 4 на 5 эл-тов

    ср.ар.сум  из 4 на 5 эл-тов с индексами кр.2=5.250

    Вв 4 на 4 эл-тов.          

    ср.ар.сум  из 4 на 4 эл-тов с индексами кр.2=7.150

   Вв 5 на 4 эл-тов

    ср.ар.сум  из 4 на 5 эл-тов с индексами кр.2=5.650 
 

6.Задание №5

 а)

    Описать анкетные данные на 23 работника предприятия по структуре: Ф.И.О: фамилия, имя, отчество; Дата рождения: год, месяц, число; место работы, стаж работы. Вывести данные в таблице во внешний файл на работников “Оренбургнефть”, со стажем>5 лет, упорядочив список по алфавиту. 
 
 

б)

RABOTNIK – основная запись, FIO – запись, FAM-фамилия, IM-имя, OT-отчество. DATA_R – запись, состоящая из 3-х полей: GOD-год, MES-месяц, CHIS-число, MESTO_R – место работы, STAZH_R – стаж работы.Z- файловая переменная.Dulo.TXT- файл

в)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 
 

 

 
 
 

 

  

 

г)

    Program ANKETA;

  Type RABOTNIK=RECORD

                  FIO: RECORD

                FAM: STRING[10];

        IM: STRING[10];           

                      OT: STRING[10];END;

            DATA_R: RECORD

                  GOD:1960..1987;

                  MES:1..12;

                 CHIS:1..31;

       MESTO_R : STRING[20];

         STAZH_R:1..40;END;

Var a=array[1..23] of RABOTNIK; z:text;

        I,j,k:integer;x: STRING[10];y: RABOTNIK;

Begin

assign (z,’Dulo.TXT’);

rewite(z);

For i:=1 to 23 do with a[i],fio,data_r do begin

Writeln(‘ввести фамилию’,I,’ рабочего’);Readln(fam);

Writeln(‘ввести имя’);Readln(im);

Writeln(‘ввести отчество’);Readln(ot);

Writeln(‘ввести год’);Readln(god);

Writeln(‘ввести месяц’);Readln(mes);

Writeln(‘ввести число’);Readln(chis);

Writeln(‘ввести место работы’);Readln(mesto_r);

Writeln(‘ввести стаж работы’);Readln(stash_r);end;

For i:=1 to 22 do begin

                                     K:=I;

                                     X:=a[i].fio.fam;

                                     For j:=1 to 23 do

                                     If a[j].fio.fam<x then begin

                                     K:=j;

                                     X:=a[i].fio.fam; end;x:= a[i].fam

                                      y:=a[k].fio.fam;

                                     a[k].fio.fam:=a[i].fio.fam;

                                     a[i].fio.fam:=y;end;

Writeln (z‘---------------------------------------------------------------------------------------’);

Writeln (z’|   |                 ФИО                    |Дата рождения |       место        |  стаж |’);      

Writeln (z’| n|----------------------------------|--------------------|        рабо          | рабо  |’);

Writeln (z’|   |фамилия|   имя   | отчество | год | мес | чис  |          ты           |   ты   |’);      

Writeln (z’|   |-----------|---------|-------------|------|------|-------|-------------------|--------|');

For i:=1 to 23 do with a[i],fio,data_r do

If (mesto_r=’Оренбургнефть’) and (stash_r>5) then begin

Writeln (z,’|’,i:3,’|’, fam:10,’|’, im:10,’|’, ot:10,’|’, god:5,’|’, mes:5,’|’, chis:5,’|’, mesto_r:20,’|’, stash_r:5,’|’);end;

Writeln (z’---------------------------------------------------------------------------------------‘);readln;

close(z);

end. 
 
 

д)

    ввести  фамилию 1  рабочего

    Лавкин 

    ввести  имя

    Олег 

    ввести  отчество 

 Николаевич 

 ввести год

1972

ввести месяц

10

ввести число

30

ввести место  работы

Оренбургнефть

ввести стаж работы

15

ввести фамилию 2  рабочего

Темкин 

ввести имя

Александр

ввести отчество 

Дмитриевич

ввести год

1980

ввести месяц

5

ввести число

15

ввести место  работы

Оренбургэнерго

ввести стаж работы

20

ввести фамилию 3  рабочего

Тин

ввести имя

Алексей

ввести отчество 

Евгеньевич

   ввести  год

1983

ввести месяц

6

ввести число

20

ввести место  работы

Хлебкомбинат 

ввести стаж работы

5

ввести фамилию 4  рабочего

Рунковская

ввести имя

Елена

ввести отчество 

Петровна

ввести год

1987

ввести месяц

8

   ввести  число

13

ввести место  работы

Парикмахерская

ввести стаж работы

2

ввести фамилию 5  рабочего

Четверов

ввести имя

Александр

    ввести  отчество 

Николаевич

ввести год

1976

ввести месяц

4

ввести число

1

ввести место  работы

Оренбургнефть

   ввести стаж работы

10

ввести фамилию 6  рабочего

Котова

ввести имя

Мария

ввести отчество 

Степановна

ввести год

1982

ввести месяц

5

   ввести  число

9

ввести место  работы

Гор.больница

ввести стаж работы

9

ввести фамилию 7  рабочего

Жуковский

ввести имя

Сергей

ввести отчество 

Александрович

ввести год

1977

ввести месяц

12

ввести число

13

ввести место  работы

Оренбургнефть

   ввести  стаж работы

7

ввести фамилию 8  рабочего

Турбопаскаль