Università degli Studi di Brescia. Vettori di variabili. ! Sono variabili aggregate in grado di memorizzare una collezione (organizzata) di oggetti

Documenti analoghi
Cicli annidati e matrici di variabili

Cicli annidati ed Array multidimensionali

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

Fondamenti di Programmazione

Stringhe di caratteri

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

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

Programmazione I - Laboratorio

ESERCIZI DI PROGRAMMAZIONE DA TEMI D ESAME - vettori -

Problema. Vettori e matrici. Vettori. Vettori

Esercitazione 6. Array

PROGRAMMAZIONE: ESERCITAZIONE N. 6

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

Fondamenti di Informatica T-1 Modulo 2

Array. Maurizio Palesi Salvatore Serrano. In C si possono definire tipi strutturati Vi sono due costruttori fondamentali

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione

Esercizio 1 - cicli. Esercizio 1 cicli - Soluzione

IL PRIMO PROGRAMMA IN C

Alcuni esercizi. 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli

I puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria.

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.

Linguaggio C. Condizioni composte (operatori logici)

Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013

Gli Operatori. Università degli Studi di Brescia

Esercizi C su array e matrici

il precedente programma dichiara un vettore di interi di dimensione 10 e successivamente inserisce il valore 4 nel secondo elemento del vettore.

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Esercitazione 11. Liste semplici

Le funzioni, e le istruzioni di input/output

ESERCIZI DI PROGRAMMAZIONE. - condizionali e cicli -

Linguaggio C - Array. Array: tipo nome_array[num_elementi]

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

Corso di Informatica 1 Esercitazione n. 4

Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

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

Esercizi. La funzione swapint() primo tentativo

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

Funzioni di libreria. KP pp , , , 589, DD pp , , ,

C: panoramica. Violetta Lonati

ISTRUZIONI DI ITERAZIONE

NUMERI CASUALI E SIMULAZIONE

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

Informatica 1. Prova di recupero 21 Settembre 2001

Esercizio 1: calcolo insieme intersezione

Perché il linguaggio C?

Il generatore di numeri casuali

Esercizio 1 (15 punti)

I Vettori (Array) Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Laboratorio di informatica Ingegneria meccanica

Esercizi Programmazione I

Istruzioni di ciclo. Unità 4. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Istruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

Esercizio 1. Esercizio 1 Soluzione

# include<stdio.h> int main() { // Dichiarazioni int n; int i;

while Istruzione while Cicli ed iterazioni Istruzioni di ripetizione in C Comportamento del while

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

Aggregati di dati eterogenei: il tipo struct. Esercizi risolti

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Array. Anno Accademico 2010/2011 Francesco Tortorella

Struct, enum, Puntatori e Array dinamici

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica

Corso di Informatica B - Sezione D. Esercitazioni Linguaggio C

Stringhe e allocazione dinamica della memoria

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di

Linguaggio C: le funzioni

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

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

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22

Un file è un astrazione di memorizzazione di dimensione potenzialmente illimitata (ma non infinita), ad accesso sequenziale.

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

Corso di Informatica 1 (IN1) Tutorato n. 11

Obiettivi di questa esercitazione

Introduzione al linguaggio C

Introduzione al linguaggio C

Struttura dei programmi C

Soluzione/* PROGRAMMAZIONE IN C */ #include <stdio.h> #include <stdlib.h>

Esercizi. Stringhe. Stringhe Ricerca binaria

Il presente plico contiene 4 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.

Introduzione al C. Esercitazione 8. Domenico Daniele Bloisi Raffaele Nicolussi. Corso di Laboratorio di Informatica Ingegneria Clinica

Informatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi

Informatica 2 modulo C Massimo Callisto De Donato

Approfondimento : numeri pseudocasuali

L'Allocazione Dinamica della Memoria nel linguaggio C

Array ( vettore/matrice Un dato strutturato. indice Accesso diretto

Stringhe in C. Alessandra Giordani Lunedì 23 aprile 2012

Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media.

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);

Laboratorio di Algoritmi e Strutture Dati

Allocazione dinamica della memoria

Il linguaggio C Strutture

Istruzioni iterative (o cicliche)

Caratteri e stringhe

Lezione 8 Struct e qsort

Esercizi di programmazione in C

La programmazione in linguaggio C

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

Caratteri e stringhe. Vettori di caratteri. Il tipo stringa Terminatore nullo Input/output di stringhe Politecnico di Torino 1

Linguaggi di programmazione + laboratorio a.a. 2012/2013

Fondamenti di Informatica T-1 Modulo 2

Array multidimensionali e stringhe

Transcript:

Linguaggio C 1! Sono variabili aggregate in grado di memorizzare una collezione (organizzata) di oggetti Oggetti dello stesso tipo Identificazione univoca degli oggetti! Il tipo più semplice ha una sola dimensione v! Ciascuna cella si comporta come una variabile scalare 2

! La dichiarazione di un array precede le istruzioni eseguibili del blocco specifica il tipo ed il numero dei suoi elementi tipo-dato identificatore[dimensione];! dimensione è una costante! Esempi: int v[10]; #define DIM 10 int v[dim]; 3 : Indicizzazione! Ad ogni elemento è associato un indice (valore intero) che rappresenta la sua posizione nel vettore! Gli elementi di un vettore di dimensione n hanno indici che vanno da 0 ad n-1 v v[0] v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] v[9]! L espressione identificatore[espressione intera] è un lvalue v[0] indica il valore del primo elemento v[9] indica il valore del decimo elemento &v[0] indica l indirizzo di memoria del primo elemento &v[9] indica l indirizzo di memoria del decimo elemento 4

