250 likes | 500 Views
0 1 0 0 1 1 1 0 1 0 0 0 1 0 0 1 1 1. 45 63 23 45 12 12 36 56 89 45. Двумерные массивы. Const N=20; M=30; Var c : Array [1.. N,1..M] Of Integer; a: Array [1..N, 1..M] Of Real;. c[ i,j ]:= 12; min:= a[1,1]; b[ i,j ]:= i *j;.
E N D
0 1 0 0 1 1 1 0 1 0 0 0 1 0 0 1 1 1 45 63 23 45 12 12 36 56 89 45 Двумерные массивы Const N=20; M=30; Var c: Array [1..N,1..M] Of Integer; a: Array [1..N, 1..M] Of Real; c[i,j]:=12; min:= a[1,1]; b[i,j]:=i*j; Автор разработки: Розанова Татьяна Аркадьевна, учитель информатики МОУ СОШ №2 города Кинешмы Ивановской области 2011 – 2012 учебный год
Годовой отчёт по заработной плате 1. Сколько рублей потратило предприятие на выплату заработной платы в мае? 2. Какова годовая заработная плата 05 работника? 3. Сколько работников в сентябре имело заработную плату больше 15 000 рублей?
3 2 5 Задание на дом
Задача 1. Что можно сказать о сформированном массиве? Задача 2. Какие изменения нужно внести в программу, чтобы сформировать массив из вещественных чисел? Повторение Program P1; Const N=6; M=3; a=-20; b=20; Var c: Array [1..N,1..M] Of Integer; i, j: Integer; Begin Randomize; For i:=1 To N Do Begin For j:=1 To M Do Begin c [i, j]:=Trunc (a+(b-a)*Random); Write (c[i,j]:6); End; WriteLn; End; … End. Program P1; Const N=6; M=3; a=-20; b=20; Var c: Array [1..N,1..M] Of Real; i, j: Integer; Begin Randomize; For i:=1 To N Do Begin For j:=1 To M Do Begin c [i, j]:=a+(b-a)*Random; Write (c[i,j]:6:2); End; WriteLn; End; … End. Ответ: двумерный целочисленный массив, 6 строк, 3 столбца. Меню
Задача 3. Чему равен элемент c[5,2]? For i:=1 To N Do For j:=1 To M Do c [i,j]:=2*j-i; Повторение Задача 5. Какой массив сформирован? For i:=1 To 4 Do For j:=1 To 4 Do c[i,j]:=i; Ответ: -1. Ответ: i=11 1 1 1 i=2 2 2 2 2 i=3 3 3 3 3 i=4 4 4 4 4 Задача 4. Что выполняет фрагмент программы? For i:=1 To N Do For j:=1 To M Do c[i,j]:=500+c[i,j]; Ответ: увеличивает значения всех элементов массива на 500. Меню
y:=0 i:=1,N j:=1,M y:=y+ Abs(c[i,j]) Вывод y Задача 6. Что находит фрагмент программы? x:=0; For i:=1 To N Do For j:=1 To M Do If c[i,j]<5 Then x:=x+c[i,j]; WriteLn (‘x=’ , x); Повторение Задача 8. Что находит фрагмент алгоритма? Ответ: находит сумму элементов, меньших 5. Задача 7. Что находит фрагмент программы? z:=0; For i:=1 To N Do For j:=1 To M Do If c[i,j]>7 Then z:= z+1; WriteLn (‘z=’ , z); Ответ: находит суммумодулей всех элементов массива. Ответ: находит количество элементов, больших 7. Меню
Задача 9. Сколько элементов массива 6×6 будет иметь положительные значения? For i:=1 To 6 Do For j:=1 To 6 Do c[i,j]:=j-i; Повторение Задача 10. Сколько элементов массива 4×4 будут равны 1? For i:=1 To 4 Do For j:=1 To 4 Do If i+j Mod 3 =0 Then c[i,j]:=0 Else c[i,j]:= 1; j=1 j=1 j=2 j=2 j=3 j=3 j=4 j=4 j=5 j=6 i=1 i=1 0 + + + + + - 0 + + + + 1 0 1 1 i=2 i=2 - - 0 + + + 0 1 1 0 i=3 i=3 - - - 0 + + 1 1 0 1 i=4 i=4 i=5 - - - - 0 + 1 0 1 1 Ответ:11. i=6 - - - - - 0 Ответ: 15. Меню
Сформирован целочисленный массив с (8×5). Изучаем новое Распечатать элементы 6 строчки. Найти сумму элементов 2-го столбца. Найти количество положительных элементов в 3 строчке. Найти максимальный элемент в 4 столбце. Поменять местами элементы 2 и 4 столбцов. j=1 j=2 j=3 j=4 j=5 i=1 i=2 i=3 i=4 Массив с i=5 i=6 i=7 i=8 Меню
Распечатать элементы 6 строчки Изучаем новое For j:=1 To 5 Do WriteLn (c[6,j]); j=1 j=2 j=3 j=4 j=5 C[6,1] C[6,2] C[6,3] C[6,4] C[6,5] i=6 Меню
Найти сумму элементов 2-го столбца Изучаем новое + c[i,2] S:=0; For i:=1 To 8 Do S:=S+c [i,2]; WriteLn (‘S=’ , S); j=2 S C[1,2] i=1 C[2,2] i=2 C[3,2] i=3 C[4,2] i=4 C[5,2] i=5 C[6,2] i=6 C[7,2] i=7 C[8,2] i=8 Меню
Найти количество положительных элементов в 3 строчке Изучаем новое + 1{если c[3,j]>0} k:=0; For j:=1 To 5 Do If c[3,j]>0 Then k:=k+1; WriteLn (‘k=’ , k); j=1 j=2 j=3 j=4 j=5 k C[3,1] C[3,2] C[3,3] C[3,4] C[3,5] i=3 Меню
Найти максимальный элемент в 4 столбце Изучаем новое Max:=c[1,4]; For i:=2 To 8 Do If c[i,4]>Max Then Max:=c[i,4]; WriteLn (‘Max=’ , Max); j=4 Max C[1,4] C[2,4] i=2 C[3,4] i=3 C[4,4] i=4 C[5,4] i=5 C[6,4] i=6 C[7,4] i=7 C[8,2] i=8 Меню
Поменять местами элементы 2 и 4 столбцов Изучаем новое For i:=1 To 8 Do Begin x:=c [i,2]; c [i,2]:=c [i,4]; c [i,4]:=x; End; j=2 j=4 x i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8 Меню
Выводы j=1j=2j=3j=4 i=1 -5 0 8 -1 i=2-8 7 7 4 i=3 0 0 1 2 i=4 3 4 5 8 j=1j=2j=3j=4 i=1 -5 0 8 -1 i=2-8 7 7 4 i=3 0 0 1 2 i=4 3 4 5 8 При работе со строчкой меняется параметр j, номер строчки определяется условием задачи При работе со столбцом меняется параметр i, номер столбца определяется условием задачи Меню
Что выполняет фрагмент программыв сформированном массиве? Проверь себя … For i:=1 To 5 Do c[i,3]:=c[i,3]+1000; … -7 5 6 -4 -9 -2 -5 0 8 -1 -8 -8 7 7 4 -4 0 0 1 2 -6 3 4 5 8 Ответ: увеличивает элементы 3 столбца на 1000. Меню
Что выполняет фрагмент программыв сформированном массиве? Проверь себя … For j:=1 To 5 Do Write (c [2,j]:6 ); … -7 5 6 -4 -9 -2 -5 0 8 -1 -8 -8 7 7 4 -4 0 0 1 2 -6 3 4 5 8 Ответ: распечатывает 2 строчку. Меню
Что выполняет фрагмент программы в сформированном массиве? Проверь себя … For i:=1 To 5 Do c[i,4]:=10; … -7 5 6 -4 -9 -2 -5 0 8 -1 -8 -8 7 7 4 -4 0 0 1 2 -6 3 4 5 8 Ответ: элементы 4 столбца заменяет числом 10. Меню
Что выполняет фрагмент программы в сформированном массиве? Проверь себя … S:=0; For j:=1 To 5 Do If c[2,j]<6 Then S:=S+c [2,j]; WriteLn (‘S=’ , S); … -7 5 6 -4 -9 -2 -5 0 8 -1 -8 -8 7 7 4 -4 0 0 1 2 -6 3 4 5 8 Ответ: во 2 строчке находит сумму элементов, которые меньше 6. Меню
Что выполняет фрагмент алгоритма в сформированном массиве? Проверь себя -7 5 6 -4 -9 -2 -5 0 8 -1 -8 -8 7 7 4 -4 0 0 1 2 -6 3 4 5 8 i:=1,5 с[i,3]Mod 2 =0 c[i,3]:=70 Ответ: чётные элементы третьего столбца заменяет числом 70. Меню
Сформировать таблицу «Годовой отчёт по заработной плате» для одного из цехов некоторого предприятия. В цехе трудится семь работников. Массив заработных плат заполнить случайным образом, диапазон взять от 6 000 рублей до 25 000 рублей с точностью до копейки. Практикум Вариант 1 Сколько потратило предприятие на выплату з/п в январе? Найти годовую з/п 07 работника. Сколько человек имели в декабре з/п больше 20000 рублей? Вариант 2 Сколько потратило предприятие на выплату з/п в феврале? Найти годовую з/п 05 работника. Сколько человек имели в сентябре з/п меньше 10000 рублей? Меню
Const N=7; M=12; a=6000; b=25000; Var c: Array [1..N,1..M] Of Real; s,s1:Real; k, i, j: Integer; Begin Randomize; WriteLn (‘Отчёт по заработной плате’); For i:=1 To N Do Begin For j:=1 To M Do Begin c [i, j]:= a+(b-a)*Random; Write (c[i,j]:10:2); End; WriteLn; End; … Практикум, самопроверка Меню
Вариант 1 s:=0; For i:=1 To N Dos:=s+c[i,1]; WriteLn (‘s=‘, s:10:2, ‘руб.’); s1:=0; For j:=1 To M Do s1:= s1+c[7,j]; WriteLn (‘s1=‘, s1:10:2 ‘руб’); k:=0; For i:=1 to N Do If c[i,12]>20000 then k:=k+1; WriteLn (‘k=‘, k); Практикум, самопроверка Вариант 2 s:=0; For i:=1 To N Dos:=s+c[i,2]; WriteLn (‘s=‘, s:10:2, ‘руб.’); s1:=0; For j:=1 To M Do s1:= s1+c[5,j]; WriteLn (‘s1=‘, s1:10:2 ‘руб’); k:=0; For i:=1 to N Do If c[i,9]<10000 then k:=k+1; WriteLn (‘k=‘, k); Меню
-4 5 6 0 0 1 -9 5 6 3 3 4 -8 5 4 4 4 4 -7 7 8 0 0 0 -9 6 5 2 0 1 -6 5 5 5 7 8 Домашнее задание Сформировать целочисленный массив (6×6), заполненный случайным образом. Заменить нулями элементы третьей строчки. Чётные элементы второго столбца увеличить на 100, распечатать получившийся массив. В четвёртом столбце найти количество элементов, которые больше 40. *Распечатать строчку, в которой находится минимальный элемент массива (если таких элементов несколько и находятся в разных строчках, то любую из них). **Упорядочить вторую строчку в порядке нестрогого возрастания. **Сформировать одномерный массив, каждый элемент которого равен сумме элементов соответствующего столбца. Меню