Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof....

32
Linguaguem de Linguaguem de Programação II Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho [email protected]

Transcript of Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof....

Page 1: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

Linguaguem de Linguaguem de Programação IIProgramação II

Aula 4Estruturas Homogêneas – Vetores e

MatrizesStrings

Prof. Luiz José Hoffmann Filho

[email protected]

Page 2: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

VetoresVetoresVetor também é conhecido como

variável composta homogênea unidimensional;

Um vetor computacional é uma “variável composta” capaz de armazenar uma quantia determinada de valores;

Um vetor computacional é inspirada no vetor matemático, que também é capaz de armazenar um conjunto de valores. [email protected]

Page 3: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

VetoresVetoresUm conjunto de variáveis do

mesmo tipo, que possuem o mesmo identificador(nome) e são alocados seqüencialmente na memória;

Como as variáveis tem o mesmo nome, o que as distingue é um índice que referencia sua localização dentro da estrutura.

[email protected]

Page 4: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

VetoresVetoresExemplo de vetor:

[email protected]

0 1 2 3 4 5 6

0 1 2 3 4 5 6

8 37 0 109 45 2 78

Page 5: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

VetoresVetoresDeclaração de um vetor:

<tipo> <nome da variável> [<Tamanho>] ;

Onde : <Tamanho> - representa o tamanho total do vetor;

< tipo > - representa qualquer um dos tipos básicos ou tipo anteriormente definido.

[email protected]

Page 6: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

VetoresVetoresExemplo de declaração:int vetor [15];float valores[10];

Inicialização de vetores:int vet[10] =

{1,2,3,4,5,6,7,8,9,10};

[email protected]

Page 7: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

VetoresVetoresAtribuindo valores ao vetor: - As atribuições em vetor exigem

que seja informada em qual de suas posições o valor ficará armazenado.

vetor[0] = 56; vetor[5] =100; valor[1] = 8.9; valor[4] = 0.5;

valor[3] = 4.6; nomes = 'a'; nomes = “Jose Silva”; nomes = '*';

[email protected]

Page 8: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

VetoresVetoresPreenchendo um vetor: - Preencher um vetor significa atribuir valores

a todas as suas posições. - Deve-se implementar um mecanismo que

controle o valor do índice. #include <stdio.h> int main() { int vetor[5]; int i; for(i=0; i<5; i++) { printf("Digite um valor"); scanf("%d", &vetor[i]); } return 0; } [email protected]

Page 9: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

VetoresVetoresMostrar um elemento de um vetor,

também é necessário utilizar índices:

#include <stdio.h> int main() { int vetor[5]; int i; for(i=0; i<5; i++) { printf("vetor[%d] %d\n",i,vetor[i]); } return 0; } [email protected]

Page 10: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

Trabalhando com vetoresTrabalhando com vetoresPodemos usar os vetores como usamos

qualquer outra variável para somar, subtrair e etc.

#include <stdio.h> int main() { int vetor[5]; int i, soma; for(i=0; i<5; i++) { soma = soma + vetor[i]; } soma = vetor[1] + vetor[1] + vetor[2] + vetor[3] +

vetor[4]; return 0; }

[email protected]

Page 11: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

MatrizesMatrizesMatriz também é conhecido como

variável composta homogênea multidimensional;

Uma matriz computacional é uma “variável composta” capaz de armazenar uma quantia determinada de valores;

Uma matriz computacional é inspirada na matriz matemático, que também é capaz de armazenar um conjunto de [email protected]

Page 12: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

MatrizesMatrizesUm conjunto de variáveis do

mesmo tipo, que possuem o mesmo identificador(nome) e são alocados seqüencialmente na memória;

Como as variáveis tem o mesmo nome, o que as distingue é um índice que referencia sua localização dentro da estrutura.

Uma variável do tipo matriz precisa de um índice para cada uma de suas dimensões.

[email protected]

Page 13: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

MatrizesMatrizes

Exemplo de Matriz: 0

1

2

[email protected]

0 1 2 3 4 5 6

Page 14: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

MatrizesMatrizesDeclaração de uma matriz: <tipo> <nome variável> [<linhas>][<colunas> ] ;

