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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2011, 01:36   #1
Чай_ник
Пользователь
 
Регистрация: 05.12.2010
Сообщений: 22
Вопрос Нахождение максимума из N чисел. LISP

Код:
(defun maximum(a b)
(
/ (+ (+ a b) (abs (- a b))) 2
))

(defun max (n k x2)
(cond 
	((<  k n)
		(+ k 1)
		(write-string "Введите число: ")
		(setq x1 (read))
		(setq x2 (maximum x1 x2))
	)
	(t x2)
)
)

(write-string "Введите количество: ")
(setq x1 (read))

(write-line "")
(write-string "MAX: ")
(write (max n 0 0))
(write-line "")

(write-line "")
(write-line "Press ENTER")
(read-char)
здесь есть косяк, но я сам не силен в лиспе, не могу найти в чем дело. программа по сути должна находить масимум из введенных n чисел. посмотрите пожалуйста. добирается до вывода "MAX:" и всё(((
Я у мамы дурачок))
Чай_ник вне форума Ответить с цитированием
Старый 03.06.2011, 18:25   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

По соглашению, закрывающие скобки пишут на одной строке.
Что у вас не так не разбирался. Вот набросал пример:
Код:
(defun read-number (&optional (prompt "Введите число: "))
  (write-string prompt)
  (read))
 
(defun biggest (arg-1 arg-2)
  (if (> arg-1 arg-2) arg-1 arg-2))
 
(defun find-max (a-number)
  (if (yes-or-no-p "Продолжить?")
      (biggest a-number (find-max (read-number)))
      a-number))        
  
(defun find-max-of (count a-number)
  (if (= count 1)
      a-number
      (biggest a-number (find-max-of (1- count) (read-number)))))
 
(format t "Максимум: ~a~%" (find-max (read-number)))
(format t "Максимум: ~a~%" (find-max-of (read-number "Введите количество чисел: ") (read-number)))
find-max запрашивает каждый раз, нужно ли вводить следующее число, а find-max-of считывает столько чисел, сколько указано первым аргументом

Последний раз редактировалось netrino; 03.06.2011 в 19:59. Причина: добавил find-max-of
netrino вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ нахождение максимума в Массиве frixer Помощь студентам 4 10.03.2011 17:05
нахождение максимума и минимума ф-ции в delphi Tatusya Помощь студентам 8 24.06.2010 18:12
Нахождение минимума и максимума графика в Delphi BOOFER Помощь студентам 1 20.06.2010 10:12
Нахождение минимума и максимума в трехмерном массиве 1234 Помощь студентам 11 26.05.2008 16:23
3 максимума из N чисел Artem1987 Помощь студентам 2 23.12.2007 09:08