IPB
ЛогинПароль:

> Внимание! Действует предмодерация

Подраздел FAQ (ЧАВО, ЧАстые ВОпросы) предназначен для размещения готовых рабочих программ, реализаций алгоритмов. Это нечто вроде справочника, он наполнялся в течение 2000х годов. Ваши вопросы, особенно просьбы решить задачу, не пройдут предмодерацию. Те, кто наполнял раздел, уже не заходят на форум, а с теми, кто на форуме сейчас, лучше начинать общение в других разделах. В частности, решение задач — здесь.

> решения: МАТРИЦЫ, МАССИВЫ. задачи, Фрагменты матриц. Методы сортировки
сообщение
Сообщение #1


...
*****

Группа: Пользователи
Сообщений: 1 347
Пол: Мужской

Репутация: -  3  +


Примеры решения задач...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


...
*****

Группа: Пользователи
Сообщений: 1 347
Пол: Мужской

Репутация: -  3  +


Список задач:
  • 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;

writeln;
writeln('bolshe 0 - ',max);
writeln('menshe 0 - ',min);
writeln('ravnih 0 - ',nol);
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;

inc(i, di); inc(j, dj);
A[i,j]:=n
end;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 7:12
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name