Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores...

40
Linguagem de Programação Gil Eduardo de Andrade Vetores e Strings int vetor[] / rand() / #define / char string[] / gets()

Transcript of Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores...

Page 1: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Linguagem de Programação

Gil Eduardo de Andrade

Vetores e Stringsint vetor[] / rand() / #define / char string[] / gets()

Page 2: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Vetores

Introdução

• Um vetor pode ser definido como é um conjuntode elementos (variáveis) que apresentam ummesmo tipo e são referenciados por um nomecomum;

• Essas variáveis que compõem um vetor sãoacessadas através de um índice inteiro, onde oíndice de menor valor (índice ‘0’) corresponde aoprimeiro elemento do vetor, enquanto o índice demaior valor corresponde ao último elemento;

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 3: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Vetores

Declaração de Vetores

• A declaração de vetores é efetuada, de formageral, da seguinte maneira:

– tipo nome_vetor[tamanho];

– tipo: indica qual é o tipo das variáveis que compõem o vetor –ex.: int, float, double;

– nome_vetor: indica o nome pelo qual o vetor é referenciado;

– tamanho: indica o tamanho do vetor, o número de elementostotal que o copõe;

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 4: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Vetores

Vetores Inteiros:

• Considerando o slide anterior, poderíamos entãodeclarar um vetor do tipo int de tamanho 10.Teríamos:

– int numeros[10];

• Ao declararmos o vetor numeros garantimos queo espaço de memória necessário para armazenartodos os seus elementos seja reservado;

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 5: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Vetores

Vetores Inteiros:

• Contudo é importante observar que apenasdeclaramos o vetor, ou seja, ainda nãoespecificamos os elementos (valores) que eledeve armazenar;

• Antes desta especificação, dizemos que o vetorpossui armazenado “lixo de memória”, valoresquaisquer gerados por outros programas queutilizaram o mesmo espaço de memória nummomento anterior;

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 6: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Vetores

Armazenando Valores num Vetor:

• Como mencionado, o tamanho do vetor indicaquantos elementos podemos armazenar numvetor;

• Para que seja possível especificar qual elementodo vetor receberá um dado que queremosarmazenar, utilizamos um índice (valor inteiro) queindica a posição do vetor que receberá o dado;

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 7: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Vetores

Armazenando Valores num Vetor:

• Os índices do vetor variam de ‘0’ até seu‘tamanho-1’, ou seja, o vetor int numeros[10]possui os índices: 1, 2, 3, 4, 5, 6, 7, 8 e 9:

• Para armazenar dados neste vetor utilizaríamos a seguinte sintaxe:

– numeros[0] = 6; numeros[4] = -10;

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 8: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Vetores

Representação Gráfica:

• Um vetor, em programação de computadores,pode ser representado por um retângulodividido em um número de partes que é igualao seu tamanho. Cada parte é referenciadapor um índice;

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

6 -10int numeros[10]

0 1 2 3 4 5 6 7 8 9

Índices (posições)

Page 9: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Vetores

Exemplos de Codificação (Atribuindo valores):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 10: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Vetores

Exemplos de Codificação (Atribuindo valores):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 11: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Vetores

Exemplos de Codificação (Declaração e Inicialização):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 12: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Vetores

Exemplos de Codificação (Declaração e Inicialização):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 13: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Vetores

Exemplos de Codificação (Percorrendo um Vetor):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 14: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Vetores

Exemplos de Codificação (Percorrendo um Vetor):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 15: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Gerando Valores Aleatórios

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Utilizando srand() e rand():

• Quando trabalhamos com vetores é comumnecessitarmos gerar valores aleatórios paraserem armazenados em suas posições;

• Para tal, em linguagem C, trabalhamos com asfunções srand() e rand() disponíveis nabiblioteca <time.h>;

Page 16: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Gerando Valores Aleatórios

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Utilizando srand() e rand():

• Primeiramente devemos incluir a biblioteca<time.h> no topo do código fonte C, juntamentecom outras bibliotecas, por exemplo, a <stdio.h>;

• O segundo passo é gerar uma semente que nospermite obter números aleatórios (pseudo). Essasemente é gerada pela função srand(time(null))que deve ser colocada logo após a declaração dasvariáveis;

Page 17: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Gerando Valores Aleatórios

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Utilizando srand() e rand():

• Efetuados os dois passos anteriores já podemosutilizar o método rand() que permite obtervalores inteiros aleatórios dentro de um limitepré-definido;

• A função rand() deve ser utilizada precedida dooperador matemático % e do valor inteiro queindica o limite superior dos valores que podemser gerados;

Page 18: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Gerando Valores Aleatórios

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Utilizando srand() e rand():

• Por exemplo, se utilizarmos a seguinte linhade código:– rand()%10: estaremos gerando valores inteiros

aleatórios entre 0 e 9. Isso possibilita perceberque o valor máximo sempre será um valor menorque o limite inteiro especificado, ou seja, noexemplo com 10, teremos um valor aleatóriomáximo de 9;

