Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 8 лет назад пользователемВалерий Ягужинский
1 Одномерные и двумерные массивы. В помощь сдающему ЕГЭ Илюшкина Татьяна Викторовна учитель информатики
2 X[1]=78, X[2]=6, X[3]=82, X[4]=67, X[5]=55, X[6]=44, X[7]= Описание массива определяет имя, размер массива и тип элементов. Var X:array[1..7] of integer; Y:array [1..10] of real; Описание массива определяет имя, размер массива и тип элементов. Var X:array[1..7] of integer; Y:array [1..10] of real; Одномерный массив объединяет под одним именем фиксированное количество элементов одного типа данных. Каждый элемент массива имеет собственный номер. Одномерный массив объединяет под одним именем фиксированное количество элементов одного типа данных. Каждый элемент массива имеет собственный номер.
3 Задание с клавиатуры For i:=1 to 10 do Begin Begin Write ('A[',i,']='); Readln(A[i]); Write ('A[',i,']='); Readln(A[i]); End; End; Задание типизированной константой Const A: array [1..5] of integer = (5,6,2,0,-4); Const A: array [1..5] of integer = (5,6,2,0,-4); С помощью генератора случайных чисел For i:=1 to 20 do A[i]:= random(50); For i:=1 to 20 do A[i]:= random(50); Задание с помощью формулы For i:=1 to 20 do A[i]:= i; For i:=1 to 20 do A[i]:= i; Чтение данных из файла assign(input,'input.txt'); assign(input,'input.txt'); assign(output,'output.txt'); assign(output,'output.txt'); reset(input); reset(input); rewrite(output); rewrite(output); … … … … … … … … close(input); close(input); close(output); close(output);
4 Описание массива определяет имя, размер массива и тип элементов. Var A: array [1..5,1..5] of integer; B: array [1..10,1..10] of real; Описание массива определяет имя, размер массива и тип элементов. Var A: array [1..5,1..5] of integer; B: array [1..10,1..10] of real; Двумерный массив (матрица, таблица) объединяет под одним именем фиксированное количество элементов одного типа данных. Каждый элемент в двумерном массиве определяется номером строки и номером столбца, на пересечении которых он находится. Двумерный массив (матрица, таблица) объединяет под одним именем фиксированное количество элементов одного типа данных. Каждый элемент в двумерном массиве определяется номером строки и номером столбца, на пересечении которых он находится a 11 a 12 a 13 a 14 a 15 a 21 a 22 a 23 a 24 a 25 a 31 a 32 a 33 a 34 a 35 A[1,1]=1, A[1,2]=4,… A[2,2]=-5,… A[3,2]=9,… A[3,5]=20
5 Задание массива с клавиатуры For i:=1 to n do For j:=1 to m do For j:=1 to m do Begin Begin Write (A[,i,,,j,]=); Readln (A[i,j]); Write (A[,i,,,j,]=); Readln (A[i,j]); End; End; Задание типизированной константой Const A:array[1..2,1..2] of integer=((5,6),(2,0)); Задание с помощью генератора случ-х чисел For i:=1 to n do For i:=1 to n do For j:=1 to m do A[i,j]:= random(50); For j:=1 to m do A[i,j]:= random(50); Формирование массива с помощью формулы For i:=1 to n do For i:=1 to n do For j:=1 to m do A[i]:= i; For j:=1 to m do A[i]:= i; assign (input,'input.txt'); assign (input,'input.txt'); assign (output,'output.txt'); assign (output,'output.txt'); reset (input); reset (input); rewrite (output); rewrite (output); … … … … … … … … close (input); close (input); close (output); close (output); Вывод двумерного массива For i:=1 to n do For i:=1 to n do begin begin Writeln; Writeln; For j:=1 to m do For j:=1 to m do Write (A[i,j]:2,' '); Write (A[i,j]:2,' '); end; end; Чтение данных из файла input.txt и запись в файл output.txt
6 Найти сумму и произведение элементов массива, состоящего из 10 элементов Сумма элементов = 13 Произведение элементов =2688 Исходный массив Результат n=10 Размерность массива Program massiv; Const A: array [1..10] of integer = (1, 0, -1, 0, 6, 2, 0, 4, 8, -7); Var i, s: integer; p: longint; BEGIN s:=0; s:=0; p:=1; p:=1; For i:=1 to 10 do For i:=1 to 10 do begin begin s:=s + A[i]; s:=s + A[i]; p:=p*A[i]; p:=p*A[i]; end; end; Writeln (Сумма элементов =, s); Writeln (Сумма элементов =, s); Writeln (Произведение элементов =, p); Writeln (Произведение элементов =, p);END.
7 Найти сумму всех отрицательных элементов массива, состоящего из 10 элементов Сумма отр-х элементов = -8 Исходный массив Результат n=10 Размерность массива Program massiv; Const A: array [1..10] of integer = (1, 0, -1, 0, 6, 2, 0, 9, 8, -7); Var i, s: integer; BEGIN s:=0; s:=0; For i:=1 to 10 do if A[i]<0 then s:=s + A[i]; For i:=1 to 10 do if A[i]<0 then s:=s + A[i]; If s=0 then Writeln (отрицательных элементов нет) If s=0 then Writeln (отрицательных элементов нет) else Writeln (Сумма отр-х элементов =, s); else Writeln (Сумма отр-х элементов =, s);END.
8 Пусть n=4, m=4 В двумерном массиве, элементами которого являются целые числа, подсчитать сумму элементов с k1 строки по k2. S=32 S=32 Исходный массив Результат Program d2; Var A: array[1..10,1..10] of integer; i, j, k1, k2, s, m, n : integer; Begin Writeln (Введите размерность массива'); Writeln (Введите размерность массива'); Readln (n, m); Readln (n, m); {Ввод массива} {Ввод массива} S:=0; S:=0; Writeln (k1,k2); ReadLn (k1,k2); Writeln (k1,k2); ReadLn (k1,k2); If (k1>k2) or (k2>n) then Writeln ('ошибка') else If (k1>k2) or (k2>n) then Writeln ('ошибка') else Begin Begin For i:=k1 to k2 do For i:=k1 to k2 do For j:=1 to m do S:=S+A[i,j]; For j:=1 to m do S:=S+A[i,j]; Write ('S=', S); Write ('S=', S); End; End;End. k1=2, k2=3
9 4 x 4 В матрице A размерностью 4*4 найти сумму ее положительных элементов, произведение элементов, значения которых попадают в интервал [2, 5], а также отношение этих двух величин. Сумма=20 Произведение=360Отношение=0.055 Исходный массив Результат Program massiv; Var A: array [1..4,1..4] of integer; i, j, s: integer; BEGIN {Ввод массива} {Ввод массива} s:=0; p:=1; s:=0; p:=1; For i:=1 to 4 do For i:=1 to 4 do For j:=1 to 4 do For j:=1 to 4 do begin begin If A[i,j]>0 then s:=s+A[i,j]; If A[i,j]>0 then s:=s+A[i,j]; If (A[i,j]>=2) and (A[i,j] =2) and (A[i,j]<=5) then p:=p*A[i,j]; end; end; Writeln ('Сумма=',s:6:2); Writeln ('Сумма=',s:6:2); Writeln ('Произведение=',p:6:2); Writeln ('Произведение=',p:6:2); If p=0 then Writeln ('Отношение вычислить нельзя') If p=0 then Writeln ('Отношение вычислить нельзя') else Writeln ('Отношение=',s/p:6:3) else Writeln ('Отношение=',s/p:6:3)END.
10 Задача. Найти скалярное произведение двух массивов. Скалярным произведением двух массивов одинаковой размерности называется сумма произведений соответствующих элементов (a[1]*b[1] +a[2]*b[2]+...+ a[n]*b[n]). Program mm; Var A, B: array[1..5] of integer; n, I, s: integer; BEGIN S:=0; S:=0; For i:=1 to n do For i:=1 to n do Begin Begin Write ('A[',i,']='); Readln (A[i]); Write ('A[',i,']='); Readln (A[i]); End; End; For i:=1 to n do For i:=1 to n do Begin Begin Write (B[',i,']='); Readln(B[i]); Write (B[',i,']='); Readln(B[i]); End; End; For i:=1 to n do S:= S+A[i]*B[i]; For i:=1 to n do S:= S+A[i]*B[i]; Writeln(вывод результата'); Writeln(вывод результата'); WriteLn (S); WriteLn (S);END. Исходный массив A : B: Результат: 50 50
11 В одномерном массиве, элементами которого являются целые числа, подсчитать сумму элементов, кратных 9. Исходный массив Результат s=36 s=36 Program mass2; Var A:array[1..100] of integer; n, i, S: integer; n, i, S: integer;Begin s:=0; s:=0; Write ('число элементов массива ='); Write ('число элементов массива ='); Readln (n); Readln (n); Randomize; Randomize; For i:=1 to 20 do For i:=1 to 20 do begin begin A[i]:= random(50); A[i]:= random(50); Write (A[i]:4); Write (A[i]:4); end; end; For i:=1 to n do For i:=1 to n do If A[i] mod 9=0 then s:=s+A[i]; If A[i] mod 9=0 then s:=s+A[i]; Writeln; Writeln ('s=',s); Writeln; Writeln ('s=',s); End. End. Размерность массива n=8 Конец s да A[i] mod 9=0 s:=0 Начало ввод n, А[1..n ] i:=1, n s:=s+A[i] нет
12 Дан целочисленный массив из 18 элементов. Элементы могут принимать значения от 0 до 100 – баллы, полученные на ЕГЭ. Составьте программу, которая подсчитывает и выводит средний балл учащихся, сдавших экзамен (получивших оценку более 20 баллов). Гарантируется, что хотя бы один ученик в классе успешно сдал экзамен. Program Srball; Const N = 20; Var A: array[1..N] of integer; i, x, y: integer; S: real; i, x, y: integer; S: real;Begin {Ввод массива} {Ввод массива} x:=0; y:=0; x:=0; y:=0; For i:= 1 to N do For i:= 1 to N do If A[i]>20 then If A[i]>20 then begin begin x:= x+1; y:= y+A[i]; x:= x+1; y:= y+A[i]; end; end; S:= y/x; S:= y/x; Writeln('Sredniy ball=',S:4:1); Writeln('Sredniy ball=',S:4:1);End. N=18 Sredniy ball=50.0 Sredniy ball=50.0 Результат Размерность массива Исходный массив
13 В двумерном массиве, элементами которого являются целые числа, подсчитать среднее ттттарифметическое четных элементов массива. Program mass2; Var A: array [1..10, 1..10] of integer; i, j, s, n, m, k: integer; sr: real; BEGIN S:=0; k:=0; S:=0; k:=0; Writeln (введите размерность массива'); Writeln (введите размерность массива'); Readln (n,m); Readln (n,m); {Ввод массива} {Ввод массива} For i:=1 to n do For i:=1 to n do For j:=1 to m do For j:=1 to m do If A[i,j] mod 2=0 then If A[i,j] mod 2=0 then Begin Begin S:=S+A[i,j]; S:=S+A[i,j]; k:=k+1; k:=k+1; End; End; Sr:=s/k; Sr:=s/k; Writeln(Сред. ттттариф. чёт. эл. =', sr:4:1); Writeln(Сред. ттттариф. чёт. эл. =', sr:4:1); END. Исходный массив Результат Сред. ттттариф. чёт. эл.=31.8 Сред. ттттариф. чёт. эл.=31.8 Пусть размерность массива 5 x 5
14 В данном одномерном массиве, элементами которого являются целые числа, подсчитать среднее ттттарифметическое отрицательных элементов. Результат Пусть размерность массива N=20 Исходный массив Program A1; Var A:array[1..100] of integer; k, n, i: integer; s: real; Begin Write ('число элементов массива ='); Readln (n); Write ('число элементов массива ='); Readln (n); k:=0; s:=0; k:=0; s:=0; For i:=1 to n do For i:=1 to n do Begin Begin Write ('A[',i,']='); Readln (A[i]); Write ('A[',i,']='); Readln (A[i]); If A[i]<0 then If A[i]<0 then Begin Begin k:=k+1; s:=s+A[i]; k:=k+1; s:=s+A[i]; End; End; If k=0 then writeln ('отрицательных элементов нет') else If k=0 then writeln ('отрицательных элементов нет') else Begin Begin s:=s/k; Writeln ('s=',s:8:1); s:=s/k; Writeln ('s=',s:8:1); End; End;End.
15 В данном одномерном массиве, элементами которого являются целые числа, подсчитать среднее ттттарифметическое элементов, попадающих в интервал [1, 25]. Количество элементов массива ввести с клавиатуры. Результат Пусть размерность массива N=20 Исходный массив Program A2; Var A:array[1..100] of integer; k, n, i: integer; s: real; Begin Write ('число элементов массива ='); Readln (n); Write ('число элементов массива ='); Readln (n); k:=0; s:=0; k:=0; s:=0; For i:=1 to n do For i:=1 to n do Begin Begin Write ('A[',i,']='); Readln(a[i]); Write ('A[',i,']='); Readln(a[i]); If (A[i]>=1) and (A[i] =1) and (A[i]<=25) then Begin Begin k:=k+1; s:=s+A[i]; k:=k+1; s:=s+A[i]; End; End; If k=0 then Writeln ('элементов нет') else If k=0 then Writeln ('элементов нет') else Begin Begin s:=s/k; Writeln ('s=', s:6:1); s:=s/k; Writeln ('s=', s:6:1); End; End;End.
16 a 11 a 22 a 33 a 44 a nn У квадратной матрицы есть замечательные свойства: 1. Индексы элементов, лежащих на главной диагонали равны, т.е. i = j. 2. Первый индекс всех элементов выше главной диагонали меньше второго, т.е. i < j. 3. Первый индекс всех элементов ниже главной диагонали больше второго, т.е. i > j. i < j i > j i = j
17 Пусть размерность массива n=4 Дана квадратная матрица, элементами которой являются вещественные числа. Подсчитать сумму элементов главной диагонали. S=16.9 S=16.9 Исходный массив Результат Program diag1; Var A:array [1..10,1..10] of real; i, j, n: integer; s: real; BEGIN S:=0; S:=0; Writeln (введите размерность массива'); Writeln (введите размерность массива'); Readln (n); Readln (n); {Ввод массива} {Ввод массива} For i:=1 to n do For i:=1 to n do For j:=1 to n do For j:=1 to n do If i=j then S:=S+A[i,j]; If i=j then S:=S+A[i,j]; Writeln('S=',S:4:1); Writeln('S=',S:4:1);END.
18
a 1n a 24 a 33 a 42 a n1 i+j
19
Пусть размерность массива n=4 Дана квадратная матрица, элементами которой являются вещественные числа. Подсчитать сумму элементов, находящихся выше побочной диагонали. S=0.6 S=0.6 Исходный массив Результат Program diag2; Var A:array [1..10,1..10] of real; i, j, n: integer; s: real; BEGIN S:=0; S:=0; Writeln (введите размерность массива'); Writeln (введите размерность массива'); Readln (n); Readln (n); {Ввод массива} {Ввод массива} For i:=1 to n do For i:=1 to n do For j:=1 to n do For j:=1 to n do If i+j
20
a 1n a 24 a 33 a 42 a n1 i+j
21
Пусть размерность массива n=5 Дана квадратная матрица, элементами которой являются целые числа. Подсчитать сумму элементов, находящихся над и под пересечением диагоналей. S=36 S=36 Исходный массив Результат i+j
22 Задача. Найти в массиве максимальный элемент.
23 Пусть размерность массива n=5 max = 99 max = 99 Исходный массив Результат Найти наибольший элемент одномерного массива Program mass2; Var A: array [1..100] of integer; i, max, n: integer; Begin Writeln (введите число элементов массива ); Writeln (введите число элементов массива ); Readln (n); Readln (n); For i:=1 to n do For i:=1 to n do begin begin Write (A[, i, ]=); Write (A[, i, ]=); Readln (A[i]); Readln (A[i]); end; end; max:=A[1]; max:=A[1]; For i:=2 to n do if A[i]>max then max:=A[i]; For i:=2 to n do if A[i]>max then max:=A[i]; Writeln ( max =, max); Writeln ( max =, max);End.
24 Дан двумерный массив, элементами которого являются целые числа. Найти значение максимального элемента массива. Дан двумерный массив, элементами которого являются целые числа. Найти значение максимального элемента массива. Исходный массив Результат max=91 max=91 Пусть размерность массива 5 x 5 Program massiv; Var A:array [1..10,1..10] of integer; i, j, max, n, m: integer; BEGIN Writeln (введите размерность массива'); Writeln (введите размерность массива'); Readln (n,m); Readln (n,m); {Ввод массива} {Ввод массива} max:=A[1,1]; max:=A[1,1]; For i:=1 to 5 do For i:=1 to 5 do For j:=1 to 5 do If A[i,j]>max then max:=A[i,j]; If A[i,j]>max then max:=A[i,j]; Writeln('max=', max); Writeln('max=', max);END.
25
Пусть размерность массива n=5 min = 1 min = 1 Исходный массив Результат Program mass2; Var A: array [1..100] of integer; i, min, n: integer; Begin Writeln (введите число элементов массива ); Writeln (введите число элементов массива ); Readln (n); Readln (n); For i:=1 to n do For i:=1 to n do begin begin Write (A[, i, ]=); Write (A[, i, ]=); Readln (A[i]); Readln (A[i]); end; end; min:=A[1]; min:=A[1]; For i:=2 to n do if A[i]
26 Пусть размерность массива n=4, m=4 В двумерном массиве, элементами которого являются целые числа, вычислить сумму максимальных элементов из каждой строки, если предполагается, что в каждой строке такой элемент единственный. S=28 S=28 Исходный массив Результат Program MAX1; Var A:array [1..10,1..10] of integer; S, i, j, max, n, m: integer; BEGIN Writeln (введите размерность массива'); Writeln (введите размерность массива'); Readln (n,m); Readln (n,m); {Ввод массива} {Ввод массива} S:=0; S:=0; For i:=1 to n do For i:=1 to n do begin begin max:=A[i,1]; max:=A[i,1]; For j:=1 to m do For j:=1 to m do If A[i,j]>max then max:=A[i,j]; If A[i,j]>max then max:=A[i,j]; S:=S+max; S:=S+max; end; end; Writeln('S=',S); Writeln('S=',S);END.
27
В двумерном массиве, элементами которого являются целые числа, подсчитать количество элементов равных минимальному. Исходный массив Число эл-в равных мин.=5 Результат Пусть размерность массива 5 x 5 Program d5; Var A:array [1..10,1..10] of integer; n, m, i, j, k, min: integer; BEGIN Writeln ('Введите размерность массива'); Writeln ('Введите размерность массива'); Readln (n,m); Readln (n,m); {Ввод массива} {Ввод массива} k:=0; k:=0; min:=A[1,1]; min:=A[1,1]; For i:=1 to n do For i:=1 to n do For j:=1 to m do For j:=1 to m do If A[i,j]
28 Опишите алгоритм подсчета числа элементов, равных максимальному, в числовом массиве из 20 элементов. Результат 3 Размерность массива N=20 Program maksi2; Var A:array[1..20] of integer; k, i, max: integer; BEGIN {Ввод массива} k:=1; max:=A[1]; k:=1; max:=A[1]; For i:=2 to 20 do Begin Begin If A[i]=max then k:=k+1; If A[i]=max then k:=k+1; If A[i]>max then If A[i]>max then begin begin max:=A[i]; k:=1; max:=A[i]; k:=1; end; end; End; End; Writeln (k); Writeln (k);END. Исходный массив
29 5 х 5 Дан двумерный массив целых положительных чисел размером 5 на 5. Найти сумму элементов строки, в которой расположен элемент с максимальным значением. Вывести значение суммы на печать, если предполагается, что такой элемент единственный. S=30 S=30 Исходный массив Результат Program mas32; Const n:=5; Var A:array[1..n,1..n] of integer; max, s, imax, i, j: integer; BEGIN {Ввод массива} {Ввод массива} max:=A[1,1]; S:=0; imax:=1; max:=A[1,1]; S:=0; imax:=1; For i:=1 to n do For i:=1 to n do For j:=1 to n do For j:=1 to n do If A[i,j]>max then If A[i,j]>max then begin begin max:=A[i,j]; imax:=i; max:=A[i,j]; imax:=i; end; end; For j:=1 to n do S:=S+A[imax,j]; For j:=1 to n do S:=S+A[imax,j]; Writeln ('S=',S); Writeln ('S=',S);End. Размерность массива
30 Опишите алгоритм подсчета максимального количества подряд идущих совпадающих элементов в целочисленном массиве длины 25. Результат max кол-во совп. элем. =6 Размерность массива массиваN=25 Program sovpad; Var A: array[1..25] of integer; k, k1, i: integer; BEGIN k1:=1; k:=1; k1:=1; k:=1; For i:=1 to 25 do For i:=1 to 25 do begin begin Write ('A[',i,']='); Write ('A[',i,']='); Readln (A[i]); Readln (A[i]); end; end; For i:=2 to 25 do For i:=2 to 25 do begin begin If a[i] = a[i-1] then k:=k+1 else k:=1; If a[i] = a[i-1] then k:=k+1 else k:=1; If k > k1 then k1:=k; If k > k1 then k1:=k; end; end; Writeln (max кол-во совп. элем. =',k1); Writeln (max кол-во совп. элем. =',k1);END. Исходный массив
31 Найдите номер первого из двух последовательных элементов в целочисленном массиве из 25 элементов, сумма которых максимальна (если таких пар несколько, то можно выбрать любую из них). Результат 19Размерность массива массиваN=25 Program mas; Сonst n=25; Var A:array[1..n] of integer; i, i1, s: integer; BEGIN For i:=1 to n do Readln (A[i]); For i:=1 to n do Readln (A[i]); i1:=1; i1:=1; S:=A[1]+A[2]; S:=A[1]+A[2]; For i:=2 to n-1 do For i:=2 to n-1 do If A[i]+A[i+1]> S then If A[i]+A[i+1]> S then begin begin i1:=i; i1:=i; s:=A[i]+A[i+1]; s:=A[i]+A[i+1]; end; end; Writeln(i1); Writeln(i1);End. Исходный массив
32
Дан прямоугольный массив целых полож-х чисел 4 х 5. Опишите алгоритм поиска строки с наименьшей суммой элементов. Вывести на печать номер строки и сумму ее элементов. Предполагается, что такая строка единственна. Program minsum; Const n=4 ; m=5; Var A:array [1..n,1..m] of integer; min, sum, imin, i, j: integer; BEGIN {Ввод массива} {Ввод массива} Sum:=0; Sum:=0; For j:=1 to m do sum:=sum+A[1,j]; For j:=1 to m do sum:=sum+A[1,j]; Min:=sum; imin:=1; Min:=sum; imin:=1; For i:=2 to n do For i:=2 to n do Begin Begin Sum:=0; Sum:=0; For j:=1 to m do sum:=sum+A[i,j]; For j:=1 to m do sum:=sum+A[i,j]; If sum
34
Дан одномерный массив. состоящий из 10 элементов. Составить программу определения количества элементов массива, значение которых меньше заданного действительного числа t Исходный массив n=10, t=5.5 Program mas3; Var A: array [1..10] of real; i,k: integer; t: real; BEGIN Write ('Введите число t='); Write ('Введите число t='); Readln (t); Readln (t); k:=0; k:=0; For i:=1 to 10 do For i:=1 to 10 do begin begin Write ('Введите значение элемента A(', i, ') = '); Write ('Введите значение элемента A(', i, ') = '); Readln (A[i]); Readln (A[i]); If A[i]
35 В данном одномерном массиве, состоящем из 8 элементов, заменить отрицательные элементы на противоположные по знаку. Элементами массива являются целые числа. Исходный массив Изменённый массив Program mass1; Var A:array [1..8] of integer; i: integer; i: integer;Begin For i:=1 to 8 do For i:=1 to 8 do Begin Begin Write ('A[',i,']='); Readln (A[i]); Write ('A[',i,']='); Readln (A[i]); End; End; For i:=1 to 8 do if A[i]<0 then A[i]:=-A[i]; For i:=1 to 8 do if A[i]<0 then A[i]:=-A[i]; For i:=1 to 8 do write (A[i]:5); For i:=1 to 8 do write (A[i]:5);End. Начало ввод А[1..8] A[i]<0 A[i]:=-A[i] Конец да i:=1, 8 нет вывод А[1..8]
36 Найти и вывести на экран номера четных элементов в числовом массиве из 20 элементов. Результат Размерность массива N=20 Program d3; Var A:array [1..20] of integer; i, n: integer; i, n: integer;Begin For i:=1 to 20 do For i:=1 to 20 do Begin Begin Write ('A[',i,']='); Readln (A[i]); Write ('A[',i,']='); Readln (A[i]); End; End; For i:=1 to n do if A[i] mod 2 =0 then Write(i:5); For i:=1 to n do if A[i] mod 2 =0 then Write(i:5);End. Исходный массив
37 В данном одномерном массиве, состоящем из 8 элементов, заменить нулями все отрицательные элементы. Элементами массива являются целые числа. Исходный массив Изменённый массив Program mass1; Var A:array [1..8] of integer; i: integer; i: integer;Begin For i:=1 to 8 do For i:=1 to 8 do Begin Begin Write ('A[',i,']='); Readln (A[i]); Write ('A[',i,']='); Readln (A[i]); End; End; For i:=1 to 8 do if A[i]<0 then A[i]:=0; For i:=1 to 8 do if A[i]<0 then A[i]:=0; For i:=1 to 8 do write (A[i]:5); For i:=1 to 8 do write (A[i]:5);End. Начало ввод А[1..8 ] A[i]< 0 A[i]:=0 Конец да i:=1, 8 нет вывод А[1..8 ]
38 Как переставить элементы? Задача. Поменять местами содержимое двух чашек. Нужна 3-я чашка, чтобы в нее перелить содержимое первой.
39
Исходный массив Размерность массива n=5 Изменённый For i:=2 to n do If A[i]>=max then For i:=2 to n do If A[i]>=max then Begin Begin max:=A[i]; nmax:=i; max:=A[i]; nmax:=i; End; End; For i:=2 to n do If A[i]
40 Дана прямоугольная матрица, элементами которой являются целые числа. Для каждого столбца подсчитать среднее ттттарифметическое его нечетных элементов и записать полученные данные в новый массив Исходный массив A Пусть размерность массива A : 5 x 5 Program mmm2; Var A:array[1..5,1..5]of integer; B:array[1..5] of real; k, n, m, i, j: integer; s: real; BEGIN Writeln ('Введите размерность массива А'); Writeln ('Введите размерность массива А'); Readln (n,m); Readln (n,m); {Ввод двумерного массива А} {Ввод двумерного массива А} For j:=1 to m do For j:=1 to m do begin begin s:=0; k:=0; B[j]:=0; s:=0; k:=0; B[j]:=0; For i:=1 to n do For i:=1 to n do If A[i,j] mod 2<>0 then If A[i,j] mod 2<>0 then begin begin s:=s+A[i,j]; k:=k+1; s:=s+A[i,j]; k:=k+1; end; end; If k<>0 then B[j]:=s/k ; If k<>0 then B[j]:=s/k ; end; end; For j:=1 to m do Write (B[j]:5:1, ); For j:=1 to m do Write (B[j]:5:1, );END Результат Тогда размерность массива В: 5
41 Дан двумерный массив А и одномерный массив B соответствующих размерностей. Нечетные строки массива А заменить элементами массива B. Исходный массив A Пусть размерность массива A : 4 x 5 Program mmm2; Var A:array[1..5,1..5]of integer; B:array [1..5] of integer; n, m, i, j: integer; n, m, i, j: integer;BEGIN Writeln ('Введите размерность массива А'); Writeln ('Введите размерность массива А'); Readln (n,m); Readln (n,m); Writeln ('Введите элементы массива А'); Writeln ('Введите элементы массива А'); {Ввод двумерного массива А} {Ввод двумерного массива А} Writeln('Введите элементы массива В'); Writeln('Введите элементы массива В'); {Ввод одномерного массива В} {Ввод одномерного массива В} For i:=1 to n do For i:=1 to n do For j:=1 to m do For j:=1 to m do If i mod 2<>0 then A[i,j]:=B[j]; If i mod 2<>0 then A[i,j]:=B[j]; Writeln (Вывод изменённого массива'); Writeln (Вывод изменённого массива'); For i:=1 to n do For i:=1 to n do begin begin For j:=1 to m do Write(A[i,j]:5); For j:=1 to m do Write(A[i,j]:5); Writeln; Writeln; end; end;END. Исходный массив В Результат Тогда размерность массива В: 5
42 Дана прямоугольная матрица 5 на 5, элементами которой являются целые числа. Для каждого столбца подсчитать сумму элементов кратных 7 и полученные данные записать в новый массив. Program mm; Var A:array[1..5,1..5] of integer; B:array[1..5] of integer; i, j, s: integer; BEGIN {Ввод двумерного массива А } {Ввод двумерного массива А } For j:=1 to 5 do For j:=1 to 5 do begin begin s:=0; B[j]:=0; s:=0; B[j]:=0; For i:=1 to 5 do For i:=1 to 5 do If A[i,j] mod 7=0 then s:=s+A[i,j]; If A[i,j] mod 7=0 then s:=s+A[i,j]; B[j]:=s; B[j]:=s; end; end; Writeln(вывод результата'); Writeln(вывод результата'); For j:=1 to 5 do WriteLn (B[, j, ]=, B[j]:4); For j:=1 to 5 do WriteLn (B[, j, ]=, B[j]:4);END. Исходный массив Результат: массив В Размерность массива А 5 x 5
43 Сортировка массива метод «пузырька» метод выбора «пузырек воздуха в стакане воды поднимается со дна вверх» найти миним. элемент и поставить на первое место Сортировка – это расстановка элементов массива в заданном порядке (по возрастанию, убыванию, последней цифре, …).
44 Метод пузырька Идея Идея – пузырек воздуха в стакане воды поднимается со дна вверх. Для массивов Для массивов – самый маленький («легкий» элемент перемещается вверх «всплывает») меняем их местами;Начиная снизу, сравниваем два соседних элемента; если они стоят «неправильно», меняем их местами; За 1 проход по массиву один элемент (самый маленький) становится на свое место; ый проход 2-ой проход 3-ий проход Для сортировки массива из N элементов нужен N-1 проход (достаточно поставить на свои места N-1 элементов).
45 СОРТИРОВКА МАССИВА МЕТОДОМ ПУЗЫРЬКА Исходный массив Результат Размерность массива n= Program Sorti1; Const n=10; Var A:array[1..n] of integer; i, c, j: integer; i, c, j: integer; BEGIN BEGIN {Ввод массива} {Ввод массива} For i:=1 to n-1 do For i:=1 to n-1 do begin begin For j:=n-1 downto i do For j:=n-1 downto i do If A[j]>A[j+1] then If A[j]>A[j+1] then begin begin c:=A[j]; c:=A[j]; A[j]:=A[j+1]; A[j]:=A[j+1]; A[j+1]:=c; A[j+1]:=c; end; end; For i:=1 to n do Write(A[i]:4); For i:=1 to n do Write(A[i]:4);END.
46 СОРТИРОВКА МАССИВА МЕТОДОМ ВЫБОРА Исходный массив Результат Размерность массива n= Program Sorti2; Const n=10; Var A:array[1..n] of integer; i, c, j: integer; BEGIN {Ввод массива} {Ввод массива} For i:=1 to n-1 do For i:=1 to n-1 do begin begin min:=i; min:=i; For j:=i+1 to n do For j:=i+1 to n do If A[j]i then If min<>i then begin begin c:=A[i]; c:=A[i]; A[i]:=A[min]; A[i]:=A[min]; A[min]:=c; A[min]:=c; end; end; For i:=1 to n do Write(A[i]:4); For i:=1 to n do Write(A[i]:4);END.
47 Метод выбора Действия: Действия: найти минимальный элемент и поставить на первое место (поменять местами с A[1]);найти минимальный элемент и поставить на первое место (поменять местами с A[1]); из оставшихся найти минимальный элемент и поставить на второе место (поменять местами с A[2]), и т.д.из оставшихся найти минимальный элемент и поставить на второе место (поменять местами с A[2]), и т.д
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.