Beruflich Dokumente
Kultur Dokumente
P. Bernardi
Vettore
Rappresentazione
v
0
1
2
3
4
5
V identifica un
vettore
di 6 elementi
In C
Esempio:
V[2]
V[4]
RAM
0
1
2
3
4
5
Dichiarazione di un vettore
Scelto
Esempio:
intV[6]={50,100,23,12,15,180};
RAM
0
1
2
3
4
5
50
100
-23
12
-15
180
/*dichiarazionediun
vettoredi6
numeriinteri*/
V identifica il vettore e ne contiene
lindirizzo di partenza
Ancora un po di hardware..
Indici
RAM
Esempio
intV[6];
V[3]=100;
V[5]=1000;
0
1
2
3
4
5
50
100
-23
12
100
-15
180
1000
v
0h
0h
0h
064h
0h
0h
03h
0E8h
Indici (II)
charstringa[5]={p,i,p,p,0};
stringa[3]=0;
stringa[4]=a;
RAM
v
030h
0
1
2
3
4
p
i
p
p
0
o
a
061h
ASCII TABLE
Un semplice programma
#include <stdio.h>
int main(void){
int V[6] = {50,100,-23,12,-15,180};
int V2[6];
V2[1] = V[4];
/* semplice assegnazione */
Scandendoli tutti
Accedendo solo a parte di esso.
for(i=0;i<6;i++){ /* completo */
printf(elementi %d del vettore = %d, i, V[i]);
}
for(i=2;i<4;i++){ /* parziale */
printf(elementi %d del vettore = %d, i, V[i]);
}
Esercizio
Scrivere
un programma che
Soluzione
#include <stdio.h>
#define N 10
int main(void){
unsigned int i, j;
float media=0;
int valori[N], flag=0;
for(i=0 ; i < N && flag==0 ; i++){
printf(inserisci il valore %d: , i);
scanf(%d, &valori[i]);
media += valori[i];
if (valori[i] == 0) flag=1;
}
media /= (i-flag);
return 0;
}
Esercizio base
#include <stdio.h>
#define N 10
int main(void){
unsigned int i;
int valori[N];
for(i=0 ; i < N ; i++){
printf(inserisci il valore alla posizione indice %d: );
scanf(%d, &valori[i]);
}
for(i=0 ; i < N ; i++){
printf(valori[%d]: , valori[i]);
}
return 0;
}
Esempio:
V1[0] 10 ; V2[0] 5;
V1[1] 1 ; V2[0] 6;
Soluzione
#include <stdio.h>
#define N 10
int main(void){
int V1[N], V2[N];
unsigned int i, j, flag=0;
int somma;
for(i = 0 ; i < N && flag == 0 ; i++){
scanf("%d %d", &V1[i], &V2[i]);
/* controllo se somma == numero primo */
somma = V1[i] + V2[i];
flag=1;
for(j=2 ; j < (somma/2) && flag==1 ; j++){
if(somma%j == 0) flag = 0;
}
}
printf("\n\n sono uscito con indice i = %d", i);
for(j = 0 ; j < i ; j++)
printf("\nV1[%d] = %d ; V2[%d] = %d", i, V1[i], i, V2[i]);
return 0;
}
Iniziale
V[5] = {4,3,6,7,9};
Finale
V[5] = {3,7,9,0,0};
Soluzione
#include <stdio.h>
#define N 10
int main(void){
int V[N];
unsigned int i, j, flag=0;
for(i=0 ; i < N ; i++){
printf("inserisci il valore alla posizione indice %d: ", i);
scanf("%d", &V[i]);
}
for(i=0 ; i < N ; i++){
printf("\nV[%d]: %d ",i, V[i]);
}
for(i=0 ; i < N ; i++){
if (V[i]%2 == 0){
for(j = i+1 ; j < N ; j++){
V[j-1] = V[j];
}
V[j-1] = 0;
}
}
printf("\nDOPO L?ELABORAZIONE");
for(i=0 ; i < N ; i++){
printf("\nV[%d]: %d ",i, V[i]);
}
return 0;
}
Esempio:
V[5] = {1,2,3,4,5}
V1[2]= {3,4}
V2[3] = {2,3,6}
SI
NO