Você está na página 1de 10

Linguagens Procedimentais

Variveis Compostas
So um conjunto de variveis identificadas por um mesmo nome.

Linguagem C/C++
Homogneas (vetores e matrizes)

Vetores, Matrizes, Strings


Heterogneas (estruturas)

Variveis Compostas Homogneas


Correspondem a posies da memria:
identificadas por um nico nome individualizadas por ndices cujo contedo de um mesmo tipo

Variveis Compostas Homogneas :: Exemplo


Posio do livro
0 0 1 2 n-1 156 196 526 788 598 265 145 258 369 989 565 345

Prateleira
3

1 2

Notas: Posio:

6,1 0

2,3 1

9,4 2

5,1 3

8,9 4

9,8 5

10 6

7,0 7

6,3 8

4,4 9

m-1 845 153 564 892 210


4

Arranjos unidimensionais
Utilizados para armazenar conjuntos de dados cujos elementos podem ser endereados por um nico ndice. Tambm so conhecidos como vetores.

Arranjos multidimensionais
Utilizados para armazenar conjuntos de dados cujos elementos necessitam ser endereados por mais de um ndice. Tambm so conhecidos como arrays ou matrizes.

Arranjos multidimensionais :: Exemplos


Arranjos de 2 dimenses
0 0 1 2 1 2 n-1 156 196 526

Arranjos multidimensionais :: Exemplos


Arranjo de 3 dimenses
0 0 1 2 3 0 1 2 3 0 1 2 3 1 0 1 2 3 0 1 2 3 2 0 1 2 3 0 1 2 3 3 0 1 2 3

788 598 265 145 258 369 989 565 345

m-1 845 153 564 892 210


7 8

Arranjos multidimensionais :: Exemplos


Arranjo de 4 dimenses
0 0 1 2 3 (0,0) 1 2 3 0 1 2 3 (0,1) 0 1 2 3 0 1 2 3 (0,2) 0 1 2 3 0 1 2 3 (0,3) 0 1 2 3

Vetores e Matrizes na Linguagem C


Como declarar:
<tipo> <nome> [<tamanho1>][<tamanho2>]...;

Exemplos:

0 0 1 2 3

3 0 1 2 3

3 0 1 2 3

3 0 1 2 3

float int char float


9

VetReais[100]; Vetor[5][9]; Nome_cliente[50]; cubo[20][12][7];


10

(1,0)

(1,1)

(1,2)

(1,3)

Vetores e Matrizes na Linguagem C


O compilador C aloca uma poro contgua da memria para armazenar os elementos das matrizes e vetores.

Vetores e Matrizes na Linguagem C


int VetInt[n];

ndices: VetInt

... ...

n-1

ndice do primeiro elemento: zero ndice do ltimo elemento: n 1 Quantidade de elementos: n


11 12

Vetores e Matrizes na Linguagem C


ndices fora dos limites podem causar comportamento anmalo do cdigo.
0 2 X1
int X1; int Vetor[6]; int X2

Vetores e Matrizes na Linguagem C


O tamanho de um vetor ou matriz prdefinido, ou seja, aps a compilao, no pode ser mudado.
8

1 9

Vetor[6]
Vetor[1]

X2
= 9;

Portanto, vetores e matrizes so chamadas estruturas de dados estticas, pois mantm o mesmo tamanho ao longo de toda a execuo do programa.

Vetor[-1] = 2; Vetor[6] = 8;
13 14

Vetores e Matrizes na Linguagem C :: Exemplos


Atribuir valores na declarao do vetor:
int vetor[5] = {1,2,3,4,5};

Vetores e Matrizes na Linguagem C :: Exemplos


Colocar os nmeros de 1 a 5 num vetor:
for (i=0; i<5; i++) Vetor[i] = i + 1;

Atribuir valores na declarao da matriz:

Colocar os nmeros de 5 a 1 num vetor:


for (i=0; i<5; i++) Vetor[i] = 5 - i;

float matriz[2][3] = {{1,2,3},{4,5,6}};

15

16

Vetores e Matrizes na Linguagem C :: Exemplos