Page 19: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Gerando Valores Aleatórios

Exemplos de Codificação (Valores aleatórios entre 0 - ?):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 20: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Gerando Valores Aleatórios

Exemplos de Codificação (Valores aleatórios entre 0 - ?):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 21: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Gerando Valores Aleatórios

Exemplos de Codificação (Vetor com valores aleatórios):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 22: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Gerando Valores Aleatórios

Exemplos de Codificação (Vetor com valores aleatórios):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 23: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Constantes: #define

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Utilizando #define:

• O comando #define permite especificarvalores que serão constantes ao longo docódigo-fonte C que será implementado;

• O #define deve ser utilizado entre o trecho decódigo onde efetuamos a inclusão dasbibliotecas e o código relativo a funçãomain();

Page 24: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Constantes: #define

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Sintaxe #define:

• O #define segue a seguinte sintaxe:

– #define nome_constante valor;

Nome do Comando

Nome da Constante

Valor atribuído a constante

Page 25: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Constantes: #define

Exemplos de Codificação (#define básico):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Observe que a constante PI foi escrita em caixa alta (letras

maiúsculas). Este procedimento é recomendado como boas

práticas de programação, já que ao longo do código-fonte fica

fácil reconhecer o que é variável e o que constante, tanto para o programador

quanto para quem está visualizando o código pela

primeira vez.

Page 26: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Constantes: #define

Exemplos de Codificação (#define básico):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 27: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Constantes: #define

Exemplos de Codificação (#define com vetor):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 28: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Constantes: #define

Exemplos de Codificação (#define com vetor):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 29: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Strings: vetores do tipo ‘char’

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Definição String:

• Quando trabalhamos com vetores decaracteres (char), dizemos que estamostrabalhando com Strings;

• Dentro desse contexto, podemos definirStrings como um conjunto de caracteres, ouainda, um conjunto de elementos do tipochar;

Page 30: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Strings: vetores do tipo ‘char’

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Declarando Strings:

• A declaração de Strings (vetores char), aconteceda mesma forma como vimos para vetoresinteiros (int);– Ex.: char rua[20];

• Onde char é o tipo dos elementos que compõema string, rua é nome da String e 10 é o tamanhoda string;

Page 31: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Strings: vetores do tipo ‘char’

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Capturando Strings:

• Para que seja possível efetuar a leitura de umaString, considerando que a mesma écomposta por vários elementos do tipo charutilizamos a função gets() ao invés da funçãoscanf();

– Ex.: gets(rua);

Page 32: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Strings: vetores do tipo ‘char’

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Imprimindo Strings:

• Quando precisamos imprimir o conteúdo deuma String, considerando que o mesmo écomposto, normalmente, por várioscaracteres, utilizamos o comando printf() como modificador %s (s – string);

– Ex.: printf(%s, rua);

Page 33: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Strings: vetores do tipo ‘char’

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Final de Strings – caractere ‘\0’:

• Quando precisamos percorrer uma Stringutilizando, normalmente, um laço derepetição, é preciso identificar o seu término,como condição de parada para do laço;

• Para tal as Strings possuem o caractereespecial ‘\0’ em sua última posição, indicandoo seu término;

Page 34: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Strings: vetores do tipo ‘char’

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Final de Strings – caractere ‘\0’:

• Portanto ao efetuarmos a leitura de umaString digitada pelo usuário, da qual nãosabemos o seu tamanho inicialmente,podemos utilizar um laço de repetição e ocaractere ‘\0’ para percorrer toda essa String;

– Ex.: for(a=0; rua[a] != ‘\0’; a++) { };

Page 35: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Strings: vetores do tipo ‘char’

Exemplos de Codificação (declaração e inicialização String):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 36: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Strings: vetores do tipo ‘char’

Exemplos de Codificação (Capturando e imprimindo String):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 37: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Constantes: #define

Exemplos de Codificação (Capturando e imprimindo String):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 38: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Constantes: #define

Exemplos de Codificação (Percorrendo uma String):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 39: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Constantes: #define

Exemplos de Codificação (Percorrendo uma String):

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Page 40: Linguagem de Programação - Gil Eduardo de · PDF fileGerando Valores Aleatórios Aula 09: Vetores e Strings –Gil Eduardo de Andrade Utilizando srand() e rand(): •Efetuados os

Operadores de Condição

Exemplos Utilizados no Documentohttp://www.gileduardo.com.br/ifpr/pci/downloads/pc_exdoc09.zip

Aula 09: Vetores e Strings – Gil Eduardo de Andrade

Mais Exemplos sobre o Conteúdohttp://www.gileduardo.com.br/ifpr/pci/downloads/pc_ex09.zip

Exercícios sobre o Conteúdo

http://www.gileduardo.com.br/ifpr/lp/downloads/lp_pratica09.pdf