C/C++
Лабораторная работа
4 июн 2022
1 страниц

Выполнить 4 лабораторных работ по программированию: ветвящиеся алгоритмы, алгеброические вычисления, циклические алгоритмы, вложенные циклы

Лабораторная работа №1
Ветвящиеся алгоритмы
Задания для самостоятельного выполнения
1. Проанализируйте программу из примера. Какие изменения, исправления
или оптимизации Вы бы внесли в неё?
2. Составьте блок-схему алгоритма для своего варианта.
3. Напишите программу, решающую задачу по номеру своего варианта.
Требования и ограничения
Значения параметров вводить в клавиатуры. Результаты деления выводить до
4 знака после запятой, если не указано иное. В случае получения в знаменателе
нуля, вывести сообщение о делении на нуль.
Пример
Вывести на экран и провести частичный анализ функции 𝑓(𝑥) = 𝑎𝑥2 + 𝑏𝑥 + 𝑐
в зависимости от коэффициентов 𝑎, 𝑏, 𝑐.
1 # include < stdio .h >
2 # include < math .h >
3 int main ()
4 {
5 float a , b , c ;
6 printf (" Enter a -> ") ;
7 scanf ("% f " , & a ) ;
8 printf (" Enter b -> ") ;
9 scanf ("% f " , & b ) ;
10 printf (" Enter c -> ") ;
11 scanf ("% f " , & c ) ;
12 if (! a && ! b && ! c )
13 return 0;
14 float x = 1.0 f ;
15 printf (" f ( x ) = ") ;
16 if ( a )
17 {
18 printf ("% f * x ^2 " , a ) ;
19 if ( b > 0.0 f )
20 printf ("+ ") ;
21 }
22 if ( b )
23 printf ("% f * x " , b ) ;
24 if ( c )
25 {
26 if ( c > 0.0 f )
27 if ( a || b )
28 printf ("+ ") ;
29 else
30 printf (" - ") ;
31 printf ("% f " , fabs ( c ) );
32 }
33 printf ("\ n ") ;
1
34 float f_x = a * x * x + b * x + c ;
35 float f_minus_x = a * -x * -x + b * -x + c ;
36 if ( f_x == f_minus_x )
37 printf (" Function is even : f ( x ) = %f = f ( - x ) = %f \ n " , f_x ,
f_minus_x ) ;
38 else
39 if ( f_minus_x == - f_x )
40 printf (" Function is odd : f ( - x ) = %f = -f ( x ) = %f \ n " ,
f_minus_x , - f_x ) ;
41 else
42 printf (" Function is neither even nor odd : f ( x ) = %f != f
( - x ) = % f != -f ( x ) = % f \ n " , f_x , f_minus_x , - f_x ) ;
43 if ( a )
44 {
45 float vx = -b / (2.0 f * a ) ;
46 float vy = a * vx * vx + b * vx + c ;
47 printf (" Vertex (% f , % f ) is a " , vx , vy ) ;
48 if ( a > 0.0 f )
49 printf (" minimum ") ;
50 else
51 printf (" maximum ") ;
52 }
53 return 0;
54 }
Результаты работы программы:
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
2
Рис. 1: Блок-схема программы
Варианты заданий:
1. Вывести сумму цифр числа a если она больше b, если равна b - сообщение
«Сумма цифр = b», и значение суммы, увеличенное на b, если сумма меньше
b.
2. Вывести значение наибольшего из трёх параметров x, y, z если оно больше суммы двух других параметров, и разность этой суммы и наибольшего
значения иначе.
3
3. Вывести значение наименьшего из трёх параметров a, b, c если оно ≤ x
и кратно 7, и частное наименьшего параметра и суммы двух оставшихся
иначе.
4. Вывести номер и долю в процентах наибольшего из параметров a1, a2, a3
случае его чётности, и номера и разность значений наибольшего и наименьшего из параметров иначе.
5. Вывести частное суммы параметров a, b и параметра x, если сумма меньше x, и обратное частное, если сумма больше. В случае равенства вывести
частное b и x. Точность – 3 знака после запятой.
6. Вывести номер наименьшего параметра b1, b2, b3, в случае, если его значение нечётно, и частное номера и значения этого параметра иначе. Количество цифр после запятой равно номеру параметра.
7. Вывести частное наименьшей суммы цифр параметров a, b и второго параметра.
8. Вывести разность наибольшего из параметров c1, c2, c3 и суммы номеров
оставшихся параметров, в случае если этот параметр кратен 3, и частное
этой суммы и наибольшего из параметров иначе.
9. Вывести частное произведения параметров a, b и параметра x, если произведение меньше x, и разность иначе. В случае равенства вывести соответствующее сообщение.
10. Вывести разность наибольшего и наименьшего из параметров d1, d2, d3
в случае, если номер наибольшего нечётный, и частное наименьшего и наибольшего иначе.
11. В зависимости от того, что больше, вывести разность наибольшего из параметров a, b и параметра x, либо сумму наименьшего из параметров и
параметра x. В случае равенства вывести соответствующее сообщение.
12. Вывести частное номера наименьшего параметра e1, e2, e3 и суммы параметров, если сумма больше нуля и обратное частное иначе.

Shilova N Shilova N
3300 р