Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка для заочников_практика.doc
Скачиваний:
1
Добавлен:
10.12.2018
Размер:
5.2 Mб
Скачать

7.2 Условие задачи №2

Ввести двумерный массив . Каждый положительный элемент увеличить на произведение индексов этого элемента. Массив вывести до изменения и после.

Блок-схема к задаче №2

Листинг программы на Pascal к задаче №2

program Zad7_2;

const Nmass=10;

var A:array[1..Nmass,1..Nmass] of integer;

N,M,i,j: byte;

begin

cls;

writeLn('Введите число элементов в массиве A');

readLn(N,M);

writeLn('Вводим элементы массива A:');

for i:=1 to N do

for j:=1 to M do

begin

write('A[',i,',',j,']=');

readLn(A[i,j]);

end;

writeLn('Исходный массив A:');

for i:=1 to N do

begin

for j:=1 to M do

write(A[i,j]:5);

writeLn;

end;

for i:=1 to N do

for j:=1 to M do

if A[i,j]>0 then

A[i,j]:=A[i,j]*i*j;

writeLn;

writeLn('массив A после изменения:');

for i:=1 to N do

begin

for j:=1 to M do

write(A[i,j]:5);

writeLn;

end;

end.

7.3. Условие задачи №3

Ввести двумерный массив , вывести его. Определить – номер столбца, содержащего наибольшее количество положительных элементов. Далее найти максимум среди отрицательных элементов расположенных правее этого столбца и поменять его с первым элементом массива.

Блок-схема к задаче №3

Листинг программы на Pascal к задаче №3

program Zad7_3;

const Nmass=10;

var A:array[1..Nmass,1..Nmass] of integer;

ZAMOK:boolean;

N,M,i,j,k,Imax,Jmax,p,Pmax: byte;

buf:integer;

begin

cls;

writeLn('Введите число элементов в массиве A');

readLn(N,M);

writeLn('Вводим элементы массива A:');

for i:=1 to N do

for j:=1 to M do

begin

write('A[',i,',',j,']=');

readLn(A[i,j]);

end;

writeLn('Исходный массив A:');

for i:=1 to N do

begin

for j:=1 to M do

write(A[i,j]:5);

writeLn;

end;

// определение столбца, в котором больше

// положительных элементов подсчёт

// положительных в первом столбце

Pmax:=0;

for i:=1 to N do

if A[i,1]>0 then

Pmax:=Pmax+1;

// теперь, зная начальное значение Pmax,

// можем приступить к поиску максимума и

// k-номера столбца, содержащего

// наибольшее число положительных элементов

k:=1;

for j:=2 to M do

begin

p:=0;

for i:=1 to N do

if A[i,j]>0 then

p:=p+1;

if p>Pmax then

begin

Pmax:=p;

k:=j;

end;

end;

writeLn('больше всего положительных элементов в столбце номер ', k);

// теперь ищем максимум среди отрицательных в

// столбцах справа от k-го

if k<M then

begin

ZAMOK:=TRUE;

for j:=k+1 to M do

for i:=1 to N do

if A[i,j]<0 then

if ZAMOK then

begin

Imax:=i;

Jmax:=j;

ZAMOK:=FALSE;

end

else

if A[i,j]>A[imax, jmax] then

begin

Imax:=i;

Jmax:=j;

end;

if ZAMOK then

writeLn('справа от найденного столбца нет отрицательных элементов')

else

begin

buf:=A[1,1];

A[1,1]:=A[Imax,Jmax];

A[Imax,Jmax]:=buf;

end;

end

else

writeLn('справа от найденного столбца нет элементов');

writeLn;

writeLn('массив A после изменения:');

for i:=1 to N do

begin

for j:=1 to M do

write(A[i,j]:5);

writeLn;

end;

end.