Задача - Поменять столбцы матрицы местами - программирование на разных языках

Задача — Поменять столбцы матрицы местами — программирование на разных языках

Задачи по программированию с решением для школьников
Want create site? Find Free WordPress Themes and plugins.

Задача — Поменять столбцы матрицы местами
— программирование на Pascal, Си, Кумир, Basic-256, Python

В числовой матрице поменять местами два столбца, т. е. все элементы одного столбца поставить на соответствующие им позиции другого, а его элементы второго переместить в первый.

Столбец матрицы определяется вторым индексом. Поэтому в цикле следует перебирать строки матрицы, т.е. переменная-счетчик будет использоваться в качестве первого индекса двумерного массива.

В каждой строке менять местами элементы с номерами указанных столбцов. От итерации к итерации они не меняются. Обмен можно производить через третью переменную.

Пусть номера столбцов, которые следует поменять местами, задаются путем ввода значений в момент выполнения программы.

Если в языке программирования индексация массивов начинается с нуля, а столбцы указываются, исходя из их фактического положения в матрице (начиная с 1), то следует из переменных, в которых записаны номера столбцов, вычесть единицу перед их использованием в цикле.

Pascal

const
N = 3; M = 6;
var
arr: array[1..N,1..M] of byte;
i,j,a,b,buff: byte;
begin
randomize;
for i:=1 to N do begin
for j:=1 to M do begin
arr[i,j] := random(4);
write(arr[i,j]:3);
end;
writeln;
end;
write(‘Какие столбцы поменять местами: ‘);
readln(a,b);
for i:=1 to N do begin
buff := arr[i,a];
arr[i,a] := arr[i,b];
arr[i,b] := buff;
end;
for i:=1 to N do begin
for j:=1 to M do
write(arr[i,j]:3);
writeln;
end;
end.   2  0  2  1  1  2
2  1  1  1  0  2
3  3  1  2  3  2
Какие столбцы поменять местами: 2 6
2  2  2  1  1  0
2  2  1  1  0  1
3  2  1  2  3  3

Язык Си

#include <stdio.h>
#define M 10
#define N 5
main() {
int a[N][M];
int i, j, n1, n2, ch;
srand(time(NULL));
for (i=0; i<N; i++) {
for (j=0; j<M; j++) {
a[i][j] = rand() % 10;
printf(«%5d», a[i][j]);
}
printf(«n»);
}
printf(«Поменять столбцы: «);
scanf(«%d»,&n1);
scanf(«%d»,&n2);
for (i=0; i<N; i++) {
ch = a[i][n1-1];
a[i][n1-1] = a[i][n2-1];
a[i][n2-1] = ch;
}
for (i=0; i<N; i++) {
for (j=0; j<M; j++) {
printf(«%5d», a[i][j]);
}
printf(«n»);
}
}     0    0    5    1    4    1    8    8    5    3
8    0    5    8    4    3    0    6    0    8
3    2    1    4    9    8    6    6    2    7
7    2    7    2    6    4    6    4    2    1
9    3    1    7    1    8    0    4    6    0
Поменять столбцы: 7 8
0    0    5    1    4    1    8    8    5    3
8    0    5    8    4    3    6    0    0    8
3    2    1    4    9    8    6    6    2    7
7    2    7    2    6    4    4    6    2    1
9    3    1    7    1    8    4    0    6    0

Python

from random import random
M = 10
N = 5
a = [] for i in range(N):
b = [] for j in range(M):
b.append(round(random()*2))
a.append(b)
print(b)

c1 = int(input(«Один столбец: «)) — 1
c2 = int(input(«Другой столбец: «)) — 1

for i in range(N):
a[i][c1], a[i][c2] = a[i][c2], a[i][c1] print(a[i]) [2, 1, 2, 2, 1, 0, 2, 1, 0, 1] [1, 1, 1, 1, 1, 1, 2, 2, 2, 1] [1, 1, 0, 1, 1, 1, 2, 0, 0, 1] [0, 0, 0, 2, 0, 0, 1, 2, 1, 2] [1, 0, 0, 1, 2, 0, 2, 1, 1, 0] Один столбец: 3
Другой столбец: 10
[2, 1, 1, 2, 1, 0, 2, 1, 0, 2] [1, 1, 1, 1, 1, 1, 2, 2, 2, 1] [1, 1, 1, 1, 1, 1, 2, 0, 0, 0] [0, 0, 2, 2, 0, 0, 1, 2, 1, 0] [1, 0, 0, 1, 2, 0, 2, 1, 1, 0]

КуМир

алг поменять столбцы местами
нач
цел M = 6, N = 4
цел таб a[1:N,1:M] цел i, j, c1, c2, b

нц для i от 1 до N
нц для j от 1 до M
a[i,j] := int(rand(0,10))
вывод a[i,j]:3
кц
вывод нс
кц

ввод c1
ввод c2

нц для i от 1 до N
b := a[i,c1] a[i,c1] := a[i,c2] a[i,c2] := b
кц

нц для i от 1 до N
нц для j от 1 до M
вывод a[i,j]:3
кц
вывод нс
кц
кон   4  7  6  9  3  8
1  5  3  4  5  6
3  3  9  9  5  0
1  2  1  5  7  7
1
6
8  7  6  9  3  4
6  5  3  4  5  1
0  3  9  9  5  3
7  2  1  5  7  1

Basic-256

M = 8
N = 3
dim a(N,M)
for i = 0 to N-1
for j=0 to M-1
a[i,j] = int(rand*10)
print a[i,j] + »     «;
next j
print
next i

input c1
input c2

for i=0 to N-1
buff = a[i,c1-1] a[i,c1-1] = a[i,c2-1] a[i,c2-1] = buff
next i

for i = 0 to N-1
for j=0 to M-1
print a[i,j] + »     «;
next j
print
next i 0     7     0     1     3     8     3     8
0     9     4     1     7     5     9     7
2     3     4     6     4     0     1     6
3
7
0     7     3     1     3     8     0     8
0     9     9     1     7     5     4     7
2     3     1     6     4     0     4     6

Did you find apk for android? You can find new Free Android Games and apps.

Добавить комментарий