Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,709
Записей в блоге: 14

Еще задача из раздела "С для начинающих" - печать части квадратной матрицы

07.01.2014, 19:57. Показов 696. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно вывести (например, по строкам) часть квадратной матрицы, заданной на чертеже:

https://www.cyberforum.ru/atta... 1389090755

Добавлено через 3 минуты
Вот мое решение (в два действия):

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
;; Подготовка списка пар:
 
(defun make-reg (n)
 (let* ((res nil)
        (odn (oddp n)) 
        (k (if odn (\ n 2) (1- (\ n 2)))))
       (if odn (push (list (\ n 2) (\ n 2)) res)
                    (push (list (1- (\ n 2)) (1+ (\ n 2))) res))
       (dotimes (i k nil)
          (let ((b (caar res)) (e (cadar res)))
               (push (list (- b 1) (+ e 1)) res)))
       (if odn        
           (append (reverse res) (cdr res))
           (append (reverse res) res))))
 
;; собственно обработка:
 
(defun prmatr (matr)
 (let* ((l (length matr))
        (k (if (oddp l) 1 0)))
       (mapcar #'(lambda (p r) (subseq r (car p) (+ k (cadr p)))) (make-reg l) matr)))
               
;; Проверка:
 
(prmatr '((1 2 3) (4 5 6) (7 8 9)))
 
==> ((2) (4 5 6) (8))
 
(prmatr '((1 2 3 4) (5 6 7 8) (9 10 11 12) (13 14 15 16)))
 
==> ((2 3) (5 6 7 8) (9 10 11 12) (14 15))
 
(prmatr '((1 2 3 4 5) (6 7 8 9 10) (11 12 13 14 15) (16 17 18 19 20) (21 22 23 24 25)))
 
==> ((3) (7 8 9) (11 12 13 14 15) (17 18 19) (23))
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.01.2014, 19:57
Ответы с готовыми решениями:

Еще задача из раздела "С для начинающих" - кратчайший палиндром
Списковая формулировка: Дан список. Необходимо, добавляя начальные символы в конец списка, получить палиндром минимальной длины. ...

Еще задача из раздела "С для начинающих" - перевод из постфиксной записи в инфиксную
Дана алгебраическая формула в постфиксной записи. Получить из нее инфиксную (обычную) запись со скобками. Т.е. (a b c * +) => (b * c)...

Подсчет похожих строк матрицы (из раздела C++ для начинающих)
Исходная формулировка: "Дана целочисленная матрица размерности m х n, элементы значения от 0 до 100. Различные строки матрицы назовем...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.01.2014, 19:57
Помогаю со студенческими работами здесь

Clojure Задача из раздела "С для начинающих" - выделить повторения
Из произвольного списка выделить серии стоящих подряд одинаковых элементов. Мое решение (простая рекурсия): (defun task...

Задача из раздела "С для начинающих" - обработка текстового файла
Вот такая задача была опубликована в разделе "С для начинающих": В конец каждой строки текстового файла через пробел добавляется...

Задача из раздела "С++ для начинающих" (шифр Цезаря)
Некое сообщение закодировано шифром Цезаря (циклическая перестановка букв) с неизвестным знаменателем. Известно, что знаменатель не...

Задача из раздела "С++ для начинающих" (шифр Цезаря)
Некое сообщение закодировано шифром Цезаря (циклическая перестановка букв) с неизвестным знаменателем. Известно, что знаменатель не...

Задача из раздела "С для начинающих" - матрица Вандермонда
Дан список (x y ... z). Получить из него матрицу \begin{pmatrix}x & y & ... & z \\ {x}^{2} & {y}^{2} & ... & {z}^{2}\\...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru