| 15.07.2010, 05:53 | |
|
Ответы с готовыми решениями:
1272
Элементарные программы, для лучшего понимания языка...
Литература для лучшего понимания сути программирования |
|
Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
|
|
| 06.08.2010, 21:04 | |
|
fasked, ну это если писать реальный язык которым ты собираешся пользоватся, а не mCF+...
я же для тренировки хочу...Не по теме: а с++ на чём писался? на с? а с?
0
|
|
| 06.08.2010, 21:15 | |||
|
Не по теме:
0
|
|||
|
Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
|
|
| 06.08.2010, 21:16 | |
|
0
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||
| 06.08.2010, 21:20 | ||
![]() Добавлено через 1 минуту Вот вкратце то же самое, если с английским туго...
1
|
||
| 06.08.2010, 21:23 | |
|
1
|
|
|
Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
|
|
| 06.08.2010, 21:27 | |
|
fasked, Nameless One, спс!...
![]() Добавлено через 2 минуты fasked, но написать компилятор для языка L нужет какой нить другой язык, так?
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 07.08.2010, 04:55 [ТС] | ||||||
|
Поднадоело играть и решил написать что-то типа калька, который вычисляет введенные пользователем выражение... Пока для +-/*
Получилось уныло чуть более чем полностью... 1) Считает только одно выражение. То есть 2+3-4 не покатит никак. 2) Сам код абсолютно не адекватен... Большие функции, наверняка это можно сделать короче. 3) Не будет работать с отрицательными числами. 4) Ну и прочие солидные и не очень недостатки. Просьба помочь, поправить и направить куда нужно) Код:
1
|
||||||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|||||||||||
| 07.08.2010, 07:13 | |||||||||||
|
Тоже калькулятор, тоже пока только операторы + - * /, только в постфиксной нотации (т.е. выражение заданно в виде: 27 5 + 2 6 / * (соотв. (27 + 5) * 2 / 6)):
calculator.h
main.cpp
Кстати, существует довольно-таки несложный алгоритм для преобразования выражения в инфиксной нотации в выражение в постфиксной нотации. ИМХО, именно таким образом и нужно запрограммировать калькулятор (ввел выражение в инфиксной нотации -> перевел в постфиксную -> вычислил), т.к. с появлением в нем хотя бы тех же скобок для переопределения приоритетов реализация сильно усложниться.
0
|
|||||||||||
|
Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
|
|||||||||||
| 07.08.2010, 09:50 | |||||||||||
|
Постепенно дополняю свой интерпретатор. Новые возможности: обявление переменных, инициализация переменных, вывод переменных. Пример программы:
Добавлено через 1 минуту
Протестируйте пожалуйста...
0
|
|||||||||||
|
|
|
| 07.08.2010, 10:01 | |
|
По поводу выражений очень много теории в этой теме: Пишем свой интерпретатор языка BASIC
Но там очень много букв, так что нужные места придётся поискать. Но в пределах первых 20 постов уже обозначена постановка задачи: вместо калькулятора простенький интерпретатор
2
|
|
|
Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
|
||||||
| 07.08.2010, 10:35 | ||||||
|
Теперь возможна и инициализация "на месте":
1
|
||||||
|
|
|
| 07.08.2010, 10:48 | |
|
nikkka, я в твоём коде не разбирался, но беглого взгляда оказалось достаточно, чтобы увидеть два потенциальных косяка. В функциях wisi и stoi у тебя возможен выход из процедуры с неинциализированным значением (например, при ошибке во внутренней логике в точке вызова). Такой код может вызвать трудноотлавливаемые ошибки исполнения, потому что точка проявления ошибки может оказаться слишком далеко от точки возникновения ошибки. Я бы в конце этих функций поставил ловушки недопустимых ситуаций (assert или на худой конец просто abort). Это позволит сократить дистанцию от точки возникновения ошибки до точки проявления. Вообще добавление статического контроля в виде assert'ов очень сильно упрощает жизнь и сокращает время отладки. 99% ошибок в моей практике ловится именно на assert'ах, а потому для их разбра в львиной доле случаев даже отладчик не нужен
1
|
|
|
Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
|
|
| 07.08.2010, 10:53 | |
|
Evg, поправлю.
а как зделать так что бы я мог написать к слову x=54+12?
0
|
|
|
|
|
| 07.08.2010, 11:00 | |
|
Как в твоей программе - не знаю, мне просто лень было с ней разбираться
Как делать по науке - дал ссылку выше. Про грамматический анализ, насколько я понял, ты прочитал. Далее идут пояснения, как из всего этого сделать лексический анализ. Тут просто вещь такая, что это нужно взять и один раз сделать самому. После чего вдруг сразу станет ясно очень многое. #pragma по началу не верил в то, что самому можно написать интерпретатор, обладая лишь базовыми знаниями. Теперь, думаю, он понимает, что написать можно всё что угодно, вопрос лишь во времени
1
|
|
|
|
|||||||
| 07.08.2010, 16:36 | |||||||
1
|
|||||||
| 07.08.2010, 16:41 | |
|
0
|
|
| 07.08.2010, 16:50 [ТС] | |
|
Не по теме: fasked, Красиво все через стек закручено. I like it
0
|
|
|
|
|||
| 07.08.2010, 16:51 | |||
|
Добавлено через 1 минуту
0
|
|||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||
| 07.08.2010, 17:29 [ТС] | |||||||||||
|
Мда... Видимо получилось хуже чем ночью...
Const_strings.h
Main.cpp
0
|
|||||||||||
| 07.08.2010, 17:29 | |
|
Набор задачь для тренировки и улучшения понимания программирования Проверить на правильность и закомментировать весь код для лучшего понимания Нужны задачи для тренировки
Нужны задачи для тренировки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сезонность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|