Задачи для самостоятельного решения по основам языка C#

Предполагаю, что изучив раздел «Основы языка С#», вы сможете решить как новые задачи из Задачника, так и следующие задачи:

1. Решение квадратного уравнения ax2+bx+c=0. Ввести a,b,c и найти корни квадратного уравнения. Если дискриминант меньше нуля, вывести сообщение, что действительных корней нет.
2. Вычисление площади треугольника по формуле Герона. Даны стороны треугольника a,b,c. Найти площадь S.
3. Найти произведение всех целых нечетных чисел, принадлежащих интервалу [n_min, n_max]. Реализуйте вычисления тремя методами, в каждом из которых будет использован один из операторов цикла (for, while, do-while).
4. Найти произведение всех целых четных чисел, делящихся на 4 и принадлежащих интервалу [n_min, n_max].
5. Найти сумму ряда RN=1+2+4+…+2N. Вычисление реализуйте через цикл и выведенной вами формуле (подсказка – это геометрическая прогрессия), сравните результаты.
6. Найти сумму ряда SN=1+1/2+1/4+…+1/2N. Чему будет равна сумма при достаточно больших N? Вычисление реализуйте через цикл и по выведенной вами формуле (подсказка – это тоже геометрическая прогрессия), сравните результаты.
7. Вычислить значение тригонометрической функции cos(x) от произвольного значения аргумента x, используя разложение в ряд. Сравните с результатом, предоставляемым методом Math.Cos(x) из библиотеки System.
8. Вычислить значение тригонометрической функции tg(x) от произвольного значения аргумента x, используя разложение в ряд. Сравните с результатом, предоставляемым методом Math.Tan(x) из библиотеки System.
9. Заданы две функции: y1(a)=a2(a2+12)-5 и y2(a)=a(a2+1). Определите, при каких значениях параметра a наибольший общий делитель – НОД(y1(a), y2(a)) будет больше 1. Параметр a – целое число от 1 до 100.
10. Записать разложение бинома Ньютона (x+a)n по степеням x.
11. Напишите программу «Конвертор валют» с использованием конструкции switch-case.
12. Запишите представление произвольного целого положительного десятичного числа в двоичной, восьмеричной и шестнадцатеричной системах счисления, например: 259(10)=100000011(2)=403(8)=103(16).
13. Запишите произвольное целое положительное число, представленное в шестнадцатеричной системе счисления, в форме десятичного числа, например: A2F(16)=2607(10).
14. Вычислите N-й член (FN) ряда Фибоначчи: 1, 1, 2, 3, 5, 8, 13, 21, … Известно, что отношение FN/ FN-1 при достаточно больших N стремится к золотому сечению ф, где ф — положительный корень квадратного уравнения: ф2-ф-1=0. Определите программным путем, начиная с какого N | FN/ FN-1 — ф | < 10-10.

Большое количество задач (с примерами их решений) по основам программирования представлены в Задачнике.

Рекомендую пока просмотреть мои заметки о типичных ошибках и хорошем стиле программирования.


NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Помощь проекту:

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
6 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
public class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Решение квадратного уравнения ax^2 + bx + c = 0\n");
            Console.WriteLine("Введите коэффициент а: ");
            int a = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите коэффициент b: ");
            int b = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите коэффициент c: ");
            int c = int.Parse(Console.ReadLine());
            Console.WriteLine();
 
            Solution(a, b, c);
        }
        static void Solution(int a, int b, int c)
        {
            int discriminant = b * b - 4 * a * c;
 
            if (discriminant >= 0)
            {
                int x1 = (-b + Convert.ToInt32(Math.Sqrt(discriminant))) / (2 * a);
                int x2 = (-b - Convert.ToInt32(Math.Sqrt(discriminant))) / (2 * a);
                if (x1 != x2)
                {
                    Console.WriteLine("Дискриминант D > 0.");
                    Console.WriteLine($"Уравнение имеет корни {x1} и {x2}.");
                }
                else
                {
                    Console.WriteLine("Дискриминант D = 0.");
                    Console.WriteLine($"Уравнение имеет корень {x1}.");
                }
            }
            else
            {
                Console.WriteLine("Дискриминант D < 0");
                Console.WriteLine("Уравнение не имеет действительных корней.");
            }
        }
    }

Буду рад услышать комментарии по поводу варианта решения первой задачи.

static void Main(string[] args)
{
float a, c=0;
string pair;
Console.WriteLine(«Укажите конвертируемую валюту (USD, EUR, RUB): «);
pair = Console.ReadLine();
Console.WriteLine(«Укажите сумму конвертируемой валюты: «);
a=Convert.ToSingle(Console.ReadLine());
Console.WriteLine(«Укажите получаемую валюту (USD, EUR, RUB): «);
pair = pair + «/»+ Console.ReadLine();
switch (pair)
{
case «USD/RUB»: c = 75f; break;
case «EUR/RUB»: c = 85f; break;
case «EUR/USD»: c = 1.1f; break;
default: c = 0; break;
}
Console.WriteLine($»Суумма после конвертации {pair}: {a*c}»);

Задача 9. Единственное подходящее значение a = 5.
Использовал вашу функцию НОД (через множители тож сделал, но так красиве). Ну а далее простой перебор. умнее ничего, пока, в голову не приходит.

static void Main(string[] args)
{
int a = 1, y1, y2, нод;
do
{
y1 = a * a * (a * a + 15) — 5;
y2 = a * (a * a + 1);
нод = НОД(y1, y2);
if (нод!=1) Console.WriteLine(a+» «+нод);
a++;
} while (a y)
x = x — y;
else
y = y — x;
}
return x;
}
}

Задачу 4 решил бы аналогична 3, но для установки первого множителя вместо
n_min = n_min % 2 == 0 ? n_min : (++n_min);
поставлю
while (++n_min % 4 != 0)
и в циклах шаг не 2, а 4.

Задача 3.
public static uint рассчет_for(int n_min, int n_max)
{
n_min = n_min % 2 == 0 ? n_min : (++n_min);
for (uint i = n_min; i < b; i+=2)
{
if (i == n_min) continue;
n_min = n_min * i;
}
return n_min;
}
public static uint рассчет_while(int n_min, int n_max)
{
n_min = n_min % 2 == 0 ? n_min : (++n_min);
int x = n_min;
n_min += 2;
while (n_min < n_max)
{
x = x * n_min;
n_min += 2;
};
return x;
}
public static uint рассчет_dowhile(int n_min, int n_max)
{
n_min = n_min % 2 == 0 ? a : (++n_min);
int x = n_min;
n_min += 2;
do {
x = x * n_min;
n_min += 2;
} while (n_min < n_max);
return x;

Функции тоже возвращают int, но дело ведь не в этом ) . Лаконичнее решения пока в голову не приходят.

6
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x