Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Lisp, Где ошибка в задаче ?

45K
05 ноября 2011 года
botasa
45 / / 31.12.2010
Сижу уже 2-ю неделю, уже с рота пена идет, сил и нервов уже нету ... не могу понять где ошибка ...

Вывести таблицу соответствий для площадей или объемов, если
тауншип (США) = 93,24 кв. км;

Код:
( clear-screen )
 
( setq a 0 c 1 )
( setq townShip 93.24 )
 
( defun fun( x )
        ( loop
        ( setq a ( + a c ) )
        ( setq townShip ( * a townShip ) )
                (
                        ( cond ( ( > a x ) ( return ) )
                        ( princ a )
                        ( print townShip )
                        )
                )
        )
)
 
( princ "input a number : ")
( setq num( read ) )
( princ "township       P")
( fun num )
 
 
( fresh-line )
( princ "Press any key to exit ")
( fresh-line )
( setq xz ( read ) )
( system )
2.1K
05 ноября 2011 года
Norgat
452 / / 12.08.2009
 
Код:
(defun town-ship-table (max)
    (let ((town-ship 93.24))
        (dotimes (i max t)
            (format t "~A : ~A~%" i (* i town-ship)))))


Результат:
Цитата:

CL-USER> (town-ship-table 5)
0 : 0.0
1 : 93.24
2 : 186.48
3 : 279.72
4 : 372.96
T



Оно? Если не оно, то опиши задачу нормально, т.е. что на входе даётся и что должно быть на выходе.


И таки прочитай уже тот же PCL, ибо складывается ощущение, что ты ничерта не понимаешь, что пишешь.

п.с. юзался SBCL.

45K
05 ноября 2011 года
botasa
45 / / 31.12.2010
я вот это написал на С++ как пример того что мне надо на ЛИСПЕ, точнее мой код который выше вроде норм работает просто я чет там напартачил ...

Код:
int main(array<System::String ^> ^args)
{
float townShip = 93.24;
int num;
cin >> num;
system("cls");
cout << "township\tP\n";
for ( int i = 1; i < num; i++ )
{
cout << setw( 8 ) << i << "\t" << i * townShip << endl;
}
system("pause");
return 0;
}

извиняйте конечно но я в гробу видел этот ЛИСП просто надо лабу сдать, делаю уже который день и пена уже с рота валит ...
2.1K
05 ноября 2011 года
Norgat
452 / / 12.08.2009
 
Код:
(defun town-ship-table (max)
    (let ((town-ship 93.24))
        (dotimes (i max t)
            (format t "~A : ~A~%" (+ 1 i) (* (+ 1 i) town-ship)))))


Вот такой вариант реализует твой for из C++ кода один в один, обвязку сам делай.


Цитата:
точнее мой код который выше вроде норм работает просто я чет там напартачил


По мне так у тебя там месиво какое-то и единственное что оно может показать, так это то, что ты даже не пытался разобраться с языком на котором пишешь.

45K
05 ноября 2011 года
botasa
45 / / 31.12.2010
я могу весь код хоть прокомментировать тот что сам написал в нем логика есть но чет не работает ... а пытаться разобраться в ЛИСПЕ мне не надо ... я и так его нигде не буду использовать кроме сдачи лаб по ЛИСПЕ и ирунду под AutoCAD писать и всё ))
( clear-screen ) // очистка экрана

( setq a 0 c 1 ) а = 0, с = 1
( setq townShip 93.24 ) тут townShip = 93.24

( defun fun( x ) имя функции и список аргументов
( loop // цикл
( setq a ( + a c ) ) а = а + 1 или по умнее а += 1
( setq townShip ( * a townShip ) ) // тут townShip множится на а /// а = 1, 2 , 3 ... n ( в зависимости какое число задам, чтоб передать в функию )
(
( cond ( ( > a x ) ( return ) ) // если а > x ( х мое число ) повернуть ( это я понял как выйти вопше из цикла но у меня оно не работает или условие не верна )
( princ a ) // друк а
( print townShip ) // друг товншипов
)
)
)
)

( princ "input a number : ") // сообщение о вводе
( setq num( read ) ) // читаю с клавы число
( princ "township P") // просто выводит
( fun num ) // передаю в функию

// а дальше тут панты ))) не влияет на работу программы
( fresh-line )
( princ "Press any key to exit ")
( fresh-line )
( setq xz ( read ) )
( system )
45K
05 ноября 2011 года
botasa
45 / / 31.12.2010
вот сам результат, оно пропускает или криво работает ...
делал сам отдельно функцию - работало норм а в цикле нет

[ATTACH]5393[/ATTACH]
2.1K
05 ноября 2011 года
Norgat
452 / / 12.08.2009
Цитата:
я могу весь код хоть прокомментировать тот что сам написал в нем логика есть но чет не работает ... а пытаться разобраться в ЛИСПЕ мне не надо ... я и так его нигде не буду использовать кроме сдачи лаб по ЛИСПЕ и ирунду под



Вопрос на засыпку: А начерта эти коментарии нужны то, тут всё и так понятно (но проще переписать, чем пытаться править)? Кот твоей fun ужасен, чем не устраивает моя реализация?


Цитата:
( princ a ) // друк а
( print townShip ) // друг товншипов



Убило...


п.с. и таки укажи используемую реализацию лиспа уже.

45K
05 ноября 2011 года
botasa
45 / / 31.12.2010
Цитата: Norgat
Вопрос на засыпку: А начерта эти коментарии нужны то, тут всё и так понятно (но проще переписать, чем пытаться править)? Кот твоей fun ужасен, чем не устраивает моя реализация?

Убило...



