Soluzioni e commenti esercizi 1 e 2

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

INFORMATICA Altre Istruzioni di I/O
LINGUAGGIO DI PROGRAMMAZIONE C
Funzioni e procedure Ogni linguaggio di programmazione ad alto livello mette a disposizione del programmatore questi strumenti, ed il C non è da meno!
INFORMATICA Strutture condizionali
Sottoprogrammi: funzioni e procedure
Uso avanzato di C.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Iterazione while – do while - for.
Iterazione A. Ferrari.
Selezione A. Ferrari.
Procedure e funzioni ricorsive
Sviluppo di programmi strutturati
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Introduzione al linguaggio C
La ricorsione Simulazione. Il Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n:
Esercitazione 6 – Esercizio 1 Autore: Riccardo Bianco I Corso.
ESERCITAZIONE N. 5 ESERCIZIO N. 1 Autore: Biagio Brattoli S I Corso.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Algoritmi Politecnico di Milano
Algoritmi Politecnico di Milano C Primi programmi Politecnico di Milano.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
INTRODUZIONE ALLA PROGRAMMAZIONE STRUTTURATA
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Esercizi C sui tipi definiti dall’utente
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Le funzioni.
C14 #12 Verso le olimpiadi Piero Scotto - C14.
Piero Scotto - C141 C14 #6 I VETTORI (#define e const)
Equazione di secondo grado.
Laboratorio di Informatica INF3 INTDER01 Prodotto da Generali Matteo e da Zaniboni Filippo.
In molti casi è utile assegnare a degli identificatori dei valori che restino costanti durante tutto il programma e che non possano essere cambiati nemmeno.
Piero Scotto - C141 C14 #09 Gestione stringhe: esercizio. Switch case. Variabili logiche.
Programmazione di Calcolatori
Massimo Comun Divisore
14 marzo 2002 Avvisi:.
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Piero Scotto - C141 C14 SINTASSI DEL C VARIABILI e COSTANTI.
Gestione dei file di testo, matrici e struct
C14 #5 I cicli FOR e WHILE Piero Scotto - C14.
Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive.
Piero Scotto - C141 C14 #8 Stringhe e relative funzioni.
Piero Scotto - C141 C14 #10 Il programma Dev-c++ Gestione dei file.
1 Esempi domande di esame. 2 Dato il seguente programma #include int main(){ int *p,j=9,i=5; p=&j; *p=i; printf("%d %d %d\n", i,j,*p); scanf("%d",p);/*
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
ALGORITMI Un algoritmo è un insieme di istruzioni: -ordinate -non ambigue -effettivamente computabili.
GLI ARRAY MONODIMENSIONALI. Utilizzando le nostre attuali conoscenze, proviamo a risolvere il seguente problema: Calcolare la media dei voti conseguiti.
Ripetizione La vera potenza dei programmi per computer risiede nella capacità di ripetere lo stesso calcolo o sequenza di istruzioni più volte, ogni volta.
#include void main() { int a,b,c,; float s, x,x1,x2,delta,alfa,beta; int num[3]; int i; printf("La forma classica dell'equazione di 2° grado è: a*x^2+b*x+c=0\n.
Vettori, indirizzi e puntatori Finora abbiamo usato gli indirizzi nel chiamare  la funzione scanf()  le altre funzioni per riferimento Tuttavia la vera.
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
Informatica 4 Funzioni. FUNZIONE: definizione MATEMATICA Relazione (o applicazione) binaria tra due insiemi A e B che associa a ogni elemento di A un.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
C++:Strutture di Controllo
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Linguaggio C: Funzioni e Puntatori Laboratorio di Programmazione Gruppo 1.
Transcript della presentazione:

Soluzioni e commenti esercizi 1 e 2 Piero Scotto - C14

Finalità del corso Finalità del corso Finalità del corso Piero Scotto - C14

Esercizio 1. Usando i programmi descritti a lezione scrivere un programma in C che calcoli la media aritmetica dei voti di uno studente, supponendo che i voti siano 9. Piero Scotto - C14

/* Viene calcolata la media di 9 voti */ #include <stdio.h> int main(void) { float a, b, c, d, e, f, g, h, i, media; scanf("%f %f %f %f %f %f %f %f %f",&a,&b,&c,&d,&e,&f,&g,&h,&i); media = (a + b + c + d + e + f + g + h + i)/9; printf("La media dei valori %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f e' %.2f ",a,b,c,d,e,f,g,h,i, media) ; return 0; } Piero Scotto - C14

Possiamo migliorare il programma e far sì che onlinecompiler produca un eseguibile che interagisca con l’utente. Piero Scotto - C14

/* Viene calcolata la media di 9 voti */ #include <stdio.h> int main(void) { float a, b, c, d, e, f, g, h, i, media, pausa; printf(" Inserire separati da spazio i nove voti: "); scanf("%f %f %f %f %f %f %f %f %f",&a,&b,&c,&d,&e,&f,&g,&h,&i); media = (a + b + c + d + e + f + g + h + i)/9; printf("La media dei valori %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f e' %.2f ",a,b,c,d,e,f,g,h,i, media) ; scanf("%f",&pausa); return 0; } /* i commenti non ci sono per motivi di spazio */ Piero Scotto - C14

Piero Scotto - C14

