Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 899

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Помогите решить проблему с выводом данных. Имеется задача (код для решения сделал, а вывести правильно донные не могу):

Даны два числа n и m. Создайте двумерный массив [n][m] и заполните его по следующим правилам: Числа, стоящие в строке 0 или в столбце 0 равны 1 (A[0][j]=1, A[i][0]=1). Для всех остальных элементов массива A[i][j]=A[i-1][j]+A[i][j-1], то есть каждый элемент равен сумме двух элементов, стоящих слева и сверху от него.

Формат входных данных

Программа получает на вход два числа n и m.

Формат выходных данных

Выведите данный массив, отводя на вывод каждого числа ровно 6 символов.

Пример
Ввод 4 6
Вывод 1 1 1 1 1 1
1 2 3 4 5 6
1 3 6 10 15 21
1 4 10 20 35 56
Помогите пожалуйста!

Приложение:
  1.  
  2.  
  3. program Project2;
  4.  
  5. {$APPTYPE CONSOLE}
  6.  
  7. uses
  8. SysUtils;
  9.  
  10. var
  11. n,j,i,m:integer;
  12. a:array[1..1000,1..1000]of integer;
  13. begin
  14. readln(n,m);
  15. for i:=1 to n do
  16. for j:=1 to m do
  17. begin
  18. a[1,j]:=1;
  19. a[i,1]:=1;
  20. a[i,j]:=a[i-1,j]+a[i,j-1];
  21. end;
  22. for i:=1 to n do
  23. begin
  24. for j:=1 to m do
  25. write(a[i,j],' ');
  26. writeln;
  27. end;
  28. readln;
  29.  
  30. end.


prog-mer Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: prog-mer (статус: Посетитель)
Вопрос отправлен: 18 марта 2010, 15:08
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, prog-mer!
перепишите вывод так
write(a[i,j]:6);

или можно очень грубо написать ещё так. (это просто как вариант решения в лоб, грязно, но иногда полезны любые методы...)

if a[i,j] < 10 then write('.....')
else if a[i,j] < 100 then write('....')
else if a[i,j] < 1000 then write('...')
else if a[i,j] < 10000 then write('..')
else if a[i,j] < 100000 then write('.');
write(a[i,j]);
я специально поставил точки вместо пробелов, что бы было видно сколько их там.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 18 марта 2010, 15:29
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 18 марта 2010, 15:13; участников в обсуждении: 1.
prog-mer

prog-mer (статус: Посетитель), 18 марта 2010, 15:12 [#1]:

Выводить нужно так:

Вход:

4 6

Выход:

1 1 1 1 1 1
1 2 3 4 5 6
1 3 6 10 15 21
1 4 10 20 35 56
prog-mer

prog-mer (статус: Посетитель), 18 марта 2010, 15:13 [#2]:

Вот ссылка на задачу: http://informatics.mccme.ru/moodle/mod/statements/view3.php?id=282&chapterid=362

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:42
Выполнено за 0.02 сек.