Algoritmos e Estruturas de Dados

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA MECÂNICA INTRODUÇÃO À ALGORITMOS Professora: Fabíola Gonçalves.
Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 04 Aquiles Burlamaqui UERN
TECNOLOGIA EM REDES DE COMPUTADORES Algoritmos e programação de computadores Aula /08/2011 Professor Leomir J. Borba-
Désiré NGuessan Programação II Estruturas de Dados
Programação II Estruturas de Dados
ICC – Matrizes Jorge Macêdo.
Introdução a Programação
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
Adaptado de material da profa. Maria Aparecida Livi
Prof. Luis Otavio Alvares
Linguagem C LPG-I – Variáveis Estruturadas – Vetores
Algoritmos Escher.
AULA – Linguagem C – Vetores, Ponteiros Estruturas
UDESC - Prof. Juliano Maia
Ponteiros em C.
LPG – I Prof. Flavio Marcello
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Paulo Henrique Graf Fernandes
PROGRAMAÇÃO ou LINGUAGEM C?
Linguagem C Strings.
Estruturas de Dados Homogêneas Unidimensionais – Vetores e Strings
Estruturas de Dados Homogêneas Multidimensionais – Matrizes
Matrizes e Funções - Continuação
Ponteiros.
VETORES, STRINGS E MATRIZES
1MF. Vectores Tipo de dado usado para representar um CONJUNTO de dados do um mesmo tipo Estrutura de dados homogénea unidimensional Ex: Ler a nota de 3.
Matrizes. 2MF. Matrizes e vectores Multi-dimensionais Não há limite para o número de dimensões de um vector São uma estrutura de dados homogênea multidimensional.
Revisão da Linguagem C.
Algoritmos e Programação
O Portal do Estudante de Computação
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
Algoritmos e Estruturas de Dados I – Estruturas de Dados
Prof.° Jean Daniel Henri Merlin Andreazza Estrutura de Dados
Algoritmos e Estruturas de Dados
Vetores e Matrizes Laboratório de ICCN Marco Antonio Montebello Júnior
Introdução a Computação e Cálculo Numérico
Vetores em c / c++: Formato geral para declaração de variáveis:
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Linguagem de Montagem Vetores.
Linguagem de Programação II Parte V
UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL INTRODUÇÃO À ALGORITMOS Professora: Fabíola Gonçalves.
Construção de Algoritmos AULA 04
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Array multidimensional
UNIDADE 5 ESTRUTURAS DE DADOS HOMOGÊNEAS
Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula 8: Array Professores: Sandro Rigo Túlio Bender.
Prof. Reginaldo Ré Universidade Tecnológica Federal do Paraná – Campus Campo Mourão COINT - Coordenação.
Estruturas de Dados Aula 5: Matrizes
Fundamentos de Programação
Vetores e Matrizes Ameliara Freire
Vetor Prof. Guilherme Baião S. Silva Adaptações:
Oficinas de Desenvolvimento de Software
Algoritmos e Estruturas de Dados I – Estruturas de Dados
Vetores Unidimensionais Sistemas de Informação Desenvolvimento de Sistemas para Web Prof. Gale.
VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS (VETORES)
Algoritmos e Estruturas de Dados
Vetores Unidimensionais Prof. Gale. A Variável A  Ilustrando: O que aconteceria no algoritmo... A  3 Escreva A A  5 Escreva A 3 5.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
PROGRAMAÇÃO II – PARTE 6 Profa. Maria Augusta Constante Puget.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula /08/2011 Professor Leomir J. Borba-
 O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.
Tipos de Dados, Variáveis, Expressões Lógicas e Aritméticas
Aula Prática 6 Vetores e Matrizes Monitoria
Linguagem de Programação
COMPILADORES 07 Prof. Marcos.
Programação em C Aula 9.
Funções Passagem por valor e por referência passo a passo.
Aula Prática 6 Ponteiros Monitoria  Quando declaramos uma matriz:  tipo meuArray[tam];  O compilador aloca a matriz em uma região de memória.
Transcrição da apresentação:

Algoritmos e Estruturas de Dados Linguagem C Vetores, Matrizes, Strings Prof. Me. Claudio Benossi

Variáveis Compostas São um conjunto de variáveis identificadas por um mesmo nome. Homogêneas (vetores e matrizes) Heterogêneas (estruturas)

Variáveis Compostas Homogêneas Correspondem a posições da memória: identificadas por um único nome individualizadas por índices cujo conteúdo é de um mesmo tipo 6,1 2,3 9,4 5,1 8,9 9,8 10 7,0 6,3 4,4 Notas: Posição: 1 2 3 4 5 6 7 8 9

