|
|
Другие темы раздела | |
C++ Меню и список Здравствуйте форумчане. Помоги пожалуйста в следующем вопросе: У меня есть 2связный список, написано меню. Но в моменте когда написано make a list и delete custom необходимо чтобы выводились: Введите элемент и номер. вот сам код: #ifndef __list_h #define __list_h #include <iostream> https://www.cyberforum.ru/ cpp-beginners/ thread41194.html |
C++ Здравствуйте! Не могу поместить class в один файл с программой. file.hpp #include "Cat.hpp" // здесь классы "2)" Cat::Cat(int initialAge) { itsAge = initialAge; } Cat::~Cat() { |
C++ Массивы строк
https://www.cyberforum.ru/ cpp-beginners/ thread41179.html Привет всем! Задан массив строк. Как узнать который символ встечаетса найбольшое количество раз в етом массиве? |
C++ вывод на экран набор треугольников и квадратов, которые произвольно двигаются и меняют размер Please, help me!!! Вот текст программы, которая выводит на экран набор треугольников и квадратов, которые произвольно двигаются и меняют размер только квадратов. Проблема в том, что необходимо исправить код, чтоб фигуры не исчезали за экран (т.е. 640х460) и были компактным набором, т.е. двигались неменяя своего положения относительно друг друга и стукаясь об стенку экрана меняли свое... https://www.cyberforum.ru/ cpp-beginners/ thread41152.html |
Округление дробного числа до целого в большую сторону. C++ Доброго дня. Я новичок в программирование на Visual C++. Проблема такая программа должна считать кол-во месяцев, если числа целые то программа шла дальше, если дробное то (например 3.33333) программа не округляет это число (в большую сторону) до 4. Перелопатил тонны литературы, но пропустил или не нашёл этого, большая просьба написать функцию которая могла бы это делать, или способ какой. |
C++ Код из Delphi в C++
https://www.cyberforum.ru/ cpp-beginners/ thread41137.html Нужно написать курсовую на C++. Сам я в программировании плохо шарю (не программист). Попросил у народу помощи, помогли. Но решение на Delphi: {$APPTYPE CONSOLE} type byteset=set of byte; var d:array of longint; procedure c; var a,b,i:longint; |
C++ массив структур и функции
https://www.cyberforum.ru/ cpp-beginners/ thread41103.html Разработать модель прайс-листов по комплектующим. Каждую единицу оборудования должна описывать соответствующая структура (например, структура, описывающая видеокарты или мониторы), объект которой может входить в прайс-лист. Соответственно, прайс-лист - это массив структур, каждая из которых хранит один из вариантов оборудования и его цену. Написать функции для создания, удаления,... |
C++ Таймер не работает в Turbo C++ Реализовал таймер в Visual C++. #include "stdafx.h" #include <iostream.h> #include <conio.h> #include <time.h> #include <stdio.h> #include <stdlib.h> const int N=100000000; |
C++ не могу завершить код :(
https://www.cyberforum.ru/ cpp-beginners/ thread41093.html он меняет 1 слово из фаила example.txt затем создоёт vasea-out.txt с уже изменёным текстом.. но он меняет только 1 слово.. как сделать чтобы он менял болише слов к приемру в example.txt написано "Вася хороший мальчик" водим "Вася хороший" затем водим "Жора плохой" и получаем в vase-out.txt "Жора плохой мальчик" за ранее спасибо #include <iostream> #include <fstream> |
C++ MS VC++ 6.0:Как "подавить" выдачу конкретных варнингов в конкретных местах? Не хочу, чтобы выдавались конкретные варнинги, относящиеся к определённым областям заданных файлов. Как это сделать. Про "Warning Level" в насторйках студии я в курсе. Но мне нужно подавить варнинг с конкретным номером (К примеру C4244). И только в определённых местах заданных файлов. В том числе в системных файлах библиотек компилятора. Можно это как либо сделать? https://www.cyberforum.ru/ cpp-beginners/ thread41092.html |
Последний метод итераций C++ Здравсвуйте программисты! Спасибо за ответы на предыдущие посты. Осталось решить методом итераций систему уравнений. Вчера Сазари мне подсказал как делать методом Зейделя, осталось методом итераций. Вот попробывал собрать код методом итераций, но дело в том,что результат системы уравнений равен по -1, все 4 уравнения, подскжаите пожалуйста где в данном коде мождет быть проблемма. Загвоздка в... |
C++ не переводит из string в char* помогите пожалуйста задание: операции со строками с использованием шаблона string #include <algorithm> #include <iostream> #include <string> #include <conio.h> using namespace std; https://www.cyberforum.ru/ cpp-beginners/ thread41080.html |
02.07.2009, 11:04 | 0 | |||||
Пишем свой интерпретатор языка BASIC - C++ - Ответ 20740502.07.2009, 11:04. Показов 242520. Ответов 464
Метки (Все метки)
Ответ
Отсмотрю попозже или вечером. Вкратце пока то, что с ходу могу ответить
Чтобы не пуатть терминологию, не слудует называть деяние "дебаггером". Более правильно - "внутренние отладочные печати" или "внутренняя отладка", чтобы не путать с программой-отладчиком (которая и есть "дебаггер") Удобнее для разных фич делать внутреннюю отладку под разными макросами. Т.е. парсер печатать под одним макросом, таблицу переменных под другим и т.п. Когда программа разрастётся, то суммарная выдача станет очень большой, а потому надо уже делить мух от котлет Комментарии лучше пищи на русском. По собственному опыту знаю, когда слабо владеешь языком, то уже через неделю сложно будет понять, что же ты там описал ломанным английским > // Что и каким образом передаётся в функцию? В функцию не должно передаваться ничего. Смысл следующий. Ты вызываешь parser_GetToken, которая в процессе работы взводит 4 глобальных переменных. А процедура parser_PrintCurToken просто печатает эти 4 значения. Т.е. пара этих процедур работает симметрично: одна записывает результат, другая его читает и печатает > если ещё не надоел Попробую пояснить попроще. Как-то меня начальник спросил, считаю ли я себя хорошим специалистом. Я ответил что нет, потому как считаю, что без того, чтобы кого-то обучать (обучить) хорошим специалистом никогда не станешь. Заниматься преподаванием мне как-то неинтересно, ибо обучшение материала строго по плану и по расписанию - это попросут затратить кучу усилий практически впустую. В твоём же случае немного по другому. Ты сам в этом процессе заинтересован, пинать тебя не надо. Программирование - работа творческая, она не может идти по расписанию. Когда ты хочешь - ты программируешь. И программируешь то, что интересно, а не то, что записано в плане. Когда есть желание и заинтересованность - то производительность работы очень высокая. Поэтому я считаю, что всё (или почти всё), что я тебе рассказываю - оно оказывается с пользой для дела. Поэтому в том числе и в моих интересах, чтобы ты довёл эту работу до какого-то логически завершённого состояния. Добавлено через 51 минуту 10 секунд Ну будещее. Выкладывай исходники в двух экземплярах: 1. Так, как ты уже делаешь (чтобы с форума просто посомтреть можно было) 2. Заархивируй весь каталог с исходниками (чтобы к себе по простуму скопировать и запустить) Добавлено через 2 минуты 4 секунды Да, вот ещё. Посмотри ещё у меня в исходниках судоку как сделано ASSERT. Это внутренние самопроверки. Для порядку тоже учись этой вещью пользоваться. Если непонятно, что это - поясню Добавлено через 5 минут 49 секунд Ну и сразу концептуальное замечание. В debugger_Print у тебя стоит switch. В таких случаях надо обязательно лепить ветку default, в которой помещать вызов FatalError (ну или как там её назвать). В один прекрасный расстановка таких условий в недостижимых точках и ASSERT'ы сэкономят тебе кучу времени при отладке Добавлено через 14 минут 23 секунды Ну и ещё момент. У тебя отладочная печать принудительно срётся в файл. Здесь бы по аналогии с разделением флага DEBUG сделал разделение выходного файла. Т.е. завёл бы глобалы "ofstream debug_FileParser, debug_FileVarTable", сделал бы процедуру инициализации debug_Init, в котором бы делал открытие данных файлов. А дальше уже по ситуации. Если тебе удобно раздельная печать - открываешь два разных файла. Если тебе удобно видеть их совместно (когда надо понять, что в каком порядке запускается), то один файл открываешь, а для второго делаешь типа "debug_FileVarTable = debug_FileParser". Если нужно печатаь на экран, а не в файл, то просто "debug_FileParser = cout; debug_FileVarTable = cout;". В итоге получается, что у тебя всё гибко, а менять код надо только в одной процедуре Кстати, выше я писал, что в parser_PrintCurToken не надо ничего подавать (я обычно исхожу из того, что печать всегда идёт на экран). В данном случае ты поступил абсоютно правильно, подав сюда указатель на файл (правда назвал его неправильно и имя параметра у тебя перекрывает имя глобальной переменной). Процедура печати должна только печатать. А куда печатать - это пускай разбираются "наверху" и подают файл параметром. Содержимое печати (т.е. то, что ты увидишь) удобнее было бы не тупо 4 значения (при этом надо помнить, что на какой позиции находится), а что-то типа следующего. Для строки "LET a=51" file="source.bsc", line=1, token=KW_LET, token_str="LET" file="source.bsc", line=1, token=IDENT, token_str="a" file="source.bsc", line=1, token=DELIM_EQUAL, token_str="=" file="source.bsc", line=1, token=CONST_INT, token_str="51" Кстати, при правильном построении синтаксического разборщика TokenNext, который ты добавил, он не нужен. По крайней мере в теории пока выглядит так Добавлено через 38 секунд Нумерацию строк принято начинать с 1, а не с 0 Добавлено через 21 минуту 25 секунд Посмотрел твой вариант GetToken - моск сразу же сломался Ещё раз формальное описание грамматики (чтобы перед глазами было) Код
Const = ConstInt | ConstFloat ConstInt = Digit { Digit } ConstFloat = Digit { Digit } "." Digit { Digit } Ident = Letter { Letter | Digit } Letter = "A" | "B" | ... | "y" | "z" Digit = "0" | "1" | ... | "9" KeywordLet = "LET" KeywordPRINT = "PRINT"
Вернуться к обсуждению: Пишем свой интерпретатор языка BASIC C++
1
|
02.07.2009, 11:04 | |
Готовые ответы и решения:
464
Пишем свой интерпретатор языка BASIC Пишем свой strlen Пишем свой чекер пишем свой троян с нуля |
02.07.2009, 11:04 | |
02.07.2009, 11:04 | |
Помогаю со студенческими работами здесь
0
Пишем свой класс, спецификатор доступа protected Интерпретатор небольшого языка программирования на С++ Не удается откомпилировать интерпретатор М-языка Интерпретатор музыки стандарта BASIC PLAY на С++ Написать интерпретатор программного языка -помощь Интерпретатор/компилятор ассемблер-подобного языка |