Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2013, 17:20   #1
hottab1
Пользователь
 
Регистрация: 03.10.2012
Сообщений: 23
Восклицание Заполнение двухмерного массива(символами)

Здравствуйте! Я бы хотел попросить у Вас помощь. Нужно заполнить двухмерный массив символами, то есть на входе дается слово пурсеооср, на выходе должен быть массив вот такого вида:
п р о
ц е с
с о р
То есть слово должно быть раскодировано по принципу зигзага. Есть пример с числами, выводит просто числа зигзагом:
Код:
const
  place = 4;

var
  i, j, n, m, h, s: word;

begin
  readln(n, m);
  for i := 1 to n do
  begin
    for j := 1 to m do
    begin
      h := i + j - 2;
      s := (1 + h) * h div 2;
      if h > n then
        dec(s, (1 + h - n) * (h - n) div 2);
      if h > m then
        dec(s, (1 + h - m) * (h - m) div 2);
      if h >= n then
        dec(s, h - n + 1);
      write((s + j):place);
    end;
    writeln;
  end;
  readln;
end.
Ссылка на тему:
http://www.programmersforum.ru/showt...12#post1183412
Помогите пожалуйста
hottab1 вне форума Ответить с цитированием
Старый 26.02.2013, 17:50   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,317
По умолчанию

Код:
var
  i, j, n, m, h, s: word;
  str: string;
 
begin
  readln(str);
  m := length(str);
  n := round(sqrt(m));
  while (n > 1) and (m mod n <> 0) do
    dec(n);
  m := m div n;
  for i := 1 to n do
  begin
    for j := 1 to m do
    begin
      h := i + j - 2;
      s := (1 + h) * h div 2;
      if h > n then
        dec(s, (1 + h - n) * (h - n) div 2);
      if h > m then
        dec(s, (1 + h - m) * (h - m) div 2);
      if h >= n then
        dec(s, h - n + 1);
      write(str[s + j], ' ');
    end;
    writeln;
  end;
  readln;
end.
Протестировал на pcrseoosr (т.к. ideone.com отказался воспринимать русские буквы).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 26.02.2013, 20:01   #3
hottab1
Пользователь
 
Регистрация: 03.10.2012
Сообщений: 23
По умолчанию

Большое спасибо! Какой раз уже меня выручаете!)
hottab1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal. Заполнение двухмерного массива hottab1 Помощь студентам 12 05.02.2013 17:56
Заполнение символами(использование манипулятор) MoNsTeRmEn Общие вопросы C/C++ 1 18.11.2012 11:10
Заполнение двухмерного масиива Иварунька Паскаль, Turbo Pascal, PascalABC.NET 1 16.11.2012 20:06
Заполнение двухмерного массива _PrizraK_ Общие вопросы Delphi 1 01.05.2011 14:23
заполнение массива русскими символами и вывод их на экран askerpro Visual C++ 4 09.11.2010 19:01