10 задач с решениями программированием на Паскале

  • Просмотров 4512
  • Скачиваний 529
  • Размер файла 11
    Кб

Задача 1. Условие: Найти среднее арифметическое общей совокупности элементов тех строк заданной матрицы, последний элемент которых равен 1. Программа: program S2_Z1; type m=array[1..100,1..100] of integer; var A:m; procedure vvod(m,n:integer;var x:m); var i,j: integer; begin writeln('введите элементы массива'); for i:=1 to m do for j:=1 to n do read(x[i,j]); end; procedure arf(m,n:integer;var x:m); var i,j,s:integer;sr:real; begin for i:=1 to m do begin s:=0; sr:=0; if x[i,n]=1 then begin for j:=1 to n do s:=s+x[i,j]; sr:=s/n; writeln ('среднее арифметическое ',i,' строки равно ',sr:5:2); end; end;

end; begin vvod(3,3,A); arf(3,3,A); end. Задача 2. Условие: Получить массив Х(n) по правилу: Хi =1, если в i-м столбце заданной матрицы есть хотя бы один элемент превышающий заданное значение С, иначе Xi=0. Найти общее число элементов, больших С. Программа: program S2_Z2; type m=array[1..100,1..100] of integer; mas=array[1..100] of integer; var A:m; procedure vvod(m,n:integer;var x:m); var i,j: integer; begin writeln('введите элементы массива'); for i:=1 to m do for j:=1 to n do read(x[i,j]); end; procedure moped(m,n:integer;var y:m); var i,j,c,k:integer; X:mas; begin k:=0; writeln('введите

величину С='); readln(c); for j:=1 to n do x[j]:=0; for j:=1 to n do for i:=1 to m do if y[i,j]>c then begin X[j]:=1; k:=k+1; end; writeln('элементы массива Х:'); for j:=1 to n do write(X[j],' '); writeln; writeln('число элементов матрици превышающих число ',c,' равно ',k) end; begin vvod(2,5,A);moped(2,5,A);readln; end. Задача 3. Условие: Дан массив A(5,5). Изменить часть матрицы, находящуюся под главной диагональю следующим образом: если элемент A[i,j] этой части матрицы больше элемента A[j,i], то задать элементу A[i,j] новое значение, равное

полу сумме двух этих элементов. Программа: program S2_Z3; type m=array[1..100,1..100] of real; var A:m; procedure vvod(m,n:integer;var x:m); var i,j: integer; begin writeln('введите элементы массива'); for i:=1 to m do for j:=1 to n do read(x[i,j]); end; procedure mat(m,n:integer;var x:m); var i,j: integer; t:real; begin writeln('изменённый матрица A[i,j] будет выглядеть так'); for i:=1 to m do for j:=1 to n do if i>j then if x[i,j] > x[j,i] then x[i,j]:=(x[i,j]+x[j,i])/2; for i:=1 to m do for j:=1 to n do write( A[i,j]:2:1,' '); end; begin vvod(5,5,A); mat(5,5,A); end. Задача 4. Условие: Определить самую длинную последовательность

подряд идущих нулей в заданном одномерном массиве. Программа: program S2_Z4; type m=array[1..100] of integer; var A:m; procedure vvod(m:integer;var x:m); var i: integer; begin writeln('введите элементы массива'); for i:=1 to m do read(x[i]); end; procedure moped(m:integer;var x:m); var i,k,n:integer; begin k:=0;n:=0; for i:=1 to m do if x[i]=0 then k:=k+1 else begin if x[i-1]=0 then if k>n then n:=k; k:=0;end; if k>n then writeln('самая большая последовательность нулей состовляет ',k) else writeln('самая большая последовательность нулей состовляет ',n); end; begin vvod(20,A); moped(20,A); end. Задача 5.