Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace ConsoleApplication4
- {
- class Program
- {
- static void Main(string[] args)
- {
- bool ell;
- double a, b;
- char note;
- do
- {
- Console.WriteLine("Kérem az első számot:");
- ell = double.TryParse(Console.ReadLine(), out a);
- } while (!ell);
- do
- {
- Console.WriteLine("Kérem a műveleti jelet:");
- ConsoleKeyInfo Szvatopluk = new ConsoleKeyInfo();
- Szvatopluk = Console.ReadKey();
- note = Szvatopluk.KeyChar;
- Console.WriteLine();
- } while (!(note == '+' || note == '-' || note == '*' || note == '/' || note == '=' || note == '%'));
- do
- {
- Console.WriteLine("Kérem a második számot:");
- ell = double.TryParse(Console.ReadLine(), out b);
- } while (!ell || (b == 0 && note == '/'));
- Muvelet ActualMuvelet = new Muvelet2(a, b, note);
- Muvelet2 ActualMuvelet2 = new Muvelet2(a, b, note);
- //Muvelet2 konstruktora Muveletté inicializálja az objektumot,
- //ErrorIDzik a közepekre
- //newt betéve Muv2-be még mindig semmi
- //virtual-override kombónál Müv2 konstruktorral függvénye kerül be a Müv1-be is!!!
- //anélkül meg Müv2-ben is Müv1 Számolja, még newwal is, lolwtf?!
- //Dióhéjban: Ha Müv2ben felüldefiniálni akarom Müv1et, akkor ahhoz kell a virtual-override kombó, mert new nem szeret
- //ActualMuvelet.SzamolKiir();
- //Öröklődő függvényt idősebb elem nem hívhat, IntelliSense szerint
- ActualMuvelet.Szamol();
- ActualMuvelet.Kiir();
- GimmeMuvelet(ActualMuvelet);
- GimmeMuvelet(ActualMuvelet2);
- }
- static void GimmeMuvelet( Muvelet ImAMuvelet){
- ImAMuvelet.Szamol();
- ImAMuvelet.Kiir();
- }
- }
- class Muvelet
- {
- public Muvelet(){}
- public Muvelet(double X, double Y, char Muv){
- this.X = X; this.Y = Y; this.Muv = Muv;
- }
- protected double x;
- protected double y;
- protected double eredmeny;
- protected char muv;
- public double Eredmeny
- {
- set { this.eredmeny = value; }
- get { return eredmeny; }
- }
- public double X
- {
- set { this.x = value; }
- get { return x; }
- }
- public double Y
- {
- set { this.y = value; }
- get { return y; }
- }
- public char Muv
- {
- set { this.muv = value; }
- get { return muv; }
- }
- //virtual public void Szamol()
- public void Szamol()
- {
- switch (muv)
- {
- case '+':
- eredmeny = X + Y;
- break;
- case '-':
- eredmeny = X - Y;
- break;
- case '*':
- eredmeny = X * Y;
- break;
- case '/':
- eredmeny = X / Y;
- break;
- default:
- Console.WriteLine("ErrorID = 0");
- break;
- }
- }
- public void Kiir()
- {
- Console.WriteLine("Az eredmeny: " + Eredmeny);
- }
- }
- class Muvelet2 : Muvelet
- {
- public Muvelet2(double X, double Y, char Muv): base (X,Y,Muv){}
- //override public void Szamol()
- new public void Szamol()
- {
- switch (muv)
- {
- case '+':
- eredmeny = X + Y;
- break;
- case '-':
- eredmeny = X - Y;
- break;
- case '*':
- eredmeny = X * Y;
- break;
- case '/':
- eredmeny = X / Y;
- break;
- case '=':
- eredmeny = (X + Y) / 2;
- break;
- case '%':
- eredmeny = Math.Sqrt(X * Y);
- break;
- }
- }
- public void SzamolKiir()
- {
- Szamol();
- Kiir();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement