Programação

terça-feira, 19 de abril de 2016

Introdução Arrays - Linguagem C M4


Uma variável simples armazena apenas um ÚNICO valor (em memória).



ARRAYS ou vector


Um Array  é um tipo de dados estruturado, que permite guardar um conjunto de elementos do mesmo tipo numa única variável.




Podemos ter
               
--> ARRAYS UNIDIMENSIONAIS - 
_________________________________________________________________________________

       
  --> ARRAYS BIDIMENSIONAIS - Matriz X


Matriz com 3 linhas e 4 colunas 
______________________________________________________________

Declaração de ARRAYS Unidimensionais

tipo NomeArray [dimensão];



Declaração de ARRAYS Bidimensionais - Matrizes
tipo NomeArray [dimensão][dimensão];                 



Exemplo anterior:        int X[3][4];
_________________________________________________________________


int  Notas[12 ];        // cria de o array  Notas de dimensão 12, “vazio” na memória






________________________________________________________


Um array deve ter número fixo de valorestodos do mesmo tipo
 
                  -->   do tipo int, float, char


Em C, os arrays começam sempre no índice 0 e vão até ao valor da dimensão -1

__________________________________
Colocar valores no array criado

Notas[0] = 19                
Notas[1] = 12                   
Notas[3] = 14                   
 etc.

__________________________________

Leitura de valores dados pelo utilizador

main()
{  int Notas[12] ,   i ;
                                      
       for ( i= 0 ;  i<=11 ;  i++)
               printf(“ Indique a nota   \n”);
                    scanf(“%i” ,  &Notas[i] );
             }
}


___________________________________________________________________


Declaração e Inicialização de Arrays

      tipo   nomeArray[ n ] = { valor1, valor 2, valor 3, ..., valorn }




      int Idades[3] = {20, 25, 17}   ;

      int Age[10] ={12, 15, 17 };        equivalente   a      int Age [10] = {12,15,17,0,0,0,0,0,0,0}
  
       int X[3] = { 4, 5, 7}                        equivalente a    int X[ ] = {4, 5, 7}        

       int v[3];  // vector não inicializado
       int v [ ];  // declaração incorrecta

________________________________________________________________________



Percorrer o array Unidimensional

utiliza-se a estrutura de repetição “for”  ( ciclo “for”)


Imagine que pretendia determinar a média aritmética das notas de uma turma de 30 alunos? 
Verificar qual a maior nota. 
Determinar quantas notas são positivas.
Determinar a média das positivas Etc..  mantendo sempre os valores das notas em memória.

A forma mais conveniente para guardar os dados do mesmo tipo em memória é o tipo de dado VECTOR – ARRAY.

Elabore um programa que solucione o problema anterior usando um Array Unidimensional.

No programa principal
1. declarar o array
2. Recolher os valores das notas
3. Determinar a maior nota
4. Determinar a média


main()
{  int Notas[30]  ; float S, Med; 
// leitura e armazenamento no array Notas das 30 notas 
for ( i =0 ;  i <=29 ; i++ )
    {   printf (“ \n Indique a %iº nota \n ”,  i +1 );
   scanf(“%i”, &Notas [ i ] ;
}


         maior = Notas[0];     // considerar o maior valor o valor de índice 0 
// verifica qual a maior nota existente no array Notas do índice 1 ao 29
for ( i =1 ;  i <=29 ; i++ )
{   if  ( Notas [ i ] > maior  )
          maior = Notas [ i ] ;       
}


S =0 ;   // inicialmente a Soma é zero
// percorre o array e vai acumulando da soma das notas
for ( i =0 ;  i <=29 ; i++ )
    {   S = S + Notas [ i ];
}

// falta fazer a média
Med = S/ 30;
      printf (“ \n Média das notas:  %.1f  \n ”, Med  );


}




Declarar e inicializar uma Matriz com números inteiros


int X[3][4 ] = {     { 1, 2, 3, 4} , { 5, 6, 7, 8} ,   { 1, 2, 3, 4}  };

 







Percorrer o array Bidimensional

utiliza-se  2 estrutura de repetição “for”  ( ciclo “for”), um para percorrer as linhas e outro para percorrer as colunas

for ( L= 0;  L<= 2 ;  L ++ )
    
           for (C=0; C<=2 ; C++)
                 {  printf( “ X[%i][ %i ]= %i  \n  “, L, C , X[ L ][C]   ) ;
                  }
   }










                    





FUNÇÃO QUE TEM 2 PARÂMETROS:  array X de inteiros de  n  elementos
// devolve o resultado da média dos n valores inteiros do array X
 
float Media ( int X[] , int n)
{
  float S=0;  int i;  //necessário declarar as variáveis locais
 
    for(i=0; i<n ;  i++)
      { S = S + X[i];      
      }
    return ( S/ n);            //devolve o resultado da média
  } 
//programa principal que utiliza a função Media para determinar a média de idades e de notas
main()
{ int i,  midade, mnota,  Idades[5], Notas[5];       float md;    
       for(i=0; i<5 ; i++)
        {     printf("\nIndique a %i idade \n",  i+1 );
               scanf("%i", &Idades[i]);              
              printf("\nIndique a sua nota \n",  i+1 );
               scanf("%i", &Notas[i]);
         }
          md = Media (  Idades, 5);       // só o nome do array e a dimensão !!
          printf("\n\n A média das idades é: %.1f", md);
                         
           printf("\n\n A média das notas é: %.1f",  Media (  Notas, 5)   );
                                                         
   }

Sem comentários:

Enviar um comentário