233 / 215 / 63
Регистрация: 01.09.2012
Сообщений: 2,103
|
||||||
1 | ||||||
лексический анализ01.04.2013, 22:40. Показов 2450. Ответов 14
Метки нет (Все метки)
Добрый вечер всем. У меня такая проблема: мне надо разобрать строку на запчасти. Смысл такой - с клавиатуры вводится многочлен, его надо разобрать на мономы, и сложить их в массив, они нужны мне будут для последующей работы. разобрать вроде получилось, а вот как эти кусочки сложить в массив - пока непонятно. Вот код - подскажите пожалуйста где я опять накосячил.
точнее говоря это черновик кода.
0
|
01.04.2013, 22:40 | |
Ответы с готовыми решениями:
14
лексический анализ..... лексический анализ дубль 2 Лексический и синтаксический анализ текста Лексический анализ. Таблицы идентификаторов |
29 / 29 / 10
Регистрация: 28.10.2011
Сообщений: 183
|
|
01.04.2013, 23:54 | 2 |
Писал программу на паскале, которая складывает вычитает и умножает многочлены. Вот, может поможет:
Сложение, вычитание, умножение многочленов Добавлено через 2 минуты типа данных string в Си нет, используйте массив char-ов
1
|
233 / 215 / 63
Регистрация: 01.09.2012
Сообщений: 2,103
|
|
02.04.2013, 00:05 [ТС] | 3 |
пишу на С++, под консоль, с использованием классов
за ссылку спасибо, но у меня многочлен от трех переменных, и там придется повозиться... а вообще уже разобрался. теперь другая проблема возникла - разобрать мономы на запчасти, выдернуть коэффициенты и степени по каждой переменной. Но это уже другая история
0
|
29 / 29 / 10
Регистрация: 28.10.2011
Сообщений: 183
|
|
02.04.2013, 00:20 | 4 |
Я понимаю что вы пишете на С++, но несмотря на это в Си / С++ нету типа данных string.
Ну вот падает потому что нельзя создать указатель на несуществующий тип данных. Указатель на string не может существовать принципе, т.к не известно насколько длинная строка. Строки в С / С++ реализуются с помощью массивов char, в конце которого обязательно должен быть нулевой байт( '\0' ), для того чтобы можно было определить конец строки. P.S. Имелось ввиду, что нет стандартной реализации.
0
|
Croessmah
|
02.04.2013, 09:25
#5
|
0
|
233 / 215 / 63
Регистрация: 01.09.2012
Сообщений: 2,103
|
||||||
02.04.2013, 13:21 [ТС] | 6 | |||||
почти разобрался - проблема в том, что strtok() не нравится char* ей char s[] = "тра-ля-ля"; подавай, а как заставить ее работать с указателями - вот в чем вопрос. Можно конечно скопировать, но это не выход. Вот последний вариант кода - народ -выручайте
0
|
233 / 215 / 63
Регистрация: 01.09.2012
Сообщений: 2,103
|
||||||
02.04.2013, 13:45 [ТС] | 8 | |||||
Герц,
спорить не буду - возможно это так, у вас есть другие варианты? вот с этого кода я брал пример, возможно он не совсем удачный, но...
0
|
233 / 215 / 63
Регистрация: 01.09.2012
Сообщений: 2,103
|
||||||
02.04.2013, 14:25 [ТС] | 10 | |||||
да вроде разобрался, теперь проблема как забить подстроки в массив
вот код
0
|
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
|
|
02.04.2013, 14:39 | 11 |
Ded_Vasilij, у тебя логическая ошибка: ты теряешь первую лексему, полученную в строке 20 т.к. в строке 25 перед занесением ее в массив p снова вызываешь strtok.
1
|
233 / 215 / 63
Регистрация: 01.09.2012
Сообщений: 2,103
|
|
02.04.2013, 14:44 [ТС] | 12 |
ya_noob, понял, спасибо, если не сложно - подскажи как правильно сделать - чего то не могу сообразить
0
|
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
|
|
02.04.2013, 15:33 | 13 |
серьезная проблема с логикой: особенность strtok в том, что она вместо разделителей лексем + и - вставляет нуль-символы, следовательно теряется знак коэффициента монома, безвозвратно. следовательно нужно отказаться от него.
могу посоветовать посимвольно анализировать выражение. в цикле искать составные части очередного монома: коэффициент со знаком, х и показатель степени, а затем показатель и коэффициент засовывать в массив , например, в виде структуры, или в массив совать коэффициент в позицию, определяемую степенью (если степени маленькие), или вообще вместо массива использовать связный список. вариантов много, все зависит от того, зачем тебе это надо.
0
|
233 / 215 / 63
Регистрация: 01.09.2012
Сообщений: 2,103
|
||||||
02.04.2013, 16:48 [ТС] | 14 | |||||
То что теряются коэффициенты монома - ясно, это не проблема, на данном этапе меня волнует другой вопрос - с предыдущей проблемой я разобрался, однако не могу распечатать массив мономов, хотя во время копирования он их выводит. Не могу понять, что не так.
вот код
0
|
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
|
|
02.04.2013, 17:45 | 15 |
внимательно посмотрите на строку 36
1
|
02.04.2013, 17:45 | |
02.04.2013, 17:45 | |
Помогаю со студенческими работами здесь
15
Лексический и синтаксический анализ текста Лексический анализ, форма Бекуса-Наура Провести лексический анализ заданного фрагмента и составить кодировочную таблицу Лексический анализатор Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
[Golang] 121. Best Time to Buy and Sell Stock
alhaos 28.01.2025
В этой задаче мы получаем слайс целых чисел, которые означают цену акции в разные моменты времени, и должны вернуть максимально возможную прибыль от купли продажи акции.
/ / . . .
|
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование
Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
|
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы
В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
|
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире
В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
|
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации
В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
|
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии
В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
|
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации
В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
|
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику
Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
|
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику
В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
|
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера
Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
|
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды
В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
|
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике
В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
|