static void Main()
{
double theta; //угол в радианах
for (theta = 0.1; theta <= 1.0; theta = theta + 0.1)
{
Console.WriteLine("Синус угла {0} равен {1}", theta, Math.Round(Math.Sin(theta),2));
Console.WriteLine("Косинус угла {0} равен {1}", theta, Math.Round(Math.Cos(theta),2));
Console.WriteLine("Тангенс угла {0} равен {1}", theta, Math.Round(Math.Tan(theta),2));
}
}
Здравствуйте, уважаемые. Сверху код вычисляет синус косинус и тангенс теты. На консоль выводится ответ такого типа (примерно):
Синус.... Косинус... Тангенс... Синус....
Косинус.... Тангенс.... ...........
А мне нужен ответ типа:
Синус.... Синус.... Синус.... ....... Косинус....
косинус.... Косинус.... ....... Тангенс....
Тангенс.... Тангенс.... .......
Я могу использовать еще два раза функцию for но мне кажется что это не правильно. Есть идеи как сделать это без нубских копирований? Думаю в языке есть методы чтобы использовать функцию несколько раз без лишней писанины! Но я не знаю! Буду рад любым ответам!
Ответ
Решение в лоб:
double theta; //угол в радианах
for (int foo = 0; foo < 3; foo++) {
for (theta = 0.1; theta <= 1.0; theta = theta + 0.1)
{
switch (foo) {
case 0: Console.WriteLine("Синус угла {0} равен {1}", theta, Math.Round(Math.Sin(theta), 2)); break;
case 1: Console.WriteLine("Косинус угла {0} равен {1}", theta, Math.Round(Math.Cos(theta), 2)); break;
case 2: Console.WriteLine("Тангенс угла {0} равен {1}", theta, Math.Round(Math.Tan(theta), 2)); break;
}
}
}
Вариация на тему лямбд:
Func
solve("Синус", Math.Sin);
solve("Косинус", Math.Cos);
solve("Тангенс", Math.Tan);
Комментариев нет:
Отправить комментарий