1 Востаннє редагувалося LeoDevel (14.01.2013 15:54:27)

Тема: Інтерпретатор арифметичних виразів заданого формату*

Інтерпритатор виразу заданого формату-Вибачте за не правельну постановку завдання.. Правильно так.....Інтерпретатор арифметичних виразів заданого формату

2

Re: Інтерпретатор арифметичних виразів заданого формату*

Не можу розібратися в чому полягай постановка завдання???

3

Re: Інтерпретатор арифметичних виразів заданого формату*

Повністю завдання приведіть і в якому контексті воно викладене.
Наведіть дисципліну, з якої це завдання, тему яку ви зараз проходите із цієї дисципліни або галузь куди відноситься це завдання.

4

Re: Інтерпретатор арифметичних виразів заданого формату*

Інтерпретатор
Матеріал з Вікіпедії — вільної енциклопедії.
На цій сторінці показано нерецензовані зміниНеперевірена версія
Перейти до: навігація, пошук

Інтерпретатор мови програмування (interpreter) — програма чи технічні засоби, необхідні для виконання інших програм, вид транслятора, який здійснює пооператорну (покомандну) обробку, перетворення у машинні коди та виконання програми або запиту (на відміну від компілятора, який транслює у машинні коди всю програму без її виконання).

Інтерпретатори можуть працювати як з вихідним кодом програми (англ. source code), написаним мовою програмування, так і з байт-кодом (інтерпретатори байт-коду).

5

Re: Інтерпретатор арифметичних виразів заданого формату*

А який формат?

6

Re: Інтерпретатор арифметичних виразів заданого формату*

keithfay написав:

Повністю завдання приведіть і в якому контексті воно викладене.
Наведіть дисципліну, з якої це завдання, тему яку ви зараз проходите із цієї дисципліни або галузь куди відноситься це завдання.

Постановка завдання так і звучить ..Тема з дисципліни "Проблемно орієнтовані мови програмування"

7

Re: Інтерпретатор арифметичних виразів заданого формату*

Replace написав:

А який формат?

Думаю, що в постановці форматом нас необмежують..

8

Re: Інтерпретатор арифметичних виразів заданого формату*

keithfay написав:

Інтерпретатор
Матеріал з Вікіпедії — вільної енциклопедії.
На цій сторінці показано нерецензовані зміниНеперевірена версія
Перейти до: навігація, пошук

Інтерпретатор мови програмування (interpreter) — програма чи технічні засоби, необхідні для виконання інших програм, вид транслятора, який здійснює пооператорну (покомандну) обробку, перетворення у машинні коди та виконання програми або запиту (на відміну від компілятора, який транслює у машинні коди всю програму без її виконання).

Інтерпретатори можуть працювати як з вихідним кодом програми (англ. source code), написаним мовою програмування, так і з байт-кодом (інтерпретатори байт-коду).

Це я знаю..В мене по тій темі курсова...ну неможу розібратися, що робити???

9

Re: Інтерпретатор арифметичних виразів заданого формату*

Вибачте за не правельну постановку завдання.. Правильно так.....Інтерпретатор арифметичних виразів заданого формату

Re: Інтерпретатор арифметичних виразів заданого формату*

Наскільки я зрозумів, це щось типу такого.
В людській математиці додавання - це +, множення - це * ну і тд.
Є строка типу:

2 add 4 subtract 2

Ну і нам потрібно написати інтерпритатор, який би замість команди add, додавав, а замість команди subtract - віднімав.
По ідеї, таке реалізувати не є тяжко.

11 Востаннє редагувалося Ярослав (14.01.2013 16:50:03)

Re: Інтерпретатор арифметичних виразів заданого формату*

Треба використовувати стек.
Записати рядок в масив посимвольно, потім його аналізувати, числа додавати в стек, а послідовність букв розуміти як команду. K&R в своїй книзі аналогічний приклад розглядали:
4.4. Внешние переменные http://lib.ru/CTOTOR/kernigan.txt

12

Re: Інтерпретатор арифметичних виразів заданого формату*

Hanter написав:

Наскільки я зрозумів, це щось типу такого.
В людській математиці додавання - це +, множення - це * ну і тд.
Є строка типу:

2 add 4 subtract 2

Ну і нам потрібно написати інтерпритатор, який би замість команди add, додавав, а замість команди subtract - віднімав.
По ідеї, таке реалізувати не є тяжко.

Для мене це трохи складно, С я почав вивчати не давно....Можна докладніше, час піджимає....

13 Востаннє редагувалося Пам'ять не може бути READ (14.01.2013 17:33:08)

Re: Інтерпретатор арифметичних виразів заданого формату*

LeoDevel написав:
Hanter написав:

Наскільки я зрозумів, це щось типу такого.
В людській математиці додавання - це +, множення - це * ну і тд.
Є строка типу:

2 add 4 subtract 2

Ну і нам потрібно написати інтерпритатор, який би замість команди add, додавав, а замість команди subtract - віднімав.
По ідеї, таке реалізувати не є тяжко.

Для мене це трохи складно, С я почав вивчати не давно....Можна докладніше, час піджимає....

Я не сішник, тому не можу написати готову програму, але саму ідею розкажу.
Для початку формуємо 2 масиви.
1 масив - це  математичні знаки чи як воно у матані називається.. (+ - / *).
2 масив - це вже наші (символи|строки) замість яких треба підставляти + - / *.
Далі беремо на озброєння функцію str_replace
у функцію передаємо такі параметри:
1 параметер - це 2 масив.
2 параметер - це 1 масив
3 параметер - це власне наш вираз типу 2 add 2.

Ну і відповідно функція має повернути вже просту строку 2 + 2, яку можна обробити як додавання.

14

Re: Інтерпретатор арифметичних виразів заданого формату*

Кожен раз викликати str_replace недоцільно. Краще використовувати strtok

Re: Інтерпретатор арифметичних виразів заданого формату*

Replace написав:

Кожен раз викликати str_replace недоцільно.

Так в str_replace передається вже повний масив мат знаків, то ж для одного рівняння/виразу функція str_replace виконується лише один раз.

16

Re: Інтерпретатор арифметичних виразів заданого формату*

Якраз масив там не передається. =)

17

Re: Інтерпретатор арифметичних виразів заданого формату*

Дякуєм
...попробуєм...

Re: Інтерпретатор арифметичних виразів заданого формату*

Replace написав:

Якраз масив там не передається. =)

Печально... :(

19

Re: Інтерпретатор арифметичних виразів заданого формату*

Все ж до кінця я не второпав, що потрібно у курсовій: парсити текст на арифметичні вирази чи замінити "моєСловоПлюс" на "+" і т.п.

Для першого:
Якщо у курсовій по тангенсу, який формат, то досить нескладно реалізувати польський інверсний (зворотний) запис.

Для другого:

strtok() з розділителем - пробілом. Формат рядка - операнди, розділені пробілами. А далі - як захочеться: хоч strcmp(), хоч посимвольно, хоч власними алгоритмами - необмежене поле.

Re: Інтерпретатор арифметичних виразів заданого формату*

Bartash написав:

Все ж до кінця я не второпав, що потрібно у курсовій: парсити текст на арифметичні вирази чи замінити "моєСловоПлюс" на "+" і т.п.

Думаю все ж потрібно замінити "моєСловоПлюс" на "+" і т.п.