Introduzione al C. Esercitazione 2ter. S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi

Documenti analoghi
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Esercitazione 7

LABORATORIO DI INFORMATICA ESERCITAZIONE VIII

Programmazione in Java (I modulo)

Introduzione al C. Unità 7 Array. S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi

Array. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Programmazione Assembly

Informatica B

Lezione 6 programmazione in Java

Laboratorio di Architettura degli Elaboratori A.A. 2014/15 Programmazione Assembly

strutture e file di testo/binari Esercizio - lettura/filtro/scrittura PEOPLE.TXT PARTNERS.DAT Due persone sono compatibili

Gli array Libro cap. 6 Moreno Marzol a Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

FONDAMENTI DI INFORMATICA I

Esercizio 1: media di numeri reali (uso funzioni e struct)

Liste di Liste Matrici

Esercizio 1: calcolo insieme intersezione

ARRAY E TYPEDEF. A volte è utile definire un nuovo tipo di dato come array. Si usa la solita sintassi del linguaggio C

Programmazione I - Laboratorio

Laboratorio di Calcolo Numerico Laboratorio 8: Vettori e Matrici

Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano

Fondamenti di Informatica T-1

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 06 Array" Lab06 1

Esercizi C su array e matrici

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

Laboratorio di Matematica e Informatica 1

Quicksort e qsort() Alessio Orlandi. 28 marzo 2010

Fondamenti di Informatica T-1 Modulo 2

Array. Unità 7. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Esercizi

Fondamenti di Informatica Ing. Biomedica

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Matrici. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

int i; int a[10]={1,2,3,4,5,6,7,8,9,10}; /* inizializzazione in fase di definizione */ int b[10];

Alcuni Soluzioni. Fornire la specifica di un algoritmo risolutivo utilizzando lo pseudocodice visto a lezione.

12 Function Handles e Ricorsione in MATLAB

Parte II ing. Domenico Daniele Bloisi, PhD

Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano

Laboratorio di Programmazione Lezione 3. Cristian Del Fabbro

Algebra matriciale. Un algebra è un sistema di segni in cui sono definite delle operazioni Algebra scalare Algebra dei vettori Algebra matriciale

Esercitazione Fondamenti di Informatica 2

Esercizi per il corso di Algoritmi, anno accademico 2011/12

Esercitazioni del Corso di Fondamenti di Informatica ARRAY. Prof. Giuseppe Manco. A cura di Ing. Andrea Tagarelli

I tipi strutturati e i record in C++

Liceo B.Russell Classe 2 I VETTORI. ORDINAMENTO DI UN VETTORE: Metodo ingenuo o sequenziale

Esercitazione di Laboratorio - 4

QUARTA ESPERIENZA DI LABORATORIO. Programmazione con i vettori

Fondamenti di Informatica

Nella propria home directory creare una sottodirectory chiamata es08, in cui metteremo tutti i file C di oggi.

1a Prova parziale di Programmazione 29 Novembre 2002 TESTO E RISPOSTE

Fondamenti di Informatica Ing. Biomedica

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

Informatica per Statistica Riassunto della lezione del 21/10/2011

Esercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che:

Fondamenti di Programmazione

Esercizi su array di array

Laboratorio n 6 del Ing. Dario Cogliati

Esercitazione di Laboratorio - 5

Fondamenti di Informatica T-1 Modulo 2

ALGEBRA LINEARE E GEOMETRIA: ESERCIZI 5. Indice. 2. Esercizi 5

ESERCIZIO 1. Informatica B - Esercitazione 12

Esercitazione 7. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Ricerca di un valore nell array (già vista) Inserimento di un valore nell array Eliminazione di un elemento dall array

Ricerca di un valore nell array (già vista) Inserimento di un valore nell array Eliminazione di un elemento dall array

Introduzione allo Scilab Parte 4: matrici; esempi.

Esercitazione 6. Corso di Fondamenti di Informatica

Fondamenti di Informatica A.A. 2016/17

Array. Definizione e utilizzo di vettori

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

Corso di GEOMETRIA Dipartimento di Ingegneria ed Architettura Università degli Studi di Trieste Prof. Fabio Perroni. 3. Sistemi di equazioni lineari

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 25 gennaio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA

definisce un vettore di 4 puntatori a carattere (allocata memoria per 4 puntatori)!

