Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Globalization;
- namespace ZHExample
- {
- // interface: IKor;
- public interface IKor
- {
- // tulajdonságok:
- // double Sugar (get, set);
- double Sugar { get; set; }
- // double Atmero (get);
- double Atmero { get; }
- // double Ker (get);
- double Ker { get; }
- //double Ter (get)
- double Ter { get; }
- }
- // osztály: Kor, mely valósítsa meg az IKor interface-t;
- public class Kor : IKor
- {
- // 1 db tagváltozó: sugár;
- private double _sugar;
- // konstruktor inicializálja a sugarat;
- public Kor(double sugar = 0)
- {
- _sugar = sugar;
- }
- public double Sugar
- {
- get { return _sugar; }
- set { _sugar = value; }
- }
- public double Atmero
- {
- get { return Sugar*2; /* középiskolás matek */ }
- // az Atmero tulajdonságnak legyen set ága is;
- set { Sugar = value / 2; }
- }
- public double Ker
- {
- get { return Kerulet(Sugar); }
- }
- public double Ter
- {
- get { return Terulet(Sugar); }
- }
- // + 2 db statikus funkció:
- // double Kerulet(double _sugar)
- public static double Kerulet(double sugar)
- {
- return 2 * sugar * Math.PI; /* középiskolás matek */
- }
- // és double Terulet(double _sugar).
- public static double Terulet(double sugar)
- {
- return sugar * sugar * Math.PI; /* középiskolás matek */
- }
- }
- class Program
- {
- // Main:
- static void Main(string[] args)
- {
- // eldöntendő kérdés, hogy sugarat (S) vagy átmérőt (A) akar-e megadni; (Esc esetén lépjen ki a programból.)
- char inputMode = ' ';
- do
- {
- Console.Write("Sugár (S) vagy átmérő (A)? ");
- var command = Console.ReadKey();
- switch (command.Key)
- {
- case ConsoleKey.A:
- inputMode = 'A';
- break;
- case ConsoleKey.S:
- inputMode = 'S';
- break;
- case ConsoleKey.Escape:
- return; /* kilépés a Main metódusból -> az egész programból */
- }
- Console.WriteLine();
- } while (inputMode == ' ');
- string kerdes = inputMode == 'A' ? "Átmérő? " : "Sugár? ";
- double ertek;
- // ... mindaddig próbálkozzunk, amíg hibátlan nem lesz;
- do
- {
- Console.Write(kerdes);
- // olvassuk be a választott adatot ...
- string input = Console.ReadLine();
- if (!double.TryParse(input, NumberStyles.Float, CultureInfo.InvariantCulture, out ertek))
- {
- // hibás az adat, ha az nem szám...
- Console.WriteLine("A megadott érték nem szám!"); // külön üzenet figyelmeztessen ezekre az esetekre;
- ertek = double.NaN;
- }
- else if (ertek < 0)
- {
- // ... vagy negatív
- Console.WriteLine("A megadott szám negatív!"); // külön üzenet figyelmeztessen ezekre az esetekre;
- ertek = double.NaN;
- }
- } while (double.IsNaN(ertek));
- Kor kor = new Kor();
- if (inputMode == 'A')
- {
- kor.Atmero = ertek;
- }
- else
- {
- kor.Sugar = ertek;
- }
- // három tizedesjegyre írjuk ki a kör kerületét és területét a tulajdonságok felhasználásával;
- Console.WriteLine("A kör kerülete: {0:F3} területe: {1:F3}", kor.Ker, kor.Ter);
- // ugyanígy írassuk ki a kétszer akkora sugarú kör kerületét és területét a statikus függvényekkel.
- Console.WriteLine("Kétszer akkora sugarú kör kerülete: {0:F3} területe: {1:F3}", Kor.Kerulet(kor.Sugar * 2), Kor.Terulet(kor.Sugar * 2));
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement