Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

-6A82E~1

.PDF
Скачиваний:
0
Добавлен:
28.12.2025
Размер:
3.75 Mб
Скачать

91

Пояснения к схеме алгоритма типовой задачи (лаб.раб. №4)

Задание матрицы, как кон-

станты

Ввод матрицы М1 раз-

мером n строк

3 столбца

92

Умножение матриц:

M=M1×M2

(M размером n×2; M1 размером n×3; M2 размером 3×2)

Вывод на экран и в файл

матрицы М размером n строк

2 столбца

Пояснения к схеме алгоритма индивидуальной задачи (лаб.раб. №4)

При выполнении схемы алгоритма для индивидуальной задачи необходимо учесть следующие моменты:

1)Размеры матриц: n строк, n столбцов.

2)Обе исходные матрицы вводятся с клавиатуры, поэтому задание матрицы константой нужно исключить, а блок ввода матрицы повторить для первой и второй матрицы.

3)Блок сложения матриц выглядит несколько по иному (см. ниже).

4)Выводить нужно три матрицы (две исходные и результирующую), поэтому блок вывода матрицы нужно сделать трижды.

5)Кроме этого присутствует еще доп.задание (см. ниже).

93

Сложение двух матриц

Фрагмент программы:

for i:=1 to n do

for j:=1 to n do M[i,j]:=M1[i,j]+M2[j,k];

Фрагмент схемы:

Сложение элементов матрицы

Фрагмент программы:

S:=0;

for i:=1 to n do

for j:=1 to n do S:=S+M[i,j]

Writeln(r,’Summa elementov matrix = ’,S);

Фрагмент схемы:

94

Поиск наибольшего элемента последней строки и его индекса

Поскольку с целью исключения случайных результатов до начала поиска необходимо инициализировать переменные, предназначенные для хранения значения максимума последней строки (max) и его номера столбца (jm), запи-

сываем в эти переменные существующие значения. В переменную max записываем значение первого элемента последней строки (max:=M[n,1]), а в переменную jm, предназначенную для хранения номера столбца максимального элемента последней строки, записываем 1 (jm:=1) соответственно. Так как при описании матрицы в программе первый индекс отвечает за номер строки, а второй – за номер столбца, то для обработки последней строки нужен один цикл, в котором будут просматриваться только элементы этой строки, т.е. первый индекс элемента массива будет фиксирован, а второй будет изменяться (M[n,j]). В цикле for j:=1 to n do будем проверять: если значение текущего элемента последней строки (M[n,j]) больше значения, записанного в переменную max, то в переменную max запишем значение текущего элемента (max:=M[n,j]), а в переменную для номера столбца запишем номер текущего столбца (jm:=j). После окончания цикла по столбцам последней строки необходимо вывести результат.

Фрагмент программы:

max:=M[n,1]; jm:=1; for j:=1 to n do

if M[n,j]>max then begin max:=M[n,j]; jm:=j;

end;

Writeln(r,’Max element posledney stroki = ’,max,’ N stolbtsa ’,jm);

Фрагмент схемы:

95

Индивидуальные задания

Вариант №1. Составить схему алгоритма и программу для задачи:

Сложить матрицы М1(n×n) и М2(n×n). Размер n и матрицы М1 и М2 ввести с клавиатуры. Исходные и результирующую матрицы вывести в файл. Найти наибольший элемент и его индексы результирующей матрицы. Результаты вывести в файл.

Вариант №2. Составить схему алгоритма и программу для задачи:

Сложить матрицы М1(n×n) и М2(n×n). Размер n и матрицы М1 и М2 ввести с клавиатуры. Исходные и результирующую матрицы вывести в файл. Найти сумму элементов результирующей матрицы. Результат вывести в файл.

Вариант №3. Составить схему алгоритма и программу для задачи: Перемножить матрицы М1(n×n) и М2(n×n). Размер n и матрицы М1 и М2

ввести с клавиатуры. Исходные и результирующую матрицы вывести в файл. Найти наибольший элемент и его индексы результирующей матрицы. Результаты вывести в файл.

