- •4. Разветвляющиеся вычислительные процессы.
- •4.1 Условие задачи 1
- •4.2 Условие задачи 2
- •5. Циклические вычислительные процессы
- •5.1 Условие задачи 1
- •5.2 Условие задачи 2
- •5.3 Условие задачи 3
- •6. Одномерные массивы
- •6.1 Условие задачи №1
- •6.2 Условие задачи №2
- •6.3 Условие задачи №3
- •7. Двумерные массивы
- •7.1 Условие задачи №1
- •7.2 Условие задачи №2
- •7.3. Условие задачи №3
- •8. Подпрограммы
- •8.1 Условие задачи 1
- •8.2 Условие задачи 2
- •9. Файлы.
- •9.1 Условие задачи 1
- •9.2 Условие задачи 2
- •9.3 Условие задачи 3
- •Сборник задач для семестровых работ по информатике
- •400131, Волгоград, просп. Им. В. И. Ленина, 28, корп. 1.
- •400131, Волгоград, просп. Им. В. И. Ленина, 28, корп. 7.
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.