Задание: Ниже приведен фрагмент решения некоторой задачи. Внимательно рассмотрев решение, сформулируйте решаемую задачу
сформулировать условие задачи, которая решается в данном фрагменте программы:
Находится сумма элементов массива с нечетными индексами и их среднее арифметическое.
сформулировать условие задачи, которая решается в данном фрагменте программы:
Находится сумма четных элементов массива с нечетными индексами и их среднее арифметическое, при условии, что такие элементы существуют.
Вводится с клавиатуры количество элементов массива, сами элементы массива. Находится максимальный элемент, и каждый элемент массива увеличивается на значение максимального элемента. Полученный массив выводится на экран.
начиная снизу, сравниваем два соседних элемента; если они стоят "неправильно", меняем их местами
за 1 проход по массиву один элемент (самый маленький) становится на свое место
1-ый проход
2-ый проход
3-ий проход
Для сортировки массива из N элементов нужен
N-1 проход (достаточно поставить на свои места N-1 элементов).
A[j] и A[j+1]
2-ой проход
for j:=N-1 downto 2 do
if A[j] > A[j+1] then begin
c:=A[j]; A[j]:=A[j+1]; A[j+1]:=c;
end;
2
for j:=N-1 downto 1 do
if A[j] > A[j+1] then begin
c:=A[j]; A[j]:=A[j+1]; A[j+1]:=c;
end;
1
i-ый проход
for j:=N-1 downto i do
...
i
i
элементы выше A[i] уже поставлены
1-ый проход
2-ый проход
3-ый проход
4-ый проход
+
-
program qq;
const N = 10;
var A: array[1..N] of integer;
i, j, c: integer;
begin
{ заполнить массив }
{ вывести исходный массив }
for i:=1 to N-1 do begin
for j:=1 to N-i do
if A[j] > A[j+1] then begin
с := A[j+1];
A[j+1] := A[j];
A[j] := с;
end;
end;
{ вывести полученный массив }
end;
c:= xi
xi:= xnom
xnom:= c
Найдем в массиве самый маленький элемент (блоки 3–6) и поменяем его местами с первым элементом (блок 7). Повторим алгоритм поиска минимального элемента, начиная со второго, и поменяем его местами со вторым элементом (блоки 3–7). Описанную выше операцию поиска проводим до полного упорядочивания элементов в
массиве.
1
2
3
4
5
6
7
i=1, N-1
Min:= xi
nom:= i
j=i+1, N
xj < Min
Min:= xj
nom:= j
c:= xi
xi:= xnom
xnom:= c
1
2
3
4
5
6
7
N-1
N
нужно N-1 проходов
поиск минимального от A[i+1] до A[N]
если нужно, переставляем
i+1
i
N-1
N
нужно N-1 проходов
поиск минимального от A[i] до A[N]
если нужно, переставляем
i+1
i
A[j + 1] := A[j];
j := j – 1;
c:= A[i]
j:= i-1
+
-
Метод вставки. Алгоритм
A [2,4]
A [4,2]
Описание двумерных массивов:
Описание двумерных массивов. Примеры
Пример 1.
Описание двумерных массивов. Примеры
Описание двумерных массивов. Примеры
Описание двумерных массивов. Примеры
A[1,1]=
25
A[1,2]=
14
A[1,3]=
14
...
A[3,4]=
54
i
j
for j:=1 to M do
for i:=1 to N do begin
Заполнение случайными числами
for i:=1 to N do
for j:=1 to M do
A[i,j] := random(25) - 10;
цикл по строкам
цикл по столбцам
A[1,1]=
1
A[1,2]=
2
A[1,3]=
3
...
A[3,4]=
12
Program Vvod2;
Var I, J : Integer;
A : Array [1..20, 1..20] Of Integer;
Begin
FOR I := 1 TO 3 DO
FOR J := 1 TO 2 DO A[I, J] := 456 + I
End.
for i := 1 to n do
begin
for j := 1 to m do
write(X[i, j]:5);
writeln;
end;
Begin
Randomize;
for i := 1 to n do
for j := 1 to m do
X[i, j]:= Random(50);
End;
program qq;
const N = 3; M = 4;
var A: array[1..N,1..M] of integer;
i, j, S: integer;
begin
S := 0;
Randomize;
for i:=1 to N do
for j:=1 to M do
begin
A[i,j] := random(25) - 10;
S := S + A[i,j];
end;
writeln('Сумма элементов матрицы ', S);
end;
Max := A[i, j]
Maxi := i
Maxj := j
+
Max:= A[1,1]
Maxi := 1
Maxj := 1
j=1, M
{Предположим, что максимумом является первый элемент}
Задача 1. Найти максимальный элемент массива и его индексы.
Программа:
{запомним первую строку и первый столбец}
{если среди элементов массива нашелся больший элемент, то}
{внесем новое найденное значение в переменную Мах}
{запомним индексы строки и столбца }
Задача 3. Найти количество отрицательных элементов в каждой строке.
Задача 3. Найти количество отрицательных элементов в каждой строке.
for i:=1 to N do
write(A[i,i]:5);
S := 0;
for i:= 1 to N do
for j:= 1 to i do
S := S + A[i,j];
A[2,2]
A[3,3]
A[N,N]
A[1,1]
for j:=1 to M do begin
c := A[2,j];
A[2,j] := A[4,j];
A[4,j] := c;
end;
for i:=1 to N do A[i,3]:=A[i,3]+A[i,6];
2
4
j
A[2,j]
A[4,j]
+
Массив является симметричным, если для него выполняется равенство A[i, j]=A[j, i] для всех i=1, ..., n и j=1, ..., n.
Var
i, j : integer; Flag : Boolean;
Begin Опишем логическую функцию, значение которой равно истине, если условие выполняется, и ложь в противном случае. Будем сравнивать элементы и, если найдем неравные элементы, то присвоить функции значение False, иначе -True.
….
Flag := True; {Предполагаем, что матрица симметрична}
i := 2;
while Flag and (i
нц для k от 1 до 3
| если (x[k] > x[3+k])
| | то S:=x[k]; x[k]:= x[3+k]; x[3+k]:=S;
| все
кц
26, 17, 35, 62, 53, 44
17, 35, 44, 53, 26, 62
62, 17, 44, 53, 26, 35
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть