Программирование линейных алгоритмов - C# (183524)

Узнай цену своей работы

Формулировка задачи:

Составить консольный и оконный приложение для вычисления и печати значений математических выражений. Значения переменных для подсчета ввести в диалоге с пользователем.

Решение задачи: «Программирование линейных алгоритмов»

textual
Листинг программы
using System;
using System.Linq;
using System.Collections.Generic;
 
class ForthMachine
{
    private Stack<double> s;
    private Stack<double> r;
 
    public ForthMachine(IEnumerable<double> init)
    {
        s = new Stack<double>(init);
        r = new Stack<double>();
    }
 
    public ForthMachine Push(double a)
    {
        s.Push(a);
        return this;
    }
 
    public ForthMachine Drop()
    {
        s.Pop();
        return this;
    }
 
    public ForthMachine Dup()
    {
        s.Push(s.Peek());
        return this;
    }
 
    public ForthMachine Swap()
    {
        double b = s.Pop();
        double a = s.Pop();
        s.Push(b);
        s.Push(a);
        return this;
    }
 
    public ForthMachine Plus()
    {
        s.Push(s.Pop() + s.Pop());
        return this;
    }
 
    public ForthMachine Minus()
    {
        double a = s.Pop();
        s.Push(s.Pop() - a);
        return this;
    }
 
    public ForthMachine Mul()
    {
        s.Push(s.Pop() * s.Pop());
        return this;
    }
 
    public ForthMachine Div()
    {
        double a = s.Pop();
        s.Push(s.Pop() / a);
        return this;
    }
 
    public ForthMachine Abs()
    {
        s.Push(Math.Abs(s.Pop()));
        return this;
    }
 
    public ForthMachine Sqr()
    {
        s.Push(s.Peek() * s.Pop());
        return this;
    }
 
    public ForthMachine Pow()
    {
        double a = s.Pop();
        s.Push(Math.Pow(s.Pop(), a));
        return this;
    }
 
    public ForthMachine Sin()
    {
        s.Push(Math.Sin(s.Pop()));
        return this;
    }
 
    public ForthMachine Cos()
    {
        s.Push(Math.Cos(s.Pop()));
        return this;
    }
 
    public ForthMachine Atan()
    {
        s.Push(Math.Atan(s.Pop()));
        return this;
    }
 
    public ForthMachine ToR()
    {
        r.Push(s.Pop());
        return this;
    }
 
    public ForthMachine FromR()
    {
        s.Push(r.Pop());
        return this;
    }
 
    public ForthMachine AtR()
    {
        s.Push(r.Peek());
        return this;
    }
 
    public ForthMachine Dot()
    {
        Console.WriteLine(s.Pop());
        return this;
    }
}
 
class Program
{
    public static void Main()
    {
        new ForthMachine(Console.ReadLine().Split().Select(Double.Parse))
        .Swap().ToR().Swap().ToR().Dup().ToR().Push(1).Swap().Div().Atan().Cos().Sqr().FromR().FromR().Swap().FromR().Swap()
        .ToR().ToR().Dup().AtR().Abs().Pow().Swap().FromR().FromR()
        .ToR().ToR().Dup().AtR().Plus().Sin().Sqr().Push(1).Plus().Swap().FromR().FromR()
        .ToR().ToR().Dup().Dup().Sqr().AtR().Sqr().Mul().Push(1).Plus().AtR().Push(2).Mul().Swap().Div().Minus().Abs().Swap().FromR().FromR()
        .Drop().Drop().Drop().Div().Mul().Plus().Dot();
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5
Похожие ответы