• Non ci sono risultati.

Esempio - Array Bidimensionale

N/A
N/A
Protected

Academic year: 2021

Condividi "Esempio - Array Bidimensionale"

Copied!
7
0
0

Testo completo

(1)

36

Esempio - Array Bidimensionale

Definizione del problema: Inserire i valori degli elementi di un array bidimensionale di interi, composto da 5 righe e 7 colonne, e visualizzare il contenuto dell’array così ottenuto, ordinato per righe

Definizione dei dati del problema:

I: il valore di ciascun elemento dello array bidimensionale Pi: il numero degli elementi da inserire non può essere maggiore della cardinalità dell’array

U: l’array bidimensionale ‘riempito’ con i valori degli elementi

Pu: nessuna

Esempio

Nome variabile Descrizione Tipo

MAT array bidimensionale di interi INT

MAT(I) elemento dell’array INT

Nome variabile Descrizione Tipo

MAT array di interi con i valori immessi INT

Tabella delle variabili di ingresso

Tabella delle variabili di uscita

(2)

38

Esempio - Array Bidimensionale

Descrizione del metodo di elaborazione:

Si legge il valore di ciascun elemento da immettere, immettendo i valori per riga.

Si visualizza il contenuto dell’array, visualizzando i valori immessi per righe

Esempio - il programma C

#include<stdio.h>

