Aula_14.ppt

28
Linguagem C Linguagem C Aula 14

Transcript of Aula_14.ppt

Page 1: Aula_14.ppt

Linguagem CLinguagem C

Aula 14Aula 14

Page 2: Aula_14.ppt

TópicosTópicosTópicosTópicos

Variáveis compostas Homogéneas:Variáveis compostas Homogéneas: MatrizesMatrizes

StringsStrings

Page 3: Aula_14.ppt

São um conjunto de variáveis São um conjunto de variáveis identificadas por um identificadas por um mesmo nomemesmo nome..

HomogêneasHomogêneas (vectores e matrizes) (vectores e matrizes)

HeterogêneasHeterogêneas (estruturas) (estruturas)

Variáveis CompostasVariáveis CompostasVariáveis CompostasVariáveis Compostas

Page 4: Aula_14.ppt

Posição do livroPosição do livro

00 11 22 …… n-1n-1

00 788788 598598 265265 …… 156156

11 145145 258258 369369 …… 196196

22 989989 565565 345345 …… 526526

⋮⋮ ⋮⋮ ⋮⋮ ⋮⋮ ⋱⋱ ⋮⋮

m-m-11 845845 153153 564564 892892 210210

Pra

tele

ira

Pra

tele

ira

Variáveis Compostas Variáveis Compostas HomogêneasHomogêneas:: Exemplo:: ExemploVariáveis Compostas Variáveis Compostas HomogêneasHomogêneas:: Exemplo:: Exemplo

Page 5: Aula_14.ppt

Utilizados para armazenar conjuntos de Utilizados para armazenar conjuntos de dados cujos elementos necessitam ser dados cujos elementos necessitam ser endereçados por endereçados por mais de um índicemais de um índice..

Também são conhecidos comoTambém são conhecidos como matrizesmatrizes..

Arranjos multidimensionaisArranjos multidimensionaisArranjos multidimensionaisArranjos multidimensionais

Page 6: Aula_14.ppt

00 11 22 …… n-1n-1

00 788788 598598 265265 …… 156156

11 145145 258258 369369 …… 196196

22 989989 565565 345345 …… 526526

⋮⋮ ⋮⋮ ⋮⋮ ⋮⋮ ⋱⋱ ⋮⋮

m-m-11 845845 153153 564564 892892 210210

Arranjos de Arranjos de 22 dimensões dimensões

Arranjos multidimensionaisArranjos multidimensionais:: Exemplos:: ExemplosArranjos multidimensionaisArranjos multidimensionais:: Exemplos:: Exemplos

Page 7: Aula_14.ppt

Como declarar:Como declarar:

Exemplos:Exemplos:

<tipo> <nome> [<tamanho1>][<tamanho2>]...;<tipo> <nome> [<tamanho1>][<tamanho2>]...;

int Vector[5][9];float cubo[20][12];

int Vector[5][9];float cubo[20][12];

Matrizes na Linguagem CMatrizes na Linguagem CMatrizes na Linguagem CMatrizes na Linguagem C

Page 8: Aula_14.ppt

O compilador reserva uma porção O compilador reserva uma porção contígua contígua da da memória para armazenar os elementos das memória para armazenar os elementos das matrizes.matrizes.

Matrizes na Linguagem CMatrizes na Linguagem CMatrizes na Linguagem CMatrizes na Linguagem C

Page 9: Aula_14.ppt

Matrizes na Linguagem CMatrizes na Linguagem CMatrizes na Linguagem CMatrizes na Linguagem C

O tamanho de uma matriz é O tamanho de uma matriz é pré-definidopré-definido, , ou seja, após a compilação, não pode ser ou seja, após a compilação, não pode ser mudado.mudado.

Portanto, e matrizes são chamadas Portanto, e matrizes são chamadas estruturas de dados estáticasestruturas de dados estáticas, pois , pois mantém o mantém o mesmo tamanho mesmo tamanho ao longo de ao longo de toda a execução do programa.toda a execução do programa.

Page 10: Aula_14.ppt

Atribuir valores na declaração da matriz:Atribuir valores na declaração da matriz:

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

Matrizes na Linguagem C Matrizes na Linguagem C :: Exemplos:: ExemplosMatrizes na Linguagem C Matrizes na Linguagem C :: Exemplos:: Exemplos

Page 11: Aula_14.ppt

Preenche uma matriz n Preenche uma matriz n ×× m com zeros: m com zeros:

for (i=0; i < N; i++)

for (j=0; j < M; j++)

Matriz[i][j] = 0;

for (i=0; i < N; i++)

for (j=0; j < M; j++)

Matriz[i][j] = 0;

Matrizes na Linguagem C Matrizes na Linguagem C :: Exemplos:: ExemplosMatrizes na Linguagem C Matrizes na Linguagem C :: Exemplos:: Exemplos

Page 12: Aula_14.ppt

Boa prática de programação:Boa prática de programação: Definir o tamanho de Matrizes com Definir o tamanho de Matrizes com constantesconstantes

