Задания для самостоятельного выполнения
- Сложность:
- Rare
- Разберите код программы из примера.
- Составьте блок-схему алгоритма для своего варианта.
- Напишите программу, решающую задачу по своему варианту.
- Оформите отчёт в
README.md
. Отчёт должен содержать:- Задание
- Описание проделанной работы
- Скриншоты результатов
- Блок-схему
- Ссылки на используемые материалы
- Сложность:
- Medium
- Сделайте свою программу выполняющейся до тех пор, пока пользователь не введёт все нулевые значения.
- Реализуйте сохранение вывода программы и пользовательского ввода в лог-файл.
- Сложность:
- Well-done
- Реализуйте “защиту от дурака” – обработайте пользовательский ввод таким образом, чтобы выполнение алгоритма программы невозможно было нарушить некорректным пользовательским вводом.
Пример
Вывести на экран и провести частичный анализ функции \( f(x) = ax^2 + bx + c \) в зависимости от коэффициентов \( a, b, c \).
#include <stdio.h>
int main()
{
float a, b, c;
printf("Enter a -> ");
scanf("%f", &a);
printf("Enter b -> ");
scanf("%f", &b);
printf("Enter c -> ");
scanf("%f", &c);
if (!a && !b && !c)
return 0;
float x = 1.0f;
printf("f(x) = ");
if (a)
{
printf("%f * x^2 ", a);
if (b > 0.0f)
printf("+ ");
}
if (b)
printf("%f * x ", b);
if (c)
{
if (c > 0.0f)
if (a || b)
printf("+ %f", c);
else
printf("- %f", -c);
}
printf("\n");
float f_x = a * x * x + b * x + c;
float f_minus_x = a * -x * -x + b * -x + c;
if (f_x == f_minus_x)
printf("Function is even: f(x) = %f = f(-x) = %f\n", f_x, f_minus_x);
else if (f_minus_x == -f_x)
printf("Function is odd: f(-x) = %f = -f(x) = %f\n", f_minus_x, -f_x);
else
printf ("Function is neither even nor odd: \
f(x) = %f != f(-x) = % f != -f(x) = %f\n" , f_x , f_minus_x , -f_x);
if (a)
{
float vx = -b / (2.0f * a);
float vy = a * vx * vx + b * vx + c;
printf("Vertex (%f, %f) is a ", vx, vy);
if (a > 0.0f)
printf("minimum");
else
printf("maximum");
printf("\n");
}
return 0;
}
Результаты работы программы
Enter a -> 1
Enter b -> -2
Enter c -> 0.5
f(x) = 1.000000 * x^2 - 2.000000 * x + 0.500000
Function is neither even nor odd: f(x) = -0.500000 != f(-x) = 3.500000 != -f(x) = 0.500000
Vertex (1.000000 , -0.500000) is a minimum
Блок-схема
Варианты заданий
- Вывести сумму цифр числа
a
если она большеb
, если равнаb
- сообщениеСумма цифр = b
, и значение суммы, увеличенное наb
, если сумма меньшеb
. - Вывести значение наибольшего из трёх параметров
x
,y
,z
если оно больше суммы двух других параметров, и разность этой суммы и наибольшего значения иначе. - Вывести значение наименьшего из трёх параметров
a
,b
,c
если оно меньше или равноx
и кратно 7, и частное наименьшего параметра и суммы двух оставшихся иначе. - Вывести номер и долю в процентах наибольшего из параметров
a1
,a2
,a3
в случае его чётности, и номера и разность значений наибольшего и наименьшего из параметров иначе. - Вывести частное суммы параметров
a
,b
и параметраx
, если сумма меньшеx
, и обратное частное, если сумма больше. В случае равенства вывести частноеb
иx
. Точность – 3 знака после запятой. - Вывести номер наименьшего параметра
b1
,b2
,b3
, в случае, если его значение нечётно, и частное номера и значения этого параметра иначе. Количество цифр после запятой равно номеру параметра. - Вывести частное наименьшей суммы цифр параметров
a
,b
и второго параметра. - Вывести разность наибольшего из параметров
c1
,c2
,c3
и суммы номеров оставшихся параметров, в случае если этот параметр кратен 3, и частное этой суммы и наибольшего из параметров иначе. - Вывести частное произведения параметров
a
,b
и параметраx
, если произведение меньшеx
, и разность иначе. В случае равенства вывести соответствующее сообщение. - Вывести разность наибольшего и наименьшего из параметров
d1
,d2
,d3
в случае, если номер наибольшего нечётный, и частное наименьшего и наибольшего иначе. - В зависимости от того, что больше, вывести разность наибольшего из параметров
a
,b
и параметраx
, либо сумму наименьшего из параметров и параметраx
. В случае равенства вывести соответствующее сообщение. - Вывести частное номера наименьшего параметра
e1
,e2
,e3
и суммы параметров, если сумма больше нуля и обратное частное иначе.