Esercizio2. Scrivere un programma che calcoli l’area del trapezio Esercizio2. Scrivere un programma che calcoli l’area del trapezio. L’utente inserirà base maggiore, base minore, altezza Piero Scotto - C14

/* Calcolo area del trapezio. Fornire basi e altezza */ #include <stdio.h> int main(void) { float B, b, h ,area, pausa ; /* variabili */ printf("Calcolo dell'area del trapezio. Inserire le basi e l'altezza: "); scanf("%f %f %f", &B, &b, &h); /* chiedo i numeri da input e li assegno alle variabili */ area = ( B + b ) / 2 *( h ) ; /* calcolo il valore dell'area */ printf("L'area del trapezio con base maggiore %.2f cm base minore %.2f cm altezza %.2f cm e': Area= %.2f cm^2 ", B,b,h,area ); printf(" Digitare 0 e invio per finire "); scanf("%f", &pausa); /* il solito trucco per vedere il risultato */ return 0; } Piero Scotto - C14

Possiamo istruirlo perché lo faccia. Come si vede il programma non è in grado di distinguere la base maggiore da quella minore. Possiamo istruirlo perché lo faccia. Basterà confrontare i due valori e poi mettere il più grande in B (base maggiore) e il più piccolo in b (base minore). Piero Scotto - C14

Variabile di scambio “swap” Scriviamo un programma che dati due numeri passati da input, metta il maggiore in B e il minore in b. Poi stampi il risultato. Partiamo con un semplice programma che legge e stampa i numeri. #include <stdio.h> int main(void) { float B, b; /* variabili */ printf("Inserire i due numeri: "); scanf("%f %f",&B,&b); printf("B=%f b=%f",B,b); return 0; } Piero Scotto - C14

Prima di stampare occorre confrontare B e b Userò il costrutto if If (b>B) { swap=b; b=B; B=swap; } Tra parentesi graffe il blocco che viene eseguito se la condizione (b>B) è vera. Ad es. se b=6, B=2, b>B quindi la condizione dell’if è vera e avremo l’esecuzione del blocco {swap = 6; b = 2; B = 6; } swap è la variabile temporanea (a volte è indicata come tmp) che mi serve per lo scambio. Piero Scotto - C14

#include <stdio.h> int main(void) { float B, b, swap; /* variabili */ printf("Inserire i due numeri: "); scanf("%f %f",&B,&b); if (b>B) { swap=b; b=B; B=swap; } printf("B=%f b=%f",B,b); return 0; } Piero Scotto - C14

/* Calcolo dell’area del trapezio. Fornire basi e altezza */ #include <stdio.h> int main(void) { float B, b, h ,area, pausa, swap ; /* variabili */ printf("Calcolo dell'area del trapezio. Inserire le basi e l'altezza: "); scanf("%f %f %f", &B, &b, &h); if (b>B) { swap=b; b=B; B=swap; } area = ( B + b ) / 2 *( h ) ; /* calcolo il valore dell'area */ printf("L'area del trapezio con base maggiore %.2f cm base minore %.2f cm altezza %.2f cm e': Area= %.2f cm^2 ", B,b,h,area ); printf(" Digitare 0 e invio per finire "); scanf("%f", &pausa); return 0; } Piero Scotto - C14

L’istruzione if else Piero Scotto - C14

#include <stdio.h> int main(void) { float B, b, swap; /* variabili */ printf("Inserire i due numeri: "); scanf("%f %f",&B,&b); if (b>B) { swap=b; b=B; B=swap; } printf("B=%f b=%f",B,b); return 0; } Piero Scotto - C14

Piero Scotto - C14

Se si verifica la divisione per 0 il risultato è indefinito! Occorre prevenire questo rischio. If (a==0) {printf(“Equazione non possibile”);} else #include <stdio.h> int main(void) { float a, b, x; /* variabili */ printf("Programma per risolvere equazioni del tipo ax + b = 0 Inserire a e b : "); scanf("%f %f",&a,&b); if (a==0) {printf("Equazione non possibile");} else {x = -(b/a); printf("Soluzione x= %f",x);} return 0; } Piero Scotto - C14

Piero Scotto - C14

Piero Scotto - C14

Pensiamo di ottenere a, b da input e risolvere ricavando x. Esercizio 3. Scrivere un programma per risolvere equazioni del tipo ax + b = 0, cioè di primo grado. Pensiamo di ottenere a, b da input e risolvere ricavando x. Piero Scotto - C14

#include <stdio.h> int main(void) { float a, b, x; /* variabili */ printf("Programma per risolvere equazioni del tipo ax + b = 0 Inserire a e b : "); scanf("%f %f",&a,&b); x = -(b/a); /* soluzione dell’equazione di primo grado */ printf("Soluzione x= %f",x); return 0; } Questo programma presenta un potenziale rischio. Quale? Piero Scotto - C14

Se a=0, si verifica la divisione per 0 e il risultato è indefinito! Occorre prevenire questo rischio. If (a==0) {printf(“Equazione non possibile”);} else … #include <stdio.h> int main(void) { float a, b, x; /* variabili */ printf("Programma per risolvere equazioni del tipo ax + b = 0 Inserire a e b : "); scanf("%f %f",&a,&b); if (a==0) {printf("Equazione non possibile");} else {x = -(b/a); printf("Soluzione x= %f",x);} return 0; } Piero Scotto - C14