flexibiliza a manutenção do código.flexibiliza a manutenção do código.

#define TAM_MAX 20#define TAM_MAX 20

int Vet[TAM_MAX][TAM_MAX];int Vet[TAM_MAX][TAM_MAX];

Matrizes na Linguagem C Matrizes na Linguagem C :: Exemplos:: ExemplosMatrizes na Linguagem C Matrizes na Linguagem C :: Exemplos:: Exemplos

Page 13: Aula_14.ppt

Leitura dos dados de uma matriz:Leitura dos dados de uma matriz:

for (i=0; i<TAM_MAX; i++) for (j=0; j<TAM_MAX; j++)

{ printf("Digite o número: ");

scanf("%f", &Vet[i][j]);}

for (i=0; i<TAM_MAX; i++) for (j=0; j<TAM_MAX; j++)

{ printf("Digite o número: ");

scanf("%f", &Vet[i][j]);}

Matrizes na Linguagem C :: ExemplosMatrizes na Linguagem C :: ExemplosMatrizes na Linguagem C :: ExemplosMatrizes na Linguagem C :: Exemplos

Page 14: Aula_14.ppt

Determinar:Determinar:

1.1. M[3][0]M[3][0]

2.2. M[4][2]M[4][2]

3.3. M[1][3]M[1][3]

4.4. M[5][M[0][2]]M[5][M[0][2]]

5.5. M[M[3][1]][1]M[M[3][1]][1]

00 11 22 33

00 11 22 33 44

11 55 -5-5 33 00

22 11 11 11 11

33 -3-3 22 00 00

44 00 00 11 11

55 -1-1 -1-1 -2-2 -2-2

1.1. -3-3

2.2. 11

3.3. 00

4.4. -2-2

5.5. 11

Matrizes na Linguagem C :: Problema Matrizes na Linguagem C :: Problema AAMatrizes na Linguagem C :: Problema Matrizes na Linguagem C :: Problema AA

Page 15: Aula_14.ppt

String é um vector de caracteres, cujo fim é String é um vector de caracteres, cujo fim é indicado com um indicado com um carácter nulocarácter nulo (valor inteiro (valor inteiro zero).zero).

O terminador nulo também pode ser escrito O terminador nulo também pode ser escrito como como '\0‘.'\0‘.

Ao definir uma string, deve-se levar em Ao definir uma string, deve-se levar em consideração, além do número de caracteres da consideração, além do número de caracteres da string, o caracter nulo que termina a string.string, o caracter nulo que termina a string.

StringsStringsStringsStrings

Page 16: Aula_14.ppt

Strings :: Strings :: LeituraLeitura a através do teclado a através do tecladoStrings :: Strings :: LeituraLeitura a através do teclado a através do teclado

Função Função gets()gets()

Lê string até o Lê string até o primeiro enterprimeiro enter

Função Função scanf()scanf()

Lê string até o Lê string até o primeiro espaço em brancoprimeiro espaço em branco

Page 17: Aula_14.ppt

char curso[15] = "Engenharia"; char curso[15] = "Engenharia";

char curso[15];

strcpy(curso,"Engenharia"); // precisa da biblioteca// string.h

char curso[15];

strcpy(curso,"Engenharia"); // precisa da biblioteca// string.h

Strings :: Atribuição de valoresStrings :: Atribuição de valoresStrings :: Atribuição de valoresStrings :: Atribuição de valores

Page 18: Aula_14.ppt

A Linguagem C possui algumas funções especiais A Linguagem C possui algumas funções especiais para análise e manipulação de caracteres.para análise e manipulação de caracteres.

Tais funções estão definidas na biblioteca Tais funções estão definidas na biblioteca ctype.hctype.h

A biblioteca A biblioteca ctype.hctype.h possibilita a possibilita a manipulação de manipulação de caracterescaracteres, não de strings inteiras., não de strings inteiras.

Manipulação de caracteresManipulação de caracteresManipulação de caracteresManipulação de caracteres

Page 19: Aula_14.ppt

Função Função toupper

Converte seu argumento para uma letra Converte seu argumento para uma letra maiúsculamaiúscula::

Função Função tolower

Converte seu argumento para uma letra Converte seu argumento para uma letra minúsculaminúscula::

<var1> = toupper(var2);<var1> = toupper(var2);

<var1> = tolower(var2);<var1> = tolower(var2);

Manipulação de caracteresManipulação de caracteres:: Funções :: Funções tolowertolower e e touppertoupperManipulação de caracteresManipulação de caracteres:: Funções :: Funções tolowertolower e e touppertoupper

Page 20: Aula_14.ppt

FunçãoFunção Testa se seu argumento é umTesta se seu argumento é um

isalnumisalnum caracter caracter alfanuméricoalfanumérico

isalphaisalpha caracter caracter alfabéticoalfabético

isasciiisascii caracter caracter ASCIIASCII (0 a 127) (0 a 127)