main() {

const cardR=5, cardC=7;

int MAT[cardR] [cardC], i,j;

// Legge in input tutti gli elementi della matrice for (i= 0; i< cardR; i++)

for (j= 0; j< cardC; j++) {

printf(" dammi el. (%d , %d) di MAT\n", i,j);

scanf("% d", &MAT[i][j]);

}

// Stampa tutti gli elementi della matrice for (i= 0; i< cardR; i++)

for (j= 0; j< cardC; j++)

printf(”(%d, %d) = % d\n",i,j, MAT[i][j]);

(3)

40

Esempio

Definizione del problema: Verificare se in un array

bidimensionale di interi, composto da 5 righe e 7 colonne, esiste un determinato valore dato in input. Se questo valore esiste indicare la posizione, riga e colonna, dell’elemento che lo contiene.

Definizione dei dati del problema:

I: il valore di ciascun elemento; il valore da cercare Pi: il numero degli elementi da inserire non può essere maggiore della cardinalità dell’array

U: la posizione, indici di riga e colonna, dell’elemento con valore pari a quello cercato

Pu: nessuna

Esempio

Descrizione del metodo di elaborazione:

Si legge, in ordine di riga, il valore di ciascun elemento da immettere.

Si immette il valore da cercare nell’array bidimensionale.

Si verifica se tale valore esiste nell’array:

se esiste viene visualizzata la posizione dell’elemento che lo contiene;

se non esiste viene visualizzata la scritta ‘il valore indicato

non esiste nello array’.

(4)

42

Esempio

Nome variabile Descrizione Tipo

MAT array bidimensionale di interi INT

MAT(I,J) elemento dell’array INT

VAL valore da cercare nell’array INT

Nome variabile Descrizione Tipo

TROVATO Indica se esiste un elemento pari a VAL LOGICAL

I, J Posizione dove è contenuto VAL INT

Tabella delle variabili di ingresso

Tabella delle variabili di uscita

#include<stdio.h>

main() {

const cardR=5, cardC=7;

int MAT[cardR] [cardC], i,j, VAL, trovato;

// Legge in input tutti gli elementi della matrice for (i= 0; i< cardR; i++)

for (j= 0; j< cardC; j++) {

printf(" dammi el. (%d , %d) di MAT\n", i,j);

scanf("%d", &MAT[i][j]);

}

// Immissione valore da cercare

printf(“Immetti il valore da cercare\n”);

scanf("%d", &VAL);

Esempio - il programma C

(5)

44

Esempio - il programma C

// Cerca se il valore immesso esiste nello array (ricerca lineare) trovato=0; i=0;

while ((trovato==0) && ( i<cardR)) { j=0;

while ((trovato==0) && ( j<cardC)) {trovato=(MAT[i] [j]==VAL);

j++;}

I++;

}

if (trovato == 1)

printf (“valore immesso %d in posizione %d, %d\n”, VAL, i-1, j-1);

else

printf(“il valore indicato %d non esiste nello array\n”, VAL);

}

Esempio

Definizione del problema: Calcolare il prodotto (riga per colonna) tra due matrici

Definizione della specifica del programma:

I: i due array bidimensionali; il valore di ciascun elemento degli array

Pi: il numero di colonne del primo array deve essere uguale al numero di righe del secondo

U: l’array bidimensionale risultante dal prodotto dei due in ingresso Pu: nessuna

Descrizione del metodo di elaborazione:Si legge, in ordine di riga, il valore di ciascun elemento del primo array. Si legge, in ordine di riga, il valore di ciascun elemento del secondo array. Si verifica che il numero di colonne del primo array sia uguale al numero di righe del secondo. Si calcola il valore di ciascun elemento della matrice prodotto secondo la nota regola:

= ∑

n k

j k k i j

i A B

C

1

, ,

, *

Stampare la matrice prodotto risultante C

(6)

46

Esempio

Nome variabile Descrizione Tipo

MAT1 prima matrice di interi INT

MAT1(I,J) elemento della prima matrice INT

MAT2 seconda matrice di interi INT

MAT2(I,J) elemento della seconda matrice INT

Nome variabile Descrizione Tipo

MATP Matrice prodotto di MAT1 e MAT2 INT Tabella delle variabili di ingresso

Tabella delle variabili di uscita

Esempio - il programma

#include<stdio.h>

main()

{ const cardR=5, cardC=7, cardC2=3;

int MAT1[cardR] [cardC], MAT2 [cardC] [cardC2];

int MATP[cardR] [cardC2],k , i,j;

// Legge in input tutti gli elementi della prima matrice for (i= 0; i< cardR; i++)

for (j= 0; j< cardC; j++)

{ printf(" dammi el. (%d , %d) di MAT1\n", i,j);

scanf("%d", &MAT1[i][j]);

}

// Legge in input tutti gli elementi della seconda matrice for (i= 0; i< cardC; i++)

for (j= 0; j< cardC2; j++)

{printf(" dammi el. (%d , %d) di MAT2\n", i,j);

scanf("%d", &MAT2[i][j]);

}

(7)

48

Esempio - il programma

// Calcolo prodotto tra MAT1 e MAT2 for(i=0;i<cardR;i++)

for(j=0;j<cardC2;j++) {

MATP[i,j]=0;

for (k=0; k<cardC;k++)

MATP[i][j]=MATP[i][j]+MAT1[i][k]*MAT2[k][j];

}

// Visualizzazione valori elementi matrice prodotto for(i=0;i<cardR;i++)

for(j=0;j<cardC2;j++)

printf(“MATP(%d, %d) = %d \n”, i,j,MATP[i] [j]);

}

Riferimenti

Documenti correlati

codice strumento prezzo FLT flauto 2500 VLN violino 8000. $inv_art

dove numero_elementi deve essere o un valore intero, o un’espressione costante oppure una variabile che sia stata però istanziata prima della definizione dell'array; ad esempio,

I: il valore di ciascun elemento dello array di numeri interi Pi: il numero degli elementi da inserire non può essere maggiore della cardinalità dell’array.. U: lo array

I: riempimento; il valore di ciascun elemento dello array Pi: il numero degli elementi da inserire (riempimento) non può essere maggiore della cardinalità dell’array.. U:

I: il valore di ciascun elemento dello array di numeri interi Pi: il numero degli elementi da inserire non può essere maggiore della cardinalità dell’array.. U: lo array

I: riempimento; il valore di ciascun elemento dello array Pi: il numero degli elementi da inserire (riempimento) non può essere maggiore della cardinalità dell’array.. U:

I: riempimento; il valore di ciascun elemento dello array Pi: il numero degli elementi da inserire (riempimento) non può essere maggiore della cardinalità dell’array.. U:

I: riempimento; il valore di ciascun elemento dello array Pi: il numero degli elementi da inserire (riempimento) non può essere maggiore della cardinalità dell’array.. U: