Осуществил с того что я умею, сложного не использовал ибо еще не дошел до него . Тут 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("Попробуйте ещё раз. Некорректное значение.");
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();
}
}
}
phmad7
09.10.2020
Не особо знаю паскаль, так что дабы не накосячить с синтаксисом, покажу на примере. Тут всё просто - тебе лишь нужен цикл For и расчет процентов.
FOR i = 1 TO 100 percents = FIX(x * p / 100) ' здесь у нас есть переменная percents, которой присваиваются округленные функцией fix проценты (насколько я знаю, в паскале аналогичная функция называется Round) x = x + percents 'тут всё понятно - переменной X присваивается она сама и годовые проценты по вкладу IF x >= y THEN 'проверяем, не равен или не превысил ли наш вклад ожидаемую сумму PRINT i 'в цикле For можно не заморачиваться с отслеживанием лет, переменная i сама подсчитает количество итераций-лет END 'завершаем программу END IF NEXT i ' конец цикла Можно ещё чисто для себя добавить в условие вывод переменной X, чтобы было нагляднее.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Формативное оценивание за раздел работы с документами 1 вариант
Осуществил с того что я умею, сложного не использовал ибо еще не дошел до него . Тут 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();
}
}
}