Лабораторная работа 4
.docУфимский государственный авиационный технический университет
Кафедра информатики
Лабораторная работа №4
Массивы
Уфа – 2004
Задача:
Одномерные массивы:
Известна среднемесячная зарплата 10 сотрудников отдела. Расположить
данные в порядке убывания. (Программа №1)
Двумерные массивы:
Известно количество выпущенной продукции тремя заводами за первый квартал
(помесячно). Найти среднемесячное количество выпущенной продукции для каждого
завода. (Программа №2)
Блок схем алгоритма программы №1:
Блок схем алгоритма программы №2:
Таблица используемых значений программы №1
Имя |
Тип |
Назначение переменной |
Описание |
a |
array[1..10] |
внутренняя |
Массив |
g |
real |
выходная |
Наименьшее значение a[i] |
I |
integer |
внутренняя |
Номер сотрудника |
k |
integer |
внутренняя |
Номер сотрудника |
Таблица используемых значений в программе №2
Имя |
Тип |
Назначение переменной |
Описание |
a |
array[1..3,1..3] |
внутренняя |
Массив |
s |
array[1..3] |
внутренняя |
Массив |
i |
integer |
внутренняя |
Кол-во выпущенной продукции по месяцам |
j |
integer |
внутренняя |
Номер завода |
Текст программы №1:
program zarp;
Var
a:array[1..10] of real;
i,k:integer;
g:real;
begin
Writeln('‚Введите среднемесячную зарплату сотрудников: (через Enter):');
for i:=1 to 10 do begin
readln(a[i]);
end;
For k:=10 downto 2 do
begin
for i:=1 to k-1 do
begin
if a[i]<a[i+1] then begin g:=a[i]; a[i]:=a[i+1]; a[i+1]:=g end;
end;
end;
writeln('Зарплата в порядке убывания:');
for i:=1 to 10 do begin
Writeln(a[i]:6:2);
end;
readln;
end.
Результаты работы программы №1:
Введите среднемесячную зарплату сотрудников |
1000 2000 3000 4000 7000 5000 9000 3000 4000 2500 |
Зарплата в порядке убывания |
9000 7000 5000 4000 4000 3000 3000 2500 2000 1000 |
Текст программы №2:
Program Zavod; var a:array[1..3,1..3] of real; s:array[1..3] of real; i,j:integer; begin
writeln('Введите кол-во выпущенной продукции по месяцам, по 3-м заводам через пробел');
Writeln(' Янв. Февр. Март');
for j:=1 to 3 do begin
Write(j,' завод ');
for i:=1 to 3 do
read(a[i,j]);
end;
for j:=1 to 3 do begin
s[j]:=0;
for i:=1 to 3 do s[j]:=s[j]+(a[i,j])/3
end;
Writeln('Среднемесячный выпуск продукции');
for i:=1 to 3 do begin writeln(i,' завод ',s[i]:6:2);
end;
readln;
readln;
end.
Результаты работы программы №2:
Введите кол-во выпущенной продукции по месяцам, по 3-м заводам через пробел: |
|||
Месяц |
Январь |
Февраль |
Март |
1 завод |
100 |
300 |
250 |
2 завод |
150 |
230 |
180 |
3 завод |
140 |
260 |
210 |
Среднемесячный выпуск продукции
|
|
1 завод |
216,67 |
2 завод |
186,67 |
3 завод |
203,33 |