iscntrliscntrl caracter de controle (caracter de controle (0-0x1F0-0x1F ou ou 0x7F0x7F))

isgraphisgraph caracter imprimível no monitor (caracter imprimível no monitor (não levanão leva espaço em consideração)espaço em consideração)

isprintisprint caracter imprimível no monitor (caracter imprimível no monitor (levaleva espaço espaço em consideração)em consideração)

Manipulação de caracteres :: Outras Manipulação de caracteres :: Outras funçõesfunçõesManipulação de caracteres :: Outras Manipulação de caracteres :: Outras funçõesfunções

Page 21: Aula_14.ppt

FunçãoFunção Testa se seu argumento é umTesta se seu argumento é um

islowerislower caracter caracter minúsculominúsculo

isupperisupper caracter maiúsculocaracter maiúsculo

ispunctispunct caracter de caracter de pontuaçãopontuação

isspaceisspace caracter de caracter de espaçoespaço, , tabulaçãotabulação

isdigitisdigit caracter numérico (caracter numérico (0-90-9))

isxdigitisxdigit dígito hexadecimal (dígito hexadecimal (0-90-9, , a-fa-f ou ou A-FA-F))

Manipulação de caracteres :: Outras Manipulação de caracteres :: Outras funçõesfunçõesManipulação de caracteres :: Outras Manipulação de caracteres :: Outras funçõesfunções

Page 22: Aula_14.ppt

A Linguagem C possui funções especiais para A Linguagem C possui funções especiais para análise e manipulação de análise e manipulação de stringsstrings..

Tais funções estão definidas na biblioteca Tais funções estão definidas na biblioteca string.hstring.h..

A biblioteca A biblioteca string.hstring.h possibilita a manipulação possibilita a manipulação de strings completas (sem considerar caracter a de strings completas (sem considerar caracter a caracter).caracter).

Manipulação de strings :: Biblioteca Manipulação de strings :: Biblioteca string.hstring.hManipulação de strings :: Biblioteca Manipulação de strings :: Biblioteca string.hstring.h

Page 23: Aula_14.ppt

strcat(str1, str2)strcat(str1, str2)

Concatena str2 ao final de str1Concatena str2 ao final de str1

int tam = strlen(str1);int tam = strlen(str1);

Devolve o tamanho de str1Devolve o tamanho de str1

Manipulação de strings :: Biblioteca Manipulação de strings :: Biblioteca string.hstring.hManipulação de strings :: Biblioteca Manipulação de strings :: Biblioteca string.hstring.h

Page 24: Aula_14.ppt

int valor = strcmp(str1, str2);int valor = strcmp(str1, str2); valor = 0, se str1 e str2 são iguais;valor = 0, se str1 e str2 são iguais;

valor < 0, se str1 < str2;valor < 0, se str1 < str2;

valor > 0, se str1 > str2;valor > 0, se str1 > str2;

int valor = strcmpi(str1, str2);int valor = strcmpi(str1, str2);

Mesmo que Mesmo que strcmpstrcmp, mas não é sensível ao caso, mas não é sensível ao caso

Manipulação de strings :: Biblioteca Manipulação de strings :: Biblioteca string.hstring.hManipulação de strings :: Biblioteca Manipulação de strings :: Biblioteca string.hstring.h

Page 25: Aula_14.ppt

strupr(str)strupr(str)Converte uma string para maiúsculas.Converte uma string para maiúsculas.

strlwr(str)strlwr(str)Converte uma string para minúsculas.Converte uma string para minúsculas.

strrev(str)strrev(str)Inverte o conteúdo de uma string.Inverte o conteúdo de uma string.

strset(str,char)strset(str,char)Substitui todos os caracteres de uma string pelo caracter Substitui todos os caracteres de uma string pelo caracter

especificado.especificado.

Manipulação de stringsManipulação de strings:: Biblioteca :: Biblioteca string.hstring.hManipulação de stringsManipulação de strings:: Biblioteca :: Biblioteca string.hstring.h

Page 26: Aula_14.ppt

A seguintes funções fazem parte da biblioteca A seguintes funções fazem parte da biblioteca stdlib.hstdlib.h

FunçãoFunção ConverteConverte

atoi(atoi(<str><str>)) String em intString em int

atof(atof(<str><str>)) String em floatString em float

itoa(itoa(<int><int>)) Int em stringInt em string

Manipulação de strings: Conversão para Manipulação de strings: Conversão para númerosnúmerosManipulação de strings: Conversão para Manipulação de strings: Conversão para númerosnúmeros

Page 27: Aula_14.ppt

Faça um programa que leia e imprima uma Faça um programa que leia e imprima uma matriz quadrada de dimensão matriz quadrada de dimensão N.N.

Matrizes na Linguagem C :: ProblemaMatrizes na Linguagem C :: ProblemaMatrizes na Linguagem C :: ProblemaMatrizes na Linguagem C :: Problema

Page 28: Aula_14.ppt

QuestõesQuestõesQuestõesQuestões