6 Typedef, matrici e codifica

Esercizi Array. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Tema A+B COGNOME E NOME. Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 4 Febbraio 2016

Capitolo 3 Matrici. Marco Robutti. Facoltà di ingegneria Università degli studi di Pavia. Anno accademico

Fondamenti di Informatica

Algoritmi su Array. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Gli array. impone al programma, in fase di esecuzione, di riservare dello spazio in memoria per 10 variabili di tipo int

Lab 08 Stringhe e strutture

Laboratorio 1. 2) All interno della directory c:\temp\cognome\codici creare il file sorgente hello.c contenente il seguente codice:

Vettori e Matrici. Corso di Calcolo Numerico. 24 Aprile 2018

Corso di Laurea Ingegneria Informatica. Dispensa E11. Esercizi su array e. Gennaio 2012

Esercizi su array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E08. C. Limongelli Gennaio 2012

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Lezione 8 Struct e qsort

Introduzione al C. Lez. 2. Funzioni e Puntatori

Unità 11 Allocazione dinamica

MATLAB Alcune funzioni utili: fprintf, length, size

Richiami: v[i] e &v[i] Organizzazione della memoria. Esercizio 1. Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis

Transcript:

Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Esercitazione 2ter S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi

Esercizio 1: media e deviazione standard Si scriva un programma che calcoli la media e la deviazione standard dei valori contenuti in un array di interi Dato un campione di N elementi x i : la media e la deviazione standard sono date rispettivamente da: La dimensione dell'array è fissata da una costante size definita nel programma Il programma legge l'array da tastiera elemento per elemento Pagina 2

Esercizio 1: programma C Pagina 3

Passaggio di array a funzioni Dato un array a[], il nome dell'array indica l'indirizzo del primo elemento Scrivere a, a[] oppure &a[1] è esattamente la stessa cosa Questo consente di passare un array ad una funzione per indirizzo, cioè per riferimento La funzione può allora accedere all'array, ed eventualmente modificarlo Attenzione: la funzione però non conosce la dimensione dell'array Occorre quindi passargliela esplicitamente come parametro Se si vuole evitare che la funzione modifichi l'array, allora si specifica il parametro con la specifica const Pagina 4

Esempio: funzioni per media e deviaz. std Pagina 5

Esercizio 2: azzera elementi negativi Si scriva una funzione azzera che preso in ingresso un array di interi x e la sua dimensione n, sostituisca tutti gli elementi x[i] < 0 con il valore 0 La funzione azzera restituisce come valore il numero di elementi che sono stati sostituiti con 0 Scrivere una seconda funzione leggi che legge gli elementi dell'array x da tastiera Scrivere un main che chiama le due funzioni e stampa il valore finale dell'array N.B. sia la funzione azzera che la funzione leggi modificano il valore dell'array Pagina 6

Esercizio 2: il programma C Pagina 7

Esercizio 3: estrazione del dado Si scriva una funzione estrai che simula il lancio di un dado e restituisca un valore random compreso tra 1 e 6 Si scriva un programma main che chieda da tastiera il numero n di tentativi da effettuare e accumuli i risultati in un array di 6 elementi Al termine delle estrazioni il main deve stampare: il numero di tentativi effettuati la frequenza con cui ciascun esito (da 1 a 6) di è manifestato nelle estrazioni di quanto in percentuale ciascuna delle frequenze si discosta dal valore teorico di 1/6 Pagina 8

Esercizio 3: Il programma C Pagina 9

Esercizio 4: lancio di due dadi Nel lancio di due dadi e il valore della somma dei due risultativaria tra 2 e 12, ma le frequenze con cui è distribuito non sono uniformi 7 è il valore più probabile: può essere ottenuto in 6 modi diversi, 2 e 12 i meno probabili (1 solo modo ciascuno) Scrivere un programmi che costruisca sperimentalmente il vettore delle frequenze e le confronti con i risultati teorici Pagina 10

Esercizio 4: il programma C Pagina 11

Esercizio 5: crivello di Eratostene Ricava i numeri primi in un certo intervallo, cancellando tutti i multipli di ciascun numero primo, e poi ripetendo la stessa operazione per il successivo numero primo Si utilizza un array per ricordare quali numeri sono stati cancellati L'array è inizializzato a 0, i numeri cancellati sono marcati -1 Quelli che restano a 0 alla fine sono primi Pagina 12