Variáveis Compostas Homogêneas :: Exemplo Posição do livro 1 2 … n-1 788 598 265 156 145 258 369 196 989 565 345 526 ⋮ ⋱ m-1 845 153 564 892 210 Prateleira

Arranjos unidimensionais Utilizados para armazenar conjuntos de dados cujos elementos podem ser endereçados por um único índice. Também são conhecidos como vetores.

Arranjos multidimensionais Utilizados para armazenar conjuntos de dados cujos elementos necessitam ser endereçados por mais de um índice. Também são conhecidos como arrays ou matrizes.

Arranjos multidimensionais :: Exemplos Arranjos de 2 dimensões 1 2 … n-1 788 598 265 156 145 258 369 196 989 565 345 526 ⋮ ⋱ m-1 845 153 564 892 210

Arranjos multidimensionais :: Exemplos Arranjo de 3 dimensões 1 2 3 1 2 3 1 2 3 1 2 3

Arranjos multidimensionais :: Exemplos Arranjo de 4 dimensões 1 2 3 (0,0) 1 2 3 (0,1) 1 2 3 (0,2) 1 2 3 (0,3) 1 2 3 (1,0) 1 2 3 (1,1) 1 2 3 (1,2) 1 2 3 (1,3)

Vetores e Matrizes na Linguagem C Como declarar: Exemplos: <tipo> <nome> [<tamanho1>][<tamanho2>]...; float VetReais[100]; int Vetor[5][9]; char Nome_cliente[50]; float cubo[20][12][7];

Vetores e Matrizes na Linguagem C O compilador C aloca uma porção contígua da memória para armazenar os elementos das matrizes e vetores.

Vetores e Matrizes na Linguagem C int VetInt[n]; Índices: 1 2 3 4 5 ... n-1 ... VetInt Índice do primeiro elemento: zero Índice do último elemento: n – 1 Quantidade de elementos: n

Vetores e Matrizes na Linguagem C Índices fora dos limites podem causar comportamento anômalo do código. 1 2 3 4 5 2 9 8 X1 Vetor[6] X2 Vetor[1] = 9; Vetor[-1] = 2; Vetor[6] = 8; int X1; int Vetor[6]; int X2 37

Vetores e Matrizes na Linguagem C O tamanho de um vetor ou matriz é pré- definido, ou seja, após a compilação, não pode ser mudado. Portanto, vetores e matrizes são chamadas estruturas de dados estáticas, pois mantém o mesmo tamanho ao longo de toda a execução do programa.

Vetores e Matrizes na Linguagem C :: Exemplos Atribuir valores na declaração do vetor: Atribuir valores na declaração da matriz: int vetor[5] = {1,2,3,4,5}; float matriz[2][3] = {{1,2,3},{4,5,6}};

Vetores e Matrizes na Linguagem C :: Exemplos Colocar os números de 1 a 5 num vetor: Colocar os números de 5 a 1 num vetor: for (i=0; i<5; i++) Vetor[i] = i + 1; for (i=0; i<5; i++) Vetor[i] = 5 - i;

Vetores e Matrizes na Linguagem C :: Exemplos Preencher uma matriz n × m com zeros: for (i=0; i < N; i++) for (j=0; j < M; j++) Matriz[i][j] = 0;

Vetores e Matrizes na Linguagem C :: Exemplos Copiar dados de um vetor para outro: Boa prática de programação: Definir o tamanho de vetores com constantes flexibiliza a manutenção do código. #define TAM_MAX 10 double VetReais[TAM_MAX], VetCopia[TAM_MAX]; for (i=0; i<TAM_MAX; i++) VetCopia[i] = VetReais[i];

Vetores e Matrizes na Linguagem C :: Exemplos Leitura dos dados de um vetor: for (i=0; i<TAM_MAX; i++) { printf("Digite um número: "); scanf("%f", &Vet[i]); }

Vetores e Matrizes na Linguagem C :: Problema A Determinar: M[3][0] M[4][2] M[1][3] M[5][M[0][2]] M[M[3][1]][1] M[4][(M[1][2]+M[3][0])] 1 2 3 4 5 -5 -3 -1 -2 -3 1 -2

Vetores e Matrizes na Linguagem C :: Problema B Ler um elemento K. Ler um vetor A de N elementos. Verificar se o elemento K está presente no vetor: Se estiver, imprimir a posição onde ele foi encontrado. Caso contrário, imprimir mensagem "elemento K não encontrado". 37a

