Algoritmi e basi del C

Documenti analoghi
Algoritmi e basi del C Struttura di un programma

Prima&esercitazione&

Algoritmi e basi del C

Codifica binaria dell informazione

Algoritmi e basi del C

Stringhe e tipi di dati strutturati

Lab 1: Marzo 2013

Lezione 6 Introduzione al C++ Mauro Piccolo

Codifica binaria dell informazione

Introduzione al linguaggio C

Lab 0: 23 Marzo Marco D. Santambrogio Gianluca Durelli - Ver. aggiornata al 19 Marzo 2015

Struttura dei programmi C

Linguaggio C - sezione dichiarativa: costanti e variabili

Costanti e Variabili

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi

Rappresentazione degli algoritmi

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

Linguaggio C: introduzione

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

Gli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Laboratorio di programmazione

Tipi di dato primitivi

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Valutazione di espressioni

Istruzioni iterative (o cicliche)

Conversioni fra Tipi di Dati. Luca Abeni

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

C espressioni condizionali

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

1 PANORAMICA SUL LINGUAGGIO C

Linguaggio C Informatica Grafica

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.

Le basi del linguaggio Java

Algebra di Boole ed elementi di logica

Tipi di dato semplici

Corso di Fondamenti di Informatica

Esercitazione 4. Comandi iterativi for, while, do-while

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Esercitazione 6. Array

Laboratorio di informatica Ingegneria Clinica. Esercitazione 2 10 Ottobre 2011

Espressione di chiamata di funzione

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

Laboratorio di Programmazione

LINGUAGGI DI PROGRAMMAZIONE!

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Fondamenti di Informatica

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

linguaggio di programmazione e programma

Fondamenti di Informatica T-1

Linguaggio C: Espressioni

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi

Approfondimento : printf

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL TEOREMA DI BOEHM-JACOPINI

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Verso i puntatori: Cosa è una variabile?

Programmazione in Java (I modulo)

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Variabili e Istruzioni

Corso di Calcolatori Elettronici Un computer è un dispositivo in grado di eseguire dei calcoli e di prendere delle decisioni logiche.

Formalismi per la descrizione di algoritmi

Programmazione web lato client con JavaScript. Marco Camurri 1

PROGRAMMAZIONE STRUTTURATA

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

Linguaggio C Struttura dei programmi

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI

Gli Operatori. Università degli Studi di Brescia

$QDOLVLGHOSURJUDPPDTXDGUDWR

Studio degli algoritmi

Espressioni semplici e condizionali

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 21 Luglio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA

1 (4) 2 (4) 3 (7) 4 (5) 5 (5) 6 (7)

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Programmazione con il linguaggio LibreOffice Basic

Introduzione alla programmazione

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Informatica A. Il linguaggio C. A.a. 2006/2007. Allievi Ingegneria Gestionale

Primi passi col linguaggio C

Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari

Scope delle variabili e passaggio parametri. Danilo Ardagna Politecnico di Milano

Il sistema di elaborazione

Fondamenti di Informatica

Istruzioni del Linguaggio C

Programmazione strutturata

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

- Dispensa III - PROGRAMMAZIONE C (Parte I)

Transcript:

Algoritmi e basi del C Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 3 O/obre 2013

Installation Party Dove: L.06 Quando: Sabato 12 Ottobre 9.00am - 12.00pm 2

WAT Il docente ha messo in risalto l'utilità delle slide per lo studio individuale, affermando che il prendere appunti possa far diminuire l'attenzione.! A tal fine, le slide dovrebbero essere più complete, esplicando i passaggi logici del ragionamento, poiché, nella forma attuale, esse risultano poco chiare se non si ha buona memoria della lezione! 3

WAT 4

WAT Nastro di Mobius? Sono d'accordo sul fatto di dover scremare, ma così le terrorizziamo queste matricole...! 5

WAT 6

Struttura di un programma C parte dichiarativa globale inclusione librerie /* per poter invocare funzioni utili (i/o,...) */ dichiarazione di variabili globali e funzioni int main ( ) { parte dichiarativa locale dichiarazione di variabili locali } istruzione 1; istruzione 2; istruzione 3; istruzione 4;... istruzione N; /* tutti i tipi di operazioni, e cioè: */ /* istr. di assegnamento */ /* istr. di input / output */ /* istr. di controllo (condizionali, cicli) */ parte esecutiva Ogni programma C deve contenere un modulo int main() {...} 7

Struttura di un programma C Parte dichiarativa: contiene le dichiarazioni degli elementi del programma Dati, ed eventualmente funzioni (ma solo nella parte globale) Parte esecutiva: contiene le istruzioni da eseguire, che ricadono nelle categorie: Istruzioni di assegnamento (=) Strutture di controllo: Condizionali (if-then-else e switch) Iterative, o cicli (while, do e for) Istruzioni di Input/Output (printf, scanf,...) 8

Istruzioni semplici e composte Sequenze di istruzioni semplici Ogni istruzione semplice termina con ; ; è detto il terminatore dell istruzione Si possono raggruppare più istruzioni in sequenza tra { e } a costituire un blocco Il blocco costituisce una super-istruzione Non è necessario il ; dopo }, in quanto il blocco è già una istruzione e non necessita del terminatore per diventarla 9

Mostra caratteri Problema Si scriva un programma che richieda l inserimento di un carattere e lo mostri a video 10

Tipo carattere e codifica ASCII 11

Ricordate il -32 12

Un esempio di calcolo 13

Variabili e assegnamenti Le variabili non sono altro che dei contenitori (aree di memoria) identificati da un nome univoco. Le variabili vengono definite da un tipo e da un nome. 14

Esecuzione degli assegnamenti valutazione dell espressione che compare a destra del simbolo = il valore delle variabili che vi compaiono si trova memorizzato nelle celle corrispondenti, e da lì è letto memorizzazione del risultato dell'espressione nella variabile a sinistra del simbolo = 15

Esempi di assegnamento x = 23; w = 'a'; y = z; alfa = x + y; r3 = ( alfa * 43 xgg ) * ( delta 32 * j ); x = x + 1; Abbreviazioni (operatori di assegnamento): a = a + 7; a = a * 5; a = a + 1; a = a - 1; a += 7; a *= 5; ++a; --a; Istruzioni della forma variabile = variabile operatore espressione; si possono scrivere come: variabile operatore = espressione; 16

Aritmetica (1/2) Operatori aritmetici in C: * per la moltiplicazione e / per la divisione La divisione tra interi elimina il resto (quoziente): 13 / 5 è uguale a 2 L operatore modulo calcola il resto della divisione: 13 % 5 è uguale a 3 Precedenza degli operatori: Come in aritmetica, moltiplicazione e divisione hanno priorità su addizione e sottrazione si usano le parentesi quando c è ambiguità Per esempio: la media aritmetica di a, b, c: a + b + c / 3 NO!!!! (a + b + c ) / 3 SI 17

Aritmetica (2/2) Operazione Operatore C Espressione aritmetica Espressione C Addizione + f+7 f + 7 Sottrazione - p-c p c Moltiplicazione * bm b * m Divisione / x/y x / y Modulo % r mod s r % s Operatori C Operazioni Precedenza ( ) Parentesi Valutate per prime. Se ci sono degli annidamenti, si valuta prima la coppia più interna. Se ci sono più coppie allo stesso livello, si valuta da sinistra a destra. *, /, % Moltiplicazione, Divisione, Modulo Valutate per seconde. Se ce ne sono diverse, si valutano da sinistra a destra. +, Addizione, Sottrazione Valutate per ultime. Se ce ne sono diverse, si valutano da sinistra a destra. 18

Come interagiamo con l esterno? Input - Output printf viene utiizzata per fornire un output del programma a video scanf viene utilizzato per fornire degli input, e.g. da tastiera, al nostro programma 19

Inserimento dati Problema Richiedi all utente la sua altezza in centrimentri e mostrala a video in metri Pseudocodice 1. Scrivi quanto sei alto? 2. Leggi altezzacm 3. Altezzam = alteccacm/100 4. Scrivi sei alto: altezzam 20

Pseudocodice vs Codice C Pseudocodice 1. Scrivi quanto sei alto? 2. Leggi altezzacm 3. Altezzam = alteccacm/100 4. Scrivi sei alto: altezzam 21

Un primo errore 22

Un secondo errore 23

Un terzo errore 24

Soluzione corretta L importanza dei tipi di dato 25

Tipi di dato in C In C esistono diversi tipi di dato built-in, tra cui int: numeri interi float: numeri con virgola (singola precisione) double: numeri con virgola (doppia precisione) char: caratteri (sono interi che possono variare tra 0-255) Inoltre il C fornisce anche la possibilità di definire dei nuovi tipi di dato 26

Problemi di fine giornata Scrivere un programma che, letti due numeri, individua quello maggiore Rappresentare in pseudocodice l agoritmo che, letti 3 numeri, ne calcola il minimo comune multiplo 27

Fonti per lo studio + Credits Fonti per lo studio how to solve it, Poyla G http://math.hawaii.edu/home/pdf/putnam/ PolyaHowToSolveIt.pdf Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill Capitolo 3 Introduzione ai sistemi informatici, D. Sciuto, G. Buonanno, L. Mari, 4a Ed, McGrawHill Capitolo 3, 4 The Art & Craft of Computing, S. Ceri, D. Mandrioli, L. Sbattella, Addison-Wesley Capitolo 3