Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 23.06.2015, 12:53   #1 (permalink)
kitkit
Member
 
Регистрация: 17.11.2014
Сообщений: 189
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 512
По умолчанию Два массива

объясните, кому не лень
есть 2 массива:
a[1,1,1,1,1,1,1,1,1,1]
b[1,2,3,4]

надо "протянуть" массив b[4] через a[10], чтоб получилось:
0. a[1,1,1,1,1,1,1,1,1,1]
1. а[4,1,1,1,1,1,1,1,1,1]
2. a[3,4,1,1,1,1,1,1,1,1]
3. a[2,3,4,1,1,1,1,1,1,1]
4. a[1,2,3,4,1,1,1,1,1,1]
5. a[1,1,2,3,4,1,1,1,1,1]
6. a[1,1,1,2,3,4,1,1,1,1]
7. a[1,1,1,1,2,3,4,1,1,1]
8. a[1,1,1,1,1,2,3,4,1,1]
9. a[1,1,1,1,1,1,2,3,4,1]
10.a[1,1,1,1,1,1,1,2,3,4]
11.a[1,1,1,1,1,1,1,1,2,3]
12.a[1,1,1,1,1,1,1,1,1,2]
13.a[1,1,1,1,1,1,1,1,1,1]
каждый из шагов (0-13) надо вывести.
мне не надо код писать, просто на мысль натолкните..

p.s. то что это будет несколько циклов (for) я знаю (оч хочется верить, что это так), я не понимаю как сделать, чтоб не вылазить за пределы а[10] в начале и в конце..

p.p.s. язык всё равно какой, мне б суть понять...

спасибо
kitkit вне форума   Ответить с цитированием

Старый 23.06.2015, 12:53
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Я думаю, что хорошо было бы поискать решение вопроса в схожих темах

Формирование массива
Сортировка массива
Сжатие массива
Даны два массива по 15 элементов
Количество элементов массива С++
Количество элементов массива

Старый 23.06.2015, 13:01   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Забавная задачка.
Ладно, сейчас на обед удаляюсь, а вернусь - покручу. Если не отвлекут на какую-нибудь ерунду: я на работе.
Vladimir_S вне форума   Ответить с цитированием
Старый 23.06.2015, 13:10   #3 (permalink)
kitkit
Member
 
Регистрация: 17.11.2014
Сообщений: 189
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 512
По умолчанию

спс , буду весьма благодарен
kitkit вне форума   Ответить с цитированием
Старый 23.06.2015, 14:39   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Ну вот, в порядке наведения на мысль:
Код:
Const
 a:Array[1..10] of Byte=(1,1,1,1,1,1,1,1,1,1);
 b:Array[1..4] of Byte=(1,2,3,4);

Var
 c:Array[0..13,1..10] of Byte;
 i,j:Integer;

Begin
 for i:=0 to 13 do
  for j:=1 to 10 do c[i,j]:=a[j];
 for i:=0 to 13 do
  for j:=i-3 to i do
   if (j>0) and (j<11) then c[i,j]:=b[4-i+j];
 for i:=0 to 13 do
  begin
   write(i:3,'     ');
   for j:=1 to 10 do write(c[i,j]:3);
   writeln;
  end;
 readln
End.
Миниатюры
aa01.jpg  
Vladimir_S вне форума   Ответить с цитированием
Старый 23.06.2015, 15:25   #5 (permalink)
kitkit
Member
 
Регистрация: 17.11.2014
Сообщений: 189
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 512
По умолчанию

ого! огромнейше благодарю, о еще одном массиве я не подумал, а условие (if) мне пока вообще мозг взорвало спасибо, буду разбираться
kitkit вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 23.06.2015, 16:11   #6 (permalink)
kitkit
Member
 
Регистрация: 17.11.2014
Сообщений: 189
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 512
По умолчанию

...а без третьего массива никак нельзя?
kitkit вне форума   Ответить с цитированием
Старый 23.06.2015, 16:20   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от kitkit Посмотреть сообщение
...а без третьего массива никак нельзя?
Почему же? Можно. Просто оставьте один цикл по j, в нем каждый раз заполняйте массив единицами а потом проводите изменение выбранных элементов в соответствии с алгоритмом. И выводите результат строку за строкой.
Vladimir_S вне форума   Ответить с цитированием
Старый 23.06.2015, 17:15   #8 (permalink)
kitkit
Member
 
Регистрация: 17.11.2014
Сообщений: 189
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 512
По умолчанию

for n:=1 to 10 do a[n]:=1;
for i:=0 to 13 do begin
for j:=i-3 to i do begin
if (j>0) and (j<11) then a[i]:=b[4-i+j];
end;
for n:=1 to 10 do begin write(' ', a[n]); end; readln;
for n:=1 to 10 do a[n]:=1;
end;
..я, наверн, совсем не понял, да?
kitkit вне форума   Ответить с цитированием
Старый 24.06.2015, 00:33   #9 (permalink)
kitkit
Member
 
Регистрация: 17.11.2014
Сообщений: 189
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 512
По умолчанию

вот я лолка..
вот так:
Код:
for i:=0 to 13 do begin 
        for n:=1 to 10 do write (a[n],' '); writeln;
        for n:=1 to 10 do a[n]:=1;
  for j:=i-3 to i do 
   if (j>0) and (j<11) then a[j]:=b[4-i+j];
end;
нет.. всё равно что-то коряво...
kitkit вне форума   Ответить с цитированием
Старый 24.06.2015, 01:05   #10 (permalink)
kitkit
Member
 
Регистрация: 17.11.2014
Сообщений: 189
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 512
По умолчанию

теперь не коряво
Код:
for i:=0 to 13 do begin 
  for n:=1 to 10 do a[n]:=1;
  for j:=i-3 to i do 
   if (j>0) and (j<11) then a[j]:=b[4-i+j];
   for n:=1 to 10 do write (a[n],' '); writeln;
end;
kitkit вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 16:01.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.