Vetores e Matrizes na Linguagem C :: Problema C Ler N valores inteiros (N ≤ 100) até que seja digitado o valor zero. A seguir, inverter o vetor, trocando o 1º elemento com o último, o 2º com o penúltimo, e assim sucessivamente. Ao final, imprimir o vetor invertido. 38

Vetores e Matrizes na Linguagem C :: Problema D Faça um programa que imprima uma matriz quadrada de dimensão N contendo: o número 1 nos elementos abaixo da diagonal principal o número 0 nos demais elementos N deve ser menor ou igual a 20. 39

Vetores e Matrizes na Linguagem C :: Problema E Fonte: DENIT BELÉM   1611 5298 4397 3250 2100 2933 FORTALEZA 5763 4865 2805 1389 3127 MANAUS 901 4374 5009 3971 PORTO VELHO 3473 4023 3070 RIO DE JANEIRO 1649 429 SALVADOR 1962 SÃO PAULO FORTALEZA RIO DE JANEIRO SÃO PAULO PORTO VELHO SALVADOR MANAUS BELÉM

Vetores e Matrizes na Linguagem C :: Problema E Construir um algoritmo que leia a tabela anterior e informe ao usuário a distância entre duas cidades fornecidas por ele, até que ele forneça duas cidades iguais (origem e destino). 40

Vetores e Matrizes na Linguagem C :: Problema E Construir um algoritmo que permita ao usuário informar várias cidades, até inserir “xx”, e que imprima a distância total para cumprir todo o percurso especificado entre as cidades fornecidas. 41

Strings Uma string é um vetor de caracteres, cujo final é indicado com um caractere nulo (valor inteiro zero). O terminador nulo também pode ser escrito como '\0‘. Ao definir uma string, deve-se levar em consideração, além do número de caracteres da string, o caractere nulo que termina a string.

Strings :: Leitura a partir do teclado Função gets() Lê string até o primeiro enter Função scanf() Lê string até o primeiro espaço em branco 17

Strings :: Atribuição de valores char curso[15] = "Engenharia"; // Valido somente na // declaracao! char curso[15]; strcpy(curso,"Engenharia"); // Requer biblioteca // string.h 43

Manipulação de caracteres A Linguagem C possui algumas funções especiais para análise e manipulação de caracteres. Tais funções estão definidas na biblioteca ctype.h A biblioteca ctype.h possibilita a manipulação de caracteres, não de strings inteiras.

Manipulação de caracteres :: Funções tolower e toupper Função toupper Converte seu argumento para uma letra maiúscula: Função tolower Converte seu argumento para uma letra minúscula: <var1> = toupper(var2); <var1> = tolower(var2); 44

Manipulação de caracteres :: Outras funções Função Testa se seu argumento é um isalnum caractere alfanumérico isalpha caractere alfabético isascii caractere ASCII (0 a 127) iscntrl caractere de controle (0-0x1F ou 0x7F) isgraph caractere imprimível na tela (não leva espaço em consideração) isprint caractere imprimível na tela (leva espaço em consideração) 45

Manipulação de caracteres :: Outras funções Função Testa se seu argumento é um islower caractere minúsculo isupper caractere maiúsculo ispunct caractere de pontuação isspace caractere de espaço, tabulação isdigit caractere numérico (0-9) isxdigit dígito hexadecimal (0-9, a-f ou A-F) 46

Manipulação de strings :: Biblioteca string.h A Linguagem C possui funções especiais para análise e manipulação de strings. Tais funções estão definidas na biblioteca string.h. A biblioteca string.h possibilita a manipulação de strings completas (sem considerar caractere a caractere).

Manipulação de strings :: Biblioteca string.h strcat(str1, str2) Concatena str2 ao final de str1 int tam = strlen(str1); Retorna o tamanho de str1

Manipulação de strings :: Biblioteca string.h int valor = strcmp(str1, str2); valor = 0, se str1 e str2 são iguais; valor < 0, se str1 < str2; valor > 0, se str1 > str2; int valor = strcmpi(str1, str2); Mesmo que strcmp, mas não é sensível ao caso 47

Manipulação de strings :: Biblioteca string.h strupr(str) Converte uma string para maiúsculas. strlwr(str) Converte uma string para minúsculas. strrev(str) Inverte o conteúdo de uma string. strset(str,char) Substitui todos os caracteres de uma string pelo caractere especificado. 48

Manipulação de strings :: Conversão para números A seguintes funções fazem parte da biblioteca stdlib.h Função Converte atoi(<str>) String em int atof(<str>) String em float itoa(<int>) Int em string 49

Questões