Onde : <linhas> : Quantidade de linhas; <colunas> : Quantidade de colunas;

<nome variável>: Nome que você dará a sua matriz- identificação;

<tipo>: tipo da matriz.

[email protected]

Page 15: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

MatrizesMatrizesExemplo de declaração:int numero[4][4];float valores[10][10];

Inicialização:Int sqrs [4][2]= {1,1,

2,4, 3,9, 4,16}

[email protected]

Page 16: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

MatrizesMatrizesAtribuindo valores a matriz: - As atribuições em matrizes exigem que seja

informada a linha e a coluna para saber onde o valor ficará armazenado.

numero[0][1] = 56; Numero[3][4] = 100;valores[1][2] = 8.9; valores[1][3] = 0.5;nomes[0][1] = 'a';nomes[1][3] = “Jose Silva”;nomes[2][7] = '*';

[email protected]

Page 17: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

MatrizesMatrizes Preenchendo uma matriz: - Preencher uma matriz significa atribuir valores a todas as suas posições. - Deve-se implementar um mecanismo que controle o valor do índice. #include <stdio.h> int main () { int mtrx [20][10]; int i,j,count; count=1; for (i=0;i<20;i++) { for (j=0;j<10;j++) { mtrx[i][j]=count; count++; } } return(0); }

[email protected]

Page 18: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

MatrizesMatrizesMostrando um elemento de uma matriz,

também é necessário utilizar índices: #include <stdio.h> int main () { int mtrx [20][10]; int i,j; for (i=0;i<20;i++) { for (j=0;j<10;j++) { printf(“mtrx[%d][%d] = %d \n”, i,j,mtrx[i][j]); } } return(0); } [email protected]

Page 19: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

Trabalhando com matrizesTrabalhando com matrizesPodemos usar as matrizes como usamos qualquer

outra variável para somar, subtrair e etc. #include <stdio.h> int main () { int mtrx [20][10]; int i,j,count; count=0; for (i=0;i<20;i++) { for (j=0;j<10;j++) { count = count + mtrx[i][j]; } } printf(“Count %d\n”, count); return(0); }

[email protected]

Page 20: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

Matriz de strings#include <stdio.h>int main () { char strings [5][100]; int count; for (count=0;count<5;count++) { printf ("\n\nDigite uma string: "); gets (strings[count]); } printf ("\n\n\nAs strings que voce digitou foram:\n\n"); for (count=0;count<5;count++) { printf ("%s\n",strings[count]); } return(0);}

Page 21: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

Strings – #include <string.h>

• O uso mais comum de vetores unidimendsionais é como string de caracteres.

• Em C, uma string é definida como um vetor de caracteres que é terminado por um nulo “\0”.

• Por essa razão, é necessário declarar vetores com sendo um caractere mais longo que a maior string que elas devem guarda.

Page 22: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

Strings

• Por exemplo, para declarar um vetor str que guarda uma string de 10 caracteres, •char str[11];•Isso reserva espaço para o nulo no final da string.

• Em C se faz necessário o uso de algumas funções de manipulação de strings.

• Inicialização: • char str[14] = “Eu gosto de C”;

Page 23: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

String - strcpystrcpy (string_destino, string_origem);

A função strcpy() copia a string-origem para a string- destino. Seu funcionamento é semelhante ao da rotina apresentada na seção anterior. As funções apresentadas nestas seções estão no arquivo cabeçalho string.h. A seguir apresentamos um exemplo de uso da função strcpy():

#include <stdio.h>#include <string.h>int main () {

char str1[100],str2[100],str3[100];printf ("Entre com uma string: ");gets (str1);strcpy (str2,str1); /* Copia str1 em str2 */strcpy (str3,"Voce digitou a string ");printf ("\n\n%s%s",str3,str2);return(0);

}

Page 24: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

String - strcatstrcat (string_destino,string_origem);

A string de origem permanecerá inalterada e será anexada ao fim da string de destino. Um exemplo:

#include <stdio.h>#include <string.h>int main () {

char str1[100],str2[100];printf ("Entre com uma string: ");gets (str1);strcpy (str2,"Voce digitou a string ");strcat (str2,str1);/* str2 armazenara' Voce digitou a string + o conteudo de str1

*/printf ("\n\n%s",str2);return 0;

}

