Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lisp
Войти
Регистрация
Восстановить пароль
 
nutius
0 / 0 / 1
Регистрация: 01.06.2011
Сообщений: 60
#1

Программа, которая для каждой строки из каждого файла вычисляла бы значение по вышеуказанной формуле - Lisp

23.03.2014, 13:43. Просмотров 665. Ответов 13
Метки нет (Все метки)

Здравствуйте, форумчане!
Надеюсь, что вы мне поможете. Столкнулась с такой ситуацией. есть сгенерировано уравнение такого типа:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 (+ (<= rr0 rr5 rr0 rr5) (log (sin (<= (<=
     (square 2.0) (log (* (sin (cube (+ rr0 rr1)))
     (/ (* (* (sin (log rrm)) (cube (+ 1.0 (*
         2.0 (sin (log rrm)))))) (- rr5 0.0)) rr5)))
     (log (* (log (cube (<= (sin rr2) rr5 (log
         (* rr5 rr0)) rr5))) (cube (<= (cube (/ rr5
         (cube (cube (+ rr0 rr1))))) (sin (* (* (+
         1.0 (cube (<= rr0 rr5 rr0 rr5))) rr0) (cube
         (* (log (log (square 1.0))) (+ rrm (sin (square
             1.0))))))) (square 1.0) (* (sin (cube (<=
         rr0 rr5 rr0 rr5))) (exp rr0)))))) (sin (log
     rrm))) (/ rr0 0.0) (+ (sin (log (* (<= (<=
     rr4 rr1 rr0 1.0) (cube (/ rr5 (<= rr0 rr5
     rr0 rr5))) (exp 2.0) (log (+ (sin (<= rr0
     rr5 rr0 rr5)) (<= rr0 rr5 rr0 rr5)))) (log
     (* 2.0 (cube (<= rr0 rr5 rr0 rr5))))))) (log
     (log (sin (<= (* rr2 rr5) (/ rr0 0.0) (<=
         (log rr3) (<= (sin rr2) rr5 rr0 rr5) (<=
         rr4 rr1 rr0 rr5) (log (exp (square 1.0))))
         (<= rr0 rr5 rr0 rr5)))))) (log (* 2.0 (cube
     (<= rr0 rr5 rr0 rr5))))))))
Это уравнение с 7-ю неизвестными, но они все есть в файле. В Файле каждая строка состоит из 8 значений. Надо написать программу, которая для каждой строки из каждого файла вычисляла бы значение по вышеуказанной формуле. и записывала результат в новый столбец.
Пример файла во вложении.

мне подсказали, что уравнение сгенерировано на Лиспе.
Язык Лисп я не знаю...на языке Си понятно как написать программу, кроме записи самого уравнения...а вот как на Лиспе?
http://www.cyberforum.ru/cpp-beginners/thread711860.html
0
Вложения
Тип файла: 7z EPH1286186989v2.7z (793.3 Кб, 4 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2014, 13:43
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Программа, которая для каждой строки из каждого файла вычисляла бы значение по вышеуказанной формуле (Lisp):

Записать имя каждого текстового файла в начало каждой строки этого же файла (кодировка файлов — UTF-8)
Подскажите программу или батник. Проблема в том, что есть много TXT UTF-8...

Как в начало каждой строки каждого текстового файла в текущем каталоге вставить имя этого же файла?
Здравствуйте, подскажите пожалуйста как в текущем каталоге, в начало каждой...

Составить программу, которая по номеру и значению элемента вычисляла значение остальных элементов треугольника
Пусть элементами равностороннего треугольника являются: 1) сторона a; 2)...

Посчитать Si для элементов каждой строки по формуле
Дан двумерный массив а(5,3) Посчитать Si для элементов каждой строки по...

Напечатать матрицу, минимальное значение каждой строки, среднее арифметическое каждого столбца
Создайте матрицу (5 строк, 7 столбцов), которая содержит двузначное случайное...

13
helter
Эксперт по математике/физике
3741 / 2769 / 297
Регистрация: 12.03.2013
Сообщений: 5,104
23.03.2014, 16:09 #2
Уравнение - это равенство, содержащее неизвестные. У вас знака равно я нигде не вижу.

Также это не похоже на осмысленное выражение. В лиспе сначала идёт знак действия, потом аргументы: (+ 1 2 3) есть 6. У вас: первый + означает, что будут складываться числа. Трудно разобраться в вашей записи, но первый аргумент для плюса - это (<= rr0 rr5 rr0 rr5), что в обычной математической записи означает цепочку неравенств rr0 <= rr5 <= rr0 <= rr5. Это логическое выражение. То есть плюсу вы хотите дать аргумент "истина" или "ложь". Несоответствие типов.

