PDA

View Full Version : سوال: برنامه رسم نمودار توابع



wolome
یک شنبه 25 مهر 1389, 22:20 عصر
برنامه ای که یک تابع رو مثل 3x+4-x^2 رو از ورودی بگیره و نمودارش رو رسم کنه برای تشخیص تابع این روهم نوشتم ولی کامل نیست لطفا کمکم کنید.
using System;

using System.Collections;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;



namespace postcalc

{

public partial class Form1 : Form
{

Stack stack = new Stack();

Stack revstack = new Stack();

string lastnum;

char[] ramy;

bool empty = true;





public Form1()
{

InitializeComponent();

}



private void Form1_Load(object sender, EventArgs e)
{



}



private void button1_Click(object sender, EventArgs e)
{

ramy = textBox1.Text.ToCharArray();



foreach (char c in ramy)
{

if (char.IsDigit(c))

lastnum = lastnum + c.ToString();

else
{

stack.Push(lastnum);



if (empty == true)
{

revstack.Push(c);

empty = false;

}

else
{

switch (c)
{

case '+':

while (revstack.Peek().ToString() == "*" || revstack.Peek().ToString() == "/" ||

revstack.Peek().ToString() == "+" || revstack.Peek().ToString() == "-")

stack.Push(revstack.Pop());



revstack.Push(c);

break;

case '-':

while (revstack.Peek().ToString() == "*" || revstack.Peek().ToString() == "/" ||

revstack.Peek().ToString() == "+" || revstack.Peek().ToString() == "-")

stack.Push(revstack.Pop());



revstack.Push(c);

break;

case '*':

while (revstack.Peek().ToString() == "*" || revstack.Peek().ToString() == "/")

stack.Push(revstack.Pop());



revstack.Push(c);

break;

case '/':

while (revstack.Peek().ToString() == "*" || revstack.Peek().ToString() == "/")

stack.Push(revstack.Pop());



revstack.Push(c);

break;

}

}

}



}

stack.Push(lastnum);



while (revstack.Peek().ToString() == "+" ||

revstack.Peek().ToString() == "-" ||

revstack.Peek().ToString() == "*" ||

revstack.Peek().ToString() == "/")

stack.Push(revstack.Pop());



while (stack.Peek().ToString() != "")

revstack.Push(stack.Pop());



while (revstack.Peek().ToString() != "")

textBox2.Text = textBox2.Text + revstack.Pop().ToString();

}
}







}