Турбопаскаль
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.
- Составить блок – схему и программу используя подпрограммы – процедуру и функцию для вычисления 4-х значений выражения, значения – параметры вводим с клавиатуры, результат вывести во внешний файл в таблице.
Z =
б)
A,X,C-Переменные, m-файловая переменная,b.TXT-файл
Procedure V- процедура ввода, Function S – функция
для вычисления выражения.
в) Procedure V
г)
Program e;
Var z:real; x1,x2,x3,x4,a1,a2,a3,a4,c1,c2,
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)))/
Writeln (m,’|’,x:5,’|’,a:5,’|’,c:5,’|’
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
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
- +
г)
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
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
If a[j].fio.fam<x then begin
a[k].fio.fam:=a[i].fio.fam;
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’---------------------------
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 рабочего