Linguaguem de Programação II
Aula 4
Estruturas Homogêneas – Vetores e Matrizes
Strings
Prof. Luiz José Hoffmann Filho
[email protected]
Vetores



Vetor 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]
Vetores
Um 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]
Vetores
Exemplo de vetor:
0
1
2
3
4
5
6
8
37
0
109
45
2
78
0
1
2
3
4
5
6
[email protected]
Vetores

Declaraçã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]
Vetores
Exemplo 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]
Vetores

Atribuindo 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]
Vetores

Preenchendo 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]
Vetores

Mostrar 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]
Trabalhando com vetores

Podemos 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]
Matrizes



Matriz 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 valores.
[email protected]
Matrizes
Um 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]
Matrizes
Exemplo de Matriz:
0
1
2
0
1
2
3
4
5
[email protected]
6
Matrizes

Declaraçã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 matrizidentificação;
<tipo>: tipo da matriz.
[email protected]
Matrizes
Exemplo 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]
Matrizes

Atribuindo 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]
Matrizes
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]
Matrizes

Mostrando 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]
Trabalhando com matrizes

Podemos 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]
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);
}
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.
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”;
STRING - STRCPY
strcpy (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);
}
STRING - STRCAT
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;
}
STRING - STRLEN
strlen (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);
}
STRING - STRCMP
strcmp (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.");
else
printf ("\n\nAs duas strings são iguais.");
return 0;
}
STRING - STRCAT
A 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;
}
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.
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]);
Exercícios - Vetores
1.
2.
3.
Faça um programa para ler 15 idades
diferentes e guarde em um vetor. Depois
calcular e mostrar a média das idades.
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.
Faça um programa que preencha dois
vetores de dez elementos inteiros cada e
mostre um terceiro vetor resultante da
intercalação deles.
Exercícios - Matrizes
1.
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 aluno.
[email protected]
Exercícios - Strings
1.
2.
3.
4.
5.
Faça um programa que lê uma string de 5 caracteres e o escreve
invertido.
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.
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.
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'.
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.
Download

Preenchendo uma matriz