Page 25: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

String - strlenstrlen (string);

A função strlen() retorna o comprimento da string fornecida. O terminador nulo não é contado. Isto quer dizer que, de fato, o comprimento do vetor da string deve ser um a mais que o inteiro retornado por strlen(). Um exemplo do seu uso:

#include <stdio.h>#include <string.h>int main () {

int size;char str[100];printf ("Entre com uma string: ");gets (str);size=strlen (str);printf ("\n\nA string que voce digitou tem tamanho %d",size);return(0);

}

Page 26: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

String - strcmpstrcmp (string1,string2);

A função strcmp() compara a string 1 com a string 2. Se as duas forem idênticas a função retorna zero. Se elas forem diferentes a função retorna não-zero. Um exemplo da sua utilização:

#include <stdio.h>#include <string.h>int main () {

char str1[100],str2[100];printf ("Entre com uma string: ");gets (str1);printf ("\n\nEntre com outra string: ");gets (str2);if (strcmp(str1,str2))printf ("\n\nAs duas strings são diferentes.");elseprintf ("\n\nAs duas strings são iguais.");return 0;

}

Page 27: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

String - strcatA função strcat() tem a seguinte forma geral:strcat (string_destino,string_origem);A string de origem permanecerá inalterada e será anexada ao

fim da string de destino. Um exemplo:#include <stdio.h>#include <string.h>int main () {

char str1[100],str2[100];printf ("Entre com uma string: ");gets (str1);strcpy (str2,"Voce digitou a string ");strcat (str2,str1);/* str2 armazenara' Voce digitou a string + o conteudo de str1

*/printf ("\n\n%s",str2);return 0;

}

Page 28: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

String – strchr e strstr

• A função strchr(s1, ch), retorna um ponteiro para a primeira ocorrência de ch, s1.

• A função strstr(s1, s2), retorna um ponteiro para a primeira ocorrência de s2 em s1.

Page 29: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

Matrizes de string.

• Em uma matriz de string, teremos as linhas que seram a quantidade de string armazenada e as colunas que seram o tamanho das string que devem ser armazenadas.

• Exemplo : char str_array[30][80].• Para acessar basta especificar o número da linha• Exemplo: gets(str_array[2]);

Page 30: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

Exercícios - VetoresExercícios - Vetores1. Faça um programa para ler 15

idades diferentes e guarde em um vetor. Depois calcular e mostrar a média das idades.

2. Faça um programa para ler 10 números e guardar em um vetor. Depois calcular e mostrar qual número é par e qual seu índice no vetor.

3. Faça um programa que preencha dois vetores de dez elementos inteiros cada e mostre um terceiro vetor resultante da intercalação deles.

Page 31: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

Exercícios - MatrizesExercícios - Matrizes1. Faça um programa que preencha

uma matriz 10x10 com números inteiros e depois multiplique cada elemento da matriz por 2 e guarde em uma nova matriz e depois mostre o resultado.

2. Faça um programa para ler 4 notas de 3 alunos e guarde os valores em uma matriz. Depois calcular e mostrar a média das notas de cada [email protected]

Page 32: Linguaguem de Programação II Aula 4 Estruturas Homogêneas – Vetores e Matrizes Strings Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com.

Exercícios - Strings1. Faça um programa que lê uma string de 5 caracteres e o escreve

invertido.2. Faça um programa que lê uma string de 4 caracteres e inverte a

primeira letra da string com a última. O programa deve escrever a string original e a alterada.

3. Faça uma programa que lê o nome é o sobrenome de uma pessoa separadamente. O programa deve juntar as duas strings em uma só e escrever na tela: a nova string, o seu númeor de caracteres, a sua primeira e a última letra.

4. Faça uma função que receba 2 strings (A e B) e retorne uma terceira string (C) formada pelos caracteres de A e B intercalados. Ex.: Se A='Quarta' e B='Segunda', a resposta deve ser 'QSueagrutnada'.

5. Faça um programa que leia 4 palavras pelo teclado, e armazene cada palavra em uma string. Depois, concatene todas as strings lidas numa única string. Por fim apresente esta como resultado ao final do programa.