User Tools

Site Tools


it:informatica:linguaggio_c:vettori_1
Return to Home page

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

it:informatica:linguaggio_c:vettori_1 [2019/02/26 14:35] (current)
Line 1: Line 1:
 +====== Vettori (Esempio 1) ======
 +**Concetti:​**\\
 +Vettori (array), inizializzazione ed utilizzo
  
 +**Testo:​**\\
 +Realizzare un programma in linguaggio C che:
 +  * dopo aver dichiarato ed inizializzato un array di 10 elementi
 +  * trovi e stampi il primo numero pari e la sua posizione all'​interno del array
 +
 +**Soluzione:​**\\
 +<file C vettori_1.c>​
 +/* Stampare il primo numero pari e la sua posizione, scandendo un vettore di 10 elementi */
 +
 +#include <​stdio.h>​
 +#define SIZE 10
 +
 +int main(){
 +
 +  int vet[SIZE] = {1, 5, 3, 7, 10, 1, 2, 3, 4, 5};
 +  int i;
 +  int found = 0;
 +
 +  /* Prima soluzione */
 +  for(i=0; i<SIZE && !found; i++){
 +    if ( vet[i]%2 == 0 ){
 +      found = 1;
 +    }
 +  }
 +
 +  /* Seconda soluzione */
 +  i = 0; found = 0;
 +  while ( i<SIZE && !found ){
 +    if ( vet[i]%2==0 ){
 +      found = 1;
 +    }
 +    i = i + 1;
 +  }
 +  ​
 +  if (found){
 +    printf("​NUMERO PARI: %d (POSIZIONE: %d)\n",​ vet[i-1], i-1);
 +  } else {
 +    printf("​Nessun numero pari presente\n"​);​
 +  }
 +
 +  return 0;
 +}
 +</​file>​
 +
 +**Commenti:​**\\
 +Il programma:
 +  * dopo aver inizializzato l'​array di dimensione //SIZE// direttamente durante la dichiarazione:​
 +  <code c>
 +  int vet[SIZE] = {1, 5, 3, 7, 10, 1, 2, 3, 4, 5};
 +  </​code>​
 +  * scandisce l'​array attraverso un ciclo //for// finché non sono stati analizzati tutti gli elementi (condizione //​i<​SIZE//​) e finché non è stato trovato un numero pari (la variabile //found// assume un valore diverso da //0//, cioè vero). La variabile //found// viene impostata ad //1// quando viene trovato il primo elemento pari del vettore.
 +  <code c>
 +  for(i=0; i<SIZE && !found; i++){
 +    if ( vet[i]%2 == 0 ){
 +      found = 1;
 +    }
 +  }
 +  </​code>​
 +  * lo stesso esercizio è stato risolto in modo equivalente utilizzando il costrutto //while//.
 +  <code c>
 +  /* Seconda soluzione */
 +  i = 0; found = 0;
 +  while ( i<SIZE && !found ){
 +    if ( vet[i]%2==0 ){
 +      found = 1;
 +    }
 +    i = i + 1;
 +  }  ​
 +  </​code>​
 +  * i risultati vengono stampati alla fine del programma. Si noti che all'​uscita sia del ciclo //for// che del ciclo //while//, la variabile //i// rappresenta la posizione successiva rispetto a quella del primo numero pari. Per questo motivo, al fine di stampare il primo elemento pari del vettore e la sua posizione devono essere usate le variabili //​vet[i-1]//​ e //i-1//, rispettivamente. ​
 +  <code c>
 +  if (found){
 +    printf("​NUMERO PARI: %d (POSIZIONE: %d)\n",​ vet[i-1], i-1);
 +  } else {
 +    printf("​Nessun numero pari presente\n"​);​
 +  }  ​
 +  </​code>​

If you found any error, or if you want to partecipate to the editing of this wiki, please contact: admin [at] skenz.it

You can reuse, distribute or modify the content of this page, but you must cite in any document (or webpage) this url: https://www.skenz.it/it/informatica/linguaggio_c/vettori_1?rev=1551188125&do=diff
/web/htdocs/www.skenz.it/home/data/pages/it/informatica/linguaggio_c/vettori_1.txt · Last modified: 2019/02/26 14:35 (external edit)

Privacy Policy