Anteprima
Vedrai una selezione di 3 pagine su 8
Informatica generale - esercitazioni di programmazione C Pag. 1 Informatica generale - esercitazioni di programmazione C Pag. 2
Anteprima di 3 pagg. su 8.
Scarica il documento per vederlo tutto.
Informatica generale - esercitazioni di programmazione C Pag. 6
1 su 8
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

PROGRAMMAZIONE C

Corso di economia e amministrazione delle imprese

Esame di Informatica Generale

Indice

1. Equazione di 2° grado .............................................................................................................................. 1

2. Divisori di un numero intero..................................................................................................................... 2

3. Divisori primi di un numero intero............................................................................................................ 3

4. Media ponderata ..................................................................................................................................... 4

5. Mediana .................................................................................................................................................. 5

6. Matrice (esame giugno 2013) ................................................................................................................... 6

7. Media di un array (esame giugno 2013) ................................................................................................... 7

Un consiglio finale ....................................................................................................................................... 7

1. Equazione di 2° grado

Testo

Scrivere un programma C che legge 3 numeri interi a, b, c e stampa le soluzioni dell’equazione di secondo

2

grado ax + bx + c = 0; se non ne esistono scrive “non ha soluzioni nel campo reale”.

Codice

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

int main()

{ int a, b, c;

double delta=0, ris1=0, ris2=0;

printf ("Inserire i 3 parametri dell'equazione di 2 grado:\n");

scanf ("%d%d%d",&a,&b,&c);

if (a==0) {

if (b!=0) {

ris1 = double(-c)/ (b); // c viene convertito in

double per non perdere i decimali dopo la divisione

printf ("L'equazione e' di 1 grado. Il risultato

e' %lf\n",ris1);}

else printf ("non ha soluzioni nel campo reale\n");

}

else { //equazione di 2 grado

delta = pow(b,2.0) - (4*a*c);

if (delta<0) printf ("L'equazione non ha soluzioni

reali\n"); else { ris1 = (-b + sqrt(delta)) / (2*a);

ris2 = (-b - sqrt(delta)) / (2*a);

if (ris1==ris2) printf ("Esiste una sola soluzione

che e' %lf\n",ris1); //oppure if (delta==0) printf ...

else printf ("Le due soluzioni sono: x1=%lf e

x2=%lf\n",ris1,ris2);

}

}

system ("PAUSE");

return 0;

}

Considerazioni

Per calcolare il delta è stata usata la funzione pow (potenza). In alternativa si poteva moltiplicare b per se

stesso ‘b * b’. La funzione sqrt calcola la radice quadrata. Queste funzioni sono disponibili nel modulo

math.h. 1

2. Divisori di un numero intero

Testo

Scrivere un programma C che legge un numero intero n e stampa i suoi divisori.

Codice

#include <stdio.h>

#include <stdlib.h>

//STAMPA DIVISORI

int main(){

int x, i;

printf ("Inserisci un numero intero positivo:\n");

scanf ("%d", &x);

if (x>0) {

printf ("\nI divisori sono:");

for (i=1;i<=x;i++)

if (x % i == 0) printf(" %d",i);

} else if (x==0) printf ("\nLo zero e' divisibile per qualsiasi

numero");

printf ("\n");

system("PAUSE");

return 0;

}

Considerazioni

Per determinare se un numero è divisibile per un altro basta usare l’operatore resto della divisione ‘%’. Se

dividendo il numero intero per un altro minore, il resto è zero, allora il secondo è un divisore. Nell’esempio

il ciclo for parte da 1 fino al numero x anche se si poteva partire da 2 fino a x-1 perché ogni numero è

divisibile per 1 e per se stesso. 2

3. Divisori primi di un numero intero

Testo

Scrivere un programma C che legge un numero intero n e stampa i suoi divisori primi.

Codice

#include <stdio.h>

#include <stdlib.h>

//STAMPA DIVISORI PRIMI

int isprimo(int n)

{ int i = 2;

int numprimo = 1;

if (n == 0) return false;

else { while (numprimo == 1 && i<n){

if (n % i == 0) numprimo = 0;

i++;

}

}

return numprimo;

}

int main(){

int x, i;

printf ("Inserisci un numero intero positivo:\n");

scanf ("%d", &x);

if (x>0) {

printf ("I divisori primi sono:");

for (i=1;i<=x;i++)

if (x % i == 0) if (isprimo(i)==1) printf(" %d",i);

} else if (x==0) printf ("\nLo zero e' divisibile per qualsiasi

numero");

printf ("\n");

system("PAUSE");

return 0;

}

Considerazioni

Rispetto all’esercizio precedente dobbiamo stampare solo i divisori primi. Quindi è necessario verificare se

il divisore trovato sia anche un numero primo tramite la funzione isprimo(). Tale funzione restituisce 1 se il

divisore è un numero primo o zero in caso contrario. Il ciclo while della funzione isprimo parte da i = 2

perché i numeri 1 e 2 sono primi e non è necessario testarli. Infatti con n = 2, non entriamo nel ciclo while

perché la condizione è i < n e sostituendo 2 < 2 è falso. 3

4. Media ponderata

Testo

Scrivere un programma C che legge una sequenza di coppie di numeri terminata con la coppia 0 0 e ne

stampa la media pesata dove il secondo elemento della coppia rappresenta il peso del primo

Codice

#include <stdio.h>

#include <stdlib.h>

//MEDIA PONDERATA

int main(){

int x, peso;

double somma = 0.0, n = 0.0;

printf ("Calcola la media ponderata\n\nInserisci dei numeri interi

seguiti dal peso:\n");

do { scanf ("%d%d", &x, &peso);

somma += x * peso;

n += peso;

} while (x != 0 || peso != 0);

if (n!=0) {

printf ("La media e' %lf",somma/n);

}

printf ("\n");

system("PAUSE");

return 0;

}

Considerazioni

Anche se si fa la media ponderata di numeri interi, il risultato potrebbe avere dei decimali ed è per questo

motivo che le variabili somma e n sono di tipo double. 4

Dettagli
Publisher
A.A. 2013-2014
8 pagine
4 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher angelozu di informazioni apprese con la frequenza delle lezioni di Informatica generale e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Milano - Bicocca o del prof Moscato Ugo.