Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2012, 17:48   #1
doojkee
Пользователь
 
Регистрация: 08.04.2012
Сообщений: 10
Сообщение Калькулятор логических/арифметических операций

1ый курс одного электротехнического вуза!

Суть программы, которую нужно написать:

Написать нужно на чистом Си

Написать программу калькулятор, вычисляющая значения арифметичекого или логического выражения.
- допуская неограниченное количество вложенных скобок.
- должны полностью соблюдаться приоритеты логич. Арифм. Операций.
- необходимо, чтобы программа умела вычислять значение как введеного с клавиатура и как загруженного с файла.
- вывод как на экран так и в файл.
- дружественное меню для пользователя и интерфейс. (GUI не нужен, все в консоле.)
- возможность задавать параметры командной строки. (понятия не имею, что это.)
- Рекомендуется преобразовывать формулу в обратную польскую запись, но вводить формулу в норм вид.
-сделать автоматическое распознование формулы(логич. & арифметическая) .

Очень прошу помощи в реализации этой программы, буду благодарен за любую помощь, советы, примеры кода, ссылки на статьи, книги и т.д.
Заранее спасибо!

У меня сделана схема программы на бумаге.
+ есть код не полностью написанный для записи в файл:
Код:
#include <stdio.h>

int main(void) //Запись в файл!!
{

  int value;
  FILE *Ptr;

  Ptr=fopen("save.txt","w");
  printf("Enter value: ");
  scanf("%d",&value);
  fprintf(Ptr,"%d\n",value);
  /*if(буквы не те)
  {
      printf("Error, some symbols wrong!");
  }
  else
  {
    printf("successful complete");
  }
  */
  fclose(Ptr);
  return 0;
}
doojkee вне форума Ответить с цитированием
Старый 08.04.2012, 17:51   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

http://www.programmersforum.ru/showthread.php?t=34061
_Bers вне форума Ответить с цитированием
Старый 08.04.2012, 18:01   #3
doojkee
Пользователь
 
Регистрация: 08.04.2012
Сообщений: 10
Подмигивание

Цитата:
Сообщение от _Bers Посмотреть сообщение
Уважаемый, _Bers, я прочитал правила, я понимаю, что никто никому ничего не должен, но я и не прошу писать за меня программу, я буду благодарен за любую помощь, перечитайте пост.
doojkee вне форума Ответить с цитированием
Старый 08.04.2012, 18:39   #4
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Догадываюсь, сложности у вас вызывают только две вещи:
Infix to postfix algorithm - конвертация инфиксного выражения в постфиксное.
Postfix evaluation - вычисление постфиксного выражения

Собственно, чтобы было с чем работать, посмотрите в C++ Programming Language (B. Stroustrup, 2-е или 3-е издание, точно не помню как оно называется, возможно дополненное второе или дополненное третье - Special Edition), так вот в этой книге в третьей главе Страуструп предлагает написать как раз такой вот калькулятор как у вас, со скобками и всем прочим. Правда, у него все это построено немного иначе, там нет промежуточного этапа конвертирования инфиксной формы в постфиксную.

Еще можете посмотреть Kernighan & Ritchie C Programming Language, они там тоже строили интерпретатор мат.выражений, правда, для постфиксной формы, если не ошибаюсь.

Вообще, рекомендую порыться в гугле по этому запросу: C++ evaluating calculator.
"Тяжело в учении, легко в бою" - А.В. Суворов

Последний раз редактировалось Ivan_32; 08.04.2012 в 18:41.
Ivan_32 вне форума Ответить с цитированием
Старый 08.04.2012, 18:44   #5
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от doojkee Посмотреть сообщение
Уважаемый, _Bers, я прочитал правила, я понимаю, что никто никому ничего не должен, но я и не прошу писать за меня программу, я буду благодарен за любую помощь, перечитайте пост.
Я не вижу твоих мыслей. Исходный код - это мысли программиста, написанные в терминах языка программирования.

У тебя есть мысли? Ты не знаешь, с чего начать?

Ты просишь любой помощи, но не говоришь, что конкретно тебе нужно.
Тебе нужно все? Алгоритмы? Коды? В чем именно заключается твоя проблема?

Может быть ты вообще не знаешь язык? Тогда на что ты рассчитываешь? На халяву?
_Bers вне форума Ответить с цитированием
Старый 08.04.2012, 19:20   #6
doojkee
Пользователь
 
Регистрация: 08.04.2012
Сообщений: 10
Подмигивание

Цитата:
Сообщение от _Bers Посмотреть сообщение
Я не вижу твоих мыслей. Исходный код - это мысли программиста, написанные в терминах языка программирования.

У тебя есть мысли? Ты не знаешь, с чего начать?

Ты просишь любой помощи, но не говоришь, что конкретно тебе нужно.
Тебе нужно все? Алгоритмы? Коды? В чем именно заключается твоя проблема?

Может быть ты вообще не знаешь язык? Тогда на что ты рассчитываешь? На халяву?
У вас какой-то бугурт, если, вы не хотите помогать, просто не засоряйте топик! И не надо нести в этот мир только негатив.
doojkee вне форума Ответить с цитированием
Старый 08.04.2012, 19:28   #7
doojkee
Пользователь
 
Регистрация: 08.04.2012
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Ivan_32 Посмотреть сообщение
Догадываюсь, сложности у вас вызывают только две вещи:
Infix to postfix algorithm - конвертация инфиксного выражения в постфиксное.
Postfix evaluation - вычисление постфиксного выражения

Собственно, чтобы было с чем работать, посмотрите в C++ Programming Language (B. Stroustrup, 2-е или 3-е издание, точно не помню как оно называется, возможно дополненное второе или дополненное третье - Special Edition), так вот в этой книге в третьей главе Страуструп предлагает написать как раз такой вот калькулятор как у вас, со скобками и всем прочим. Правда, у него все это построено немного иначе, там нет промежуточного этапа конвертирования инфиксной формы в постфиксную.

Еще можете посмотреть Kernighan & Ritchie C Programming Language, они там тоже строили интерпретатор мат.выражений, правда, для постфиксной формы, если не ошибаюсь.

Вообще, рекомендую порыться в гугле по этому запросу: C++ evaluating calculator.
Спасибо большое, да именно в этом самые большие проблемы.
Даже не знаю с какой стороны к этому подходить.
Насчет Страуструпа не знал, сейчас буду искать.
Книга Кернигана и Ритчи лежит открытой передо мной, как раз наткнулся на ту главу, которую вы мне подсказали, все равно спасибо!

Последний раз редактировалось doojkee; 08.04.2012 в 19:32.
doojkee вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка логических полей MoToP4uK БД в Delphi 3 18.02.2012 17:33
Команды логических операций, сдвигов, выделение битовых полей tvincen Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 16.01.2012 04:13
программа выполнения арифметических операций в разных системах счисления Iraida555 Помощь студентам 2 28.12.2011 11:27
программа проверяющую знания арифметических операций Demon_en Помощь студентам 4 07.11.2011 07:35
Деление без арифметических операций imera Общие вопросы C/C++ 2 14.11.2008 03:02