Baixe o app para aproveitar ainda mais
Prévia do material em texto
11/10/2018 1 UNIDADES V E VI Recurso das linguagens que facilita a declaração/acesso/manipula ção de uma sequência de variáveis de um mesmo tipo ; Um vetor é uma matriz com apenas 1 dimensão; Em alguns livros esta estrutura é chamada de homogênea, pois ar mazena elementos de um mesmo tipo. ◦ Quando a estrutura permite elementos de tipos diferentes, é chamada de heterogênea Vetores declaração tipo nome [ tamanho ]; Exemplos int idades[30]; double alturas[30]; Vetores acessando elementos Os elementos são acessados com o operador [], onde o primeiro ele mento está na posição 0, o segundo na posição 1, assim sucessivam ente até a posição tamanho1 Exemplos: altura[2] = 1.5; if (idade[20] > 18) ... for (i=0; i<30; i++) Printf(“%f\n”, altura[i]); 11/10/2018 2 Vetores – inicialização na declaração int vetor[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; Esta inicialização pode ser feita apenas na declaração; Se o num de elementos é menor que o tamanho do vetor, os elemen tos restante são inicializados com zero; Podemos omitir o tamanho do vetor quando ele é inicializado; int vetor[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; Sem inicialização o tamanho é obrigatório int vetor[]; Vetores – aplicação em vetor É muito comum utilizar a estrutura de repetição for para percorrer todos os elementos de um vetor. Por exemplo, para imprimir todos os elementos de um vetor de 100 elementos: int indice; int vetor[100]; for (indice = 0; indice < 100; indice++) { printf("%d", vetor[indice]); } Acesso aos elementos do vetor Para acessar os elementos de um vetor usa-se índices. O índice define a posição da variável dentro do vetor. A variável “ i “ é o índice que irá percorrer o vetor até o valor k-1 #define TAM_MAX 10 double VetReais[TAM_MAX]; for(i=0; i<TAM_MAX; i++) VetReais[i] = TAM_MAX - i; Inserindo Valores em um Vetor int main( ) { int vet[10], i; for(i=0;i<10;i++){ printf("\nEntre com os valores[%d]=", i ); scanf("%d",&vet[i]); } 11/10/2018 3 Leitura dos dados de um vetor #define TAM_MAX 10 double Vet1[TAM_MAX]; for(i=0; i<TAM_MAX; i++) scanf("%f",&Vet1[i]); Definição : Uma matriz é uma estrutura bidimensional capaz de armazenar dados de um mesmo tipo. Podemos considerar o conceito de matriz como uma extensão do conceito de vetores, onde vetores corresponderia a uma estrutura unidimensional. As matrizes (e vetores) só podem ser acessados através de índices inteiros, ou seja, a dimensão de uma matriz é definida através de 2 números, o número de linhas e o de colunas Como declarar uma MATRIZ Uma matriz deve ser declarada da seguinte forma: tipo_da_matriz nome_da_matriz [num_linhas][num_colunas]; Exemplos: int matInt [6][2]; /* matriz com 6 linhas e 2 colunas de inteiros */ float matReal [5][7]; /* matriz com 5 linhas e 7 colunas de floats */ char matChar [3][4]; /* matriz com 3 linhas e 4 colunas de chars */ Como usar matrizes em seus programas Assim como vetores, cada posição da matriz funciona como uma variável, que pode ser acessada através do nome da matriz e os índices entre colchetes que indicam a coordenada desejada. Por exemplo, o trecho de programa abaixo coloca o caractere '*' em cada uma das posições do vetor matChar: for (lin = 0; lin < 3; lin++) for (col = 0; col < 4; col++) 11/10/2018 4 Lê e escrever valores em Uma matriz #include <stdio.h> #include <stdlib.h> int main() { float A[4][4]; int i,j; for(i = 0;i < 4;i++){ for(j = 0;j < 4;j++){ printf("A[%d][%d] = ",i+1,j+1); scanf("%f",&A[j]); } } } Lê valor em memória for ( i=0; i<3; i++ ) for ( j=0; j<3; j++ ) { scanf ("%d", &matriz[ i ][ j ]); } Exibe o valor de uma Matriz for ( i=0; i<3; i++ ) for ( j=0; j<3; j++ ) { printf ("%d", matriz[ i ][ j ]); } Exemplo de Matriz 11/10/2018 5 É a função por onde se inicia a execução do programa. É a primeira função de um programa C a ser executada e a única função que não precisa ser explicitamente chamada. Normalmente, o programa termina no final de main( ). int main() int main(void) int main(int argc, char * const argv[ ]) int main(int argc, char * const argv[ ], char * const envp[ ]) Os argumentos, quando declarados, são sempre os seguintes: argc - é o contador de argumentos. Ele informa quantos argumentos foram passados juntos com o nome do programa. Se o valor é 1, então argumentos não foram fornecidos junto com o nome do programa. argv - é um vetor de ponteiros, onde cada ponteiro indica um argumento passado. O nome do programa é armazenado em argv[0]. envp - é um ponteiro para um vetor de strings com informações sobre o ambiente do processo. Agrupa um conjunto de comandos e associa a ele um nome O uso deste nome é uma chamada da função Após sua execução, programa volta ao ponto do programa situado imediatamente após a chamada A volta ao programa que chamou a função é chamada de retorno A chamada de uma função pode passar informações (argumentos) para o processamento da função Argumentos = lista de expressões Lista pode ser vazia Lista aparece entre parênteses após o nome da função Ex. int Soma (int x, int y) { } Na linguagem C "COM RETORNO" significa que a função tem um TIPO, que pode ser int, float, double, char, struct, etc. Uma função do tipo VOID é uma função que não tem tipo definido. Quando uma função tem um tipo definido, então, ela obrigatoriamente deverá retornar algo do tipo definido. 11/10/2018 6 No seu retorno, uma função pode retornar resultados ao programa que a chamou return (resultados); O valor da variável local resultados é passado de volta como o valor da função Valores de qualquer tipo podem ser retornados Funções predicado: funções que retornam valores Procedimentos: funções que não retornam valores Exemplo: void function (int x) Definições de funções Funções são definidas de acordo com a seguinte sintaxe: tipo_de resultado nome (lista de parâmetros) { corpo de função } int MDC (int a, int b) { int aux; if (a < b) { aux = a; a = b; b = aux; } while (b != 0) { aux = b; b = a % b; a = aux; } return (a); } uma função C para calcular o máximo divisor comum entre dois números 11/10/2018 7 Definições de funções Tipo de resultado Quando a função é um procedimento, usa-se a palavra chave void Procedimento não retorna valor Lista de parâmetros Funcionam como variáveis locais com valores iniciais Quando função não recebe parâmetros, a lista de parâmetros é substituída pela palavra void Funcionamento de uma chamada: Cada expressão na lista de argumentos é avaliada O valor da expressão é convertido, se necessário, para o tipo de parâmetro formal Este tipo é atribuído ao parâmetro formal correspondente no início do corpo da função O corpo da função é executado Funcionamento de uma chamada: Se um comando return é executado, o controle é passado de volta para o trecho que chamou a função Se um comando return inclui uma expressão,o valor da expressão é convertido, se necessário, pelo tipo do valor que a função retorna O valor então é retornado para o trecho que chamou a função Se um comando return não inclui uma expressão nenhum valor é retornado ao trecho que chamou a função Se não existir um comando return, o controle é passado de volta para o trecho que chamou a função após o corpo da função ser executado 11/10/2018 8 Exemplo: double mesada (double notas, int idade) { double total; if (idade > 10) return (idade * 20.0); else{ total = notas*idade*20; return total; } } uma função pode retornar qualquer valor válido em C, sejam de tipos pré-definidos ( int, char, float) ou de tipos definidos pelo usuário ( struct, typedef ) uma função que não retorna nada é definida colocando-se o tipo void como valor retornado (= procedure) Pode-se colocar void entre parênteses se a função não recebe nenhum parâmetro Quando vamos passar um vetor como argumento de uma função, podemos declarar a função de três maneiras equivalentes. Seja o vetor: int matrx [50]; e que queiramos passá-la como argumento de uma função func(). Podemos declarar func() de três maneiras: void func (int matrx[50]); void func (int matrx[]); void func (int *matrx); 11/10/2018 9 Para simular o comportamento de um procedimento em C, utiliza – se void no tipo da função. O voidé um tipo nulo em C e portanto a função não necessita retornar nenhum valor. Quando um procedimento é chamada durante a execução de um programa: ◦ A execução do programa desvia para subprograma (procedimento ou função). ◦ Executa o subprograma (procedimento ou função) chamado. ◦ E recomeça a execução do programa na linha após a chamada do subprograma (procedimento ou função). 11/10/2018 10 Vantagens na utilização de procedimentos Exemplo de Matriz
Compartilhar