logo Thecsea.it



Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License



scolastica » esercizi » terza superiore » linguaggio c

Testo dell'esercizio

mostra soluzione

/**********************copyrigth (c) claudio cardinale 2009 - tutti i diritti riservati*****************/
//compilare con gcc -lm -o equazione_secondo_grado equazione_secondo_grado.c
#include <stdio.h>  
#include <stdlib.h>
#include <math.h> 
 
int main()          
{

	//dichiarazione variabili	

	int ret;
        float soluzione1, soluzione2,   delta = 0;
        int num1 = 0, num2 = 0, num3 = 0;

	//richiesta dati

        printf("Inserisci a: ");
        scanf("%d", &num1);
 
        printf("Inserisci b: ");
        scanf("%d", &num2);
	
        printf("Inserisci c: ");
        scanf("%d", &num3);
	
	//calcolo del delta
	
	if (num2%2 == 0 ){
		delta = (num2/2*num2/2) - (num1 * num3);
	}else{
		delta = (num2*num2) - (4 * num1 * num3);
	}

	//controllo  su a
	if (num1 != 0){
		//controllo sul delta

		if(delta>0){

			//istruzioni in caso di delta > 0

			if (num2%2 == 0 ){

			soluzione1 = (-num2/2 - sqrt(delta))/(num1);
			soluzione2 = (-num2/2 + sqrt(delta))/(num1);

			}else{

			soluzione1 = (-num2 - sqrt(delta))/(2*num1);
			soluzione2 = (-num2 + sqrt(delta))/(2*num1);

			}

			printf("Il delta è circa: %.3f \n", delta); 
			printf("La prima soluzione dei due numeri e' la seguente: %f \n", soluzione1);
		 	printf("La seconda soluzione dei due numeri e' la seguente: %f \n", soluzione2);
		

		}else if (delta==0){

			//istruzioni in caso di delta = 0

			if (num2%2 == 0 ){
				soluzione1 = soluzione2 = (-num2/2+sqrt(delta))/num1;
			}else{
				soluzione1 = soluzione2 = (-num2+sqrt(delta))/2*num1;
			}
			printf ("le soluzioni sono coincidenti perche' delta = 0 quindi\nx: %f\n",soluzione1);
		}else{
			//istruzioni in caso delta < 0
			printf("l'equazione e' inpossibile in R\n");
		}
	
	//istruzioni in caso di a = 0
	}else{
		//istruzioni in caso di b <> 0
		if (num2!=0){
			soluzione1 = -num3/num2;
			printf("equazione di primo grado x = %f\n",soluzione1);
		//istruzioni in caso di b = 0
		}else
			printf("l'equazione e` di primo grado ed impossibile in R\n");
	}
	 ret = execve("./equazione_secondo_grado",0,0);

        return 0;
}
/**********************copyrigth (c) claudio cardinale 2009 - tutti i diritti riservati*****************/

Testi Consigliati:

Il linguaggio C. Principi di programmazione e manuale di riferimento. Ediz. MyLab. Con Contenuto digitale per download e accesso on line
C guida alla programmazione: Conoscere lo standard C11 dalle basi del linguaggio alle direttive del preprocessore (Programmare con C Vol. 1)
Programmazione in C

torna



Copyright © 2004-2024 thecsea.it (Claudio Cardinale - [email protected])! Tutti i diritti riservati. - contattaci