![Скачать презентацию Работа над ошибками Задача 1 Дана целочисленная матрица Скачать презентацию Работа над ошибками Задача 1 Дана целочисленная матрица](https://present5.com/wp-content/plugins/kama-clic-counter/icons/ppt.jpg)
работа над ошибками .ppt
- Количество слайдов: 7
Работа над ошибками Задача 1. Дана целочисленная матрица A[1: n, 1: m] и массив B[1: k]. Удалить из матрицы те строки, все элементы которых отсутствуют в массиве B. Найти сумму элементов оставшихся строк. A 1 2 1 0 2 4 1 1 4 2 3 6 1 1 6 0 4 8 1 0 8 3 5 0 1 1 0 0 B 2 4 6 2 8 10 удаляемые строки выделены цветом sum=1+2+3+4+5+2+4+ +6+8+0+2+4+6+8+0+ +0+2+0+3+0=55
Алг «процедура удаления» Вход: n, m, a[1: n, 1: m], k, b[1: k] выход: n 1, a[1: n 1, 1: m], s Нач s: =0 {сумма} n 1: =0 {число оставшихся строк} цикл от i: =1 до n {строки} j: =1 {номер столбца} flag: =false {признак отсутствия элементов в массиве} цикл-пока j<=m и flag=false L: =1 {текущий номер элемента в B} цикл-пока L<=k и a[i, j]≠B[L] L: =L+1{берем следующий элемент B} кц
если L<=k то {a[i, j] есть в B} flag: =true иначе j: =j+1 {берем следующий столбец} все кц если flag то {i-я строка остается} n 1: =n 1+1 {увеличиваем число оставшихся строк и переносим ее на n 1 -е место} цикл от j: =1 до m {столбцы} a[n 1, j]: =a[i, j] s: =s+a[i, j] {и считаем сумму оставшихся строк} Кц Все Кц кон
Задача 2. Написать программу с использованием функции, которая переставляет в обратном порядке элементы главной диагонали матрицы если сумма четных элементов, расположенных под главной диагональю положительная. A[1: n, 1: n] sum=4 (>0) 1 2 3 4 3 2 3 4 5 6 7 8 5 8 7 8 2 9 8 7 2 9 6 7 6 5 -4 3 6 5 -4 1
Program perest; Type Matr=array[1. . 10, 1. . 10] of integer; Var A: matr; n, i, j: integer; flag: boolean; Function f (n: integer; var a: matr): boolean; Var i, j, c: integer; Flag: boolean; sum: integeкж
Begin Sum: =0, flag: =false; For i: =2 to n do For j: =1 to i-1 do If a[i, j] mod 2=0 then Sum: =sum+a[i, j]; If sum > 0 then begin Flag: =true; For i: =1 to trunc(n/2) do begin C: =a[i, i]; A[i, i]: =a[n-i+1, n-i+1]; a[n-i+1, n-i+1]: =c; End;
F: = flag; End; Begin {начало основ. прог. } {ввод n, a[1. . n, 1. . n]} Flag: =f(n, a); If flag then {Вывод a[1. . n, 1. . n]} else writeln(‘нет изменений’); End.
работа над ошибками .ppt