Anteprima
Vedrai una selezione di 4 pagine su 12
Informatica 1 - linguaggio C Pag. 1 Informatica 1 - linguaggio C Pag. 2
Anteprima di 4 pagg. su 12.
Scarica il documento per vederlo tutto.
Informatica 1 - linguaggio C Pag. 6
Anteprima di 4 pagg. su 12.
Scarica il documento per vederlo tutto.
Informatica 1 - linguaggio C Pag. 11
1 su 12
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Scrittura corretta e test efficaci

Durante la scrittura si deve capire quali blocchetti usare e scrivere in maniera corretta con una buona grammatica ed elegantemente. Infine bisogna fare test efficaci di correttezza. Si passa ora alla parte complicata. Array sono un gruppo di celle consecutive con lo stesso nome e tipo, e si indicano con Var[N] (var può essere qualunque scrittura, come prima, anche Pippo, N un qualsiasi numero che indica il...)

 numero

 di

 elementi

 presenti

 nell’array,

 il

 primo

 elemento

 ha

 sempre

 indice

 0,

 pertanto

 i

 valori

 degli

 indici

 vanno

 da

 0

 a

 N-­‐1).

 Per

 riferirsi

 a

 un

 elemento

 bisogna

 specificarne

 il

 nome

 dell’array

 (Var)

 e

 la

 posizione

 in

 cui

 si

 trova

 [N].

 Gli

 array

 sono

 vettori

 di

 elementi

 indicizzati,

 omogenei,

 memorizzati

 in

 celle

 di

 memoria

 consecutive.

 Si

 usano

 per

 scrivere

 delle

 stringhe

 di

 caratteri,

 quindi

 delle

 parole:

 basta

 definire

 un

 array

 di

 tipo

 char:

 parola[12]

 è

 una

 parola

 di

 12

 lettere.

 Mai

 usare

 una

 variabile

 per

 charspecificare

 la

 lunghezza

 di

 un

 array,

 sempre

 una

 costante

 o

 ancora

 meglio

 la

 funzione

 #define.

 

 Per

 inizializzare

 un

 array

 si

 definisce

 e

 poi

 si

 mette

 un

 uguale

 seguito

 dalle

 graffe

 all’interno

 delle

 quali

 ci

 sono

 i

 valori

 che

 corrispondono

 ad

 ogni

 posizione

 i

 dell’array.

 Per

 esempio:

 int n[5] =2}.

 A

 questo

 punto

 n[0]=3

 e

 {3,

6, 9, 23, n[4]=2.

Gli elementi di un array sono normali variabili ( ).

àprintf("%d", n[2]) 9

Per inizializzare un vettore si può fare: - for (i=0; i<20; i++) a[i]=0; &a[i]); in questo caso lo si inizializza - for (i=0; i<20; i++) scanf("%d",da terminale e può essere utile per le matrici.

Può essere utile sapere la ricerca del massimo, del minimo e della media in un array: Massimo: Minimo: - max=a[0]; min=a[0];for (i=1; i<20; i++) for (i=1; i<20; i++)if (a[i]>max); if

(a[i]<min)max=a[i]; min=a[i];	
 	
  Media:	
 - media=0For (i=1; i<20; i++)media=media+a[i];media=media/20	
  Invertire	
 una	
 sequenza:	
 - #define L 100int main () {int i=0;int a[L];while (i<100) {printf(“dare un valore intero”);scanf(“%d”, a[i]);i++;}i--;while (i>=0) {printf(“%d\n”, a[i]);i--;}}	
  5	
 Operazioni	
 sugli	
 array:	
 si	
 opera	
 sui	
 singoli	
 elementi	
 uno	
 per	
 volta;	
 non	
 è	
 possibile	
 operare	
 sull’intero	
 array,	
 agendo	
 su	
 tutti	
 gli	
 elementi	
 simultaneamente.	
 	
 Per	
 copiare	
 un	
 array	
 in	
 un	
 altro	
 array:	
 int array1[10], array2[10];int i;for (i=0; i<10; i++) {array1[i] = array2[i];}	
 Ricerca	
 di	
 un

 elemento

 in

 un

 array:

 int n, dato, risultato=-1;
int array[N];
for (n=0; n<=N-1; n++){
    if (array[n]==dato)
        risultato=n;
        break;
}
printf(“risultato=%d\n”, risultato);

 Gli

 array

 a

 due

 dimensioni

 ( array[M][N])

 servono

 per

 realizzare

 le

 matrici

 MxN

 (righe

 x

 colonne).

 I

 vettori

 sono

 matrici

 di

 una

 riga.

 Somma:

 due

 matrici

 possono

 essere

 sommate

 solo

 se

 hanno

 le

 stesse

 dimensioni,

 e

 si

 sommano

 i

 vari

 indici

 che

 si

 trovano

 nelle

 stesse

 posizioni.

 Moltiplicazione

 per

 uno

 scalare:

 se

 si

 moltiplica

 una

 matrice

 per

 un

 numero,

 si

 ottiene

 una

 matrice

 che

 ha

 le

 dimensioni

 della

 prima

 e

 i

 numeri

 all’interno

 moltiplicati

 per

 lo

 scalare.

 Moltiplicazione

 righe

 per

 colonne:

 la

 moltiplicazione

 tra

 due

 matrici

 AxB

 può

 avvenire

 solo

 se

 A

 ha

 un

 numero

 di

 colonne

 pari

 al

 numero

 di

 righe

 di

 B.

 

 Si

 parla

 di

 prodotto

 righe

 per

 colonne

 perché

 si

 moltiplicano

 le

 righe

 di

 A

 per

 le

 colonne

 di

 B.

 

 Le

 matrici

 quadrate

 hanno

 stesso

 numero

 di

 righe

 e

 colonne.

 

 Stringhe

 Come

 si

 accennava

 prima

 sono

 array

 di

 caratteri.

 Ogni

 stringa

 è

 terminata

 da

 il

 carattere

 nullo

 \0

 che

 occupa

 una

 cella,

 quindi

 una

 stringa

 di

 una

 parola

 di

 4

 lettere,

 in

 realtà

 occupa

 uno

 spazio

 di

 5

 (char “word”;

 equivale

 a

 stringa[]= char stringa[]={‘w’, ‘o’, ‘r’, ‘d’,‘\0’};).

 Pertanto,

 ricordando

 la

 differenza

 tra

 ’

 e

 ‘x’

 è

 un

 carattere

 che occupa uno spazio ‘ “ ”, mentre “x” è una stringa che ne occupa due (x e \0). Per quanto riguarda le stringhe si introducono tre operazioni: stringa2): leggere “string copy”; serve per copiare una stringa - strcpy(stringa1,di caratteri in un’altra stringa: se si ha str1[5]=“ciao”; e char char str2[5]; str2 assume “ciao”; àstrcpy (str1, str2) strlen(): leggere “string length”; all’interno delle parentesi si

 mette

 una

 stringa,

 questa

 - funzione

 ne

 calcola

 la

 lunghezza.

 Strlen(str2)=4

 (c-­‐i-­‐a-­‐o).

 stringa2):

 leggere

 “string

 compare”;

 si

 usa

 per

 confrontare

 - strcmp(stringa1,due

 stringhe:

 le

 confronta

 fino

 allo

  \0,

 e

 restituisce

 un

 intero,

 che

 se

 è

 0

 vuol

 dire

 che

 sono

 uguali,

 se

 invece

 sono

 diverse

 è

 minore

 di

 0

 (nel

 qual

 caso

 la

 prima

 stringa

 precede

 la

 seconda)

 oppure

 maggiore

 di

 0

 (la

 prima

 segue

 la

 seconda).

 Quando

 con una scanf ci si vuole riferire ad una stringa, non bisogna mettere il simbolo  : & 6 stringa); questo scanf legge i caratteri contenuti in questo array fino a che scanf(“%s”,non incontra  \0. Se perciò si inserisce una stringa troppo lunga in input, essa è memorizzata oltre la fine dell’array, errore gravissimo.

Strutture di dati (Struct) Se gli array (o vettori) sono aggregazioni di variabili omogenee,

Gli struct (o record) sono aggregazioni di variabili disomogenee.
Dettagli
Publisher
A.A. 2012-2013
12 pagine
3 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Carlomariz di informazioni apprese con la frequenza delle lezioni di Informatica I e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Milano o del prof Masseroli Marco.