Esercizio 5: il programma C Pagina 13

Esercizio 6: bubble sort Si scriva una funzione bubble che riceve un array x di interi e la sua dimensione dim e restituisce l'array con gli elementi ordinati in ordine crescente Si scriva una funzione leggiche riceve un array x di interi e ne legge gli elementi da tastiera Si scriva un programma main che, utilizzando le due funzioni leggi e bubble, legga un array e lo ordini Al termine delle estrazioni il main deve stampare gli elementi dell'arry ordinato Si usa l'algoritmo detto bubble-sort, che effettua un numero di passate pari alla dimensione dell'array, scambiando via via gli elementi tra loro, quando non sono nell'ordine Pagina 14

Esercizio 6: il programma C 1/2 Pagina 15

Esercizio 6: il programma C 2/2 Pagina 16

Esercizio 7: ricerca lineare Si scriva una funzione linear che riceve un array x di interi, la sua dimensione n, e un valore intero key da ricercare nell'array, e restituisce come valore di ritorno l'indice dell'elemento dell'array in cui il valore key è stato trovato, oppure -1, nel caso che non lo trovi Si scriva una funzione leggi che riceve un array x di interi e ne legge gli elementi da tastiera Si scriva un programma main che utilizzi la funzione leggi, legga da tastiera la chiave key da cercare, chiami linear e stampi l'esito Si usi l'algoritmo più semplice, quello della ricerca lineare: semplice da programmare; richiede un numero di confronti pari a n Pagina 17

Esercizio 7: il programma C 1/2 Pagina 18

Esercizio 7: il programma C 2/2 Pagina 19

Esercizio 8: ricerca binaria Si scriva una funzione binary che possa sostituire la funzione nel programma di cui all'esercizio 7, ma che sia basata sulla ricerca binaria Questa funzione richiede un massimo di log 2 n confronti, ma suppone che l'array sia ordinato in ordine crescente Si scriva un programma main con struttura analoga a quello dell'esercizio 5, ma che usi la funzione bubble per ordinare l'array e poi la binary per effettuare la ricerca Pagina 20

Esercizio 8: la funzione binary Pagina 21

Esercizio 8 bis: la funzione binary ricorsiva Pagina 22

Esercizio 9: matrice simmetrica Si scriva una funzione simmetrica che riceve come argomento una matrice quadrata e le sue dimensioni e restituisca 1 se la matrice è simmetrica 0 altrimenti Si scriva una funzione leggiche riceve come argomento una matrice quadrata e le sue dimensioni e provveda a leggerne gli elementi, per righe, da atstiera Si scriva un programma main che chiami le funzioni di cui sopra e stampi il risultato Pagina 23

Esercizio 9: il programma C 1/2 Pagina 24

Esercizio 9: il programma C 1/2 Pagina 25

Esercizio 10: moltiplicazione di matrici 1/6 Si scriva un programma per effettuare la moltiplicazioni di due matrici: legge una matrice A di dimensioni m x n (m righe e ncolonne) legge una matrice B di dimensioni n x p (n righe e p colonne) calcola il prodotto (che è una matrice con m righe e p colonne) stampa il risultato. adeguatamente formattato Pagina 26

Esercizio 10: moltiplicazione di matrici 2/6 In base alla definzione, il prodotto di A di dimensioni m x n per B di dimensioni n x p è una matrice C di dimensioni m x p Il generico elemento di C i,j di C è dato dal prodotto scalare tra la riga i di A e la colonna j di B (entrambe di dimensione n) Il prodotto scalare di due vettori a e b di dimensioni n è dato da: a b = n i=1 a i. bi Pagina 27

Esercizio 10: moltiplicazione di matrici 3/6 Sviluppare il programma definendo un insieme di funzioni: le dimensioni m, n e p sono dichiarate come variabili globali due funzioni leggia e leggib leggono le matrici per righe una funzione stampamat stampa per righe il risultato Il main richiamerà poi le funzioni suddette Pagina 28

Esercizio 10: le funzioni leggia e leggib 4/6 Pagina 29

Esercizio 10: stampamat e prodmat 5/6 Pagina 30

Esercizio 10: il main 6/6 Pagina 31