-6A82E~1
.PDF
101
Вариант №7. Составить схему алгоритма и программу для задачи:
В февральскую зарплату выдать премию работникам мужского пола в размере 100 руб. Данные о сотрудниках ввести с клавиатуры. В выходной файл вывести табель с указанием Ф.И.О. работника, его пола, оклада, премии и суммы выплаты.
Вариант №8. Составить схему алгоритма и программу для задачи:
В сентябрьскую зарплату выдать материальную помощь работникам фирмы (количество работников не более 10) в зависимости от стажа (в полных годах): менее 2 лет – в размере 25 руб., от 2 лет – в размере 50руб. Данные о сотрудниках ввести с клавиатуры. В выходной файл вывести табель с указанием Ф.И.О. работника, его оклада, стажа и полной суммы выплаты.
Вариант №9. Составить схему алгоритма и программу для задачи:
В декабрьскую зарплату выдать материальную помощь работникам фирмы (количество работников не более 10) в зависимости от стажа (в полных годах): менее 2 лет – в размере 25 руб., менее 5 лет – в размере 50руб, от 5 лет – в размере 75 руб. Данные о сотрудниках ввести с клавиатуры. В выходной файл вывести табель с указанием Ф.И.О. работника, его оклада, стажа и полной суммы выплаты.
Вариант №10. Составить схему алгоритма и программу для задачи:
В декабрьскую зарплату выдать материальную помощь работникам фирмы (количество работников не более 10) в зависимости от количества детей: 1 ребенок – в размере 25 руб., 2 ребенка – в размере 50 руб., 3 и более – в размере 75 руб. Данные о сотрудниках ввести с клавиатуры. В выходной файл вывести табель с указанием Ф.И.О. работника, его оклада, количества детей и полной суммы выплаты.
Вариант №11. Составить схему алгоритма и программу для задачи:
В декабрьскую зарплату выдать материальную помощь работникам фирмы (количество работников не более 10) в зависимости от семейного положения: одиноким – в размере 25 руб., семейным – в размере 50 руб. Данные о сотрудниках ввести с клавиатуры. В выходной файл вывести табель с указанием Ф.И.О. работника, его оклада, семейного положения и полной суммы выплаты.
Вариант №12. Составить схему алгоритма и программу для задачи:
В декабрьскую зарплату выдать материальную помощь работникам фирмы (количество работников не более 10) в зависимости от возраста: до 30 лет – в размере 100 руб., от 30 лет – в размере 120 руб. Данные о сотрудниках ввести с клавиатуры. В выходной файл вывести табель с указанием Ф.И.О. работника, его оклада, возраста и полной суммы выплаты.
102
18 ОРГАНИЗАЦИЯ ПОДПРОГРАММ ПОЛЬЗОВАТЕЛЯ (лабораторная работа № 7)
Типовая задача №1:
Составить схему алгоритма и программу для вычисления циклической суммы
m
f (x) , когда вид функции заранее неизвестен. Вычислить значения сумм
x n
10 |
5 |
и |
20 |
|
|
5 |
|
, результат записать в файл. |
||
|
|
|
|
|
|
|
|
|||
1 x2 |
1 |
lg( x ) |
||||||||
x 2 |
|
x 10 |
|
|||||||
Программа
Program Lab7_T1;{Familii}
Type func=function(x:integer):real; Var S1,S2:real; n1,m1,n2,m2:integer;
r:text;
{$F+}
Function f1(x:integer):real; Begin
f1:=5/(1+x*x);
End;
Function f2(x:integer):real; Begin f2:=5/(1+ln(x)/ln(10));
End;
{$F-}
Procedure Sum(n,m:integer;f:func;Var S:real);
Var x:integer;
Begin
S:=0;
For x:=n to m do S:=S+f(x);
End;
Begin
Assign(r,'res7-t1');Rewrite(r);
Writeln('n1,m1=');Readln(n1,m1);
Sum(n1,m1,f1,S1);
Writeln(r,'S1=',S1:8:5);
Writeln('n2,m2=');Readln(n2,m2);
Sum(n2,m2,f2,S2);
Writeln(r,'S2=',S2:8:5);
Close(r);
End.
Результат
S1= 0.28025
S2=98.34142
103
2 Схема алгоритма
Рисунок 1 – Схема головной программы
104
Рисунок 2 – Схема подпрограммы-процедуры Sum
105
Рисунок 3 – Схема подпрограммы функции F1
Рисунок 4 – Схема подпрограммы функции F2
106
Типовая задача №2:
Перемножить квадратные матрицы М1 и М2 размером n×n. Размер n и исходные матрицы ввести с клавиатуры. Исходные и результирующую матрицы вывести в файл.
Программа
Program Lab7_T2; {Familii}
Type Matr=array[1..9,1..9] of integer; Var i,j,k,n:integer;
r:text;
M1,M2,M3:Matr;
Procedure Vvod (Var M: Matr);
Begin
For i:=1 to n do
For j:=1 to n do Read(M[i,j]);
End;
Procedure Vyvod (M:Matr); Begin
For i:=1 to n do begin
For j:=1 to n do Write(r,M[i,j]:4); Writeln(r);
end;
End;
Begin
Assign(r,'res-7t2'); Rewrite(r); Writeln('n='); Readln(n); Writeln('M1=');
Vvod (M1); Writeln('M2='); Vvod (M2);
For i:=1 to n do begin For j:=1 to n do begin M3[i,j]:=0;
For k:=1 to n do M3[i,j]:=M3[i,j]+M1[i,k]*M2[k,j]; end;
end;
Writeln(r,' Matrix M1:'); Vyvod (M1); Writeln(r,' Matrix M2:'); Vyvod (M2); Writeln(r,' Matrix M3:'); Vyvod (M3);
Close(r);
End.
Результат
Matrix M1:
1 |
2 |
3 |
3 |
2 |
1 |
0 |
0 |
1 |
Matrix M2: |
||
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
Matrix M3: |
||
4 |
5 |
4 |
4 |
3 |
4 |
1 |
1 |
1 |
107
Схема алгоритма
Рисунок 1 – Схема головной программы (начало)
108
Рисунок 1 – Схема головной программы (окончание)
109
Рисунок 2 – Схема подпрограммы-процедуры Vvod
110
Рисунок 3 – Схема подпрограммы-процедуры Vyvod
