21
19/0/2016 46 / 66 String As variáveis também podem ser declaradas como String Em C uma String é na realidade um Array do tipo char Char é um tipo int no sentido que é um número, mas um número entre 0 e 127 que representa um caractere. Isso significa que é possível fazer aritmética em caracteres, de acordo com a tabela ASCII Evandro Junior Rodrigues char 0 a 127 Códigos mais comuns

char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 46 / 66

String

As variáveis também podem ser declaradas como String

• Em C uma String é na realidade um Array do tipo char

• Char é um tipo int no sentido que é um número, mas um número

entre 0 e 127 que representa um caractere.

• Isso significa que é possível fazer aritmética em caracteres, de

acordo com a tabela ASCII

Evandro Junior Rodrigues

char 0 a 127

Códigos mais comuns

Page 2: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 47 / 66

String e Caractere - Regras

• Char – É utilizado entre ‘ ‘

• String – Utilizado entre “ “

Evandro Junior Rodrigues

Page 3: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 48 / 66

Exemplo 9

Escreva na porta serial uma string “olá mundo”, um caracter ‘a’ e uma

cadeia de caractere ‘arduino’ a cada 1 segundo.

Evandro Junior Rodrigues

Page 4: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 49 / 66

Exemplo 9 - Solução

Evandro Junior Rodrigues

= char caracter = 97;

Tabela ASCII

Page 5: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 50 / 66

Exemplo 10

Realize operações matemáticas com caracteres.

Evandro Junior Rodrigues

Page 6: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 51 / 66

Código Morse

Nesta parte, será utilizado o Código Morse como exemplo para

construir um programa mais complexos do que foi visto sobre arrays

e strings.

Evandro Junior Rodrigues

Letras em código Morse

Page 7: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 52 / 66

Funcionamento do Código Morse

- Significa um tempo de espera de X segundos

- Significa um tempo de espera de 3X segundos

Evandro Junior Rodrigues

Page 8: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 53 / 66

Exemplo 11

Construa um tradutor de código Morse Complexo. Para isto:

Elabore um sistema através de LED´s que transmita uma mensagem

digitada através do controle de tempo, em deixar o LED Acesso e

Apagado durante um tempo configurado, de acordo com a regra do

código MORSE e que utilize toda a tabela de pontos, traços e

números da tabela do código Morse.

Siga estes procedimentos:

Depois que o Led se apagar, ele deve esperar o tempo de 1 ponto.

Esperar um tempo de 3 pontos entre as letras

Esperar um tempo de 4 pontos entre as palavras.

Evandro Junior Rodrigues

- O Led deve acender e esperar 200 ms e em seguida apagar.

- O Led deve acender e esperar 600 ms e em seguida apagar.

Page 9: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 54 / 66

Expressar os dados da tabela

Evandro Junior Rodrigues

• Tabela para LETRAS

• Tabela para Números

Page 10: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 55 / 66

Exemplo 11 – PARTE 1 - Programação por Intenção

Elaborar um algoritmo sobre o que você quer fazer ou qual é a sua

intenção.

Exemplo de um programa de intensão:

1. Se Houver um caractere para ser lido na estrada USB;

2. Se for uma letra, transmita-o pelo LED usando o array de letras;

3. Se for um número, transmita-o pelo LED usando o array de

números;

4. Se for um espaço, espere quatro vezes a duração de um ponto;

Evandro Junior Rodrigues

Page 11: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 56 / 66

Resolução

Evandro Junior Rodrigues

97 < Ch < 122 (Letra Minúscula)

Se o que veio da USB for “a” então:

• Transmita:

Page 12: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 57 / 66

Qual é a String com a sequência de pontos e traços que é necessário enviar para a função flashSequence?

O que significa então:

• É a posição da string no Array letters[]

Ex.: a letrada digitada foi “a”. Assim:a – a = 97 – 97 = 0

Evandro Junior Rodrigues

Irá obter o elemento 0 que neste caso é:

Page 13: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 58 / 66

Exemplo 11 – PARTE 2 – Escrever a função flashSequence

Por enquanto a função flashSequence recebeu uma string contendo

uma sequência de pontos e traços. Desta forma ela deverá acende e

apagar o LED com os intervalos de tempo necessário.

Vamos escrever esta função da seguindo os seguintes passos:

1. Para cada elemento da string de pontos e traços (tal como )

• Faça o LED piscar conforme seja um ponto ou um traço;• Deve ser lido toda a sequência de string até encontrar o

marcador final, \0;• É necessário fazer a contagem, que inicia em 0 e é

incrementada sempre que cada ponto ou traço for processado.

Evandro Junior Rodrigues

Page 14: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 59 / 66

Resolução: Função flashSequence

Evandro Junior Rodrigues

Será a função que acenderá e pagará o LED.

Aqui manda para a função flashDotOrDash o ponto ou traço que acabou de chegar..

Page 15: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 60 / 66

Função flashDotOrDash – Passos para escreve-la

Está função é que realmente executa o trabalho de ligar e desligar o

LED.

Tudo que esta função precisa fazer é LIGAR o LED e se:

• O argumento for um ponto, deverá esperar o intervalo de tempo de um ponto

• O argumento for um traço, deverá esperar três vezes o intervalo de tempo de um ponto.

->Em seguida, a função deve apagar o LED.->Finalmente, ela precisa aguardar o tempo de um ponto para fazer a

separação entre os pontos e traços.

Evandro Junior Rodrigues

Page 16: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 61 / 66

Função flashDotOrDash

Evandro Junior Rodrigues

Page 17: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 62 / 66

Exemplo 11 – Completo – setup

Evandro Junior Rodrigues

Page 18: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 63 / 66

Exemplo 11 – Completo - loop

Evandro Junior Rodrigues

Page 19: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 64 / 66

Exemplo 11 – Completo – função 1

Evandro Junior Rodrigues

Page 20: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 65 / 66

Exemplo 11 – Completo – função 2

Evandro Junior Rodrigues

Page 21: char Char é um tipo int entre 0 e 127 que representa um …engenharias.net.br/wp-content/uploads/2016/03/Projetos... · 2016-04-19 · 19/0/2016 46 / 66 String As variáveis também

19/0/2016 66 / 66

Referência

Monk, Simon; Programação com Arduino, começando com sketches.

Porto Alegre: Bookman, 2013.

Evandro Junior Rodrigues