Вариант №4. Составить схему алгоритма и программу для задачи: Перемножить матрицы М1(n×n) и М2(n×n). Размер n и матрицы М1 и М2

ввести с клавиатуры. Исходные и результирующую матрицы вывести в файл. Найти сумму элементов результирующей матрицы. Результат вывести в файл.

Вариант №5. Составить схему алгоритма и программу для задачи:

Сложить матрицы М1(n×n) и М2(n×n). Размер n и матрицы М1 и М2 ввести с клавиатуры. Исходные и результирующую матрицы вывести в файл. Найти наибольший элемент и его индексы первой строки результирующей матрицы. Результаты вывести в файл.

Вариант №6. Составить схему алгоритма и программу для задачи:

Сложить матрицы М1(n×n) и М2(n×n). Размер n и матрицы М1 и М2 ввести с клавиатуры. Исходные и результирующую матрицы вывести в файл. Найти сумму элементов первой строки результирующей матрицы. Результат вывести в файл.

Вариант №7. Составить схему алгоритма и программу для задачи: Перемножить матрицы М1(n×n) и М2(n×n). Размер n и матрицы М1 и М2

ввести с клавиатуры. Исходные и результирующую матрицы вывести в файл. Найти наибольший элемент и его индексы первой строки результирующей матрицы. Результаты вывести в файл.

96

Вариант №8. Составить схему алгоритма и программу для задачи: Перемножить матрицы М1(n×n) и М2(n×n). Размер n и матрицы М1 и М2

ввести с клавиатуры. Исходные и результирующую матрицы вывести в файл. Найти сумму элементов последней строки результирующей матрицы. Результат вывести в файл.

Вариант №9. Составить схему алгоритма и программу для задачи:

Сложить матрицы М1(n×n) и М2(n×n). Размер n и матрицы М1 и М2 ввести с клавиатуры. Исходные и результирующую матрицы вывести в файл. Найти наибольший элемент и его индексы главной диагонали результирующей матрицы. Результаты вывести в файл.

Вариант №10. Составить схему алгоритма и программу для задачи:

Сложить матрицы М1(n×n) и М2(n×n). Размер n и матрицы М1 и М2 ввести с клавиатуры. Исходные и результирующую матрицы вывести в файл. Найти сумму элементов главной диагонали результирующей матрицы. Результат вывести в файл.

Вариант №11. Составить схему алгоритма и программу для задачи: Перемножить матрицы М1(n×n) и М2(n×n). Размер n и матрицы М1 и М2

ввести с клавиатуры. Исходные и результирующую матрицы вывести в файл. Найти наибольший элемент и его индексы последнего столбца результирующей матрицы. Результаты вывести в файл.

Вариант №12. Составить схему алгоритма и программу для задачи: Перемножить матрицы М1(n×n) и М2(n×n). Размер n и матрицы М1 и М2

ввести с клавиатуры. Исходные и результирующую матрицы вывести в файл. Найти сумму элементов последнего столбца результирующей матрицы. Результат вывести в файл.

97

14 ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ С ИСПОЛЬЗОВАНИЕМ СТРОК (лабораторная работа № 5)

Типовая задача:

Program PR;{Фамилия, №группы} var str1:string[2];

str2:string[3];

str3:string[4];

str:string;

d:char;

n:integer;

r:text;

BEGIN assign(r,'r-vt-5');rewrite(r); str1:='ab';

str2:='cde';

str3:=str1+str2;

d:=str3[4]; writeln(r,' d=',d); writeln(r,str3); str:=copy(str2,3,1);

writeln(r,' 1) str=',str); insert(str1,str,2); writeln(r,' 2) str=',str); insert(str2,str,3); writeln(r,' 3) str=',str); delete(str,3,2); writeln(r,' 4) str=',str); n:=length(str);

writeln(r,' длина строки Str =',n); close(r);

END.

В результате выполнения этой программы должны получить:

d=d abcd

1)str=e

2)str=eab

3)str=eacdeb

4)str=eaeb

длина строки Str =4

98

17 ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ С ИСПОЛЬЗОВАНИЕМ ЗАПИСЕЙ (лабораторная работа №6)

