Показать сообщение отдельно
Старый 26.11.2011, 02:26  
Тигрь
Крестный отец всех читеров
Аватар для Тигрь
OFFLINE
Регистрация: 02.04.2008
Сообщений: 4,028
Благодарностей:
37,799 всего
Мнения: + 32245
Репутация: 106769

что же курил составитель условия, наверно кубики

Добавлено через 3 часа 56 минут
Составитель задания и правда идиот. А ТС мог бы и картинку показать, с картинкой сразу стало все понятно и на прогу ушло 2 минуту и 15 строчек кода.

Цитата:
На следующем рисунке продемонстрировано, как выглядит расположение кубиков в коробке до и после одного поворота на 90 градусов.
Консольная прога на Delphi(под паскаль переделывается за 30 сек)
Код:
program Project1;
{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  vektor: array [1 .. 10] of integer;
  matrix: array [1 .. 10] of array [1 .. 10] of integer;
  i, j, l, n, k: integer;

begin
  writeln('VVEDITE RAZMERNOST KOROBKI "N"');
  readln(n);
  writeln('VVEDITE CHISLO POVOROTOV "K"');
  readln(k);

  writeln('VVEDITE KOL-VO KUBIKOV V KAZDOM STOLBCHE');
  for i := 1 to n do begin
    readln(vektor[i]);
  end;

  for l := 1 to k do // выполняем цикл столько раз сколько переворотов
  begin
    // Обнуляем матрицу
    for i := 1 to 10 do
      for j := 1 to 10 do
        matrix[i][j] := 0;

    // Заполняем матрицу кубиками
    for i := n downto 1 do
      for j := 10 downto 11 - vektor[i] do
        matrix[j][i] := 1;

    // Обнуляем вектор
    for i := 1 to 10 do
      vektor[i] := 0;

    // Условно переворачиваем матрицу(коробку) и заполняем новый вектор(результат)
    for i := 1 to 10 do
      for j := 1 to 10 do
        vektor[11 - i] := vektor[11 - i] + matrix[i][j];
  end;

  writeln('');
  writeln('ITOGOVOE POLOZHENIE KUBIKOV');
  for i := 1 to n do
    Write(vektor[i]);
  readln;

end.

Последний раз редактировалось Тигрь; 26.11.2011 в 06:23. Причина: Добавлено сообщение


Если бы я был умен - я бы сошел с ума.



 
Ответить с цитированием
Сказали спасибо:
qwer13 (26.11.2011), Kavil (26.11.2011)