P
ROGRAMAÇÃO DE
C
OMPUTADORES
I
Strings – Parte 1
A
GENDA
Resolução do exercício 5
Strings
Universidade Federal de Ouro Preto Campus João Monlevade
Q
UESTÃO
5
5 – Faça um algoritmo que preencha duas matrizes (4x4)
aleatoriamente (com valores entre 0 e 100). Em seguida exiba
cada uma das matrizes, de maneira organizada, na tela (utilize
uma função exibe_matriz que exibe os dados de uma matriz
por vez). Crie também uma função que calcule a soma da
diagonal principal da matriz (soma_diagonal_principal) e
retorne o valor da soma. Crie uma função main que irá
controlar o fluxo de execução do programa.
Obs: A diagonal principal da matriz 3x3 abaixo são os campos
com valor 1.
Q
UESTÃO
5 - R
ESOLUÇÃO
Inclusão dos imports
math.h para a utilização da função srand
Criação da função calcula_soma_diagonal
Universidade Federal de Ouro Preto Campus João Monlevade
Q
UESTÃO
5 - R
ESOLUÇÃO
Q
UESTÃO
5 - R
ESOLUÇÃO
Criação da função main
???
Universidade Federal de Ouro Preto Campus João Monlevade
Q
UESTÃO
5 - R
ESOLUÇÃO
Criação da função main
Declaração de variáveis:
i,j contadores dos for`s
para percorrer a matriz
matriz1,matriz2 matrizes
Q
UESTÃO
5 - R
ESOLUÇÃO
Criação da função main
Inicializando o gerador de
números aleatórios com a
semente que é o tempo
corrente do sistema
Universidade Federal de Ouro Preto Campus João Monlevade
Q
UESTÃO
5 - R
ESOLUÇÃO
Criação da função main
Dois for`s aninhados para
percorrer todos os elementos
Q
UESTÃO
5 - R
ESOLUÇÃO
Criação da função main
Geração dos números
aleatórios entre 0 e 100 e
preenchimento das matrizes
Universidade Federal de Ouro Preto Campus João Monlevade
Q
UESTÃO
5 - R
ESOLUÇÃO
Criação da função main
Chamada para o método
exibe_matriz para cada uma
das matrizes. O método irá
exibir a matriz na tela conforme
Q
UESTÃO
5 - R
ESOLUÇÃO
Criação da função main
Universidade Federal de Ouro Preto Campus João Monlevade
Instituto de Ciências Exatas e Aplicadas
T
IPOS UTILIZADOS
int, long, char, double, float
Arrays e Matrizes de int, long, double e float
E se quisermos armazenar um texto maior do que um
único caracter?
Nomes dos jogadores do jogo da velha ou dos funcionários
de uma empresa
Função de um empregado na empresa (Analista, Gerente de
C
ADEIAS DE CARACTERES
Em C podemos criar uma cadeia de caracteres, também
chamado de String.
Definição: são seqüência de letras, números ou símbolos
onde o último caractere é o caractere nulo (\0)
Universidade Federal de Ouro Preto Campus João Monlevade
Instituto de Ciências Exatas e Aplicadas
Utiliza-se vetores do tipo char para armazenar cadeias de
caracteres.
Para declarar um espaço de memória que contenha 20
caracteres devemos escrever o seguinte código
C
ADEIAS DE CARACTERES
Para ler uma String (cadeia
de caracteres) deve-se usar
o parâmetro “%s” no método
o parâmetro “%s” no método
scanf. Dessa forma serão
lidos todos os caracteres até
encontrar um espaço ou o fim
C
ADEIAS DE CARACTERES
Último caractere é o ‘\0’
Universidade Federal de Ouro Preto Campus João Monlevade
Instituto de Ciências Exatas e Aplicadas
Último caractere é o ‘\0’
indicando o fim da String
C
ADEIAS DE CARACTERES
É preciso tomar muito cuidado ao utilizar este tipo de
String
Se acessarmos um endereço fora do vetor, invadiremos
C
ADEIAS DE CARACTERES
Pergunta: Qual o tamanho do menor vetor que devemos
declarar para armazenar uma cadeia de caracteres com
10 letras?
Universidade Federal de Ouro Preto Campus João Monlevade
C
ADEIA DE
C
ARACTERES
C
ADEIA DE
C
ARACTERES
Teste: Entrada FilipeRibe
Universidade Federal de Ouro Preto Campus João Monlevade
Instituto de Ciências Exatas e Aplicadas
Poderá haver problemas pois um char deve ser o
caractere que indica o fim da String: ‘\0’
Alguns compiladores podem automaticamente resolver esse
problema, mas isso não é regra
C
ADEIA DE
C
ARACTERES
Escreva um programa que lê uma palavra da entrada e
imprime o número de caracteres desta palavra
C
ADEIA DE
C
ARACTERES
Escreva um programa que lê uma palavra da entrada e
imprime o número de caracteres desta palavra
Universidade Federal de Ouro Preto Campus João Monlevade
C
ADEIA DE
C
ARACTERES
Escreva um programa que lê uma palavra da entrada e
imprime o número de caracteres desta palavra
C
ADEIA DE
C
ARACTERES
Inicialização de Strings
char nome[20];
char nome_joao [] = “joao” ;
Depois de alocada dessa forma
NÃO
é possível fazer a seguinte
operação
Universidade Federal de Ouro Preto Campus João Monlevade
Instituto de Ciências Exatas e Aplicadas
operação
nome = “maria”;
Também
Não
é possível atribuir o valor de uma String à
outra String conforme abaixo
nome = nome_joao;
Isso gera um erro na compilação
C
ADEIA DE
C
ARACTERES
C
ADEIA DE
C
ARACTERES
Leitura de Strings digitadas pelo usuário
Universidade Federal de Ouro Preto Campus João Monlevade
C
ADEIA DE
C
ARACTERES
Leitura de Strings digitadas pelo usuário
Diferenças entre gets e fgets
gets
Não permite determinar a quantidade de caracteres digitados pelo
usuário. Logo, se ele digitar uma quantidade maior do que o valor
esperado, um erro poderá ocorrer.
Logo ao final do texto digitado é inserido o caractere null (‘\0’);
fgets
Permite limitar o tamanho do texto lido.
Permite limitar o tamanho do texto lido.
Ao final da String adiciona uma quebra de linha (‘\n’) e em seguida
o caractere null (‘\0’);
Recebe como parâmetro a referência para o array, a quantidade de
caracteres a serem lidos e a origem da leitura dos dados (stdin quer
dizer que é a entrada padrão – standard input)
C
RÉDITOS
Baseado no material do prof. José Romildo Malaquias
(DECOM/UFOP)
Universidade Federal de Ouro Preto Campus João Monlevade