Типовая задача. Начислить 13-ю зар.плату работникам фирмы (количество работников не более 10) в зависимости от стажа (в полных годах):

-менее 5 лет - в размере 70% зар.платы;

-от 5, но менее 10 лет - в размере 90% зар.платы;

-от 10 лет - в размере 100% зар.платы;

Данные о сотрудниках ввести с клавиатуры. В выходной файл вывести табель с указанием Ф.И.О. работника, его зар.платы, его стажа и 13-ой зар.платы.

Программа:

Program Lab_6_tip;{Familii}

 

 

 

type zap=record

 

 

 

fio:string[20]; {FIO rabotnika}

 

zp: real; {oklad}

 

 

 

st: integer; {staz}

 

 

v13: real; {13-zarplata}

 

 

end;

 

 

 

 

var tab:array[1..10] of zap;

 

 

i,n:integer;

 

 

 

r:text;

 

 

 

 

BEGIN

 

 

 

 

assign(r,'res-6'); rewrite(r);

 

 

writeln('Kol-vo rabotnikov - ?');readln(n);

 

writeln(' Vvedite spisok

FIO');

 

 

writeln('

 

oklad

staz');

 

for i:=1 to n do begin

 

 

 

readln(tab[i].fio);

 

 

 

readln(tab[i].zp,tab[i].st);

 

 

end;

 

 

 

 

Writeln(r,'

FIO

','

Oklad ','

Staz ',' 13-zarplata');

for i:=1 to n do

 

 

 

With tab[i] do begin

 

 

 

if st<5

then v13:=zp*0.7

 

 

 

else if st<10 then v13:=zp*0.9

 

 

else v13:=zp;

 

writeln(r,fio,'':20-length(fio),zp:7:2,st:7,v13:12:2); end;

close(r);

END.

99

Схема алгоритма

100

Индивидуальные задания

Вариант №1. Составить схему алгоритма и программу для задачи: Начислить премию работникам фирмы (количество работников не более

10) в зависимости от стажа (в полных годах): менее 10 лет – в размере 30% от оклада, от 10 лет – в размере 50% от оклада. Данные о сотрудниках ввести с клавиатуры. В выходной файл вывести табель с указанием Ф.И.О. работника, его оклада, стажа и суммы премии.

Вариант №2. Составить схему алгоритма и программу для задачи: Начислить премию работникам фирмы (количество работников не более

10) в зависимости от оклада – в размере 50% от оклада. Данные о сотрудниках ввести с клавиатуры. В выходной файл вывести табель с указанием Ф.И.О. работника, его оклада, и суммы премии.

Вариант №3. Составить схему алгоритма и программу для задачи:

Начислить новый оклад работникам фирмы (количество работников не более 10) в зависимости от повышения минимальной заработной платы со 100 руб. до 150 руб. Данные о сотрудниках ввести с клавиатуры. В выходной файл вывести табель с указанием Ф.И.О. работника, его старого и нового окладов.

Вариант №4. Составить схему алгоритма и программу для задачи: Начислить премию работникам фирмы (количество работников не более

10) в зависимости от стажа (в полных годах): менее 10 лет – нет премии, от 10 лет – в размере 50% от оклада. Данные о сотрудниках ввести с клавиатуры. В выходной файл вывести

1)табель с указанием Ф.И.О. работника, его оклада и стажа;

2)табель с указанием Ф.И.О. работника и суммы выплаты.

Вариант №5. Составить схему алгоритма и программу для задачи:

Начислить новый оклад работникам фирмы (количество работников не более 10) в зависимости от стажа (в полных годах): менее 10 лет – оклад увеличить на 30%, от 10 лет – на 50%. Данные о сотрудниках ввести с клавиатуры. В выходной файл вывести табель с указанием Ф.И.О. работника, его старого и нового оклада.

Вариант №6. Составить схему алгоритма и программу для задачи:

В мартовскую зарплату выдать премию работникам женского пола в размере 100 руб. Данные о сотрудниках ввести с клавиатуры. В выходной файл вывести табель с указанием Ф.И.О. работника, его пола, оклада, премии и суммы выплаты.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]