Составить квадратное уравнение, с вычислением дискриминанта и корней - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Снова здравствуйте! задали задание по функциям, составить квадратное уравнение, с вычислением дискриминанта и корней. я составил, но учитель сказал, что в одной функции нужно решить дискриминант, а в другой найти корни, а я объединил и не знаю как сделать по словам учителя... помогите пожалуйста вот мой код
#include <vcl.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
void diskr(float a1,float b1,float c1)
{
float d,x1,x2;
d=pow(b1,2)-4*a1*c1;
 if (d > 0)
{
x1=(((-b1)+d)/(2*a1));
x2=(((-b1)-d)/(2*a1));
printf("\nDve tochka: x1=%.1f,x2=%.1f",x1,x2);
}
  else
    if (d == 0)
{
x1=(-b1/(2*a1));
    printf("\nOdna obshaya tochka: x1=%.1f", x1);
}
 
    else
{
       printf("Resheniya net");
}
}
void main()
{
    float a,b,c;
    printf("Vvedite chisla a b c:\n");
    scanf("%f",&a); scanf("%f",&b);scanf("%f",&c);
    diskr(a,b,c);
    getch();
}
//---------------------------------------------------------------------------

Решение задачи: «Составить квадратное уравнение, с вычислением дискриминанта и корней»

textual
Листинг программы
#include <stdio.h>
#include <math.h>
 
 
 int ds(int b1, int a1, int c1){
return (b1 * b1)-(4*a1*c1); // Вычисляем дискриминант
}
 
int rs1(int b11, int d11,int a11){
return ((-b11 + sqrt(d11)) / (2 * a11)); // Вычисляю x1 
}
 
 int rs2(int b11, int d11,int a11){
return ((-b11 - sqrt(d11)) / (2 * a11)); // Вычисляю x2
}
 
 
int main(){
 
 int a = 0;
 int b = 0;
 int c = 0;
 int d = 0;  //Дискриминант
 int x1 = 0;
 int x2 = 0;
 char exit[0]; //Хитрюлька для выхода из программы
 
printf("Hello,this program will solve your quadratic equation.\n");// Приветствие
 
printf("Please enter the variable a:\a");//сканирование переменных
scanf("%d", &a);
printf("Please enter the variable b:\a");
scanf("%d", &b);
printf("Please enter the variable c:\a");
scanf("%d", &c);
 
  if (a != 0)
  d = ds(b, a, c);
  else printf("Error,variable a = 0\n");
  
 if(d < 0)
  printf("Ssory, equation has roots\n");
 else { printf("Discriminant = (%d)\n", d);
 x1 = rs1(b, d, a);
 printf("     x1 = (%d)\n", x1);
 x2 = rs2(b, d, a);
 printf("     x2 = (%d)\n", x2);
 }
 printf("To exit the program, type any character and press enter");
 scanf("%s", exit);
 printf("End!");
 
  return 0;
}

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

  1. Объединение всех файлов в один исполняемый файл.
  2. Выполнение программы.
  3. Ввод значений переменных a, b, c.
  4. Вычисление дискриминанта (d) по формуле d = b^2 - 4ac.
  5. Проверка значения дискриминанта (d).
  6. Если d < 0, то выводится сообщение об ошибке.
  7. Если d >= 0, то выводится значение дискриминанта (d).
  8. Вычисление корня x1 по формуле x1 = (-b + sqrt(d))/(2a).
  9. Вывод значения корня x1.
  10. Вычисление корня x2 по формуле x2 = (-b - sqrt(d))/(2a).
  11. Вывод значения корня x2.
  12. Вывод сообщения To exit the program, type any character and press enter.
  13. Чтение символа из стандартного ввода.
  14. Выполнение условия для выхода из программы.
  15. Вывод сообщения End!.
  16. Возврат 0, что означает успешное завершение программы.

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


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

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

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