Нужно разбить на подпрограммы, чтобы математика была отдельным блоком - 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;
}

Объяснение кода листинга программы

  1. В функции main объявлены переменные a, b, c, x1, x2.
  2. В функции main происходит считывание значений переменных a, b, c с помощью функции scanf.
  3. Результат функции Solv сохраняется в переменную n.
  4. В зависимости от значения переменной n выводится сообщение об отсутствии решений, или значения x1, или значения x1 и x2.
  5. В конце программы выводится сообщение PAUSE и возвращается 0.
  6. В функции Solv происходит вычисление дискриминанта d и проверка его значений.
  7. Если d<0, то возвращается 0.
  8. Если d=0, то возвращается 1 и вычисляется x1.
  9. Если d>0, то вычисляются x1 и x2 и возвращается 2.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5
Похожие ответы