Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите срочно кто может по двумерному массиву
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
ainp
1. даны целые чисала А1, А2, А3...Аn наименьший член последовательности А1, А2, А3...Аn заменить целой частью среднего арифметического всех членов, остальные члены оставить без изменения . Если в последовательности несколько членов со значением min (А1, А2, А3...Аn ), то заменить последний по порядку.

2. var k: integer;
c: array [1..n, 1..m] of char;
определить к-количество различных элементов масссива с (т. е. повторяющиеся элементы считать один раз)

3. Дана (прочно) вещественная матрица размером NxM. перераставляя ее строки и столбцы добиться того чтобы наибольший элемент (один из них) оказался в верхнем левом углу
Bokul
Цитата
Дана (прочно) вещественная матрица размером NxM. перераставляя ее строки и столбцы добиться того чтобы наибольший элемент (один из них) оказался в верхнем левом углу

Преобразование матрицы
Цитата
var k: integer;
c: array [1..n, 1..m] of char;
определить к-количество различных элементов масссива с (т. е. повторяющиеся элементы считать один раз)

Вот похожая задача
определить сколько различных русских букв содержит строка
Unknown
Цитата
1. даны целые чисала А1, А2, А3...Аn наименьший член последовательности А1, А2, А3...Аn заменить целой частью среднего арифметического всех членов, остальные члены оставить без изменения . Если в последовательности несколько членов со значением min (А1, А2, А3...Аn ), то заменить последний по порядку.


uses crt;
var a:array[1..100] of integer; sr,i,n,min:integer;
begin
randomize;
clrscr;
writeln;
write('Введите количество элементов в последовательности: '); readln(n);
writeln;
for i:=1 to n do
begin
a[i]:=random(10);
write(a[i],' ');
sr:=sr+a[i]
end;
sr:=sr div n;
min:=1;
for i:=2 to n do
if a[i]<=a[min] then min:=i;
a[min]:=sr;
writeln;
for i:=1 to n do
write(a[i],' ');
writeln;
readkey
end.
volvo
Unknown, ты уверен, что здесь:
min:=a[1];
for i:=2 to n do
if a[ i ]<=min then min:=a[ i ];
a[ i ]:=sr; { <--- Здесь !!! }

будет производиться то, что было в задании:
Цитата
наименьший член последовательности А1, А2, А3...Аn заменить целой частью среднего арифметического всех членов
а не будет банально заменен ПОСЛЕДНИЙ элемент последовательности? i чему будет равно там, где я отметил, напомни-ка мне...

Может, все-таки, запоминать индекс минимального элемента?
Unknown
Прошу прощения, уже сам все заметил и исправил... unsure.gif
Unknown
Цитата
3. Дана (прочно) вещественная матрица размером NxM. перераставляя ее строки и столбцы добиться того чтобы наибольший элемент (один из них) оказался в верхнем левом углу

Вот еще одна похожая задача и ее решение:
Путем перестановки элементов квадратной вещественной матрицы добиться того, чтобы ее максимальный элемент находился в левом верхнем углу, следующий по величине – в позиции (2,2), следующий по величине – в позиции (3,3) и т.д., заполнив таким образом всю главную диагональ.

program T4_V1_3;
uses crt;
var
a:array[1..5,1..5] of integer;
i,j,k,l,n,m,z,x:integer;
begin
clrscr;
randomize;
writeln;
write('Vvedite n: ');
readln(n);
writeln;

for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(10);

for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j],' ');
writeln;
end;

m:=1;
while m<=n do
begin
k:=m;l:=m;
for i:=1 to n do
for j:=1 to n do
if ((i<>j) or ((i=j) and (i>m))) and (a[i,j]>a[k,l])
then begin k:=i; l:=j end;
if not ((k=m) and (l=m)) then
begin
a[m,m]:=a[k,l]-a[m,m];
a[k,l]:=a[k,l]-a[m,m];
a[m,m]:=a[k,l]+a[m,m]
end;
inc(m);
end;

writeln;
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j],' ');
writeln;
end;

readkey
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.