Осуществил с того что я умею, сложного не использовал ибо еще не дошел до него . Тут 2 класса идут в двух разных .cs .
Единственные нюансы: 1) не осуществил год до нашей эры, т.е если год вводится -2 (2 до н.е) выводится 2.
2) запутанность жесткая, ибо использовал goto и много переменных разных. с моими текущими знаниями я не мог использовать что то попроще, возможно оптимизируете.
1 класс:
using System;
namespace HomeLibrary
{
class ListOfBooks
{
static string Author, Category, Name; static int Year;
public static bool Indicate, SecondIndicate, ThirdIndicate;
public static string SetAuthor
{
get
{
return Author;
}
set
{
if (string.IsNullOrWhiteSpace(value) || int.TryParse(value, out int WrongValue))
{
Indicate = true;
}
else
{
Author = value;
}
}
}
public static int SetYear
{
get
{
return Year;
}
set
{
if(value >= 0 && value <= 2022)
{
Year = value;
}
}
}
public static string SetCategory
{
get
{
return Category;
}
set
{
if (string.IsNullOrWhiteSpace(value) || int.TryParse(value, out int WrongValue))
{
SecondIndicate = true;
}
else
{
Category = value;
}
}
}
public static string SetName
{
get
{
return Name;
}
set
{
if (string.IsNullOrWhiteSpace(value) || int.TryParse(value, out int WrongValue))
{
ThirdIndicate = true;
}
else
{
Name = value;
}
}
}
}
}
2 класс.
using System;
using System.Collections.Generic;
namespace HomeLibrary
{
class Program
{
static void SecondMenue(int SecondChoise)
{
switch(SecondChoise)
{
case 2:
List<string> Books = new List<string>();
TryAgain4:
Console.WriteLine("Введите название книги.");
ListOfBooks.SetName = Console.ReadLine();
if (ListOfBooks.ThirdIndicate == true)
{
Console.WriteLine("Попробуйте ещё раз. Некорректное значение.");
PROGRAM MatrixMax var a : array [1..3, 1..4] of integer b : array [1..3] of integer Max, i, j : integer BEGIN crt; for i:=1 to 3 do begin for j:=1 to 4 do begin read (a[i, j]); // вводим элементы в массив a[1..3, 1..4] end; writeln; // делаем пустой перевод строки end; for i:=1 to 3 do begin b[i] := a[i, 1]; for j:=1 to 4 do begin if a[i, j] > b[i] then b[i] := a[i, j]; // находим максимальный элемент в каждой строке и записываем в b[1..3] end; end; Max := b[1]; for i:=1 to 3 do if b[i] > Max then Max := b[i]; // Находим максимальный элемент из максимальных элементов writeln (Max); // Выводим его на экран END.
Осуществил с того что я умею, сложного не использовал ибо еще не дошел до него . Тут 2 класса идут в двух разных .cs .
Единственные нюансы: 1) не осуществил год до нашей эры, т.е если год вводится -2 (2 до н.е) выводится 2.
2) запутанность жесткая, ибо использовал goto и много переменных разных. с моими текущими знаниями я не мог использовать что то попроще, возможно оптимизируете.
1 класс:
using System;
namespace HomeLibrary
{
class ListOfBooks
{
static string Author, Category, Name; static int Year;
public static bool Indicate, SecondIndicate, ThirdIndicate;
public static string SetAuthor
{
get
{
return Author;
}
set
{
if (string.IsNullOrWhiteSpace(value) || int.TryParse(value, out int WrongValue))
{
Indicate = true;
}
else
{
Author = value;
}
}
}
public static int SetYear
{
get
{
return Year;
}
set
{
if(value >= 0 && value <= 2022)
{
Year = value;
}
}
}
public static string SetCategory
{
get
{
return Category;
}
set
{
if (string.IsNullOrWhiteSpace(value) || int.TryParse(value, out int WrongValue))
{
SecondIndicate = true;
}
else
{
Category = value;
}
}
}
public static string SetName
{
get
{
return Name;
}
set
{
if (string.IsNullOrWhiteSpace(value) || int.TryParse(value, out int WrongValue))
{
ThirdIndicate = true;
}
else
{
Name = value;
}
}
}
}
}
2 класс.
using System;
using System.Collections.Generic;
namespace HomeLibrary
{
class Program
{
static void SecondMenue(int SecondChoise)
{
switch(SecondChoise)
{
case 2:
List<string> Books = new List<string>();
TryAgain4:
Console.WriteLine("Введите название книги.");
ListOfBooks.SetName = Console.ReadLine();
if (ListOfBooks.ThirdIndicate == true)
{
Console.WriteLine("Попробуйте ещё раз. Некорректное значение.");
ListOfBooks.ThirdIndicate = false;
Console.ReadLine();
goto TryAgain4;
}
TryAgain:
Console.WriteLine("Введите имя/псевдоним автора.");
ListOfBooks.SetAuthor = Console.ReadLine();
if ( ListOfBooks.Indicate == true)
{
Console.WriteLine("Попробуйте ещё раз. Некорректное значение.");
ListOfBooks.Indicate = false;
Console.ReadLine();
goto TryAgain;
}
TryAgain2:
string YearString;
Console.WriteLine("Введите год выпуска книги.");
YearString = Console.ReadLine();
if (!(int.TryParse(YearString, out int Year)))
{
Console.WriteLine("Попробуйте ещё раз. Некорректное значение.");
Console.ReadLine();
goto TryAgain2;
}
ListOfBooks.SetYear = Year;
TryAgain3:
Console.WriteLine("Введите категорию книги.");
ListOfBooks.SetCategory = Console.ReadLine();
if (ListOfBooks.SecondIndicate == true)
{
Console.WriteLine("Попробуйте ещё раз. Некорректное значение.");
ListOfBooks.SecondIndicate = false;
Console.ReadLine();
goto TryAgain3;
}
Books.Add($"Книга: {ListOfBooks.SetName}, Автор: {ListOfBooks.SetAuthor}, Год: {ListOfBooks.SetYear}, Категория: {ListOfBooks.SetCategory}.");
Console.WriteLine("Книга успешно добавлена в вашу библиотеку.");
string ChoiceAfter;
TryAgain5:
Console.WriteLine("Желаете добавить ещё книгу - 2 , посмотреть список книг - 3, закончить - 4 .");
ChoiceAfter = Console.ReadLine(); if (int.TryParse(ChoiceAfter, out int Choice) && Choice == 2) goto TryAgain4;
else if(Choice == 3)
{
Console.WriteLine("Список ваших книг:");
foreach(string Book in Books)
{
Console.Write($"\n{Book}");
Console.ReadLine();
}
goto TryAgain5;
}
else if(Choice == 4)
{
Console.WriteLine("Всего доброго!");
Console.ReadLine();
return;
}
break;
case 4:
Console.WriteLine("Всего доброго!");
Console.ReadLine();
return;
}
}
static void Menue(int UserNumber)
{
TryAgainX2:
switch (UserNumber)
{
case 1:
string ChoiseString;
Console.WriteLine("Добавить книгу - 2 , Закончить работу - 4 .");
ChoiseString = Console.ReadLine();
int.TryParse(ChoiseString, out int Choise); if (Choise >= 2 && Choise <= 4) SecondMenue(Choise);
break;
default:
Console.WriteLine("Некорректное значение");
goto TryAgainX2;
break;
}
}
static void Main(string[] args)
{
TryAgain:
string ChoiceFirst;
Console.WriteLine("Здравствуйте, Вас приветсвует домашняя библиотека. Открыть меню команд - 1");
ChoiceFirst = Console.ReadLine();
if (int.TryParse(ChoiceFirst, out int Choice) && Choice == 1) Menue(Choice);
else
{
Console.WriteLine("Неверное значение, попробуйте ещё раз.");
goto TryAgain;
}
Console.ReadLine();
}
}
}
var a : array [1..3, 1..4] of integer
b : array [1..3] of integer
Max, i, j : integer
BEGIN
crt;
for i:=1 to 3 do
begin
for j:=1 to 4 do
begin
read (a[i, j]); // вводим элементы в массив a[1..3, 1..4]
end;
writeln; // делаем пустой перевод строки
end;
for i:=1 to 3 do
begin
b[i] := a[i, 1];
for j:=1 to 4 do
begin
if a[i, j] > b[i] then b[i] := a[i, j];
// находим максимальный элемент в каждой строке и записываем в b[1..3]
end;
end;
Max := b[1];
for i:=1 to 3 do if b[i] > Max then Max := b[i];
// Находим максимальный элемент из максимальных элементов
writeln (Max); // Выводим его на экран
END.