Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- class List
- {
- static int MaxId;
- string StackId;
- static int MaxSize;
- int nextIndex;
- Single[] L;
- public List(int mSize)
- {
- MaxSize = mSize;
- L = new Single[MaxSize];
- MaxId++;
- StackId = Convert.ToString(MaxId);
- nextIndex = 0;
- Console.WriteLine("Создан список " + StackId + ".");
- }
- public void addLastElement(Single c)
- {
- if (nextIndex < MaxSize)
- L[nextIndex++] = c;
- else Console.WriteLine("Список переполнен!");
- }
- public Single getElementByIndex(int index)
- {
- if (index < nextIndex)
- {
- return L[index];
- }
- else
- {
- Console.WriteLine("Нет элемента с таким индексом!");
- return (Single)0;
- }
- }
- public void deleteElementByValue(Single value)
- {
- for (int i = 0; i < nextIndex; i++)
- {
- if (L[i].Equals(value))
- {
- deleteElementByIndex(i);
- return;
- }
- }
- Console.WriteLine("Нет элемента с таким значением!");
- return;
- }
- public Single deleteElementByIndex(int index)
- {
- if (index < nextIndex)
- {
- Single deletedElement = L[index];
- if (index < nextIndex - 1)
- {
- for (int i = index; i < nextIndex - 1; i++)
- {
- L[i] = L[i + 1];
- }
- }
- nextIndex--;
- Console.WriteLine("Удалён элемент " + index + " = " + deletedElement + ".");
- return deletedElement;
- }
- else
- {
- Console.WriteLine("Нет элемента с таким индексом!");
- return (Single)0;
- }
- }
- public void printList()
- {
- if (nextIndex == 0)
- {
- Console.WriteLine("Список пуст!");
- }
- for (int i = 0; i < nextIndex; i++)
- {
- Console.WriteLine("Элемент " + i + " = " + L[i]);
- }
- }
- public void inverse()
- {
- if (nextIndex == 0)
- {
- Console.WriteLine("Список пуст!");
- return;
- }
- if (nextIndex == 1)
- {
- Console.WriteLine("Список состоит из одного элемента!");
- return;
- }
- Single tmp;
- for (int i = 0; i < Math.Floor((Single)nextIndex / 2); i++)
- {
- tmp = L[i];
- L[i] = L[nextIndex - 1 - i];
- L[nextIndex - 1 - i] = tmp;
- }
- Console.WriteLine("Список инверсирован!");
- }
- };
- class Program
- {
- private static bool enterInt(ref int value)
- {
- try
- {
- int tmp = Convert.ToInt32(Console.ReadLine());
- value = tmp;
- return true;
- }
- catch (FormatException)
- {
- Console.WriteLine("Неверный формат ввода. Значение должно быть целым положительным числом.");
- return false;
- }
- catch (OverflowException)
- {
- Console.WriteLine("Неверный формат ввода. Введённое число невозможно представить в формате целого числа.");
- return false;
- }
- }
- private static bool enterSingle(ref Single value)
- {
- try
- {
- Single tmp = Convert.ToSingle(Console.ReadLine());
- value = tmp;
- return true;
- }
- catch (FormatException)
- {
- Console.WriteLine("Неверный формат ввода. Введите число с плавающей запятой в формате целая_часть,дробная_часть .");
- return false;
- }
- catch (OverflowException)
- {
- Console.WriteLine("Неверный формат ввода. Введённое число невозможно представить в формате числа с одиночной точностью с плавающей запятой.");
- return false;
- }
- }
- public static void Main(string[] args)
- {
- Single f;
- List vs; //1
- while (true)
- {
- Console.WriteLine("Создать список? (да - создать, любой другой ввод - выход из программы)");
- if (Console.ReadLine() == "да")
- {
- Console.WriteLine("Какой длины?");
- int mSize = 0;
- Console.Write("Длина: ");
- if (!enterInt(ref mSize))
- {
- continue;
- }
- vs = new List(mSize); //1
- break;
- }
- else return;
- }
- string s;
- do
- {
- Console.WriteLine("Что сделать? (распечатать список / добавить элемент в конец / получить элемент по индексу / удалить элемент по значению / удалить элемент по индексу / инверсировать список)");
- Console.Write("Действие: ");
- s = Console.ReadLine();
- if (s == "добавить элемент в конец")
- {
- Single value = 0;
- Console.Write("Значение: ");
- if (!enterSingle(ref value))
- {
- continue;
- }
- vs.addLastElement(value);
- Console.WriteLine("Число добавлено в конец списка.");
- }
- else if (s == "получить элемент по индексу")
- {
- int index = 0;
- Console.Write("Индекс: ");
- if (!enterInt(ref index))
- {
- continue;
- }
- Console.WriteLine("Элемент " + index + " = " + vs.getElementByIndex(index) + ".");
- }
- else if (s == "удалить элемент по значению")
- {
- Single value = 0;
- Console.Write("Значение: ");
- if (!enterSingle(ref value))
- {
- continue;
- }
- vs.deleteElementByValue(value);
- }
- else if (s == "удалить элемент по индексу")
- {
- int index = 0;
- Console.Write("Индекс: ");
- if (!enterInt(ref index))
- {
- continue;
- }
- vs.deleteElementByIndex(index);
- }
- else if (s == "распечатать список")
- {
- vs.printList();
- }
- else if (s == "инверсировать список")
- {
- vs.inverse();
- }
- else
- {
- Console.WriteLine("Неверный формат ввода. Доступны команды: распечатать список, добавить элемент в конец, получить элемент по индексу, удалить элемент по значению, удалить элемент по индексу, инверсировать список");
- }
- } while (s != "");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement