Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
denis2010
3 / 3 / 0
Регистрация: 25.11.2009
Сообщений: 30
#1

Поменять отрезки местами без использования дополнительного массива

08.02.2010, 14:53. Просмотров 1132. Ответов 6
Метки нет (Все метки)

Есть массив состоящий из n элементов.Массив разделили на 2 неравных отрезка(не сказано какой из них больше).Количество элементов в первом отрезке - m.
Как поменять отрезки местами(второй отрезок в начало,а первый на место второго) без использования доп массива?
Можно пожалуйста в этой программе элементы массива вводить самому,(то есть без рандомного выбора).

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2010, 14:53
Ответы с готовыми решениями:

Получить без использования дополнительного массива.
Даны действительные a1,a2,...,a20. Получить без использования дополнительного...

Переписать элементы массива в обратном порядке без использования дополнительного массива
Здравствуйте, была бы очень благодарна если поможете :) 1. Дан одномерный...

Задача на перестановку пасивов без использования дополнительного массива
Условие: Заданы два одномерных массива с различным количеством...

Поменять местами отрезки массива
Есть массив состоящий из n элементов.Массив разделили на 2 неравных отрезка(не...

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

6
Тамила
751 / 545 / 209
Регистрация: 12.11.2009
Сообщений: 1,100
08.02.2010, 15:02 #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
uses crt;
var
a:array[1..100]of integer;
i,n,m:integer;
begin clrscr;
write('n=');
read(n);
for i:=1 to n do
 begin
  write('a[',i,']=');
  read(a[i]);
 end;
writeln;
write('m=');
read(m);
if n<m then writeln('M>N')
else
 begin
  writeln('1-yi otrezok:');
  for i:=1 to m do
  write(a[i],'  ');
  writeln;
  writeln('2-oi otrezok:');
  for i:=m+1 to n do
  write(a[i],'  ');
  writeln;
  writeln('menyaem mestamy:');
  for i:=m+1 to n do
  write(a[i],'  ');
  for i:=1 to m do
  write(a[i],'  ');
 end;
readkey;
end.
1
кот Бегемот
Платежеспособный зверь
8449 / 3888 / 1511
Регистрация: 28.10.2009
Сообщений: 10,063
08.02.2010, 15:54 #3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Тамила у вас только вывод элементов поменялся, а надо-то сами элементы в массиве поменять
здесь надо первые сначала в конец массива пристроить, а потом всё сдвинуть на m назад

Добавлено через 38 минут
Цитата Сообщение от denis2010 Посмотреть сообщение
Есть массив состоящий из n элементов.Массив разделили на 2 неравных отрезка(не сказано какой из них больше).Количество элементов в первом отрезке - m.
Как поменять отрезки местами(второй отрезок в начало,а первый на место второго) без использования доп массива?
Можно пожалуйста в этой программе элементы массива вводить самому,(то есть без рандомного выбора).
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
var
a:array[1..100]of integer;
i,j,n,t,k:integer;
begin
writeln('vvedite razmer massiva');
readln(n);
writeln('vvedite elementy massiva');
for i:=1 to n do
read(a[i]);
writeln;
writeln('massiv');
for i:=1 to n do
write(a[i],' ');
writeln;
writeln('vvedite chislo m<n');
readln(m);
for i:=n+1 to n+t do
a[i]:=a[i-n];
for i:=1 to n do
a[i]:=a[i+m];
writeln('novyj massiv');
for i:=1 to n do
write(a[i],' ');
readln;
end.
2
Puporev
Модератор
54217 / 41850 / 28922
Регистрация: 18.05.2008
Сообщений: 98,517
08.02.2010, 16:03 #4
denis2010, И Вы сами не могли в этой программе
http://www.cyberforum.ru/pascal/thread92220.html
заменить рандомный ввод на ввод с клавиатуры? Тогда как же Вы собираетесь разобраться в алгоритме?
0
denis2010
3 / 3 / 0
Регистрация: 25.11.2009
Сообщений: 30
08.02.2010, 18:24  [ТС] #5
Alexevt
В твоём массиве при перестановке элементы 1 отрезка(которые ставится в конец) превращаются в нули.Проверь
0
кот Бегемот
Платежеспособный зверь
8449 / 3888 / 1511
Регистрация: 28.10.2009
Сообщений: 10,063
08.02.2010, 18:30 #6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

каким-то странным образом выложил предварительную версию, хотя уже была исправленная. Проверяйте
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
var
a:array[1..100]of integer;
i,j,n,m:integer;
begin
writeln('vvedite razmer massiva');
readln(n);
writeln('vvedite elementy massiva');
for i:=1 to n do
read(a[i]);
writeln;
writeln('massiv');
for i:=1 to n do
write(a[i],' ');
writeln;
writeln('vvedite chislo m<n');
readln(m);
for i:=n+1 to n+m do
a[i]:=a[i-n];
for i:=1 to n do
a[i]:=a[i+m];
writeln('novyj massiv');
for i:=1 to n do
write(a[i],' ');
readln;
end.
1
denis2010
3 / 3 / 0
Регистрация: 25.11.2009
Сообщений: 30
08.02.2010, 18:47  [ТС] #7
Спасибо всё идёт!!!
0
08.02.2010, 18:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2010, 18:47

Напишите программу, которая переставляет элементы массива в обратном порядке без использования дополнительного
Напишите программу, которая переставляет элементы массива в обратном порядке...

Перестановка элементов массива без использования дополнительного массива
Дан массив целых чисел, содержащий 10 элементов, записать в этот же массив...

Поменять местами значения множеств a и b без использования дополнительных множеств
оставить программу, которая меняет местами значения множеств a и b без...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru