ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

Documenti analoghi
Linguaggio C - sezione dichiarativa: costanti e variabili

Primi passi col linguaggio C

Il linguaggio C. Notate che...

Struttura dei programmi C

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.

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

Laboratorio di informatica Ingegneria meccanica

Input/Output di numeri

Esercizi C su array e matrici

Linguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Esercitazione 6. Array

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

Programmazione in Java (I modulo)

PROGRAMMAZIONE: Le strutture di controllo

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

Esercitazione 3. Espressioni booleane I comandi if-else e while

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

5. Codifica degli Algoritmi in C

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

direttive del preprocessore simboli speciali parole chiave identificatori costanti

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

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

Algoritmi e basi del C Struttura di un programma

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Esercizi Programmazione I

Introduzione al Linguaggio C

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

Stringhe. In C le stringhe ben formate sono in realtà array di caratteri terminati sempre da un carattere speciale, \0, detto anche

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

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin

IL PRIMO PROGRAMMA IN C

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Programmazione I - Laboratorio

Caratteri e stringhe

Stringhe e allocazione dinamica della memoria

Scrittura formattata - printf

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prima prova in itinere COGNOME E NOME. 13 novembre 2006 RIGA COLONNA MATRICOLA

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Definizione Allocazione e deallocazione di variabili Allocazione e deallocazione di vettori

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori

Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi:

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

Appunti, esempi ed esercizi sui linguaggi C/C++

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

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

La principale modalità di calcolo è l applicazione di funzioni

LINGUAGGI DI PROGRAMMAZIONE!

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

Introduzione alla programmazione in C(++)

Linguaggio C: introduzione

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

IL PROBLEMA DEL PROGETTO

Istruzioni iterative (o cicliche)

Laboratorio di Informatica

Le Funzioni e la Ricorsione

Vittoria de Nitto Personè. Esercizi proposti per il corso Fondamenti di informatica

Corso sul linguaggio C Modulo Tipi di dato

Le funzioni, e le istruzioni di input/output

Variabili e Istruzioni

Classificazione Tipi semplici predefiniti Definizione di nuovi tipi Tipi strutturati

Il linguaggio C - Introduzione

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

Mini-dispensa sui puntatori in C

Laboratorio di Informatica

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde

Funzioni di I/O per numeri. Input e output di valori numerici. Input formattato scanf. Stream preesistenti

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

giapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL

2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore.

Gestione dei File. dischi nastri cd

18/01/16. Soluzione degli esercizi svolti in aula alla lavagna. Seconda lezione. Cast

Corso di Fondamenti di Informatica

Linguaggio C - Funzioni

Il linguaggio C. Caratteristiche generali

Esercizi Svolti di Programmazione

LABORATORIO DI INFORMATICA 1

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

Lezione 6 Selection/Insertion Sort su interi e stringhe

Sapendo che il vettore è ordinato, la ricerca può essere ottimizzata Vettore ordinato in senso non decrescente: Vettore ordinato in senso crescente:

Calcolo della moltiplicazione. Dagli Algoritmi ai Programmi. Esecuzione passo passo dell algoritmo

Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

UD 3.2b: Programmazione in Pascal (1)

a.a Codice corso: 21012, HOMEWORKS

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Concetti chiave. Struct. Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Nozioni base di programmazione in linguaggio C

Strutture di Controllo

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

Excel & VBA. Excel e Visual Basic for Application

Puntatori. Fondamenti di Programmazione

Transcript:

ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli

Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/

Programma del corso Elementi di programmazione: C I sistemi informativi Base di dati Schema E-R Linguaggio SQL Base di dati sulla rete internet

Fondamenti di C Tipi di dato (scalari) Caratteri: Interi Con segno Senza segno (Naturali) Reali char (caratteri ascii) short: 16 bit -32.768 a +32.768 Int dipende dal compilatore long: 32 bit unsigned short: 16 bit da 0 a unsigned unsigned long: 32 bit da 0 a float (singola precisione 32 bit) da 10-38 a 10 38 double (doppia precisione 64 bit) da 10-308 a 10 308

Fondamenti di C Tipi interessanti Boolean: zero: indica falso Tutto il resto: indica vero (utilizzare uno) Stringhe: sequenze di caratteri char *stringa; char stringa[10]; typedef char * Stringa;

#include <stdio.h> Fondamenti di C Input / Output scanf(<stringa_formato>, <sequenza_variabili>) printf(<stringa_formato>, <sequenza_elementi>) int x; float y; scanf( %d%f, &x, &y); printf( %d + %f = %f, x, y, x+y); Alcuni Formati %d int %f float %c carattere %s stringa

