- •Информатика
- •1. Задание к контрольной работе
- •Задание 1 Варианты задач
- •Соотношение последних двух цифр шифра и варианты задач Задания 1
- •Задание 2
- •2. Методические указания к решению задач задания 1
- •2.1. Этапы решения задач на пк
- •2.2. Типовые алгоритмы вычислительных процессов
- •2.2.1. Линейный вычислительный процесс
- •Условные обозначения блоков
- •2.2.2. Разветвляющийся вычислительный процесс
- •2.2.3. Циклический вычислительный процесс
- •Цикл с заданным числом шагов
- •Итерационный цикл
- •2.2.4. Циклический разветвляющийся (смешанный) вычислительный процесс
- •2.2.5. Накопление суммы и произведения
- •2.2.6. Поиск наибольшего числа в массиве
- •2.2.7. Сложные циклы
- •3. Методические указания к выполнению задания 2
- •Название и организационно-правовая форма предприятия
- •Исходные данные для табулирования функции
- •Исходные данные для расчёта показателей эксплуатационной работы локомотива
- •Библиографический список
- •Приложение 1 Образец Приказа № 1 о приёме на работу
- •Приложение 2 График рабочего дня студента заочной формы обучения
- •Пример табулирования функции (результаты и формулы) и построение графика
- •Пример оформления расчётов показателей эксплуатационной работы локомотива
2.2.6. Поиск наибольшего числа в массиве
Поиск наибольшего элемента в массиве Y(k) выполняется в цикле. Обозначим элементы массива Y(k), где k = 1 ÷ N. Наибольшее число – max.
В качестве начального берется первый элемент массива Y(k), с которым последовательно сравниваются остальные элементы. Будем попарно выполнять сравнения чисел, обозначив через max первый элемент массива, т.е. max = Y(1). Если очередной элемент окажется больше max, то max присваивается уже этому элементу массива. Затем новое значение max сравнивается со следующим элементом и т.д.
Так перебрав все элементы массива Y(k), мы можем определить наибольший (max) среди них. Блок-схема приведена на рис. 7.
Указана размерность массива
Ввод элементов массива в память
Присвоение max значения первому
элементу массива
Изменение индекса для второго элемента
массива
Попарное сравнение двух элементов
массива
Присвоение max значения элементу,
оказавшегося больше предыдущего
Проверка, все ли элементы массива Y(k)
перебраны
Вывод на дисплей всех элементов
массива Y(k)
Вывод на экран max элемента массива
Рис. 7. Алгоритм поиска наибольшего элемента в массиве
Program poisk;
var i, k, n: integer;
y:=array[1..100] of real;
max: real;
begin
writeln (‘ввести размерность массива’);
readln (n);
for k:=1 to n do
begin
writeln (‘ввести число’);
readln (y[k]);
end;
max:= y(1)
for k=2 to n do
if max < y[k] then max:=y[k];
writeln (‘исходный массив’);
for i:=1 to n do
writeln (y[k]:5:1, ‘ ’);
writeln (‘наибольшее число =’, max:4:1);
end.
2.2.7. Сложные циклы
По аналогии разрабатывается и представляется алгоритм для 2-х мерных массивов.
Пример. Дана матрица А34. сформировать вектор, координаты которого есть произведения элементов строк.
Обозначим элементы матрицы A(i, y).
i – номер строки, i = 1 ÷ 3.
y – номер столбца, y = 1 ÷ 4.
Обозначим элемент искомого вектора P(i). Первая координата вектора определяется из выражения:
P(i)=P(i)*A(i, y), у = 1 ÷ 4.
Начальное значение P(i) = 1. При накоплении произведения элементов строки организуется цикл по переменной y.
В общем случае координаты вектора определяются выражением
P(i)=P(i)*A(i, y).
Алгоритм содержит 2 цикла. Цикл по y называется внутренним по отношению к циклу по i. Цикл по i – внешний цикл. Рабочая часть цикла по переменной i – это цикл по переменной y.
Блок-схема алгоритма приведена на рис. 8.
Рис. 8. Сложный циклический алгоритм
Program matrica;
type
matr: array [1..3, 1..4] of real;
mas: array [1..3] of real;
var i, j, n, m: integer;
P: mas; A: matr;
begin
writeln (‘ввести размерность матрицы’);
readln (m, n);
FOR i:=1 to m do
FOR j:=1 to n do
begin
writeln (‘ввести число’);
readln (A[i, j]);
end;
FOR i:=1 to 3 do
begin
P(i):=1;
FOR j:=1 to 4 do
P(i):=P(i)*A[i, j]
end;
writeln (‘вывод матрицы’);
FOR i:=1 to m do
begin
FOR i:=1 to n do
write (A[i, j]:5:1, ‘ ’);
writeln;
end;
writeln (‘искомый вектор’);
FOR i:=1 to m do
writeln (P[i]:4:1, ‘ ’);
end.