MCO018703 2018 2 AULA03: mudanças entre as edições

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Douglas (discussão | contribs)
Douglas (discussão | contribs)
Linha 203: Linha 203:
<syntaxhighlight lang=c>
<syntaxhighlight lang=c>
/*
/*
Nesse código a função  
Nesse código a função '''setup( )''' ativa a porta serial em 9600 bits/s e a função loop( ) fica transmitindo a frase "Hello World!" pela porta serial a cada 2 segundos.  
setup( )
  ativa a porta serial em 9600 bits/s e a função  
loop( )  
fica transmitin
-
do a frase ‘Hello World!pela porta serial a cada 2 segundos.  
*/
*/
void setup( )  
void setup( )  

Edição das 18h44min de 13 de agosto de 2018

1 Objetivos

O aluno será capaz de:

  • Compilar, executar pequenos programa em C usando o CodeBlocks.
  • Declarar e usar variáveis locais inteiras e reais.
  • Usar as funções de entrada e saída: scanf() e printf().

2 Introdução a linguagem C

A linguagem C foi criada por Dennis Ritchie, em 1972, no centro de Pesquisas da Bell Laboratories. Sua primeira utilização importante foi a reescrita do Sistema Operacional UNIX, que até então era escrito em assembly. Em meados de 1970 o UNIX saiu do laboratório para ser liberado às universidades. Foi o suficiente para que o sucesso da linguagem atingisse proporções tais que, por volta de 1980, já existiam várias versões de compiladores C oferecidas por diversas empresas, não sendo mais restritas apenas ao ambiente UNIX, como também compatível a outros sistemas operacionais. O C é uma linguagem de propósito geral, sendo adequada à programação estruturada. No entanto é mais utilizada para escrever compiladores, analisadores léxicos, bancos de dados, editores de texto, e sistemas embarcados.

A linguagem C pertence a uma família de linguagens cujas características são: portabilidade, modularidade, compilação separada, recursos de baixo nível, geração de código eficiente, confiabilidade, regularidade, simplicidade e facilidade de uso.

Fonte: [1] - Centro de Computação - UNICAMP

2.1 Comentários

Os comentários no programa fonte não têm função nenhuma para o compilador e serve apenas para aumentar a legibilidade e clareza do programa, podem ser inseridos com “//” que valem de onde começam até o fim da linha ou com “/*” e “*/”, sendo considerado comentário tudo entre “/*” e “*/”.

2.2 Identificadores

Um identificador é um símbolo definido pelo usuário que pode ser um rótulo (label), uma constante, um tipo, uma variável, um nome de programa ou subprograma (procedimento ou função). Normalmente devem começar com um caractere alfabético e não podem conter espaços em branco, podendo ter no máximo 32 caracteres, não havendo distinção entre maiúsculas e minúsculas.

2.3 Endentação

A endentação também não tem nenhuma função para o compilador e serve para tornar a listagem do programa mais claro dando hierarquia e estrutura ao programa.

2.4 Constantes

Constantes são valores declarados no início do programa e que não se alteram na execução do programa. Podem ser expressas em qualquer base numérica.

2.5 Variáveis

Uma declaração de variável consiste do nome do tipo de dado seguido do nome da variável. Todas as variáveis devem ser declaradas antes de serem usadas. As variáveis devem ser declaradas no início de cada função, procedimento ou início do programa.

2.6 Elementos definidos pela linguagem C:

  • Letras (alfanuméricas) Aa até Zz;
  • Dígitos (numéricos) - 0 até 9;
  • Operadores;
  • Tipos de dados.

2.7 Operadores e Símbolos Especiais

