




























Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
programmazione in c, esempi vari
Tipologia: Appunti
1 / 36
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





























punto_b.y = (tri.p1.y + tri.p2.y + tri.p3.y) / 3.0; return (punto_b); } /* stampa delle coordinate di un punto */ void StampaP (punto P) { if ((P.x != NULL) && (P.y != NULL)) printf("\n x: %5.2f y: %5.2f\n", P.x, P.y); else printf("\n punto invalido o inesistente\n"); }
#include <stdio.h> #include "piano.h" void main() { punto punto1, punto2, punto3, punto4; segmento segmento1; triangolo triangolo1; boolean allineamento; int scelta = - 1; while(scelta != 0) { printf("\n 0: per finire, 1: allineamento, 2: punto medio,\n 3: area triangolo, 4: baricentro\n"); scanf("%d", &scelta); switch(scelta) { case 1: printf("\nAscissa e ordinata del primo punto: "); scanf("%f %f", &punto1.x, &punto1.y); printf("\nAscissa e ordinata del secondo punto: "); scanf("%f %f", &punto2.x, &punto2.y); printf("\nAscissa e ordinata del terzo punto: "); scanf("%f %f", &punto3.x, &punto3.y); allineamento = Ver_All(punto1, punto2, punto3); if(allineamento == vero) printf("\ni punti sono allineati"); else printf("\ni punti non sono allineati"); break; case 2: printf("\nAscissa e ordinata del primo punto: "); scanf("%f %f", &segmento1.p1.x, &segmento1.p1.y); printf("\nAscissa e ordinata del secondo punto: "); scanf("%f %f", &segmento1.p2.x, &segmento1.p2.y); punto4 = PuntoM(segmento1); StampaP(punto4); break; case 3: printf("\nAscissa e ordinata del primo punto: "); scanf("%f %f", &triangolo1.p1.x, &triangolo1.p1.y); printf("\nAscissa e ordinata del secondo punto: "); scanf("%f %f", &triangolo1.p2.x, &triangolo1.p2.y); printf("\nAscissa e ordinata del terzo punto: "); scanf("%f %f", &triangolo1.p3.x, &triangolo1.p3.y);
printf("\n area del triangolo: %5.2f", AreaT(&triangolo1)); break; case 4: printf("\nAscissa e ordinata del primo punto: "); scanf("%f %f", &triangolo1.p1.x, &triangolo1.p1.y); printf("\nAscissa e ordinata del secondo punto: "); scanf("%f %f", &triangolo1.p2.x, &triangolo1.p2.y); printf("\nAscissa e ordinata del terzo punto: "); scanf("%f %f", &triangolo1.p3.x, &triangolo1.p3.y); punto4 = Baricentro(triangolo1); StampaP(punto4); break; } } }
/* ordinamento di tre numeri (esempio di if) */ #include<stdio.h> void main() { int a, b, c, cc; printf("\nfornisci i tre interi da ordinare): "); cc = scanf("%d %d %d", &a, &b, &c); while(cc == 3) { if((a <= b) && (b <= c)) printf("\n %d %d %d", a, b, c); else if((a <= c) && (c <= b)) printf("\n %d %d %d", a, c, b); else if((b <= a) && (a <= c)) printf("\n %d %d %d", b, a, c); else if((b <= c) && (c <= a)) printf("\n %d %d %d", b, c, a); else if((c <= a) && (a <= b)) printf("\n %d %d %d", c, a, b); else printf("\n %d %d %d", c, b, a); printf("\nfornisci i tre interi da ordinare): "); cc = scanf("%d %d %d", &a, &b, &c); } }
float base, ris; int espon; if(espon < 0) { espon = - espon; base = 1.0 / base;
/* (1) ciclo for / for(ris = 1.0; espon > 0; espon--) ris = ris * base; / fine ciclo for / / (2) ciclo while / ris = 1.0; while(espon > 0) { ris = ris * base; espon--; } / fine ciclo while / / (3) ciclo do while / ris = 1.0; if (espon) { do { ris = ris * base; espon--; } while(espon > 0); } / fine ciclo do while */
#include <stdio.h> void main() { char *p1 = "ABC"; char *p2;
p2 = p1; p1 = 'X'; printf("p2: %s \n", p2); / viene stampata la stringa XBC */ }
** Programma che ricerca la prima occorrenza di una specificata ** stringa di caratteri in un array di stringhe. versione 1 *****************************************************************/ #include <stdio.h> #include <stdlib.h> #include <string.h> #define SIZE 20 char * find_name(char **, char *); int main(void) { char nomi[ ] = { "Priamo", "Achille", "Ettore", "Andromaca", NULL }; / nomi: doppio puntatore a carattere ** ** nomi[ ]: vettore di puntatori a carattere ** ** nomi[0][0]: contiene 'P' ** ** nomi[1][1]: contiene 'c' ** ** nomi[3][0]: contiene 'A' ** ** (ogni stringa ha lunghezza diversa) */ char nuovo_nome[SIZE], nome_punt; printf("inserisci il nome da cercare.\n"); scanf("%s", nuovo_nome); nome_punt = find_name(nomi, nuovo_nome); printf("nome: %s\n",nome_punt); printf("nome %s%strovato\n", nuovo_nome, (nome_punt == NULL)? " non " : " "); return (0); } / End of main */ /**************************************************************** ** Funzione find_name. Questa funzione ricerca in un array di ** nomi un dato nome. ** Ritorna il puntatore al nome trovato o NULL se non e' stato ** trovato. ** array e' il puntatore al vettore di puntatori ai nomi ** esistenti ** stringa e' il puntatore alla stringa fornita (nuovo nome) ***************************************************************/
int Info[MAX_SZ]; int numelem; int first; } Coda; int InserInPila(Pila *p, int elm) { int ret = NULL; if (p->numelem < MAX_SZ) { p->Info[p->numelem++] = elm; ret = 1; } return (ret); } int TogliDaPila(Pila *p) { int ret = NULL; if (p->numelem > 0) ret = p->Info[--(p->numelem)]; return (ret); } void StampaPila(Pila *p) { int i; printf("Pila: "); for(i = 0; i < p->numelem; i++) printf("%4d", p->Info[i]); printf("\n"); } int InserInCoda(Coda *c, int elm) { int i, ret = NULL; if(c->numelem < MAX_SZ) { if(c->numelem == 0) c->first = 0; i = (c->first + c->numelem++) % MAX_SZ; c->Info[i] = elm; ret = 1; } return (ret); } int TogliDaCoda(Coda *c) { int reso = NULL; if(c->numelem != 0) { reso = c->Info[c->first]; c->numelem--; c->first = (c->first + 1) % MAX_SZ; } return (reso); } void StampaCoda(Coda *c) { int i,k; printf("Coda: "); for(i = 0;i < c->numelem; i++) { k = (c->first + i) % MAX_SZ; printf("%4d", c->Info[k]); } printf("\n"); } void main() { Pila pila1;
Coda coda1; pila1.numelem = 0; coda1.numelem = 0; InserInPila(&pila1,1); StampaPila(&pila1); InserInPila(&pila1,2); StampaPila(&pila1); InserInPila(&pila1,3); StampaPila(&pila1); printf("%4d\n",TogliDaPila(&pila1)); StampaPila(&pila1); printf("\n"); InserInCoda(&coda1,10); StampaCoda(&coda1); InserInCoda(&coda1,11); StampaCoda(&coda1); InserInCoda(&coda1,12); StampaCoda(&coda1); printf("\n"); printf("%4d\n",TogliDaCoda(&coda1)); printf("\n"); StampaCoda(&coda1); printf("\n"); printf("%4d\n",TogliDaCoda(&coda1)); printf("\n"); StampaCoda(&coda1); printf("\n"); InserInCoda(&coda1,20); InserInCoda(&coda1,21); InserInCoda(&coda1,22); InserInCoda(&coda1,23); StampaCoda(&coda1); printf("\n"); printf("%4d\n",TogliDaCoda(&coda1)); printf("\n"); printf("%4d\n",TogliDaCoda(&coda1)); printf("\n"); StampaCoda(&coda1); }
Pila: 1 Pila: 1 2 Pila: 1 2 3 3 Pila: 1 2 Coda: 10 Coda: 10 11 Coda: 10 11 12 10 Coda: 11 12 11 Coda: 12
51.00 Celsius: 123.80 Fahrenheit
#include <stdio.h> int i = 1; /* i definita al livello di file / int main() { printf("%d\n", i); / stampa 1 / { int i = 2, j = 3; / i e j definite a livello di blocco / printf("%d\n%d\n", i, j); / stampa 2, 3 / { int i = 0; / i ridefinita in un blocco interno / / le definizioni precedenti di i sono nascoste / printf("%d\n%d\n", i, j); / stampa 0, 3 / } printf("%d\n", i); / stampa 2 / } printf("%d\n", i); / stampa 1 */ return 0; }
/* potenza di un numero */ #include<stdio.h>
float potenza(float base, int espon){ float ris; if(espon < 0) { espon = - espon; base = 1.0 / base; } ris = 1.0; for(; espon > 0; espon--) ris = ris * base; return(ris); } void main() { float base; int espon; printf("\nfornisci base (un numero negativo termina il programma): "); scanf("%f", &base); while(base > 0) { printf("\nfornisci esponente (numero intero): "); scanf("%d", &espon); printf("\nrisultato : %f", potenza(base,espon)); printf("\nfornisci base (un numero negativo termina il programma): "); scanf("%f", &base); } }
#include<stdio.h> #include<math.h> void EquazioneSecondoGrado(double a, double b, double c) { double x1,x2,Disc; if (a==0) printf("\n errore: equazione di primo grado"); else { Disc=bb-4ac; if (Disc < 0) printf("\n errore: radice complessa "); else { x1 = (-b+sqrt(Disc)) / (2.0a); x2 = (-b-sqrt(Disc)) / (2.0*a); printf("\n x1 = %g", x1); printf("\n x2 = %g", x2); } }
void scambiacx(complex *pt1, complex *pt2) { complex tmp; tmp = *pt1; *pt1 = *pt2; *pt2 = tmp; }
/* programma di prova della funzione scambia */ #include<stdio.h> #include"scambia.h" void main() { int unoi = 1, duei = 2; char ac = 'a', bc = 'b'; float fla = 1.0100, flb = 2.0200; double dba = 10.0030, dbb = 23.9950; complex cx1, cx2; cx1.realp = 1.2; cx1.imgp = 2.1; cx2.realp = 91.2; cx2.imgp = 92.1; printf("\n uno: %i due: %i ", unoi, duei); scambiain(&unoi,&duei); printf("\n uno: %i due: %i ", unoi, duei); printf("\n a: %c b: %c ", ac, bc); scambiach(&ac,&bc); printf("\n a: %c b: %c ", ac, bc); printf("\n fla: %f flb: %f ", fla, flb); scambiafl(&fla,&flb); printf("\n fla: %f flb: %f ", fla, flb); printf("\n dba: %lf dbb: %lf ", dba, dbb); scambiadb(&dba,&dbb); printf("\n dba: %lf dbb: %lf ", dba, dbb); printf("\n cx1: %lf %lf cx2: %lf %lf", cx1.realp, cx1.imgp, cx2.realp, cx2.imgp); scambiacx(&cx1,&cx2); printf("\n cx1: %lf %lf cx2: %lf %lf", cx1.realp, cx1.imgp, cx2.realp, cx2.imgp); }
uno: 1 due: 2 uno: 2 due: 1 a: a b: b a: b b: a fla: 1.010000 flb: 2. fla: 2.020000 flb: 1. dba: 10.003000 dbb: 23.9 95000 dba: 23.995000 dbb: 10. cx1: 1.200000 2.100000 cx2: 91.200000 92. cx1: 91.200000 92.100000 cx2: 1.200000 2.
/* programma di prova della funzione scambia / #include<stdio.h> / definizione del tipo numero complesso / typedef struct { double realp, imgp; } complex; / funzione di scambio fra due variabili */ void scambia(char tipo, void *pt1, void *pt2) { char tmpch; int tmpin; double tmpfl; complex tmpcx; switch (tipo) { case 'c': tmpch = * (char *)pt1;
#include<stdio.h> /* codifica ricorsiva / int MCDric(int a, int b) { int differenza, minore; if(a == b) return (b); else { differenza = a>b? a-b : b-a; minore = a>b? b : a; return (MCDric(differenza,minore)); }; } / codifica iterativa */ int MCDite(int a, int b) { while (a != b) { if (a > b) a = a - b; else b = b - a; } return (b); } void main () { int x, y; printf("introdurre due numeri interi\n"); scanf("%d %d", &x, &y); printf("Il Massimo Comun Divisore fra %d e %d e' %d\n", x, y, MCDric(x,y)); printf("Il Massimo Comun Divisore fra %d e %d e' %d\n", x, y, MCDite(x,y)); }
int MCDite(int a, int b) { while ((a != 0) && (b != 0)) { if (a > b) a = a % b; else b = b % a; } return ((a>b)? a : b); }
int MCDric(int a, int b) { return (b? MCDric(b, a % b) : a); }
#include <stdio.h> float Media(float elementi[], int num_elementi) /* funzione di calcolo della media in modo ricorsivo ** bisogna fornire l'indirizzo del vettore che contiene i valori ** e la sua lunghezza / { float med,med1; if(num_elementi == 1) med=elementi; else { med1=Media(elementi + 1, num_elementi - 1); med=med1 + ((*elementi - med1) / num_elementi); } return med; } void main() { int cont, num_elem; float media, elementi[50]; printf("inserisci il numero di elementi dei quali vuoi fare la media: "); scanf("\n%d", &num_elem); for(cont=0; cont<num_elem; cont++) { printf("Inserisci numero: \n"); scanf("%f",&elementi[cont]); } media = Media(elementi, num_elem); printf ("\nLa media e`: %f", media); }
/* calcolo ricorsivo di un polinomio / #include <stdio.h> #define MAX_SZ 10 / i parametri passati sono: il valore della variabile x, il vettore