Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемЭлеонора Васильева
2 Задача: сформировать и вывести на экран двумерный массив оценок ряда учеников (их количество произвольно) по четырём школьным предметам. Оценки считать целыми случайными числами от 1 до 5. Сосчитать средний балл успеваемости всех учеников по всем предметам. Математика ФизикаИнформатика Литература Петров 4354 Иванов 5453 Петров 5544 Сидоров 3233
3 Схематично двумерный массив А(m,n) можно представить в виде следующей матрицы: a 11 a 12 a 13 …a 1n a 21 a 22 a 23 …a 2n …………… a m1 a m2 a m3 …a mn Где m – количество строк, n – количество столбцов Действительно, таблица очень напоминает зрительный зал, где m – количество рядов, а n – количество мест в ряду. Если всю матрицу обозначить одним именем, например А, то каждый элемент матрицы будет иметь два индекса – А(i,j), где первый индекс i обозначает номер строки (i=1…m), второй индекс j - номер столбца (j=1…n). Такую матрицу можно описать следующим образом: DIM А(m,n) При решении задач с использованием двумерных массивов во всех случаях (кроме некоторых частных) организуются вложенные циклы для изменения обоих индексов элемента массива.
4 В языке Бейсик существует краткая форма описания массива. Определите, пожалуйста, размер, размерность и тип массивов, определённых следующим образом: DIM A(32), ST$(20,10), R4%(2,4,5) Ответ: Массивы:размерность размер тип A132Вещественный с одинарной точностью ST2200 символьный R4340 целый
5 2. Заполнение двумерного массива 1. по строке: 2. по столбцу: For i=1 to m For j=1 to n For j=1 to n For i=1 to m a(i,j)=Int(Rnd*99+1) Next j, i Next i, j а 11 а 12 а 12 а 13 а 13 а 14 а 21 а а 11 а 12 а 12.. а 21 а а 31 а 31...
6 3. Печать содержимого на экран: For i=1 to m For j:=1 to n Вывод элементов одной строки матрицы в текущей Locate,3*j: Print a(i,j); строке и в столбцах с номерами, Next j кратными трём Print переход на следующую строку экрана Next i где: a - имя массива; i - индекс строки; j - индекс столбца; m - количество строк; n - количество столбцов. Почему вывод каждого столбца здесь осуществляется в позициях, номера которых кратны трём? А можно – четырём? Зачем это?
7 Что изменится в алгоритме, если надо будет суммировать элементы строки с номером k? 4. Вычисление суммы элементов отдельной строки, столбца. Дана матрица MxN. Найти сумму элементов столбца с номером k. Print Введите элементы массива For i=1 to m For j=1 to n Input a(i,j) Next j, i For i=1 to m Вывод значений массива For j=1 to n Locate,4*j: Print a(i,j); Next j Print Next i s=0: Input Введите номер столбца,k For i=1 to m: s=s+a(i,k): Next Print Сумма элементов ;k;-го столбца = ;s
8 5. Вычисление суммы элементов всего двумерного массива. S=0 for i=1 to m for j=1 to n S=S+a(i,j) Next j, i 6. Поиск и вывод максимального элемента каждой строки: For i=1 to m max=a(i,1): nmax=1 For j=1 to n if a(i,j)>max then max=a(i,j): nmax=j Next j Print max строки ;i;=;max; в столбце ;nmax Next i Для чего сумму S до цикла обнулили? А если надо искать произведение?
9
7. Поиск и вывод минимального элемента каждого столбца: For j=1 to n min=a(1,j): nmin=1 For i=1 to m if a(i,j)
10 9. Дан двумерный массив А(5,6). В каждой строке найти среднее арифметическое CLS: Dim A(5,6), SR(5) Randomize Timer For I = 1 То 5 For J = 1 То 6 A(I, J) = Int(Rnd * ) Next J, I For I=1 To 5 S=0 For J=1 to 6 S=S+A(I,J) Next J SR(I)=S/6 Next I For I = 1 To 5 For J = 1 To 6 Locate, 4 * J: Print A(I, J ) ; Next J Locate, 4 * J: Print SR(I) Next I
11 10. Дан двумерный массив A(N,M). Сформировать массив B(N,M), где a(i,j)2, если i- нечётное; b(I,J)= a(i.j), если i - чётное; Cls: Input Введите размеры массива m и n,M,N Dim a(M,N), b(M,N): Randomize Timer For i=1 to M Заполнение и For j=1 to N вывод элементов массива a(i,j)=Int(Rnd*99+1) Locate,4*j: Print a(i,j); Next j Print Next i Print For i=1 to M If i/2= i\2 Then For j=1 to N: b(i,j)=sqr(a(i,j)): Next j Else For j=1 to N: b(i,j)=a(i,j)^2: Next j End If Next i For i=1 to M For j=1 to N Locate,4*j: Print b(i,j); Next j Print Next i
12
Мы с вами рассмотрели типичные примеры обработки прямоугольных матриц (M*N). Если M=N, то матрица называется квадратной (N*N). a 11 a 12 a 13 a 14 a 21 a 22 a 23 a 24 a 31 a 32 a 33 a 34 a 41 a 42 a 43 a 44 Для квадратных матриц можно выделить: Главная диагональ - элементы a 11, a 22, a 33, a 44 - индексы элементов, расположенных на главнойой диагонали равны (i=j) Пример: Найти сумму элементов главнойой диагонали: S=0 for i=1 to n: S=S+a(i,i): next Побочная диагональ - элементы a 41, a 32, a 23, a 14 (j=n+1-i) Пример: Найти минимальный элемент побочной диагонали: min=a(1,n) for i=1 to n if a(i,n+1-i)
13
Верхняя треугольная матрица (элементы, расположенные над главнойой диагональю ненулевые (i
14 12. Задана числовая таблица размерности n на n. Заменить все отрицатьельные элементы этой таблицы на минимальный элемент главнойой диагонали. CLS: INPUT Введите размер таблицы:, n DIM a(n,n) REM формирование матрицы FOR i = 1 TO n FOR j = 1 TO n a(I,j)= INT(RND*11- 5) NEXT j,i REM вывод матрицы FOR i = 1 TO n FOR j = 1 TO n PRINT a(i, j); NEXT j PRINT NEXT i REM поиск мин. элем. главной. диагонали MIN = a(1,1) FOR i = 1 TO n IF MIN > a( I,I) THEN MIN = a(I,I) NEXT I REM замена отрицать. элементов на MIN FOR i = 1 TO n FOR j = 1 TO n IF a(I,j) < 0 THEN a(I,j)=MIN NEXT j,i REM вывод матрицы FOR i = 1 TO n FOR j = 1 TO n PRINT a(i, j); NEXT j PRINT NEXT i
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.