Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 06.12.2011
Сообщений: 16
1

Найти в каждой строке матрице максимальный и минимальный элементы и поместить их на место первого и последнего элемента строки соответственно. F(N,M)

12.01.2014, 15:05. Просмотров 763. Ответов 3
Метки нет (Все метки)

Найти в каждой строке матрице максимальный и минимальный элементы и поместить их на место первого и последнего элемента строки соответственно. F(N,M) N<=20, M<=10.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2014, 15:05
Ответы с готовыми решениями:

Массив: Найти в каждой строке матрицы максимальный и минимальный элементы и поместить их на место первого и последнего элемента строки соответственно.
Помогите решить еще задачую. Найти в каждой строке матрицы максимальный и минимальный элементы и...

Найти в каждой строке минимальный и максимальный элементы и поместить их на место первого и последнего элемента строки соответственно
Помогите найти ошибку) неприсваивает program mn; uses crt; Var i,j,n,max,min,l,b:integer;...

Найти в каждой строке матрицы максимальный и минимальный элементы и поместить их на место первого и последнего элемента строки соответственно
Найти в каждой строке матрицы максимальный и минимальный элементы и поместить их на место первого...

В матрице найти наибольший и наименьший элементы и поместить их на место первого и последнего элемента матрицы соответственно (Pascal -> C++)
В заданной матрице D найти наибольший и наименьший элементы и поместить их на место первого и...

3
493 / 426 / 56
Регистрация: 29.04.2011
Сообщений: 443
12.01.2014, 15:36 2
Лучший ответ Сообщение было отмечено как решение

Решение

если я правильно понял: "поместить" - не значит "поменять местами".
Lisp
1
2
3
4
5
6
7
8
9
10
11
(defun F (l)
    (cond
        ((null l) nil)
        (t (let* ((mn (apply 'min (car l)))
                  (mx (apply 'max (car l)))
                  (l1 (cons mx (cdar l))))
            (cons (append (butlast l1) (list mn)) (F (cdr l)))))))
 
(f '((1 2 3 4 5) (5 4 3 2 1) (5 -2 6 3 5)))
 
==> ((5 2 3 4 1) (5 4 3 2 1) (6 -2 6 3 -2))
3
2303 / 1061 / 77
Регистрация: 12.03.2013
Сообщений: 4,978
12.01.2014, 15:58 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
(defun fn (a)
  (declare (type (array fixnum (* *)) a))
  (destructuring-bind (n m) (array-dimensions a)
    (dotimes (i n)
      (let ((v (make-array m
                           :element-type (array-element-type a)
                           :displaced-to a
                           :displaced-index-offset (* i m))))
        (destructuring-bind (min max)
            (iter (for x in-vector v)
                  (minimize x into min)
                  (maximize x into max)
                  (finally (return (list min max))))
          (setf (aref v  0    ) max
                (aref v (1- m)) min)))))
  a)
 
(fn (make-array '(3 4)
                :element-type     'fixnum
                :initial-contents '((1 2 3 4)
                                    (5 6 7 8)
                                    (9 1 7 3))))
 
;; #2A((4 2 3 1) (8 6 7 5) (9 1 7 1))
3
Модератор
Эксперт Python
27612 / 14621 / 2872
Регистрация: 12.02.2012
Сообщений: 23,999
Записей в блоге: 4
12.01.2014, 21:49 4
Lisp
1
2
3
4
5
6
7
8
9
10
11
(defun task (matr)
  (mapcar #'(lambda (row)
              (let ((max (apply 'max row))
                    (min (apply 'min row)))
                   (cons min (append (removef max (removef min row)) (list max))))) matr))
           
==> task
 
(task '((1 2 -1 -2 4 1) (8 9 -5 1 4 -6)))
 
==> ((-2 1 2 -1 1 4) (-6 8 -5 1 4 9))
Добавлено через 38 минут
А, максимум нужно в начало:

Lisp
1
2
3
4
5
6
7
8
9
10
11
(defun task (matr)
  (mapcar #'(lambda (row)
              (let ((max (apply 'max row))
                    (min (apply 'min row)))
                   (cons max (append (removef max (removef min row)) (list min))))) matr))
           
==> task
 
(task '((1 2 -1 -2 4 1) (8 9 -5 1 4 -6)))
 
==> ((4 1 2 -1 1 -2) (9 8 -5 1 4 -6))
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2014, 21:49

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти в каждой строке матрицы max и min и поместить их на место первого и последнего элемента строки
Задание: Найти в каждой строке матрицы максимальный и минимальный элементы и поместить их на...

Найти в каждой строке матрицы минимальный и максимальный элементы и поменять их с первым и последним элементом строки соответственно
1. Найти в каждой строке матрицы минимальный и максимальный элементы и поменять их с первым и...

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их с первым и последним элементом строки соответственно
дана матрица B.найти в каждой строке матрицы максимальный и минимальный элементы и поменять их с...

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их с первым и последним элементом строки соответственно.
Помогите лабу сделать. Буду вдвойне благодарна, если напишете еще и комментарии. Дана...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.