//Описати структуру з ім'ям ORDER, що містить наступні
/*поля:
розрахунковий рахунок платника;
розрахунковий рахунок отримувача;
сума, що перераховується в грн.
У цьому прикладі оголошується структура ORDER, яка має три поля:

PayerAccount для розрахункового рахунку платника (рядок).
PayeeAccount для розрахункового рахунку отримувача (рядок).
AmountInUAH для перечисленої суми в гривнях (дійсне число з плаваючою комою).
Після оголошення структури, ми створюємо об'єкт структури order1 і ініціалізуємо його поля значеннями. Потім ми виводимо значення цих полів на консоль.

Ця структура ORDER може бути використана для представлення інформації про платежі та збереження даних про розрахункові рахунки та суму переказу.
Написати програму, яка виконує такі дії:
введення з клавіатури даних до масиву, що складається з восьми
елементів типу ORDER;
записи повинні бути розміщені в алфавітному порядку за
розрахунковими рахунками платників;
виведення на екран інформації про суму, зняту з розрахункового рахунку
платника, запровадженого з клавіатури;
якщо такого розрахункового рахунку немає, видати на екран
відповідне повідомлення.
using System;*/

// Оголошення структури ORDER
using System;
struct ORDER
{
    public string PayerAccount;    // Розрахунковий рахунок платника:
    public string PayeeAccount;    // Розрахунковий рахунок одержувача
    public decimal AmountInUAH;    // Сума, що перераховується в грн.
}

class Program
{
    static void Main()
    {
        // Оголошення масиву структур ORDER
        ORDER[] orders = new ORDER[2];

        // Введення даних в масив
        for (int i = 0; i < orders.Length; i++)
        {
            Console.WriteLine($"Введіть дані для платежу #{i + 1}:");
            Console.Write("Розрахунковий рахунок платника: ");
            orders[i].PayerAccount = Console.ReadLine();
            Console.Write("Розрахунковий рахунок одержувача: ");
            orders[i].PayeeAccount = Console.ReadLine();
            Console.Write("Сума, що перераховується в грн.: ");
            if (decimal.TryParse(Console.ReadLine(), out decimal amount))
            {
                orders[i].AmountInUAH = amount;
            }
            else
            {
                Console.WriteLine("Невірний ввід суми. Введіть число.");
                i--; // Повторити введення для цього платежу
            }
        }

        // Сортування масиву за рахунками плательників
        Array.Sort(orders, (a, b) => a.PayerAccount.CompareTo(b.PayerAccount));

        // Введення рахунку плательника для пошуку суми
        Console.Write("Введіть рахунок плательника для пошуку суми: ");
        string searchAccount = Console.ReadLine();

        bool found = false;
        decimal totalAmount = 0;

        // Пошук і обчислення суми, снятої з рахунку плательника
        foreach (ORDER order in orders)
        {
            if (order.PayerAccount == searchAccount)
            {
                totalAmount += order.AmountInUAH;
                found = true;
            }
        }

        // Виведення результатів
        if (found)
        {
            Console.WriteLine($"Сума, снята з рахунку {searchAccount}: {totalAmount} грн.");
        }
        else
        {
            Console.WriteLine($"Рахунок {searchAccount} не знайдено.");
        }
    }
}


/*Ця програма спершу дозволяє ввести дані для восьми платежів, включаючи рахунки плательників, 
рахунки отримувачів та суми платежів. Потім вона сортує платежі за рахунками плательників, а далі вводить 
рахунок плательника для пошуку суми. Якщо рахунок знайдено, програма обчислює суму, сняту з цього рахунку, і виводить результат. 
Якщо рахунок не знайдено, виводиться повідомлення про це.*/