: Inizializzazione! Si inizializzano al momento della dichiarazione tramite una lista di costanti racchiuse tra parentesi graffe! Se l inizializzatore è più corto del vettore int v[10] = {1,2,3,4,5; 1 2 3 4 5 0 0 0 0 0 int v[10] = {0;! Se la lunghezza dell inizializzatore coincide con la lunghezza del vettore, la dimensione può essere omessa int v[] = {1,2,3,4,5,6,7,8,9,10; 0 0 0 0 0 0 0 0 0 0 5 : Inizializzazione! Uso di cicli FOR per effettuare la stessa operazione su tutti gli elementi del vettore! Il contatore del ciclo è usato come indice del vettore for (i = 0; i < DIM; i++) v[i] = 0; for (i = 0; i < DIM; i++) scanf ("%d", &v[i]); for (i = 0; i < DIM; i++) v[i] = rand() % (y x + 1) + x;! La funzione rand è scritta nella libreria stdlib.h int rand(void); void srand(unsigned int seed);! rand ritorna un numero intero compreso tra 0 e RAND_MAX! srand definisce il seme per la funzione rand 6

: Indicizzazione! Gli elementi di un vettore sono memorizzati in memoria centrale consecutivamente! Se l indirizzo di v[0] è 100, v[1] è 104,, v[9] è 136! Se un indice è fuori dall intervallo ammissibile per un vettore il comportamento del programma è imprevedibile! int v[10],i; for(i = 1; i <= 10; i++) v[i] = 0; Errato!! Se la variabile i è memorizzata all indirizzo 140 della memoria centrale, il ciclo è infinito 7 #include <stdio.h> #include <stdlib.h> #define DIM 50 int main() { int n=0, num[dim]; printf( Immetti al piu 50 interi (0 per terminare): ); do { scanf("%d", &num[n]); n++; while (n < DIM && num[n-1]!=0); if (num[n-1]==0) n--; for(i=n-1; i>=0; i--) printf( %d\n,num[i]); system("pause"); return(0); 8

#include <stdio.h> #include <stdlib.h> #define DIM 10 int main() { int vet[dim], i, max, posmax; for (i=0; i <DIM; i++) vet[i]=rand() % 101-50; max = vet[0]; posmax = 0; for (i=1; i <DIM; i++) if(vet[i] > max) { max = vet[i]; posmax = i; printf("\nmassimo %d in posizione %d\n", max,posmax); system("pause"); return(0); 9 #include <stdio.h> #include <stdlib.h> #define DIM 10 int main() { int cifre[dim] = {0, i, n, resto; printf("inserisci un numero intero: "); scanf("%d", &n); while(n > 0) { resto = n % 10; cifre[resto]++; n = n / 10; for(i=0;i<dim;i++) printf( #%d:%d\n,i,cifre[i]); system("pause"); return(0); 10

: Errori comuni nell uso di vettori! Considerare v[1] il primo elemento del vettore v for(i=1; i < 10; i++) printf( %d,v[i]);! Utilizzare v[10] quando l undicesima cella del vettore v non esiste for(i=0; i <= 10; i++) printf( %d,v[i]);! Non usare il contatore come indice del vettore for(i=0; i < 10; i++) printf( %d,v[0]); 11 Esercizi! Es 1: Inizializzare un vettore di 10 interi con numeri casuali compresi tra 10 e 100. Stampare il contenuto del vettore e successivamente stampare i numeri pari nel vettore con la corrispondente posizione occupata.! Es 2: Inizializzare un vettore di 10 interi con numeri casuali compresi tra -50 e 50. Stampare il contenuto del vettore e successivamente stampare il numero minimo contenuto nel vettore con la corrispondente posizione occupata.! Es 3: Acquisire da tastiera al più 50 numeri interi, interrompendo l'acquisizione dei numeri qualora venisse immesso il numero 0. Salvare i numeri acquisiti in un vettore e successivamente stampare a video la loro media e varianza. 12

Esercizi! Es 4: Inizializzare un vettore di 20 interi con numeri casuali compresi tra 1900 e 2008. Stampare il contenuto del vettore e successivamente stampare gli anni bisestili contenuti nel vettore con la corrispondente posizione occupata.! Es 5: Inizializzare un vettore di 20 interi con numeri casuali compresi tra 5 e 10. Acquisire un numero da tastiera. Stampare i numeri nel vettore, la posizione occupata dal numero all interno del vettore e il numero di occorrenze.! Es 6: Acquisire da tastiera al più 50 numeri interi, interrompendo l'acquisizione dei numeri qualora venisse immesso un numero inferiore rispetto al precedente numero acquisito. Stampare la porzione del vettore con numeri inferiori rispetto all ultimo numero acquisito. 13 Esercizi! Es 7: Acquisire da tastiera al più 50 numeri interi interrompendo l'acquisizione dei numeri qualora venisse immesso il numero 0. Salvare inizialmente i numeri acquisiti in un vettore, successivamente salvare i numeri pari e dispari in due differenti vettori e stampare prima l insieme dei numeri pari e poi l insieme dei numeri dispari in ordine inverso rispetto all ordine con cui sono stati immessi.! Es. 8: Acquisire da tastiera al più 50 numeri interi interrompendo l'acquisizione dei numeri qualora venisse immesso il numero 0. Salvare i numeri in un vettore di modo che i numeri compaiano nel vettore in ordine crescente. Stampare infine il contenuto del vettore.! Es. 9: Acquisire da tastiera un numero interno e stampare a video per ogni cifra quante volte la cifra appare nel numero. Es. Inserisci un numero intero: 41271092 Cifre: 0 1 2 3 4 5 6 7 8 9 Occorrenze: 1 2 2 0 1 0 0 1 0 1 14