It is currently Fri Jul 30, 2010 2:08 pm


All times are UTC [ DST ]


Ask on Codemiles community and get answers Free and Fast :

Ask your C-C++ questions ,C-C++ codes,C-C++ tricks ,C-C++ faq ,C-C++ answers .and more

Our guest share with us your code snippets , your programming problems , your open source projects ,read articles and post yours .







Post new topic Reply to topic  [ 2 posts ] 
  Print view Previous topic | Next topic 
Author Message
 Post subject: Please help me with my code!
PostPosted: Mon Jul 20, 2009 10:52 pm 
Offline
Newbie
User avatar

Joined: Mon Jul 20, 2009 10:26 pm
Posts: 1
Has thanked: 0 time
Have thanks: 0 time

Hi,
I am having trouble with a c++ program I am trying to write. The program should be able to solve equations like "3 / ( 4 * 5 ) =" however when i run it a get a runtime error (Unhandled exception). The program is not entirely finished but I can't continue untill i figure this out. It must use a doubly linked list. I am a beginning programmer so please take the time to explain everything, and stick with the simplist code.

Thanks for your time.

Code:
//program needs to be able to solve equations like 3 / ( 4 * 5 ) =
//note: when imputing equation, separate each character with a space and end it with a “=”
//when I run the program, I get a runtime error – not sure why

#include <iostream>
#include <string>

using namespace std;

struct node
{
   node * prev;
   int value;
   char op;
   char type;
   node * next;
};


void printlist (node *h);
void mult (node * right, node * left);


void main ( )
{
   char str[15];
   node * dll, *head, *tail, *rp, *lp;

   cout << "Enter equation: " << endl;
   cin >> str;

   dll = new node;
   head = dll;
   tail = dll;
   head ->prev = 0;
   head -> op = '(';
   head -> type = 'o';
   head -> value = -1;
   


   while (str[0] != '=') //check for end of expression, doesn't include = sign.  Loop will get all imput and put it into a doubly linked list.
   {
      if (isdigit(str[0]))
      {
         tail->next = new node;
         tail->next->prev = tail;
         tail = tail->next;
         tail->value= atoi(str);
         tail->type='n';
         tail->op='$';
      }
      else
      {
         tail->next = new node;
         tail->next->prev = tail;
         tail = tail->next;
         tail ->op = str[0];
         tail->type='o';
         tail->value=-1;
      }
      cin >> str;
   }
   
   tail->next = new node;
   tail->next->prev = tail;
   tail = tail->next;
   tail->next=0;
   tail->op=')';
   tail->type='o';
   tail->value=-1;
printlist (dll);

   //while (dll->op == '(')
   //{   
      rp = head;
      while (rp->op != ')')
         rp = rp -> next;
      lp = rp;
      while (lp->op != '(')
         lp = lp -> prev;
      cout << "lp: " << lp << " rp: " << rp;
      mult (rp, lp);
      printlist (dll);
   //}


system("pause");
}



//Following function used for testing purposes

void printlist (node *h)
{
   while ( h != 0)
   {
      
      cout << " prev: " << h->prev << " addr: " << h <<" value: " << h->value  << " op: " << h->op << " type: " << h->type<< " address of next node: " << h->next << endl;
      h=h->next;
   }
   cout << endl;
}

void mult (node * right, node * left)
{

   node * temp;
   temp = left;
   
   cout <<endl<< "Left: " << left << " Right: " << right << " Temp: " << temp << " Temp->op: " << temp->op;
   system("pause");

   while (temp != right)
   {
   while ((temp->op != '*') || (temp->op != '/') )
      temp = temp ->next;
      
   if (temp -> op == '*')
      {
         temp->value = temp->prev->value * temp->next->value; //computes
         temp->prev->prev->next= temp->next->next; //deletes extra numbers
      }
   if (temp -> op == '/')
      {
         temp->value = temp->prev->value * temp->next->value;
         temp=temp->prev->prev->next;//not correct?
         temp=temp->next->next->prev;//not correct?
      }
   }
   
      return;
}



TOP
 Profile Send private message  
 
| More
 Post subject: Re: Please help me with my code!
PostPosted: Wed Jul 22, 2009 5:35 pm 
Offline
Moderator
User avatar

Joined: Fri Nov 21, 2008 6:18 pm
Posts: 50
Location: thessaloniki
Has thanked: 0 time
Have thanks: 0 time

what exactly you want to create a calculator withc solves arithmetic combinations of a kind ..or something exact such as 3/(5*4) ?? you only want to be able to pick up the numbers or what i was looking the lines of your code the 2 last lines temp = ...etc definatly rong

cout << " prev: " << h->prev << " addr: " << h <<" value: " << h->value << " op: " << h->op << " type: " << h->type<< " address of next node: " << h->next << endl;

hear what is going on .? too many pointers..:P)))

_________________
if you want make an effort yourself no one will make it for you...
best regards


TOP
 Profile Send private message  
 
| More
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 


 Similar topics
 Topic title   Forum   Author   Replies 
 What is the code for below algorithome.  C-C++  rasel  1
 race game source code in j2me  INDIA Jobs  sardar  0
 apriori algorithm java code  Java  yuva  2
 java loop at end of code ... soooo close i hope  Java  seaplus  0
 java code  Java  balboa123  0

All times are UTC [ DST ]


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  





Home
General Talks
Finished Projects
Code Library
Games
Tutorials

Java
C/C++
C-sharp
php
Script
JSP/Servlets
Ajax
ASP/ASP.net
Google SEO
Database
Communications
Phpbb3 styles
Photoshop tutorials
Flash tutorials
Find a job






Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
All copyrights reserved to codemiles.com 2007-2009
mileX v1.0 designed by codemiles team