Advertisement
CherMi

Stack for float C#

Nov 26th, 2020
685
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.06 KB | None | 0 0
  1. using System;
  2.  
  3. namespace csStackCLS
  4. {
  5.     class Stack
  6.     {
  7.         static int MaxId = 1;
  8.         string StackId;
  9.         public Stack(int mSize)
  10.         {
  11.             MaxSize = mSize;
  12.             ST = new Single[MaxSize];
  13.             StackId = Convert.ToString(MaxId);
  14.             MaxId++;
  15.             Console.WriteLine("Создан стек "+ StackId + ".");
  16.         }
  17.         int MaxSize, top = 0;
  18.         Single[] ST;
  19.         public void push(Single c)
  20.         {
  21.             if (top < MaxSize)
  22.             {
  23.                 ST[top++] = c;
  24.             }
  25.             else Console.WriteLine("Стек переполнен!");
  26.         }
  27.         public Single pop()
  28.         {
  29.             if (top > 0)
  30.             {
  31.                 return ST[--top];
  32.             }
  33.             else
  34.             {
  35.                 Console.WriteLine("Стек пуст!");
  36.                 return (Single)0;
  37.             }
  38.         }
  39.  
  40.     }
  41.     class Program
  42.     {
  43.         static void Main(string[] args)
  44.         {
  45.             Stack vs;
  46.             while(true)
  47.             {
  48.                 Console.WriteLine("Создать стек? (да - создать, любой другой ввод - выход из программы)");
  49.                 if (Console.ReadLine()== "да")
  50.                 {
  51.                     Console.WriteLine("какой глубины?");
  52.                     int mSize;
  53.                     try
  54.                     {
  55.                         mSize = Convert.ToInt32(Console.ReadLine());
  56.                     }
  57.                     catch (FormatException)
  58.                     {
  59.                         Console.WriteLine("Неверный формат ввода. Введите целое положительное число.");
  60.                         continue;
  61.                     }
  62.                     catch (OverflowException)
  63.                     {
  64.                         Console.WriteLine("Неверный формат ввода. Введённое число невозможно представить в формате числа с одиночной точностью с плавающей запятой.");
  65.                         continue;
  66.                     }
  67.                     vs = new Stack(mSize);
  68.                     break;
  69.                 }
  70.                 else return;
  71.             }
  72.             string s;
  73.             do
  74.             {
  75.                 Console.WriteLine("Что сделать? (заложить / достать)");
  76.                 s = Console.ReadLine();
  77.                 if (s == "заложить")
  78.                 {
  79.                     Console.WriteLine("Что?");
  80.                     Single f;
  81.                     try
  82.                     {
  83.                         f = Convert.ToSingle(Console.ReadLine());
  84.                     }
  85.                     catch(FormatException)
  86.                     {
  87.                         Console.WriteLine("Неверный формат ввода. Введите число с плавающей запятой в формате целая_часть,дробная_часть .");
  88.                         continue;
  89.                     }
  90.                     catch(OverflowException)
  91.                     {
  92.                         Console.WriteLine("Неверный формат ввода. Введённое число невозможно представить в формате числа с одиночной точностью с плавающей запятой.");
  93.                         continue;
  94.                     }
  95.                     vs.push(f);
  96.                     Console.WriteLine("Число заложено.");
  97.                 }
  98.                 else if (s == "достать")
  99.                 {
  100.                     Console.WriteLine(vs.pop());
  101.                 }
  102.                 else
  103.                 {
  104.                     Console.WriteLine("Неверный формат ввода. Доступны команды \"заложить\" и \"достать\"");
  105.                 }
  106.             }
  107.             while (s != "Х");
  108.         }
  109.     }
  110. }
  111.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement