Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Дисциплина: Программирование
- Студент: Пак Марк Михайлович
- 17.10.19
- Вариант 16
- */
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- namespace Task
- {
- class Program
- {
- /// <summary>
- /// Метод для преобразовании строки в int
- /// </summary>
- /// <param name="userInput">Пользовательская строка</param>
- /// <returns>int значение</returns>
- static int GetIntInput(string userInput)
- {
- if (!int.TryParse(userInput, out int n))
- throw new InvalidCastException();
- return n;
- }
- /// <summary>
- /// Метод для преобразования строки в int с ограничениями
- /// </summary>
- /// <param name="userInput">Пользовательская строка</param>
- /// <param name="minBorder">Нижняя граница</param>
- /// <param name="maxBorder">Верхняя граница</param>
- /// <returns>int значение</returns>
- static int GetIntInput(string userInput, int minBorder,
- int maxBorder = int.MaxValue)
- {
- if (!int.TryParse(userInput, out int n))
- throw new InvalidCastException();
- else if (n < minBorder || n > maxBorder)
- throw new ArgumentOutOfRangeException();
- return n;
- }
- /// <summary>
- /// Весь пользовательский ввод
- /// </summary>
- /// <returns>Индикатор ошибки при вводе</returns>
- static bool UserInput(out int arraySize, out int needSize, out int[] arr)
- {
- try
- {
- Console.WriteLine("Введите размер массива: ");
- arraySize = GetIntInput(Console.ReadLine(), 1);
- arr = new int[arraySize];
- for (int i = 0; i < arraySize; i++)
- {
- arr[i] = GetIntInput(Console.ReadLine(), 0);
- }
- needSize = GetIntInput(Console.ReadLine(), 1);
- if (needSize > arraySize) throw new IndexOutOfRangeException();
- return true;
- }
- catch (IndexOutOfRangeException e)
- {
- Console.WriteLine(e.Message);
- }
- catch (InvalidCastException e)
- {
- Console.WriteLine(e.Message);
- }
- catch (ArgumentOutOfRangeException e)
- {
- Console.WriteLine(e.Message);
- }
- arraySize = 0;
- arr = null;
- needSize = 0;
- return false;
- }
- static void Main(string[] args)
- {
- do
- {
- Console.Clear();
- // Размер массива.
- int arraySize;
- // Количество выводных элементов.
- int needSize;
- int[] arr;
- // Пользовательский ввод.
- do { } while (!UserInput(out arraySize, out needSize, out arr));
- Console.WriteLine("Ввод успешно завершен...");
- // Строка содержит последние K элементов.
- string response = string.Empty;
- for (int i = arraySize - needSize; i < arraySize; i++)
- {
- // Работа с массивом.
- response += arr[i];
- response += " ";
- }
- // Запись в файл.
- try
- {
- string path = @"../../../output.txt";
- using (StreamWriter sw = new StreamWriter(path, true))
- {
- response += "\n";
- sw.Write(response);
- }
- Console.WriteLine("Запись успешно завершена...");
- }
- catch (FileNotFoundException e)
- {
- Console.WriteLine(e.Message);
- }
- catch (IOException e)
- {
- Console.WriteLine(e.Message);
- }
- Console.WriteLine("Для выхода нажмите ESC...");
- } while (Console.ReadKey(true).Key != ConsoleKey.Escape);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement