• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Два массива

  • Автор темы Автор темы kitkit
  • Дата начала Дата начала

kitkit

Ученик
Почётный участник
Регистрация
17 Ноя 2014
Сообщения
189
Реакции
2
Баллы
0
Два массива

объясните, кому не лень
есть 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. язык всё равно какой, мне б суть понять...

спасибо :)
 
Забавная задачка.
Ладно, сейчас на обед удаляюсь, а вернусь - покручу. Если не отвлекут на какую-нибудь ерунду: я на работе.
 
спс :), буду весьма благодарен :)
 
Ну вот, в порядке наведения на мысль:
Код:
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.webp
    AA01.webp
    12.1 KB · Просмотры: 34
ого! огромнейше благодарю, о еще одном массиве я не подумал, а условие (if) мне пока вообще мозг взорвало :) спасибо, буду разбираться
 
...а без третьего массива никак нельзя?
 
...а без третьего массива никак нельзя?
Почему же? Можно. Просто оставьте один цикл по j, в нем каждый раз заполняйте массив единицами а потом проводите изменение выбранных элементов в соответствии с алгоритмом. И выводите результат строку за строкой.
 
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:=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;
..я, наверн, совсем не понял, да? tehno015
 
вот я лолка..
вот так:
Код:
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;

нет.. всё равно что-то коряво...
 
теперь не коряво tehno001
Код:
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;
 
Назад
Сверху