Подраздел FAQ (ЧАВО, ЧАстые ВОпросы) предназначен для размещения готовых рабочих программ, реализаций алгоритмов. Это нечто вроде справочника, он наполнялся в течение 2000х годов. Ваши вопросы, особенно просьбы решить задачу, не пройдут предмодерацию. Те, кто наполнял раздел, уже не заходят на форум, а с теми, кто на форуме сейчас, лучше начинать общение в других разделах. В частности, решение задач — здесь.
решения: МАТРИЦЫ, МАССИВЫ. задачи, Фрагменты матриц. Методы сортировки
8. Даны 10 вещественых чисел. Определить наибольшее из отрицательных чисел, округлить его к ближайшему целому.
9. Ввести два вещественых числа a и b. Найти остаток от деления a и b. Определить принадлежность остатка интервалу [0 .. 4].
10. Вводятся различные целые числа. Надо определить четные и нечетные. Результат вывести на экран.
11. Нужно преобразовать матрицу, осуществив поворот элементов вокруг ее центра на 90 градусов против часовой стрелки.
12. Задать двумерный массив n*n. Посчитать число элементов бОльших, мЕньших, равных нулю. Вывести исходный массив элементов в виде таблицы и результаты вычислений.
13. Как расположить элементы отсортированной матрицы в ввиде "улитки"?
8. Даны 10 вещественых чисел. Определить наибольшее из отрицательных чисел, округлить его к ближайшему целому.
program desyat; var a:array[1..10] of real; min:real; i:integer; begin writeln('Ввести 10 чисел'); for i:=1 to 10 do read(a[i]); min:=a[1]; for i:=2 to 10 do if (min>a[i]) and (a[i]<0) then min:=a[i]; writeln('Ответ: ',round(min)); end.
9. Ввести два вещественых числа a и b. Найти остаток от деления a и b. Определить принадлежность остатка интервалу [0 .. 4].
program dva; var q,a,b,c:real; begin writeln('Ввести A'); readln(a); writeln('Ввести B'); readln(B); c:=a/b; q:=a-(b*trunc( c )); if (q>=0) or (q<=4) then writeln('Принадлежит отрезку'); writeln('Остаток: ',q:3:1); end.
10. Вводятся различные целые числа. Надо определить четные и нечетные. Результат вывести на экран.
Program by_Deadly; Uses crt; Var massiv:array[1..10] of longint; x:byte; Begin for x:=1 to 10 do begin write('massiv[',x,']:=? '); readln(massiv[x]); end; ClrScr; for x:=1 to 10 do begin if odd(massiv[x])=true then writeln('massiv[',x,']=',massiv[x],' - Нечетное число') else writeln('massiv[',x,']=',massiv[x],' - Четное число'); end; End.
11. Нужно преобразовать матрицу, осуществив поворот элементов вокруг ее центра на 90 градусов против часовой стрелки.
const n = 3; var a, b : array[1..n, 1..n] of byte; i, j : integer; begin { ввод матрицы } writeln('input your matrix ', n, ' x ', n); for i:=1 to n do for j:=1 to n do read(a[i,j]);
{ переворот } for i:=1 to n do for j:=1 to n do b[n-j+1,i]:=a[i,j];
{ вывод матрицы } writeLn; for i:=1 to n do begin for j:=1 to n do write(B[i,j],' '); writeln end; end.
12. Задать двумерный массив n*n. Посчитать число элементов бОльших, мЕньших, равных нулю. Вывести исходный массив элементов в виде таблицы и результаты вычислений.
uses crt; const n=10; var mas:array[1..n,1..n] of integer; i,j,max,min,nol:integer; begin randomize; clrscr; min:=0; max:=0; nol:=0; for i:=1 to n do begin for j:=1 to n do begin mas[i,j]:=random(20)-10; if mas[i,j]>0 then max:=max+1 else if mas[i,j]<0 then min:=min+1 else nol:=nol+1; write(mas[i,j],'|'); end; writeln; end;
13. Как расположить элементы отсортированной матрицы в ввиде "улитки"?
const m = 5; var a: array[1..m, 1..m] of integer; i, j, di, dj, n : integer; min_i, min_j, max_i, max_j : integer; begin i:=1; j:=m; dj:=-1; di:=0; A[i,j]:=1;
min_i:=2; min_j:=1; max_i:=m; max_j:=m;
for n:=2 to m*m do begin {1} if (dj<>0) and (j+dj < min_j) then begin dj:=0; di:=1; inc(min_j) end else
{2} if (di<>0) and (i+di > max_i) then begin di:=0; dj:=1; dec(max_i) end else
{3} if (dj<>0) and (j+dj > max_j) then begin dj:=0; di:=-1; dec(max_j) end else
{4} if (di<>0) and (i+di < min_i) then begin di:=0; dj:=-1; inc(min_i) end;