Buscar

Linguagem e Técnicas de Programação Unidade V e VI

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Outros materiais