• Nenhum resultado encontrado

Aula18 Strings Parte1

N/A
N/A
Protected

Academic year: 2021

Share "Aula18 Strings Parte1"

Copied!
28
0
0

Texto

(1)

P

ROGRAMAÇÃO DE

C

OMPUTADORES

I

Strings – Parte 1

(2)

A

GENDA



Resolução do exercício 5



Strings

Universidade Federal de Ouro Preto Campus João Monlevade

(3)

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.

(4)

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

(5)

Q

UESTÃO

5 - R

ESOLUÇÃO

(6)

Q

UESTÃO

5 - R

ESOLUÇÃO



Criação da função main



???

Universidade Federal de Ouro Preto Campus João Monlevade

(7)

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

(8)

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

(9)

Q

UESTÃO

5 - R

ESOLUÇÃO



Criação da função main

Dois for`s aninhados para

percorrer todos os elementos

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

C

ADEIAS DE CARACTERES



É preciso tomar muito cuidado ao utilizar este tipo de

String



Se acessarmos um endereço fora do vetor, invadiremos

(18)

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

(19)

C

ADEIA DE

C

ARACTERES

(20)

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

(21)

C

ADEIA DE

C

ARACTERES



Escreva um programa que lê uma palavra da entrada e

imprime o número de caracteres desta palavra

(22)

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

(23)

C

ADEIA DE

C

ARACTERES



Escreva um programa que lê uma palavra da entrada e

imprime o número de caracteres desta palavra

(24)

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

(25)

C

ADEIA DE

C

ARACTERES

(26)

C

ADEIA DE

C

ARACTERES



Leitura de Strings digitadas pelo usuário

Universidade Federal de Ouro Preto Campus João Monlevade

(27)

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)

(28)

C

RÉDITOS

Baseado no material do prof. José Romildo Malaquias

(DECOM/UFOP)

Universidade Federal de Ouro Preto Campus João Monlevade

Referências

Documentos relacionados