Короче, генератор не генерирует осмысленную математику.
2
Catstail
Модератор
23531 / 11641 / 2034
Регистрация: 12.02.2012
Сообщений: 18,980
23.03.2014, 16:56 #3
Дайте математическую постановку задачи. Если она осмыслена (и реализуема на C/C++), то ее можно и на Лиспе реализовать.
0
ur_naz
Заблокирован
23.03.2014, 20:38 #4
Цитата Сообщение от nutius Посмотреть сообщение
(+ (<= rr0 rr5 rr0 rr5) (log (s...
что-то я сомневаюсь чтоб можно было булевые переменные складывать
0
castorsky
1973 / 1076 / 87
Регистрация: 29.11.2013
Сообщений: 3,354
25.03.2014, 02:03 #5
ur_naz, http://www.cyberforum.ru/cgi-bin/latex.cgi?x \oplus y \equiv x \bar{y} + \bar{x} y булева алгебра. Здесь + есть дизъюнкция, но все же. Если эта алгебра нам непонятна, это не значит что ее не существует.
Цитата Сообщение от ur_naz Посмотреть сообщение
чтоб можно было булевые переменные складывать
Не сомневайтесь, можно.
0
helter
Эксперт по математике/физике
3741 / 2769 / 297
Регистрация: 12.03.2013
Сообщений: 5,104
25.03.2014, 02:09 #6
Это у вас в схеме можно плюс переопределять, а в CL стандартные функции и макросы неприкосновенны. :P
0
castorsky
1973 / 1076 / 87
Регистрация: 29.11.2013
Сообщений: 3,354
25.03.2014, 02:16 #7
ога мы такие
Lisp
1
2
3
4
> (define (+ x y) (* x y))
> (+ 4 5)
20
>
0
ur_naz
Заблокирован
25.03.2014, 02:21 #8
Цитата Сообщение от castorsky Посмотреть сообщение
Не сомневайтесь, можно.
Не стоит путать абстрактные понятия с программированием. В лучшем случае получите ошибку компилятора, особенно если на ноль делить...
(/ rr0 0.0)
0
helter
Эксперт по математике/физике
3741 / 2769 / 297
Регистрация: 12.03.2013
Сообщений: 5,104
25.03.2014, 02:22 #9
Это потому что у вас макросы гигиенические.

Не по теме:

Впрочем, рэкет вроде значительно превосходит схему в отношении языкостроительства. castorsky, с вас туториал!

0
castorsky
25.03.2014, 02:32
  #10

Не по теме:

Цитата Сообщение от helter Посмотреть сообщение
castorsky, с вас туториал!
Не понял. Ракета ракета наследник схемы.
ur_naz, Даже линукс умеет делить на ноль

0
ur_naz
Заблокирован
25.03.2014, 03:05 #11
Во всяком случае редактор формул никто не отменял...
0
helter
Эксперт по математике/физике
3741 / 2769 / 297
Регистрация: 12.03.2013
Сообщений: 5,104
25.03.2014, 03:34 #12
Цитата Сообщение от castorsky Посмотреть сообщение
Не понял. Ракета ракета наследник схемы.
Наследник. Но в схеме недомакросы, а в рэкете что-то очень умное, хотя мудрёное. Я пытался разбираться и не разобрался. Рэкет же и позиционируется не просто как диалект, а как языковая лаборатория. Вон, и Грэм свой арк не на CL писал, а на PLT Scheme.
0
castorsky
25.03.2014, 04:01
  #13

Не по теме:

Если Вы надеетесь что я что-то проясню, то напрасно. Я очень слабо разбираюсь в лиспе.

0
helter
25.03.2014, 04:23     Программа, которая для каждой строки из каждого файла вычисляла бы значение по вышеуказанной формуле
  #14

Не по теме:

Цитата Сообщение от castorsky Посмотреть сообщение
Если Вы надеетесь что я что-то проясню, то напрасно. Я очень слабо разбираюсь в лиспе.
Ну, не прямо сейчас...

0
25.03.2014, 04:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2014, 04:23
Привет! Вот еще темы с ответами:

Составить программу, которая по заданному номеру и значению соответствующего элемента вычисляла бы значение всех остальных элементов треугольника
Пусть элементами прямоугольного равнобедренного треугольника являются: 1)...

Составить программу, которая по заданному номеру и значению соответствующего элемента вычисляла бы значение всех остальных элементов треугольника.
Составить программу (используя оператор выбора case), которая по заданному...

Найти сумму элементов для каждой строки и произведение для каждого столбца матрицы
-Двумерный массив из 3 строк и 5 столбцов. - Заполнить случайными числами и...


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

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

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