UNIVERSIDADE FEDERAL DE
UBERLÂNDIA
ENGENHARIA CIVIL
INTRODUÇÃO À ALGORITMOS
Professora: Fabíola Gonçalves.
AGENDA
Estrutura de dados homogênea
Vetores e Matrizes
2
A diretiva #define
Matrizes
Estruturas
typedef
Exercícios
INTRODUÇÃO
3
Algoritmos precisam de dados e informações para exercer as
suas funções.
Informações simples atendem a uma pequena parcela dos
algoritmos.
A maioria dos algoritmos utilizam uma grande carga de
informações estas quando utilizadas com tipos primitivos
precisam ser criadas com inúmeras variáveis..
tornando o algoritmo carregado de variáveis, já que
uma variável contém apenas uma informação (exemplo:
a1, a2, a3, a4)Difícil gerenciamento
Como prever o número de informações que serão
necessárias
VETOR EM C
Vetor é uma coleção de variáveis de mesmo tipo
que compartilham o mesmo nome (identificador).
Declaração de um vetor:
<tipo de dado> <identificador>[<tamanho>];
Exemplo: Definição de um vetor do tipo inteiro
com 5 posições e um vetor do tipo char com 32
posições:
int x[5];
char y[32];
VETORES EM C – REFERÊNCIA AOS
ELEMENTOS DO VETOR
Cada elemento do vetor é referenciado
individualmente por meio de um número inteiro
e positivo, entre colchetes.
Este número/índice representa a posição do
elemento no vetor.
A numeração dos índices inicia em ZERO.
Exemplo:
x[0] = 1;
y[10] = 'a';
VETORES EM C - EXEMPLO
VETORES EM C - INICIALIZAÇÃO
É possível inicializar vetores no comando de declaração.
Exemplos:
/* Cria e inicializa vetor de 10 posições */
int a[10] = {1, 2, 3, 5, 7, 11, 13, 17, 19, 23};
/* Cria e inicializa vetor de 6 posições. O tamanho do vetor
PODE ser omitido se houver uma
inicialização no
comando de declaração */
int b[] = {1, 2, 4, 8, 16, 32};
VETORES EM C - INICIALIZAÇÃO
/* Cria e inicializa vetor de 24 posições. Cada letra do texto
será armazenada em uma posição do vetor. */
char c[] = {“ABCDefgh e outras letras”};
/* Cria vetor de 12 posições. O vetor e inicializado com
valores ZERO se não houver valores entre as chaves. */
int d[12]={};
/* Cria vetor com 16 posições. Se o vetor não é inicializado,
ele irá conter valores quaisquer (lixo de memória) */
int e[16];
A DIRETIVA #DEFINE
Utilizado para criar constantes (veja exemplo no
código do slide anterior).
Constantes têm funcionamento semelhante a
variáveis, porém seu valor não pode ser alterado.
Sintaxe:
#define <identificador> <valor>
Exemplo:
#define errorMsg01 “Valor inválido!”
#define PI 3.14159265
A DIRETIVA #DEFINE
Geralmente, as constantes são definidas no início
do programa (juntamente com a inclusão das
bibliotecas).
A DIRETIVA #DEFINE - EXEMPLO
MATRIZES EM C
Funcionam de modo similar a vetores.
Declaração:
<tipo de dado> <identificador> [tamanho1,tamanho2,...]
Exemplo:
int m[3][3];
int n[3][4][5];
double p[10][2];
/* declara uma matriz 3x3 */
/* declara uma matriz
tridimensional de tamanho 3x4x5 */
/* declara uma matriz do tipo
double de tamanho 10x2 */
MATRIZES EM C - INICIALIZAÇÃO
int a[3][3]={1,2,3,4,5,6,7,8,9};
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
/* Separa os dados de cada linha da matriz. Esta
maneira é preferida. */
Em ambos os exemplos acima é criada a matriz:
123
456
789
EXERCÍCIO
1.
Elabore um programa que encontre o menor e o
maior elemento de um vetor com 20 elementos.
2.
Ler um vetor Q de 20 posições (aceitar somente
números positivos ). Escrever a seguir o valor do
maior elemento de Q e a respectiva posição que ele
ocupa no vetor.
3.
Elabore um algoritmo que leia um vetor A de 30
números inteiros e imprima o maior valor.
ELABORE UM PROGRAMA QUE ENCONTRE O MENOR E O
MAIOR ELEMENTO DE UM VETOR COM 20 ELEMENTOS.
ELABORE UM PROGRAMA QUE ENCONTRE O MENOR E O
MAIOR ELEMENTO DE UM VETOR COM 20 ELEMENTOS.