|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.07.2013, 09:55 | #1 |
Регистрация: 27.07.2013
Сообщений: 6
|
Вывод чисел
"Напишите программу, которая выводит на экран квадратную числовую таблицу размера n*n, имеющую следующий вид при n = 5:"
1 2 3 4 5 5 1 2 3 4 4 5 1 2 3 3 4 5 1 2 2 3 4 5 1 Прошу, помогите разобраться с алгоритмом выведения. Тут вроде все просто: задаем переменную n она же количество строк и столбцов, а за одно переменные i и j. Переменная i контролирует цикл, выводящий строки, а пер. j контролирует цикл, выводящий столбцы: ... for i:=1 to n do begin for j:=1 to n do begin ... end; end; ... Но вот в чем загвоздочка: я никак не могу понять, каким образом выводятся цифры до 1 в прямом порядке (т.е. как в последней строке 2345 и 1 !) Подскажите алгоритм, пожалуйста. |
27.07.2013, 11:03 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
На вскидку:
Код:
I'm learning to live...
|
27.07.2013, 12:45 | #3 |
Регистрация: 27.07.2013
Сообщений: 6
|
И вправду, хитро использовать mod (а я дубасил по 5 пять переменных...). Но опять не получается правильный результат, хотя программка резво компилируется. В силу особенностей задания я несколько изменил программу, а именно, во второй строке должна выводиться цифра 5, там алгоритм как бы перетягивает единицу в конец строки, а цифры, начиная с конца идут с ней, как показано на веху. Но опять не получилось. Вот моя программка:
Код:
Последний раз редактировалось Илья Дикушин; 27.07.2013 в 12:53. |
27.07.2013, 14:28 | #4 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
Это циклический сдвиг массива. Здесь, ИМХО, даже квадратную матрицу использовать не надо. Алгоритм решения задачи такой:
1. У нас есть исходный одномерный массив. Мы его выводим на экран, как первую строку как бы матрицы. 2. Сдвигаем циклически массив вперёд на одну позицию и выводим полученную строку на экран, как очередную строку нашей матрицы. Шаг два повторяем до тех пор, пока у нас не будет выведено n строк нашей матрицы на экран. Циклический сдвиг элементов одномерного массива смотрите здесь: http://www.programmersforum.ru/showp...6&postcount=29 Последний раз редактировалось Вадим Мошев; 27.07.2013 в 14:32. |
27.07.2013, 14:34 | #5 |
Форумчанин
Регистрация: 23.11.2010
Сообщений: 530
|
необходимо вывести значения "с лёту"? или подойдет решение с двумерным массивом?)
|
27.07.2013, 15:04 | #6 |
Регистрация: 27.07.2013
Сообщений: 6
|
Я думаю, что с лету. А на счет циклического сдвига я думал, но нет, не подошло.
|
27.07.2013, 15:32 | #7 |
Форумчанин
Регистрация: 23.11.2010
Сообщений: 530
|
жаль, с квадратной матрицей можно было бы наподобие такого сделать
Код:
Код:
Последний раз редактировалось unbanned; 27.07.2013 в 19:33. |
28.07.2013, 11:48 | #8 |
Регистрация: 27.07.2013
Сообщений: 6
|
Первый алгоритм с матрицей остроумен. Мне понравился 3-й цикл изменения переменных в матрице. Играем с переменной val. И первый код оказался универсальным, если задавать переменную n, а не иметь её в константе. Посибки)) А то всю голову изломал. То мы код взламываем, то код взламывает нас...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод чисел | vovken1997 | Паскаль, Turbo Pascal, PascalABC.NET | 9 | 16.11.2012 13:55 |
Вывод чисел | Dima-War | Общие вопросы C/C++ | 2 | 27.03.2012 20:53 |
Вывод трехзначных чисел | Dark Raven | Помощь студентам | 1 | 18.03.2012 11:44 |
Вывод чисел | Matt_Tuck | Фриланс | 11 | 15.03.2010 23:03 |