хДД не друг а ДРУК, думаю сам уже додумался ))) ничё бывают опечатки )))))))

моя функция не ужасна, а самая элементарная, твоя не устраивает, потому что у тебя там много того, чего я не знаю и 1-й раз вижу, потом я уже переписывал ее 10 раз но не работает, но всё ровно буду стараться добить ее по своему ... а тауншип - одна из единиц административного деления третьего уровня в США. чтоб не пугался что я тут бред пишу )

2.1K
05 ноября 2011 года
Norgat
452 / / 12.08.2009
Цитата:
потому что у тебя там много того, чего я не знаю и 1-й раз вижу, потом я уже переписывал ее 10 раз но не работает



Может стоит погуглить или открыть книжку? Practical Common Lisp (есть перевод в интернете) или Т.1 Мира Лиспа подойдут идеально. Хотя если ты хочешь дальше пилить код в Си стиле на лиспе, то я тебе в этом не помощник, сам кактус кушай.

Цитата:
хДД не друг а ДРУК, думаю сам уже додумался ))) ничё бывают опечатки )))))))



WTF? o_0

45K
05 ноября 2011 года
botasa
45 / / 31.12.2010
я тебя не понял ты меня с этим приколом ))) забей ... мне книжки не надо ))) я просто напросто хотел исправить как ты пишешь КАКТУС свой ))) и всё ) мне обширных знаний из ЛИСПА не надо ... так как его не буду верняк негде использовать ...
2.1K
05 ноября 2011 года
Norgat
452 / / 12.08.2009
Цитата: botasa
я тебя не понял ты меня с этим приколом ))) забей ... мне книжки не надо ))) я просто напросто хотел исправить как ты пишешь КАКТУС свой ))) и всё ) мне обширных знаний из ЛИСПА не надо ... так как его не буду верняк негде использовать ...



:facepalm:

297
06 ноября 2011 года
koodeer
1.2K / / 02.05.2009
Цитата: botasa
Код:
int main(array<System::String ^> ^args)
{
float townShip = 93.24;
int num;
cin >> num;
system("cls");
cout << "township\tP\n";
for ( int i = 1; i < num; i++ )
{
cout << setw( 8 ) << i << "\t" << i * townShip << endl;
}
system("pause");
return 0;
}


:facepalm:
C++/CLI, native C++, функции DOS - всё в кучу...


P.S. и я бы на вашем месте уделил побольше внимания изучению Lisp: в последнее время функциональное программирование вошло в моду, и становится необходимым знать его, т. к. это резко упрощает создание распараллеливаемых программ. Метапрограммирование, родоначальником коего является Лисп, тоже постепенно начинает проникать в сознание масс.
Конечно, вряд ли на деле придётся много применять этот язык. Но важно знать саму теорию!

45K
06 ноября 2011 года
botasa
45 / / 31.12.2010
Цитата: koodeer
:facepalm:
C++/CLI, native C++, функции DOS - всё в кучу...


P.S. и я бы на вашем месте уделил побольше внимания изучению Lisp: в последнее время функциональное программирование вошло в моду, и становится необходимым знать его, т. к. это резко упрощает создание распараллеливаемых программ. Метапрограммирование, родоначальником коего является Лисп, тоже постепенно начинает проникать в сознание масс.
Конечно, вряд ли на деле придётся много применять этот язык. Но важно знать саму теорию!


 
Код:
C++/CLI, native C++, функции DOS - всё в кучу...

эту строку я не понял, хотел бы услышать ответ по конкретнее - чисто из любопытства ...

а задачу свою я уже сам решил, проснулся и меня просветило, теперь она работает 100 % как я хотел ...

Код:
( clear-screen )

( setq a 0 c 1  res 0)
( setq townShip 93.24 )

( defun fun( x )
    ( loop
    ( setq a ( + a c ) )
    ( setq res ( * a townShip ) )
            ( cond
                    ( ( > a x ) ( return ) )
                    (
               
                        ( princ a )
                        ( princ "          " )
                        ( princ res )
                        ( fresh-line )
                    )
            )
    )
)

( princ "input a number : ")
( setq num( read ) )
( princ "township       P")
( fresh-line )
( fun num )

( fresh-line )
( princ "Press any key to exit ")
( fresh-line )
( setq xz ( read ) )
( system )


а за совет спасибо
9
06 ноября 2011 года
Lerkin
3.0K / / 25.03.2003
Цитата: botasa
 
Код:
C++/CLI, native C++, функции DOS - всё в кучу...

эту строку я не понял, хотел бы услышать ответ по конкретнее - чисто из любопытства ...


 
Код:
...(array<System::String ^> ^args)

C++/CLI

 
Код:
...
cin >> num;
...
cout << "township\tP\n";
...
    cout << setw( 8 ) << i << "\t" << i * townShip << endl;
...

native C++ (и то, смешал)

 
Код:
...
system("cls");
...
system("pause");
...

функции DOS


Цитата: botasa

извиняйте конечно но я в гробу видел этот ЛИСП просто надо лабу сдать, делаю уже который день и пена уже с рота валит ...


Похоже, что не только Lisp, а так же всё, вышеперечисленное.
:facepalm:

45K
06 ноября 2011 года
botasa
45 / / 31.12.2010
извиняйте, у меня нету таких обширных знаний как у вас, как в книгах пишут примеры, где 1-но + второе + в инструкциях к лабам ... мне главное что есть результат а всё остальное пусть подождет )))
7
06 ноября 2011 года
@pixo $oft
3.4K / / 20.09.2006
Понятно,поциент не виноват:)
И да
Цитата:
Lisp, Где ошибка в задаче ?

Сдаётся,ошибка всё же в решении ☺

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог