C# For Dummies
Глава 4. Вход и изход от конзолата
1. Напишете програма, която чете от конзолата три числа от тип int и отпечатва тяхната сума.
Упътване: Използвайте методите Console.ReadLine() и Int32.Parse().
Решение:
static void Main(string[] args)
{
Console.Write("Enter radius: ");
int a = Int32.Parse(Consle.ReadLine());
Console.Write("Second number: ");
int b = Int32.Parse(Consle.ReadLine());
Console.Write("Third number: ");
int c = Int32.Parse(Consle.ReadLine());
Console.WriteLine("Result is {0}", a + b + c);
}
2. Напишете програма, която чете от конзолата радиуса "r" на кръг и отпечатва неговия периметър и обиколка.
Упътване: Използвайте константата Math.PI и добре известните формули от планиметрията.
Решение:
static void Main(string[] args)
{
Console.Write("Enter radius: ");
int r = Int32.Parse(Consle.ReadLine());
Console.WriteLine("P is {0} and S is {1}", 2 * Math.PI * r, Math.PI * r * r);
}
3. Дадена фирма има име, адрес, телефонен номер, факс номер, уеб сайт и мениджър. Мениджърът има име, фамилия и телефонен номер. Напишете програма, която чете информацията за фирмата и нейния мениджър и я отпечатва след това на конзолата.
Упътване: Форматирайте текста с Write(…) или WriteLine(…).
Решение:
Link
4. Напишете програма, която отпечатва три числа в три виртуални колони на конзолата. Всяка колона трябва да е с широчина 10 символа, а числата трябва да са ляво подравнени. Първото число трябва да е цяло число в шестнадесетична бройна система, второто да е дробно положително, а третото – да е дробно отрицателно. Последните две числа да се закръглят до втория знак след десетичната запетая.
Упътване: Използвайте форматиращите настройки, предоставени от съставното форматиране и метода Console.WriteLine().
Решение:
static void Main(string[] args)
{
int hexNum = 2015;
Console.WriteLine("|0x{0,-8:X|", hexNum);
double fractNum = -1.856;
Console.WriteLine("|0,-10:f2}|", fractNum);
}
5. Напишете програма, която чете от конзолата две цели числа (int) и отпечатва, колко числа има между тях, такива, че остатъкът им от деленето на 5 да е 0. Пример: в интервала (17, 25) има 2 такива числа.
Упътване: Има два подхода за решаване на задачата:
Първи подход: Използват се математически хитрини за оптимизирано изчисляване, базирани на факта, че всяко пето число се дели на 5.
Вторият подход е по-лесен, но работи по-бавно. Чрез for цикъл може да се провери всяко число в дадения интервал. За целта трябва да прочетете от Интернет как се използва for цикъл.
Решение:
static void Main(string[] args)
{
int counter = 0;
Console.Write("Enter first number: ");
int a = Int32.Parse(Console.ReadLine());
Console.Write("Enter second number: ");
int b = Int32.Parse(Console.ReadLine());
for (int i = a; i <= b; i++)
{
if (i % 5 == 0) counter++;
}
Console.WriteLine("{0} numbers found.", counter);
}
6. Напишете програма, която чете две числа от конзолата и отпечатва по-голямото от тях. Решете задачата без да използвате условни конструкции.
Упътване: По-голямото от двете числа можете да намерите с функцията Math.Max(a, b), а по-малкото с Math.Min(a, b).
Решение:
static void Main(string[] args)
{
Console.Write("Enter first number: ");
int a = Int32.Parse(Console.ReadLine());
Console.Write("Enter second number: ");
int b = Int32.Parse(Console.ReadLine());
Console.WriteLine("{0} >= {1}", Math.Max(a, b), Math.Min(a, b));
}
7. Напишете програма, която чете пет числа и отпечатва тяхната сума. При невалидно въведено число да се подкани потребителя да въведе друго число.
Упътване: Можете да прочетете числата в пет различни променливи и накрая да ги сумирате. При парсване на поредното число използвайте условно парсване с TryParse(…). При въведено невалидно число повторете четенето на число. Можете да сторите това чрез while цикъл с подходящо условие за изход. За да няма повторение на код, можете да разгледате конструкцията за цикъл "for".
Решение:
Link
8. Напишете програма, която чете пет числа от конзолата и отпечатва най-голямото от тях.
Упътване: Трябва да използвате конструкцията за сравнение "if", за която можете да прочетете в Интернет.
Решение:
Link
9. Напишете програма, която чете коефициентите a, b и c от конзолата и решава уравнението: ax2+bx+c=0. Програмата трябва да принтира реалните решения на уравнението на конзолата.
Упътване: Използвайте добре познатия метод за решаване на квадратни уравнения. Разгледайте внимателно всички възможни случаи.
Решение:
Link
10. Напишете програма, която прочита едно цяло число n от конзолата. След това прочита още nна брой числа от конзолата и отпечатва тяхната сума.
Упътване: Четете числата едно след друго и натрупвайте тяхната сума в променлива, която накрая изведете на конзолата.
Решение:
static void Main(string[] args)
{
int sum = 0;
Console.Write("Enter numbers count: ");
int length = Int32.Parse(Console.ReadLine());
for (int i = 0; i < length; i++)
{
Console.Write("Enter {0} number: ", i + 1);
sum += Int32.Parse(Console.ReadLine());
}
Console.WriteLine("Sum of all numbers is {0}.", sum);
}
11. Напишете програма, която прочита цяло число n от конзолата и отпечатва на конзолата всички числа в интервала [1…n], всяко на отделен ред.
Упътване: Използвайте комбинация от цикли и методите Console.ReadLine(),Console.WriteLine() и Int32.Parse().
Решение:
static void Main(string[] args)
{
int sum = 0;
Console.Write("Enter number: ");
int length = Int32.Parse(Console.ReadLine());
for (int i = 1; i <= length; i++)
{
Console.WriteLine(i);
}
}
12. Напишете програма, която отпечатва на конзолата първите 100 числа от редицата на Фибоначи: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, ...
Упътване: За решение на задачата използвайте 2 временни променливи, в които да пазите последните 2 пресметнати стойности и с цикъл пресмятайте останалите (всяко следващо число в редицата е сума от последните две).
Решение:
static void Main(string[] args)
{
int num1 = 0;
int num2 = 1;
int sum = 1;
int count = 0;
Console.WriteLine(num1);
while(count < 100)
{
sum = num1 + num2;
num1 = num2;
num2 = sum;
Console.WriteLine(num2);
count++;
}
}
13. Напишете програма, която пресмята сумата (с точност до 0.001):1 + 1/2 - 1/3 + 1/4 - 1/5 + ...
Упътване: Натрупвайте сумата в променлива с цикъл и пазете старата сума, докато разликата между двете суми стане по-малка от точността (0.001).
Решение:
static void Main(string[] args)
{
Console.Write("Enter last number: ");
int length = Int32.Parse(Console.ReadLine());
double sum = 1.0;
for (int i = 2; i <= length; i++)
{
sum += (1.0 / i);
}
Console.WriteLine("{0:F3}", sum);
}
← Обратно