Preencher uma matriz n m com zeros:
for (i=0; i < N; i++) { // Linhas

Vetores e Matrizes na Linguagem C :: Exemplos


Criar uma matriz identidade n n:
for (i=0; i < N; i++) { for (j=0; j < N; j++) // Colunas { // Linhas

for (j=0; j < M; j++) // Colunas if (i == j) { Matriz[i][j] = 1; Matriz[i][j] = 0; else } // fim do for das colunas Matriz[i][j] = 0; // outros elementos } // fim do for das linhas } // fim do for das colunas }
17

// diagonal principal

// fim do for das linhas


18

Vetores e Matrizes na Linguagem C :: Exemplos


Copiar dados de um vetor para outro:
#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 nmero: "); scanf("%f", &Vet[i]); }

Boa prtica de programao:


Definir o tamanho de vetores com constantes flexibiliza a manuteno do cdigo.
19 20

Vetores e Matrizes na Linguagem C :: Problema A


Determinar: 1. M[3][0] 2. M[4][2] 3. M[1][3] 4. M[5][M[0][2]] 5. M[M[3][1]][1] 6. M[4][(M[1][2]+M[3][0])]
0 0 1 2 3 4 5
1. 2. 3. -3 1 0 4. 5. 6. -2 1 0
21

Vetores e Matrizes na Linguagem C :: Problema B


1 2 -5 1 2 0 -1 2 3 3 1 0 1 -2 3 4 0 1 0 1 -2

Ler um elemento K. Ler um vetor A de N elementos. Verificar se o elemento K est presente no vetor:
Se estiver, imprimir a posio onde ele foi encontrado. Caso contrrio, imprimir mensagem "elemento K no encontrado".

1 5 1 -3 0 -1

22

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 penltimo, e assim sucessivamente. Ao final, imprimir o vetor invertido.
23

Vetores e Matrizes na Linguagem C :: Problema D


Faa um programa que imprima uma matriz quadrada de dimenso N contendo:
o nmero 1 nos elementos abaixo da diagonal principal o nmero 0 nos demais elementos

N deve ser menor ou igual a 20.

24

Vetores e Matrizes na Linguagem C :: Problema E


Fonte: DENIT BELM

Vetores e Matrizes na Linguagem C :: Problema E


1. Construir um algoritmo que leia a tabela anterior e informe ao usurio a distncia entre duas cidades fornecidas por ele, at que ele fornea duas cidades iguais (origem e destino).

FORTALEZA

BELM FORTALEZA MANAUS PORTO VELHO RIO DE JANEIRO SALVADOR SO PAULO 1611 5298 4397 3250 2100 2933

1611

5298 5763

4397 4865 901

3250 2805 4374 3473

2100 1389 5009 4023 1649

2933 3127 3971 3070 429 1962

5763 4865 2805 1389 3127 901 4374 5009 3971

3473 4023 3070 1649 429

1962

SO PAULO
25

SALVADOR

MANAUS

PORTO VELHO

RIO DE JANEIRO

26

Vetores e Matrizes na Linguagem C :: Problema E


2. Construir um algoritmo que permita ao usurio informar vrias cidades, at inserir xx, e que imprima a distncia total para cumprir todo o percurso especificado entre as cidades fornecidas.

Strings
Uma string um vetor de caracteres, cujo final indicado com um caractere nulo (valor inteiro zero). O terminador nulo tambm pode ser escrito como '\0. Ao definir uma string, deve-se levar em considerao, alm do nmero de caracteres da string, o caractere nulo que termina a string.

27

28

Strings :: Leitura a partir do teclado


Funo gets()
L string at o primeiro enter

Strings :: Atribuio de valores

char

curso[15] = "Engenharia"; // Valido somente na // declaracao!

Funo scanf()
L string at o primeiro espao em branco
char curso[15]; strcpy(curso,"Engenharia"); // Requer biblioteca // string.h

29

30

Manipulao de caracteres
A Linguagem C possui algumas funes especiais para anlise e manipulao de caracteres. Tais funes esto definidas na biblioteca ctype.h A biblioteca ctype.h possibilita a manipulao de caracteres, no de strings inteiras.

Manipulao de caracteres :: Funes tolower e toupper


Funo toupper
Converte seu argumento para uma letra maiscula:

<var1> = toupper(var2);

Funo tolower
Converte seu argumento para uma letra minscula:

<var1> = tolower(var2);
31 32

Manipulao de caracteres :: Outras funes


Funo isalnum isalpha isascii iscntrl isgraph isprint Testa se seu argumento um caractere alfanumrico caractere alfabtico caractere ASCII (0 a 127) caractere de controle (0-0x1F ou 0x7F) caractere imprimvel na tela (no leva espao em considerao) caractere imprimvel na tela (leva espao em considerao)
33

Manipulao de caracteres :: Outras funes


Funo islower isupper ispunct isspace isdigit isxdigit Testa se seu argumento um caractere minsculo caractere maisculo caractere de pontuao caractere de espao, tabulao caractere numrico (0-9) dgito hexadecimal (0-9, a-f ou A-F)

34

Manipulao de strings :: Biblioteca string.h


A Linguagem C possui funes especiais para anlise e manipulao de strings. Tais funes esto definidas na biblioteca string.h. A biblioteca string.h possibilita a manipulao de strings completas (sem considerar caractere a caractere).

Manipulao de strings :: Biblioteca string.h


strcat(str1, str2)
Concatena str2 ao final de str1

int tam = strlen(str1);


Retorna o tamanho de str1

35

36

Manipulao de strings :: Biblioteca string.h


int valor = strcmp(str1, str2);
valor = 0, se str1 e str2 so iguais; valor < 0, se str1 < str2; valor > 0, se str1 > str2;

Manipulao de strings :: Biblioteca string.h


strupr(str)
Converte uma string para maisculas.

strlwr(str)
Converte uma string para minsculas.

int valor = strcmpi(str1, str2);


Mesmo que strcmp, mas no sensvel ao caso

strrev(str)
Inverte o contedo de uma string.

strset(str,char)
Substitui todos os caracteres de uma string pelo caractere especificado.
37 38

Manipulao de strings :: Converso para nmeros


A seguintes funes fazem parte da biblioteca stdlib.h

Questes

Funo atoi(<str>) atof(<str>) itoa(<int>)

Converte String em int String em float Int em string

39

40

Você também pode gostar