Operador Significado Exemplo
* multiplicação a = b * c
/ divisão a = b / c
% resto a = 13 % 3, a = 1
+ adição a = b + c
- subtração a = b - c
= atribuição a = b
== comparação compara dois operandos if(a == 10)
< menor que a < b
<= menor ou igual a <= b
> maior que a > b
>= maior ou igual a >= b
!= diferente de a=10, Se( a != 3) então verdadeiro
<< deslocamento de bit a esquerda 3 (00000011) << 1 = 6 (00000110)
>> deslocamento de bit a direita 4 (00000100) >> 1 = 2 (00000010)
& lógica E bit a bit 00000011 & 00000110 = 00000010
&& lógica E (AND) a=2, Se(a>1 && a<3) então verdadeiro
^ OU exclusivo bit a bit 00001100 ^ 00000110 = 00001010
| OU inclusivo bit a bit 00001101 = 0001101
||
lógica OU (OR)
a=4, Se( a>3 || a<5) então verdadeiro
! lógica Não (NOT) Se( ! a ) equivalente a Se( a == 0)
~ complemento bit a bit ~00010101 = 11101010
" delimitador de string "Arduino"

2.8 Tipos de dados

Um Tipo de Dado define o conjunto de valores que uma variável pode assumir e as operações que podem ser feitas sobre ela. Toda variável em um programa deve ser associada a um tipo de dado, conforme a tabela abaixo.

Tipo Descrição do tipo
Static Variável global inicializada com 0
int1 De_ne um n_mero com 1 bit faixa 0 ou 1
int8 ou Int De_ne um n_mero com 8 bits faixa de 0 a 127
int16 ou Long De_ne um n_mero com 16 bits faixa de 0 a 32.767
int32 De_ne um n_mero com 32 bits faixa de 0 à 3.4 E38
Char De_ne um caractere com 8 bits faixa Aa à Zz
Float De_ne um n_mero com 32 bits faixa de 3.4 E-38 à 3.4 E38
Short Por padrão é o mesmo que int1

3 Estrutura da Linguagem do Arduino

A estrutura básica da linguagem de programação do Arduino é bastante simples; ela é formada por dois blocos de funções que carregam outros blocos de funções escritas em linguagem C/C++. O primeiro bloco de funções forma a função setup(); o segundo, a função loop().

Funções
Em linguagens de programação são como sub-rotinas ou procedimentos; são pequenos blocos de programas usados para montar o programa principal. Elas são escritas pelo programador para realizar tarefas repetitivas, ou podem ser

importadas prontas para o programa em forma de bibliotecas.

Declaração da Função
Toda função deve ser declarada antes de ser chamada atribuindo-lhe um tipo e um nome seguido de parênteses, onde serão colocados os parâmetros de passagem da função. Depois do nome são definidos entre as chaves '{' e '}' os procedimentos que a função vai executar.
setup()
Essa é a primeira função a ser chamada quando o programa inicia. E é executada apenas nessa primeira vez. Esta é uma função de preparação: ela dita o comportamento dos pinos do Arduino e inicializa a porta serial.
loop()
A função loop( ) é chamada logo a seguir e todas as funções embarcadas nela são repetidamente executadas. Ela fica lendo os pinos de entrada do Arduino e comandando os pinos de saída e a porta serial.

Os Símbolos usados na construção de funções são os seguintes: { } - Dentro das chaves vão os procedimentos (statements) que a função deve executar; ; - O ponto-e-vírgula é usado para marcar o final de um procedimento; // - comentário de uma linha: qualquer caractere depois das duas barras é ignorado pelo programa; /*...*/ - comentário em várias linhas: qualquer texto colocado entre esses símbolos também é ignorado pelo programa.

3.1 Exemplo

/*
Nesse código a função '''setup( )''' ativa a porta serial em 9600 bits/s e a função loop( ) fica transmitindo a frase "Hello World!" pela porta serial a cada 2 segundos. 
*/
void setup( ) 
{
   Serial.begin(9600); // inicializa a porta serial 
}
void loop( ) 
{
   Serial.println( Hello World! ); // transmite frase 
   delay(2000);    
}

4 Referências

[1] http://ordemnatural.com.br/pdf-files/CartilhadoArduino_ed1.pdf

[2] http://xbot.com.br/externo/OpneMoniot/Programando_Microcontroladores_PIC_Linguagem_C.pdf