Нужно разбить на подпрограммы, чтобы математика была отдельным блоком - C (СИ)
Формулировка задачи:
Листинг программы
- #include "stdafx.h"
- #include <conio.h>
- #include <iostream>
- #include <math.h>
- int main()
- {
- float a,b,c,d,x,x1,x2;
- scanf ("%f %f %f",&a,&b,&c);
- if (a==0)
- {
- if (b==0) printf ("Uravnenie ne imeet resheniya\n");
- else printf ("Uravnenie ne kvadratnoe %0.f\n",x=-c/b);
- }
- else
- {
- d=b*b-(4*a*c);
- if (d<0) printf ("D<0 reshenij net\n");
- else if (d==0) printf ("D=0 Odno reshenie X=%0.f\n",x=-b/(2*a));
- else
- {
- printf ("Dva resheniya ");
- printf ("X1=%0.f\n",x1=(-b+sqrt(d))/(2*a));
- printf ("X2=%0.f\n",x2=(-b-sqrt(d))/(2*a));
- }
- }
- system("PAUSE");
Решение задачи: «Нужно разбить на подпрограммы, чтобы математика была отдельным блоком»
textual
Листинг программы
- #include <stdio.h>
- #include <math.h>
- int Solv(double a,double b,double c,double& x1,double&x2)
- {
- double d;
- if (a==0)
- return 0;
- d=b*b-(4*a*c);
- if (d<0)
- return 0;
- if (d==0)
- {
- x1=-b/(2*a);
- return 1;
- }
- x1=(-b+sqrt(d))/(2*a);
- x2=(-b-sqrt(d))/(2*a);
- return 2;
- }
- int main()
- {
- double a,b,c,x1,x2;
- scanf("%lf%lf%lf",&a,&b,&c);
- int n=Solv(a,b,c,x1,x2);
- switch(n)
- {
- case 0:
- puts("No solutions");
- break;
- case 1:
- printf("x1=%lf\n",x1);
- break;
- case 2:
- printf("x1=%lf\n",x1);
- printf("x2=%lf\n",x2);
- }
- system("PAUSE");
- return 0;
- }
Объяснение кода листинга программы
- В функции
main
объявлены переменныеa
,b
,c
,x1
,x2
. - В функции
main
происходит считывание значений переменныхa
,b
,c
с помощью функцииscanf
. - Результат функции
Solv
сохраняется в переменнуюn
. - В зависимости от значения переменной
n
выводится сообщение об отсутствии решений, или значенияx1
, или значенияx1
иx2
. - В конце программы выводится сообщение
PAUSE
и возвращается 0. - В функции
Solv
происходит вычисление дискриминантаd
и проверка его значений. - Если
d<0
, то возвращается 0. - Если
d=0
, то возвращается 1 и вычисляетсяx1
. - Если
d>0
, то вычисляютсяx1
иx2
и возвращается 2.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д