Un Semplice Programma Questo programma stampa la tabella di conversione dei gradi Fahrenheit-Celsius Algoritmo: Definire 2 costante per il massimo e minimo della tabella Assegnare un valore di intervallo di gradi tra le singole righe della tabella (step) Finch è non si raggiunge il valore massimo calcolare la conversione in celsius scrivere i gradi fahrenheit e i rispettivi celsius incrementare di uno step i gradi fahrenheit Fine.

Un Semplice Programma Questo programma stampa la tabella di conversione dei gradi Fahrenheit-Celsius #include <stdio.h> #define MIN 0 #define MAX 300 // limite inferiore della tabella // limite superiore int main () { int fahr, celsius, step; step = 20; // scanf( %d,&step); fahr = MIN; while (fahr <= MAX) { celsius = (fahr-32) * 5 / 9; printf ("%d\t%d\n", fahr, celsius); fahr += step; } return 0; }

Array Una collezione finita di N variabili dello stesso tipo, identificabili con un indice compreso tra 0 e N-1 Definizione: <tipo> <nome array> [ <COSTANTE> ]; Esempi: int vettore [10]; char stringa[255];

Array L array è un puntatore ad un area di memoria pre-allocata, che contiene l indirizzo del primo elemento del vettore. Indicano tutti la stessa cosa v &v[0] α v+1 &v[1] α+1

Array Per assegnare un array: eseguire un ciclo su ogni elemento Passaggio di array come parametri alle funzioni: sempre per riferimento! int v[10]; ordina (v); v = l indirizzo dell area di memoria dell array

Esercizio - Calcolo della media Calcolare la media di N interi di un vettore v assegnato tramite std input Algoritmo: Definire una costante N Per N volte, leggere da input un intero Scrivere la media

Esercizio - Calcolo della media Calcolare la media di N interi di un vettore v assegnato tramite std input #include <stdio.h> #define N 10 double media (int v[]); //prototipo della funzione = dichiarazione int main() { int v[n], i; for(i=0;i<n;i++) scanf( %d,&v[i]); printf( La media vale %f,media(v)); } double media(int vet[]){ int somma=0,i; for(i=0;i<n;i++) somma+=vet[i]; return somma/n; }

Esercizio - Ricerca sequenziale Scrivere la funzione per la ricerca sequenziale di un elemento in un array Il numero massimo di confronti è la dimensione dell array (n), e si verifica quando l elemento che stiamo cercando è in v[n-1]. Algoritmo: Per ogni elemento dell array Se l elemento i-esimo coincide con l elemento da cercare, terminare l esecuzione della funzione e restituire l indice i Se non si è trovato l elemento in nessuna posizione restituire -1 int ricercasequenziale(int vet[], int dim, int el){ int i; for(i=0;i<dim;i++) if (vet[i]==el) return i; return -1; }

Esercizio - Ricerca binaria La ricerca binaria si applica su array ORDINATI Confronta l elemento centrale dell array e restringe la successiva iterazione alla metà che può contenere la chiave cercata 1 ciclo: first=0; last=n-1; med=(last+first)/2; if (elemento = = v[med]) return med; 2 ciclo: if (elemento < v[med]) last= med-1; else first = med +1; med=(last+first)/2;

Esercizio - Ricerca binaria Esempio: dato un array di 1023 elementi è possibile restringere la ricerca a 511 di essi con un solo confronto. Un altro confronto e la ricerca sarà fra 255 valori. Di fatto si può cercare in tutto l array con solo 10 confronti. Scrivere la funzione per la ricerca binaria di un elemento in un array ORDINATO Algoritmo Inizializzare 3 variabili intere: first al primo indice dell array, last all ultimo e med al medio tra first e last Inizializzare la variabile booleana trovato a false Finché first <= last e non è stato trovato l elemento da cercare se la posizione med-esima contiene l elemento cercato allora trovato = true altrimenti scarto la metà degli elementi del vettore troppo grandi o troppo piccoli Restituire l indice in cui si trova l elemento oppure -1 se l array non lo contiene

Esercizio - Ricerca binaria Scrivere la funzione per la ricerca binaria di un elemento in un array ORDINATO int ricercabinaria(int vet[], int n, int el){ int first=0, last=n-1, med=(first+last) / 2; int trovato=0; //boolean false while ( (first<=last) && (trovato==0) ){ if (el == vet[med]) trovato=1; else { if (el < vet[med] ) last = med -1; else first = med +1; med = (firs + last) / 2; } } } if (trovato==1) return med; else return -1;