С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 10.05.2012
Сообщений: 22
1

Дан двумерный массив А. Расставить его столбцы в следующем порядке-первый, последний, второй, предпоследний, третий.

16.05.2012, 08:49. Показов 1330. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан двумерный массив А. Расставить его столбцы в следующем порядке-первый, последний, второй, предпоследний, третий.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2012, 08:49
Ответы с готовыми решениями:

Дан двумерный массив А. Расставить его столбцы в следующем порядке:первый,последний,второй,предпоследний и т.д
Дан двумерный массив А. Расставить его столбцы в следующем порядке:...

Дан двумерный массив А. Расставить его столбцы в следующем порядке: последний, предпоследний,., второй,первый
Дан двумерный массив А. Расставить его столбцы в следующем порядке: последний, предпоследний,..,...

Дан файл чисел. Расставить его элементы в следующем порядке: первый, последний, второй, предпоследний и т.д
Помогите с задачкой. Дан файл чисел. Расставить его элементы в следующем порядке: первый,...

Поменять местами первый и последний столбцы, второй и предпоследний и т.д
Не могу понять почему не работает.((((( В двумерном массиве размерности N x M поменять местами...

5
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
16.05.2012, 11:14 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
uses crt;
const nmax=20;
type stb=array[1..nmax] of integer;{массив=столбец матрицы}
     mtr=array[1..nmax] of stb;{матрица=массив столбцов}
var a:mtr;
    m,n,i,j,k:byte;
    x:stb;
begin
randomize;
repeat
write('Количество строк до ',nmax,' m=');
read(m);
until m in [1..nmax];
repeat
write('Количество столбцов от 3 до ',nmax,' n=');
read(n);
until n in [3..nmax];
for j:=1 to n do{вводим матрицу по столбцам}
for i:=1 to m do
a[j][i]:=random(50);
writeln('Исходная матрица:');
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[j][i]:4);{выводим в обычном виде построчно}
  writeln;
 end;
writeln;
if odd(n) then k:=n div 2{количество обменов}
else k:=n div 2-1;
for i:=1 to k do
 begin
  x:=a[n];{запомнили последний столбец}
  for j:=n downto 2*i+1 do{сдваинули все что от места вставки}
  a[j]:=a[j-1];{на 1 вправо}
  a[2*i]:=x;{на свободное место вставили последний}
 end;
writeln('Перестановка столбцов:');
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[j][i]:4); {выводим результат построчно}
  writeln;
 end;
end.
2
0 / 0 / 0
Регистрация: 10.05.2012
Сообщений: 22
16.05.2012, 16:14  [ТС] 3
Спасибо большое! а не могли бы вы еще составить Блок схему!? прошу..
0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
16.05.2012, 16:21 4
Цитата Сообщение от Андрей!!! Посмотреть сообщение
а не могли бы вы еще составить Блок схему!?
Нет, для этого нет ни времени, ни желания.
0
shadeee
23.05.2012, 23:57 5
22222.pas.rar
Держи блок-схему
Нужна помощь точно такая же задача только нужно!!!
Дан двумерный массив А. Расставить его столбцы в следующем порядке: последний, предпоследний, второй, первый... Я эту задачу чуток переделал я поменял последний с предпоследним , теперь нужно поменять второй с первым и я не знаю как выручайте пожалуйста, надо очень срочно..

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Program GAI;
uses crt;
const nmax=20;
type stb=array[1..nmax]of integer;
     mtr=array[1..nmax]of stb;
var a:mtr;
m,n,i,j,k:byte;
x:stb;
begin
randomize;
repeat
write('Количество строк до',nmax,'m=');
read(m);
until m in[1..nmax];
repeat
write('Количество столбцов от 3 до',nmax,'n=');
read(n);
until n in [3..nmax];
for i:=1 to n do
for j:=1 to m do
a[j][i]:=random(50);
writeln('Исходная матрица');
for i:=1 to m do
begin
for j:=1 to n do
write(a[j][i]:4);
writeln;
end;
writeln;
If odd(n) then k:=n div 2
else k:=n div 2-1;
for i:=1 to k do
begin
x:=a[n];
for j:=n downto 2*i+1 do
a[j]:=a[j-1];
a[3*i]:=x; {Изменил эту строчку и получилось предпоследний с последним , прост поставил 3ку}
end;
writeln('Перестановка столбцов:');
for i:=1 to m do
begin
for j:=1 to n do
write(a[j][i]:4);
writeln;
end;
end.
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
24.05.2012, 09:06 6
Как я понял задачу.
1. В каждой перестановке участвуют 4 столбца, поэтому их количество должно быть кратно 4.
2. Перестановка делается так, например для 8.
было 1 2 3 4 5 6 7 8
надо 8 7 2 1 6 5 4 3
Тогда код такой
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Program GAI;
uses crt;
const nmax=20;
type stb=array[1..nmax]of integer;
     mtr=array[1..nmax]of stb;
var a:mtr;
    m,n,i,j,k:byte;
    x:stb;
begin
randomize;
repeat
write('Количество строк до ',nmax,' m=');
read(m);
until m in[1..nmax];
repeat
write('Количество столбцов кратное 4 до ',nmax,' n=');
read(n);
until (n mod 4=0)and(n<nmax);
writeln('Исходная матрица');
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    a[j][i]:=random(50); //зачем 2 цикла, если можно в одном
    write(a[j][i]:4);
   end;
  writeln;
 end;
i:=1;//первая четверка n,n-1,2,1
while i<=n-3 do//пока есть четверки
 begin
  x:=a[n]; //запомним последний
  for j:=n downto i+1 do//сдвинем с 1 по предпоследний вправо
  a[j]:=a[j-1];
  a[i]:=x;  //последний вперед
  x:=a[n]; //опять запомним последний
  for j:=n downto i+2 do //сдвинем с 2 по предпоследний вправо
  a[j]:=a[j-1];
  a[i+1]:=x; //бывший предпоследний второй
  x:=a[i+3];
  a[i+3]:=a[i+2];//поменяем местами 1 и 2, они сейчас 3 и 4
  a[i+2]:=x;
  i:=i+4;//к следующей четверке0
 end;
writeln('Перестановка столбцов:');
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[j][i]:4);
  writeln;
 end;
end.
0
24.05.2012, 09:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2012, 09:06
Помогаю со студенческими работами здесь

Поменять местами первый и последний, второй и предпоследний... и тд столбцы массива А
Поменять местами первый и последний, второй и предпоследний... и тд столбцы массива А. Расставить в...

вывести символы в следующем порядке: первй символ из входного файла, последний символ, второй символ, предпоследний смвл
Дан файл in.txt, содержащий текст. Требуется вывести в файл out.txt символы в следующем порядке:...

Получите новый массив - поменяйте местами первый на последний, второй на предпоследний
Дан массив А из n элементов. Получите новый массив - поменяйте местами первый на последний, второй...

Дан файл целых чисел, содержащий не менее четырех элементов. Вывести его нулевой, первый, предпоследний и последний элем
Дан файл целых чисел, содержащий не менее четырех элементов. Вывести его нулевой, первый,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru