Презентация "Одномерные и двумерные массивы. В помощь сдающему ЕГЭ" 11 класс
Подписи к слайдам:
Одномерные и двумерные массивы.
В помощь сдающему ЕГЭ
- Лицей-интернат естественных наук, г.Саратов.
- Над презентацией к уроку работали:
- Нестеренко В.В., учитель высшей категории,
- Хазова Н.Б., учитель информатики ЛИЕН
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Массивы
- 1 2 3 4 5 6 7
- X[1]=78, X[2]=6, X[3]=82, X[4]=67, X[5]=55, X[6]=44, X[7]=34
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Описание массива определяет имя, размер массива и тип элементов.
- Var X:array[1..7] of integer; Y:array [1..10] of real;
- Одномерный массив объединяет под одним именем фиксированное
- количество элементов одного типа данных.
- Каждый элемент массива имеет собственный номер.
- Задание с клавиатуры
- For i:=1 to 10 do
- Begin
- Write ('A[',i,']='); Readln(A[i]);
- End;
- Способы задания (формирования) одномерных массивов
- Задание типизированной константой
- 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]:= i;
- Чтение данных из файла
- assign(input,'input.txt');
- assign(output,'output.txt');
- reset(input);
- rewrite(output);
- … … … … … … … …
- close(input);
- close(output);
- Массивы
- Описание массива определяет имя, размер массива и тип элементов.
- Var A: array [1..5,1..5] of integer; B: array [1..10,1..10] of real;
- Двумерный массив (матрица, таблица) объединяет под одним
- именем фиксированное количество элементов одного типа данных.
- Каждый элемент в двумерном массиве определяется номером
- строки и номером столбца, на пересечении которых он находится.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- A[1,1]=1, A[1,2]=4,… A[2,2]=-5,… A[3,2]=9,… A[3,5]=20
- Задание массива с клавиатуры
- For i:=1 to n do
- For j:=1 to m do
- Begin
- Write (‘A[‘,i,’,’,j,’]=‘); Readln (A[i,j]);
- End;
- Формирование и вывод двумерных массивов
- Задание типизированной константой
- Const A:array[1..2,1..2] of integer=((5,6),(2,0));
- Задание с помощью генератора случ-х чисел
- For i:=1 to n do
- For j:=1 to m do A[i,j]:= random(50);
- Формирование массива с помощью формулы
- For i:=1 to n do
- For j:=1 to m do A[i]:= i;
- assign (input,'input.txt');
- assign (output,'output.txt');
- reset (input);
- rewrite (output);
- … … … … … … … …
- close (input);
- close (output);
- Вывод двумерного массива
- For i:=1 to n do
- begin
- Writeln;
- For j:=1 to m do
- Write (A[i,j]:2,' ');
- end;
- Чтение данных из файла input.txt и запись в файл output.txt
- Найти сумму и произведение элементов массива, состоящего из 10 элементов
- 1 0 -1 0 6 2 0 4 8 -7
- Сумма элементов = 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;
- p:=1;
- For i:=1 to 10 do
- begin
- s:=s + A[i];
- p:=p*A[i];
- end;
- Writeln (‘Сумма элементов =‘, s);
- Writeln (‘Произведение элементов =‘, p);
- END.
- Найти сумму всех отрицательных элементов массива, состоящего из 10 элементов
- 1 0 -1 0 6 2 0 9 8 -7
- Сумма отр-х элементов = -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;
- For i:=1 to 10 do if A[i]<0 then s:=s + A[i];
- If s=0 then Writeln (‘отрицательных элементов нет‘)
- else Writeln (‘Сумма отр-х элементов =‘, s);
- END.
- Пусть n=4, m=4
- В двумерном массиве, элементами которого являются целые числа, подсчитать сумму элементов с k1 строки по k2.
- S=32
- Исходный массив
- 5
- 4
- 3
- 1
- 1
- 1
- 3
- 4
- 0
- 3
- 3
- 8
- 8
- 7
- 8
- 9
- Результат
- Program d2;
- Var A: array[1..10,1..10] of integer;
- i, j, k1, k2, s, m, n : integer;
- Begin
- Writeln (‘Введите размерность массива');
- Readln (n, m);
- {Ввод массива}
- S:=0;
- Writeln (k1,k2); ReadLn (k1,k2);
- If (k1>k2) or (k2>n) then Writeln ('ошибка') else
- Begin
- For i:=k1 to k2 do
- For j:=1 to m do S:=S+A[i,j];
- Write ('S=', S);
- End;
- End.
- k1=2, k2=3
- 4 x 4
- В матрице A размерностью 4*4 найти сумму ее положительных элементов, произведение элементов, значения которых попадают в интервал [2, 5], а также отношение этих двух величин.
- Сумма=20
- Произведение=360
- Отношение=0.055
- Исходный массив
- 5
- 4
- 0
- 1
- 1
- 1
- 0
- 0
- 0
- 3
- 3
- 2
- -8
- -7
- -8
- -9
- Результат
- Program massiv;
- Var A: array [1..4,1..4] of integer; i, j, s: integer;
- BEGIN
- {Ввод массива}
- s:=0; p:=1;
- For i:=1 to 4 do
- For j:=1 to 4 do
- begin
- If A[i,j]>0 then s:=s+A[i,j];
- If (A[i,j]>=2) and (A[i,j]<=5) then p:=p*A[i,j];
- end;
- Writeln ('Сумма=',s:6:2);
- Writeln ('Произведение=',p:6:2);
- If p=0 then Writeln ('Отношение вычислить нельзя')
- else Writeln ('Отношение=',s/p:6:3)
- END.
- Задача. Найти скалярное произведение двух массивов. Скалярным произведением двух массивов одинаковой размерности называется сумма произведений соответствующих элементов (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;
- For i:=1 to n do
- Begin
- Write ('A[',i,']='); Readln (A[i]);
- End;
- For i:=1 to n do
- Begin
- Write (‘B[',i,']='); Readln(B[i]);
- End;
- For i:=1 to n do S:= S+A[i]*B[i];
- Writeln(‘вывод результата');
- WriteLn (S);
- END.
- Исходный массив
- A : 5 2 3 5 4
- B: 1 5 5 4 0
- Результат:
- 50
- В одномерном массиве, элементами которого являются целые числа, подсчитать сумму элементов, кратных 9.
- Исходный массив
- 0 9 18 7 -6 5 -4 9
- Результат
- s=36
- Program mass2;
- Var A:array[1..100] of integer;
- n, i, S: integer;
- Begin
- s:=0;
- Write ('число элементов массива =');
- Readln (n);
- Randomize;
- For i:=1 to 20 do
- begin
- A[i]:= random(50);
- Write (A[i]:4);
- end;
- For i:=1 to n do
- If A[i] mod 9=0 then s:=s+A[i];
- Writeln; Writeln ('s=',s);
- End.
- Размерность массива
- n=8
- Конец
- s
- да
- A[i] mod 9=0
- s:=0
- Начало
- ввод n, А[1..n]
- i:=1, n
- s:=s+A[i]
- нет
- Дан целочисленный массив из 18 элементов. Элементы могут принимать значения от 0 до 100 – баллы, полученные на ЕГЭ. Составьте программу, которая подсчитывает и выводит средний балл учащихся, сдавших экзамен (получивших оценку более 20 баллов). Гарантируется, что хотя бы один ученик в классе успешно сдал экзамен.
- Program Srball;
- Const N = 20;
- Var A: array[1..N] of integer;
- i, x, y: integer; S: real;
- Begin
- {Ввод массива}
- x:=0; y:=0;
- For i:= 1 to N do
- If A[i]>20 then
- begin
- x:= x+1; y:= y+A[i];
- end;
- S:= y/x;
- Writeln('Sredniy ball=',S:4:1);
- End.
- N=18
- Sredniy ball=50.0
- Результат
- Размерность массива
- Исходный массив
- 10 50 50 68 74 26 32 2 5 50 100 12 13 20 21 29 45 55
- В двумерном массиве, элементами которого являются целые числа, подсчитать среднее арифметическое четных элементов массива.
- 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;
- Writeln (‘введите размерность массива');
- Readln (n,m);
- {Ввод массива}
- For i:=1 to n do
- For j:=1 to m do
- If A[i,j] mod 2=0 then
- Begin
- S:=S+A[i,j];
- k:=k+1;
- End;
- Sr:=s/k;
- Writeln(‘Сред. ариф. чёт. эл. =', sr:4:1);
- END.
- Исходный массив
- 51 22 34 58 91
- 13 6 19 34 26
- 20 15 25 33 85
- 56 3 44 35 16
- 65 27 85 15 34
- Результат
- Сред. ариф. чёт. эл.=31.8
- Пусть размерность массива
- 5 x 5
- В данном одномерном массиве, элементами которого являются целые числа, подсчитать среднее арифметическое отрицательных элементов.
- Результат
- -20.0
- Пусть размерность
- массива
- N=20
- Исходный массив
- -10 57 51 68 74 -27 31 2 5 50 100 12 13 -23 21 29 45 55 10 10
- Program A1;
- Var A:array[1..100] of integer; k, n, i: integer; s: real;
- Begin
- Write ('число элементов массива ='); Readln (n);
- k:=0; s:=0;
- For i:=1 to n do
- Begin
- Write ('A[',i,']='); Readln (A[i]);
- If A[i]<0 then
- Begin
- k:=k+1; s:=s+A[i];
- End;
- End;
- If k=0 then writeln ('отрицательных элементов нет') else
- Begin
- s:=s/k; Writeln ('s=',s:8:1);
- End;
- End.
- В данном одномерном массиве, элементами которого являются целые числа, подсчитать среднее арифметическое элементов, попадающих в интервал [1, 25]. Количество элементов массива ввести с клавиатуры.
- Результат
- 10.0
- Пусть размерность
- массива
- N=20
- Исходный массив
- 10 57 51 68 74 27 31 5 5 50 100 12 13 23 22 9 45 55 10 10
- Program A2;
- Var A:array[1..100] of integer; k, n, i: integer; s: real;
- Begin
- Write ('число элементов массива ='); Readln (n);
- k:=0; s:=0;
- For i:=1 to n do
- Begin
- Write ('A[',i,']='); Readln(a[i]);
- If (A[i]>=1) and (A[i]<=25) then
- Begin
- k:=k+1; s:=s+A[i];
- End;
- End;
- If k=0 then Writeln ('элементов нет') else
- Begin
- s:=s/k; Writeln ('s=', s:6:1);
- End;
- End.
|
||||
|
||||
|
||||
|
||||
|
- У квадратной матрицы есть замечательные свойства:
- Индексы элементов, лежащих на главной диагонали равны, т.е. i = j.
- 2. Первый индекс всех элементов выше главной диагонали меньше второго,
- т.е. i < j.
- 3. Первый индекс всех элементов ниже главной диагонали больше второго,
- т.е. i > j.
- i < j
- i > j
- i = j
- Пусть размерность массива
- n=4
- Дана квадратная матрица, элементами которой являются вещественные числа. Подсчитать сумму элементов главной диагонали.
- S=16.9
- Исходный массив
- 0.5
- -5.4
- -9.3
- 7.1
- 9.1
- -2.1
- -8.3
- 6.4
- 0
- -3
- 3
- 8
- 8
- 7
- 8
- 9
- Результат
- Program diag1;
- Var A:array [1..10,1..10] of real;
- i, j, n: integer; s: real;
- BEGIN
- S:=0;
- Writeln (‘введите размерность массива');
- Readln (n);
- {Ввод массива}
- For i:=1 to n do
- For j:=1 to n do
- If i=j then S:=S+A[i,j];
- Writeln('S=',S:4:1);
- END.
|
|
|||
|
|
|||
|
||||
|
|
|||
|
|
- i+j<n+1
- i+j>n+1
- i + j = n+1
- 3. Для элементов, находящихся под побочной диагональю: i+j>n+1
- Для элементов побочной диагонали сумма первого и второго индексов равна «нарощенному» на единицу порядку матрицы, т.е. i + j = n+1.
- 2. Для элементов, находящихся над побочной диагональю: i+j<n+1
- Пусть размерность массива
- n=4
- Дана квадратная матрица, элементами которой являются вещественные числа. Подсчитать сумму элементов, находящихся выше побочной диагонали.
- S=0.6
- Исходный массив
- Результат
- Program diag2;
- Var A:array [1..10,1..10] of real;
- i, j, n: integer; s: real;
- BEGIN
- S:=0;
- Writeln (‘введите размерность массива');
- Readln (n);
- {Ввод массива}
- For i:=1 to n do
- For j:=1 to n do
- If i+j<n+1 then S:=S+A[i,j];
- Writeln ('S=',S:4:1);
- END.
- 0.5
- -5.4
- -9.5
- 7.1
- 9.1
- -2.1
- -8.3
- 6.4
- 0
- -3
- 3
- 8
- 8
- 7
- 8
- 9
|
|
|||
|
|
|||
|
||||
|
|
|||
|
|
- i+j<n+1 и i<j
- i+j>n+1 и i>j
- Для элементов над пересечением диагоналей должны одновременно выполняться два неравенства: i+j<n+1 и i<j;
- 2. Для элементов под пересечением диагоналей должны одновременно выполняться два неравенства: i+j>n+1 и i>j;
- i+j>n+1 и i<j
- i+j<n+1 и i>j
- Пусть размерность массива
- n=5
- Дана квадратная матрица, элементами которой являются целые числа. Подсчитать сумму элементов, находящихся над и под пересечением диагоналей .
- S=36
- Исходный массив
- Результат
- 6
- 4
- 1
- 5
- 8
- 5
- 2
- 8
- 6
- 5
- 0
- 3
- 3
- 8
- 0
- 8
- 7
- 8
- 9
- 7
- 5
- 0
- 8
- 6
- 4
- i+j<n+1 и i<j
- i+j>n+1 и i>j
- Program diag3;
- Var A:array [1..10,1..10] of integer; i, j, n, s: integer;
- BEGIN
- S:=0;
- Writeln (‘введите размерность массива');
- Readln (n);
- Randomize;
- For i:=1 to n do
- begin
- Writeln;
- For j:=1 to n do
- begin
- A[i,j]:=random(10); Write (A[i,j]:2,' ');
- end;
- end;
- For i:=1 to n do
- For j:=1 to n do
- If (i+j<n+1) and (i<j) then
- If (i+j>n+1) and (i>j) then S:=S+A[i,j];
- Writeln('S=',S:4);
- END.
- Задача.
- Найти в массиве максимальный элемент.
- m a x
- 10 1 2 6 99
- Пусть размерность массива
- n=5
- max = 99
- Исходный массив
- Результат
- Найти наибольший элемент одномерного массива
- Program mass2;
- Var A: array [1..100] of integer;
- i, max, n: integer;
- Begin
- Writeln (’введите число элементов массива ’);
- Readln (n);
- For i:=1 to n do
- begin
- Write (’A[’, i , ’]=’);
- Readln (A[i]);
- end;
- max:=A[1];
- For i:=2 to n do if A[i]>max then max:=A[i];
- Writeln (’ max =’, max);
- End.
- Дан двумерный массив, элементами которого являются целые числа. Найти значение максимального элемента массива.
- Исходный массив
- 51 22 34 58 91
- 13 90 19 34 24
- 14 15 25 34 85
- 56 3 45 35 16
- 64 27 85 18 34
- Результат
- max=91
- Пусть размерность массива
- 5 x 5
- Program massiv;
- Var A:array [1..10,1..10] of integer;
- i, j, max, n, m: integer;
- BEGIN
- Writeln (‘введите размерность массива');
- Readln (n,m);
- {Ввод массива}
- max:=A[1,1];
- For i:=1 to 5 do
- For j:=1 to 5 do
- If A[i,j]>max then max:=A[i,j];
- Writeln('max=', max);
- END.
- 10 1 2 6 99
- Пусть размерность массива
- n=5
- min = 1
- Исходный массив
- Результат
- Program mass2;
- Var A: array [1..100] of integer;
- i, min, n: integer;
- Begin
- Writeln (’введите число элементов массива ’);
- Readln (n);
- For i:=1 to n do
- begin
- Write (’A[’, i , ’]=’);
- Readln (A[i]);
- end;
- min:=A[1];
- For i:=2 to n do if A[i]<min then min:=A[i];
- Writeln (’ min =’, min);
- Readln;
- End.
- Найти наименьший элемент одномерного массива
- Пусть размерность массива
- n=4, m=4
- В двумерном массиве, элементами которого являются целые числа, вычислить сумму максимальных элементов из каждой строки, если предполагается, что в каждой строке такой элемент единственный.
- S=28
- Исходный массив
- 0
- -5
- -9
- 7
- 9
- -2
- -8
- 6
- 0
- -3
- 3
- 8
- 8
- 7
- -8
- 9
- Результат
- Program MAX1;
- Var A:array [1..10,1..10] of integer;
- S, i, j, max, n, m: integer;
- BEGIN
- Writeln (‘введите размерность массива');
- Readln (n,m);
- {Ввод массива}
- S:=0;
- For i:=1 to n do
- begin
- max:=A[i,1];
- For j:=1 to m do
- If A[i,j]>max then max:=A[i,j];
- S:=S+max;
- end;
- Writeln('S=',S);
- END.
- В двумерном массиве, элементами которого являются целые числа, подсчитать количество элементов равных минимальному.
- Исходный массив
- 51 22 34 58 0
- 13 0 19 34 26
- 20 15 25 33 85
- 56 3 0 0 0
- 65 27 85 15 34
- Число эл-в
- равных мин.=5
- Результат
- Пусть размерность массива
- 5 x 5
- Program d5;
- Var A:array [1..10,1..10] of integer;
- n, m, i, j, k, min: integer;
- BEGIN
- Writeln ('Введите размерность массива');
- Readln (n,m);
- {Ввод массива}
- k:=0;
- min:=A[1,1];
- For i:=1 to n do
- For j:=1 to m do
- If A[i,j]<min then min:=A[i,j];
- For i:=1 to n do
- For j:=1 to m do
- If min=A[i,j] then k:=k+1;
- Write (‘Число эл-в равных мин.=', k);
- END.
- Опишите алгоритм подсчета числа элементов, равных максимальному,
- в числовом массиве из 20 элементов.
- Результат
- 3
- Размерность
- массива
- N=20
- Program maksi2;
- Var A:array[1..20] of integer;
- k, i, max: integer;
- BEGIN
- {Ввод массива}
- k:=1; max:=A[1];
- For i:=2 to 20 do
- Begin
- If A[i]=max then k:=k+1;
- If A[i]>max then
- begin
- max:=A[i]; k:=1;
- end;
- End;
- Writeln (k);
- END.
- Исходный массив
- 10 50 50 68 74 26 32 2 5 50 100 12 13 20 21 29 45 55 100 100
- 5 х 5
- Дан двумерный массив целых положительных чисел размером 5 на 5. Найти сумму элементов строки, в которой расположен элемент с максимальным значением. Вывести значение суммы на печать, если предполагается, что такой элемент единственный.
- 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;
- For i:=1 to n do
- For j:=1 to n do
- If A[i,j]>max then
- begin
- max:=A[i,j]; imax:=i;
- end;
- For j:=1 to n do S:=S+A[imax,j];
- Writeln ('S=',S);
- End.
- Размерность массива
- 5
- 4
- 3
- 1
- 6
- 1
- 1
- 3
- 4
- 5
- 0
- 3
- 3
- 8
- 1
- 8
- 7
- 8
- 9
- 4
- 0
- 3
- 3
- 8
- 0
- Опишите алгоритм подсчета максимального количества подряд идущих совпадающих элементов в целочисленном массиве длины 25.
- Результат
- max кол-во совп. элем. =6
- Размерность
- массива
- N=25
- Program sovpad;
- Var A: array[1..25] of integer;
- k, k1, i: integer;
- BEGIN
- k1:=1; k:=1;
- For i:=1 to 25 do
- begin
- Write ('A[',i,']=');
- Readln (A[i]);
- end;
- For i:=2 to 25 do
- begin
- If a[i] = a[i-1] then k:=k+1 else k:=1;
- If k > k1 then k1:=k;
- end;
- Writeln (‘max кол-во совп. элем. =',k1);
- END.
- Исходный массив
- 10 50 8 8 50 6 41 40 2 50 7 5 5 5 5 5 5 29 45 55 3 2 2 2 3
- Найдите номер первого из двух последовательных элементов в целочисленном массиве из 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]);
- i1:=1;
- S:=A[1]+A[2];
- For i:=2 to n-1 do
- If A[i]+A[i+1]> S then
- begin
- i1:=i;
- s:=A[i]+A[i+1];
- end;
- Writeln(i1);
- End.
- Исходный массив
- 10 50 8 8 50 6 41 40 2 50 7 5 5 5 5 5 5 29 45 55 3 2 2 2 3
- Дан прямоугольный массив целых полож-х чисел 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;
- For j:=1 to m do sum:=sum+A[1,j];
- Min:=sum; imin:=1;
- For i:=2 to n do
- Begin
- Sum:=0;
- For j:=1 to m do sum:=sum+A[i,j];
- If sum<min then
- Begin
- min:=sum; imin:=i;
- End;
- End;
- Writeln (‘№ строки=', imin, ‘, sum=', min);
- END.
- 4 х 5
- № строки=2, sum=10
- Исходный массив
- Результат
- Размерность массива
- 5
- 1
- 3
- 6
- 1
- 2
- 7
- 5
- 8
- 0
- 0
- 1
- 0
- 4
- 5
- 4
- 0
- 3
- 8
- 0
- Найти количество положительных и отрицательных элементов в массиве
- в числовом массиве из 20 элементов.
- Результат
- 17, 3
- Размерность
- массива
- N=20
- Program d4;
- Const n=20;
- Var A:array [1..n] of integer;
- i, k1, k2: integer;
- Begin
- For i:=1 to n do
- Begin
- Write('A[',i,']='); Readln (A[i]);
- End;
- k1 :=0; k2 :=0;
- For i := 1 to n do
- if A[i] > 0 then Inc(k1)
- else
- if A[i] < 0 then Inc(k2);
- Writeln(k1:5, ‘ , ‘,k2:5);
- End.
- Исходный массив
- 10 50 50 68 74 26 32 2 5 50 -10 12 13 20 21 29 45 55 -90 -60
- Дан одномерный массив. состоящий из 10 элементов. Составить программу определения количества элементов массива, значение которых меньше заданного действительного числа t.
- 1 0.5 -1 0 6 2 0 9 8 -7
- Исходный массив
- n=10, t=5.5
- Program mas3;
- Var A: array [1..10] of real;
- i,k: integer; t: real;
- BEGIN
- Write ('Введите число t=');
- Readln (t);
- k:=0;
- For i:=1 to 10 do
- begin
- Write ('Введите значение элемента A(', i, ') = ');
- Readln (A[i]);
- If A[i]<t then k:=k+1
- end;
- Writeln ('Ответ: Количество элементов, меньших заданного числа‘,t:3:1);
- Writeln('k=', k);
- END.
- Результат
- K=7
- В данном одномерном массиве, состоящем из 8 элементов, заменить отрицательные элементы на противоположные по знаку. Элементами массива являются целые числа.
- Исходный массив
- 0 9 -8 7 -6 5 -4 3
- Изменённый массив
- 0 9 8 7 6 5 4 3
- Program mass1;
- Var A:array [1..8] of integer;
- i: integer;
- Begin
- For i:=1 to 8 do
- Begin
- Write ('A[',i,']='); Readln (A[i]);
- End;
- 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);
- End.
- Начало
- ввод А[1..8]
- A[i]<0
- A[i]:=-A[i]
- Конец
- да
- i:=1, 8
- нет
- вывод А[1..8]
- Найти и вывести на экран номера четных элементов в числовом массиве из 20 элементов.
- Результат
- 1 4 5 8 10 11 12 19 20
- Размерность
- массива
- N=20
- Program d3;
- Var A:array [1..20] of integer;
- i, n: integer;
- Begin
- For i:=1 to 20 do
- Begin
- Write ('A[',i,']='); Readln (A[i]);
- End;
- For i:=1 to n do if A[i] mod 2 =0 then Write(i:5);
- End.
- Исходный массив
- 10 57 51 68 74 27 31 2 5 50 100 12 13 21 21 29 45 55 100 100
- В данном одномерном массиве, состоящем из 8 элементов, заменить нулями все отрицательные элементы. Элементами массива являются целые числа.
- Исходный массив
- 0 9 -8 7 -6 5 -4 3
- Изменённый массив
- 0 9 0 7 0 5 0 3
- Program mass1;
- Var A:array [1..8] of integer;
- i: integer;
- Begin
- For i:=1 to 8 do
- Begin
- Write ('A[',i,']='); Readln (A[i]);
- End;
- For i:=1 to 8 do if A[i]<0 then A[i]:=0;
- For i:=1 to 8 do write (A[i]:5);
- End.
- Начало
- ввод А[1..8]
- A[i]<0
- A[i]:=0
- Конец
- да
- i:=1, 8
- нет
- вывод А[1..8]
- Как переставить элементы?
- Задача.
- Поменять местами содержимое двух чашек.
- Нужна 3-я чашка,
- чтобы в нее перелить содержимое первой.
- Исходный массив
- 10 1 1 6 99
- Размерность массива
- n=5
- Изменённый
- 10 99 1 6 1
- For i:=2 to n do If A[i]>=max then
- Begin
- max:=A[i]; nmax:=i;
- End;
- For i:=2 to n do If A[i]<min then
- Begin
- min:=A[i]; nmin:=i;
- End;
- A[nmin]:=max; A[nmax]:=min;
- Write ('Готовый массив: ');
- For i:=1 to n do write (A[i],'; ' );
- End.
- В данном одномерном массиве, элементами которого являются целые числа, поменять местами первый минимальный и последний максимальный элементы. Число элементов массива запрашивается с клавиатуры.
- Program d3;
- Var a:array[1..100] of integer;
- nmin,nmax,min,max,n,i:integer;
- Begin
- Write ('число элементов массива =');
- Readln(n);
- For i:=1 to n do
- Begin
- Write ('A[',i,']='); Readln(A[i]);
- End;
- min:=a[1]; nmin:=1;
- max:=a[1]; nmax:=1;
- Дана прямоугольная матрица, элементами которой являются целые числа. Для каждого столбца подсчитать среднее арифметическое его нечетных элементов и записать полученные данные в новый массив
- Исходный массив A
- 51 22 34 58 0
- 13 0 11 34 26
- 20 15 35 43 85
- 56 3 0 1 0
- Пусть размерность массива 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 ('Введите размерность массива А');
- Readln (n,m);
- {Ввод двумерного массива А}
- For j:=1 to m do
- begin
- s:=0; k:=0; B[j]:=0;
- For i:=1 to n do
- If A[i,j] mod 2<>0 then
- begin
- s:=s+A[i,j]; k:=k+1;
- end;
- If k<>0 then B[j]:=s/k ;
- end;
- For j:=1 to m do Write (B[j]:5:1,’ ‘);
- END.
- 50 44 32 22 11
- Результат
- 32.0 9.0 23.0 22.0 48.0
- Тогда размерность массива В: 5
- Дан двумерный массив А и одномерный массив B соответствующих размерностей.
- Нечетные строки массива А заменить элементами массива B.
- Исходный массив A
- 51 22 34 58 0
- 13 0 19 34 26
- 20 15 25 33 85
- 56 3 0 0 0
- Пусть размерность массива 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;
- BEGIN
- Writeln ('Введите размерность массива А');
- Readln (n,m);
- Writeln ('Введите элементы массива А');
- {Ввод двумерного массива А}
- Writeln('Введите элементы массива В');
- {Ввод одномерного массива В}
- For i:=1 to n do
- For j:=1 to m do
- If i mod 2<>0 then A[i,j]:=B[j];
- Writeln (Вывод изменённого массива');
- For i:=1 to n do
- begin
- For j:=1 to m do Write(A[i,j]:5);
- Writeln;
- end;
- END.
- Исходный массив В
- 55 44 33 22 11
- Результат
- 55 44 33 22 11
- 13 0 19 34 26
- 55 44 33 22 11
- 56 3 0 0 0
- Тогда размерность массива В: 5
- Дана прямоугольная матрица 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
- begin
- s:=0; B[j]:=0;
- For i:=1 to 5 do
- If A[i,j] mod 7=0 then s:=s+A[i,j];
- B[j]:=s;
- end;
- Writeln(‘вывод результата');
- For j:=1 to 5 do WriteLn (’B[’, j , ’]=’, B[j]:4);
- END.
- Исходный массив
- 51 22 34 58 49
- 13 90 19 34 21
- 14 15 25 34 80
- 56 3 35 35 16
- 64 25 85 14 34
- Результат: массив В
- 70 0 35 49 70
- Размерность
- массива А
- 5 x 5
- метод «пузырька»
- метод выбора
- «пузырек воздуха в стакане воды
- поднимается со дна вверх»
- найти миним. элемент и поставить
- на первое место
- Сортировка – это расстановка элементов массива в заданном порядке (по возрастанию, убыванию, последней цифре, …).
- Метод пузырька
- Идея – пузырек воздуха в стакане воды поднимается со дна вверх.
- Для массивов – самый маленький («легкий» элемент перемещается вверх «всплывает»).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Начиная снизу, сравниваем два соседних элемента; если они стоят «неправильно», меняем их местами;
- За 1 проход по массиву один элемент (самый маленький) становится на свое место;
|
|
|
|
|
|
|
|
|
|
|
|
- 1-ый проход
- 2-ой проход
- 3-ий проход
|
|
|
|
|
|
|
|
- Для сортировки массива из N элементов нужен N-1 проход (достаточно поставить на свои места N-1 элементов).
- СОРТИРОВКА МАССИВА МЕТОДОМ ПУЗЫРЬКА
- Исходный массив
- 12 10 15 3 6 9 11 7 1 5
- Результат
- Размерность массива
- n=10
- 1 3 5 6 7 9 10 11 12 15
- Program Sorti1;
- Const n=10;
- Var A:array[1..n] of integer;
- i, c, j: integer;
- BEGIN
- {Ввод массива}
- For i:=1 to n-1 do
- begin
- For j:=n-1 downto i do
- If A[j]>A[j+1] then
- begin
- c:=A[j];
- A[j]:=A[j+1];
- A[j+1]:=c;
- end;
- end;
- For i:=1 to n do Write(A[i]:4);
- END.
- СОРТИРОВКА МАССИВА МЕТОДОМ ВЫБОРА
- Исходный массив
- 12 10 15 3 6 9 11 7 1 5
- Результат
- Размерность массива
- n=10
- 1 3 5 6 7 9 10 11 12 15
- Program Sorti2;
- Const n=10;
- Var A:array[1..n] of integer; i, c, j: integer;
- BEGIN
- {Ввод массива}
- For i:=1 to n-1 do
- begin
- min:=i;
- For j:=i+1 to n do
- If A[j]<A[min] then min:=j;
- If min<>i then
- begin
- c:=A[i];
- A[i]:=A[min];
- A[min]:=c;
- end;
- end;
- For i:=1 to n do Write(A[i]:4);
- END.
- Метод выбора
- Действия:
- найти минимальный элемент и поставить на первое место (поменять местами с A[1]);
- из оставшихся найти минимальный элемент и поставить на второе место (поменять местами с A[2]), и т.д.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Информатика - еще материалы к урокам:
- Презентация "Подготовка к сдаче Единого Государственного Экзамена. Часть С" 11 класс
- Презентация "Подготовка к сдаче Единого Государственного Экзамена. Часть В" 11 класс
- Презентация "Подготовка к сдаче Единого Государственного Экзамена. Часть А" 11 класс
- Конспект урока "Знакомство со спецификой экзамена по информатике и ИКТ в форме ЕГЭ" 11 класс
- Презентация "ЕГЭ по информатике и ИКТ 2013" 11 класс
- Презентация "Мой ЕГЭ" 11 класс