Тема: Інтерпретатор арифметичних виразів заданого формату*
Інтерпритатор виразу заданого формату-Вибачте за не правельну постановку завдання.. Правильно так.....Інтерпретатор арифметичних виразів заданого формату
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Інтерпретатор арифметичних виразів заданого формату*
Для відправлення відповіді ви повинні увійти або зареєструватися
Інтерпритатор виразу заданого формату-Вибачте за не правельну постановку завдання.. Правильно так.....Інтерпретатор арифметичних виразів заданого формату
Не можу розібратися в чому полягай постановка завдання???
Повністю завдання приведіть і в якому контексті воно викладене.
Наведіть дисципліну, з якої це завдання, тему яку ви зараз проходите із цієї дисципліни або галузь куди відноситься це завдання.
Інтерпретатор
Матеріал з Вікіпедії — вільної енциклопедії.
На цій сторінці показано нерецензовані зміниНеперевірена версія
Перейти до: навігація, пошукІнтерпретатор мови програмування (interpreter) — програма чи технічні засоби, необхідні для виконання інших програм, вид транслятора, який здійснює пооператорну (покомандну) обробку, перетворення у машинні коди та виконання програми або запиту (на відміну від компілятора, який транслює у машинні коди всю програму без її виконання).
Інтерпретатори можуть працювати як з вихідним кодом програми (англ. source code), написаним мовою програмування, так і з байт-кодом (інтерпретатори байт-коду).
Повністю завдання приведіть і в якому контексті воно викладене.
Наведіть дисципліну, з якої це завдання, тему яку ви зараз проходите із цієї дисципліни або галузь куди відноситься це завдання.
Постановка завдання так і звучить ..Тема з дисципліни "Проблемно орієнтовані мови програмування"
А який формат?
Думаю, що в постановці форматом нас необмежують..
Інтерпретатор
Матеріал з Вікіпедії — вільної енциклопедії.
На цій сторінці показано нерецензовані зміниНеперевірена версія
Перейти до: навігація, пошукІнтерпретатор мови програмування (interpreter) — програма чи технічні засоби, необхідні для виконання інших програм, вид транслятора, який здійснює пооператорну (покомандну) обробку, перетворення у машинні коди та виконання програми або запиту (на відміну від компілятора, який транслює у машинні коди всю програму без її виконання).
Інтерпретатори можуть працювати як з вихідним кодом програми (англ. source code), написаним мовою програмування, так і з байт-кодом (інтерпретатори байт-коду).
Це я знаю..В мене по тій темі курсова...ну неможу розібратися, що робити???
Вибачте за не правельну постановку завдання.. Правильно так.....Інтерпретатор арифметичних виразів заданого формату
Наскільки я зрозумів, це щось типу такого.
В людській математиці додавання - це +, множення - це * ну і тд.
Є строка типу:
2 add 4 subtract 2
Ну і нам потрібно написати інтерпритатор, який би замість команди add, додавав, а замість команди subtract - віднімав.
По ідеї, таке реалізувати не є тяжко.
Треба використовувати стек.
Записати рядок в масив посимвольно, потім його аналізувати, числа додавати в стек, а послідовність букв розуміти як команду. K&R в своїй книзі аналогічний приклад розглядали:
4.4. Внешние переменные http://lib.ru/CTOTOR/kernigan.txt
Наскільки я зрозумів, це щось типу такого.
В людській математиці додавання - це +, множення - це * ну і тд.
Є строка типу:2 add 4 subtract 2
Ну і нам потрібно написати інтерпритатор, який би замість команди add, додавав, а замість команди subtract - віднімав.
По ідеї, таке реалізувати не є тяжко.
Для мене це трохи складно, С я почав вивчати не давно....Можна докладніше, час піджимає....
Hanter написав:Наскільки я зрозумів, це щось типу такого.
В людській математиці додавання - це +, множення - це * ну і тд.
Є строка типу:2 add 4 subtract 2
Ну і нам потрібно написати інтерпритатор, який би замість команди add, додавав, а замість команди subtract - віднімав.
По ідеї, таке реалізувати не є тяжко.Для мене це трохи складно, С я почав вивчати не давно....Можна докладніше, час піджимає....
Я не сішник, тому не можу написати готову програму, але саму ідею розкажу.
Для початку формуємо 2 масиви.
1 масив - це математичні знаки чи як воно у матані називається.. (+ - / *).
2 масив - це вже наші (символи|строки) замість яких треба підставляти + - / *.
Далі беремо на озброєння функцію str_replace
у функцію передаємо такі параметри:
1 параметер - це 2 масив.
2 параметер - це 1 масив
3 параметер - це власне наш вираз типу 2 add 2.
Ну і відповідно функція має повернути вже просту строку 2 + 2, яку можна обробити як додавання.
Кожен раз викликати str_replace недоцільно. Краще використовувати strtok
Кожен раз викликати str_replace недоцільно.
Так в str_replace передається вже повний масив мат знаків, то ж для одного рівняння/виразу функція str_replace виконується лише один раз.
Якраз масив там не передається.
Дякуєм
...попробуєм...
Якраз масив там не передається.
Печально...
Все ж до кінця я не второпав, що потрібно у курсовій: парсити текст на арифметичні вирази чи замінити "моєСловоПлюс" на "+" і т.п.
Для першого:
Якщо у курсовій по тангенсу, який формат, то досить нескладно реалізувати польський інверсний (зворотний) запис.
Для другого:
strtok() з розділителем - пробілом. Формат рядка - операнди, розділені пробілами. А далі - як захочеться: хоч strcmp(), хоч посимвольно, хоч власними алгоритмами - необмежене поле.
Все ж до кінця я не второпав, що потрібно у курсовій: парсити текст на арифметичні вирази чи замінити "моєСловоПлюс" на "+" і т.п.
Думаю все ж потрібно замінити "моєСловоПлюс" на "+" і т.п.
Для відправлення відповіді ви повинні увійти або зареєструватися