Форум программистов, компьютерный форум CyberForum.ru

Простейший калькулятор на YACC - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шаблон структуры данных http://www.cyberforum.ru/cpp-beginners/thread1037932.html
Всем привет, в универе дали задание, не понимаю совсем, напишите пожалуйста, Разработать шаблоны структуры данных в памяти. Тип хранимого элемента – параметр шаблона. Шаблон может содержать указатель на объект, либо сам объект (в зависимости от варианта). Реализовать операции включения/удаления по заданному логическому номеру, поиск минимального/максимального, включение с сохранением порядка,...
C++ Из вещественного в строку как тип double превратить строку? http://www.cyberforum.ru/cpp-beginners/thread1037899.html
Баг в программе C++
Доброго времени суток,форумчане. Задача такова: Массивв символов,содержащий 16-ое представление чисел. Надо перевести hex в dec. Баг в 16-ом представлении чисел, 10-ые работают нормально. #include <iostream> #include <cstdlib> #include <cmath> using namespace std; //Находим длину
C++ Пользователь вводит две пары вещественных чисел: k 1,b1 и k 2,b2. Составить функцию для определения точки пересечения двух прямых y=k1x+b1 и y=k2x+b2,
Пользователь вводит две пары вещественных чисел: k1,b1и k2,b2. Составить функцию для определения точки пересечения двух прямых y=k1x+b1 и y=k2x+b2, которая получает введенные числа в качестве параметров. Координаты найденной точки пересечения функция возвращает в качестве двух других параметров. Результат, который возвращает сама функция, должен позволять отслеживать следующие случаи...
C++ Считывает текст с файла и выводит в другой файл http://www.cyberforum.ru/cpp-beginners/thread1037883.html
Здравствуйте, уважаемые) По возможности помогите с написанием кода, буду очень благодарен. Условие: Написать программу, которая считывает текст с файла и выводит в другой файл и на экран только предложения, которые начинаются с тире, перед которым могут идти только пробелы.
C++ Одномерный массив B[n] и преобразовать его следующим образом Здравствуйте! Подскажите пожалуйста, как решить такую задачу: Одномерный массив B и преобразовать его следующим образом: 1) увеличить каждый элемент массива на максимальный элемент 2) найти индекс и значение последнего минимального элемента массива 3) отсортировать элементы массива по убыванию подробнее

Показать сообщение отдельно
yapechenko
0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 22
11.12.2013, 22:31     Простейший калькулятор на YACC
Добрый вечер при написании калькулятора возникла затрудненость:
Надо в калькулятор добавить "знак" остаток от деления. C приложеным кодом он выдает:
file.y: В функции «yyparse»:
file.y:20:36: ошибка: invalid operands to binary % (have «double» and «double»)
Кликните здесь для просмотра всего текста

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
%{
#define YYSTYPE double
#include <stdio.h>
#include <ctype.h>
#include <math.h>
%}
%token DATA
%left '+' '-'
%left '*' '/' '%'
%%
spisok :
| spisok '\n'
| spisok wyrag '\n' { printf("\t%g\n", $2); }
;
wyrag : DATA { $$ = $1; }
| wyrag '+' wyrag { $$ = $1 + $3; }
| wyrag '-' wyrag { $$ = $1 - $3; }
| wyrag '*' wyrag { $$ = $1 * $3; }
| wyrag '/' wyrag { $$ = $1 / $3; }
| wyrag '%' wyrag { $$ = $1 % $3;}
| '(' wyrag ')' { $$ = $2; }
;
%%
main()
{
yyparse();
}
yyerror(s)
char *s;
{
fprintf(stderr,"%s\n", s);
}
yylex ()
{ 
int c;
do
{
c=getchar();
}while(c == ' ' || c == '\t');
if(c == EOF) return 0;
if(c == '.' || isdigit(c))
{
ungetc(c, stdin);
scanf("%lf", &yylval);
return DATA;
}
return (c);
}


Я как понял, "%" работает с int перемеными, но я что-то не могу сообразить как это реализовать в моем коде.
Прошу у вас помощи, спасибо!

Добавлено через 10 минут
20-я строка кода, я так полагаю
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru