técnicas de programação em engenharia elétrica izimmer/te207/28_mar_2015_te207_aula_3... ·...
TRANSCRIPT
Técnicas de Programação em Engenharia Elétrica I
- Engenharia de Sistemas Embarcados -Prof. Alessandro Zimmer
Introdução à
Engenharia Elétrica © Alessandro Zimmer - 2013
Linguagem C
“A diferença entre o difícil e o impossível é que o primeiro demora um
pouco menos de tempo para ser alcançado..”
Ciclo de Desenvolvimento de um Programa1. Determinação e entendimento do problema
(algoritmo + fluxograma + pseudo-linguagem);
2. Codificação (tradução do algoritmo para a
Introdução ao C
Engenharia Elétrica © Alessandro Zimmer - 2013
2. Codificação (tradução do algoritmo para a sintaxe da linguagem C);
3. Compilação (tradução do código C p/ linguagem de baixo nível) � detecção de erros de sintaxe;
Ciclo de Desenvolvimento de um Programa4. Link-edição (combina o código do usuário
com funções de bibliotecas);5. Depuração e testes (eliminação de
erros/problemas no processamento com o
Introdução ao C
Engenharia Elétrica © Alessandro Zimmer - 2013
erros/problemas no processamento com o uso do debugger, testes de mesa e outras técnicas) � detecta erros de lógica.
ERRO = BUG !! Uma vez depurado... Retornar ao 3...5
Características Gerais do C
• Criada por Dennis Ritchie, em 1972 (Bell Labs);
• Utiliza poucas palavras reservadas (comandos);
• Diferencia letras maiúsculas de minúsculas;
Introdução ao C
Engenharia Elétrica © Alessandro Zimmer - 2013
• Diferencia letras maiúsculas de minúsculas;
• Permite a chamada recursiva a funções;
• Linguagem de médio nível;
• De uso abrangente;
• Portável entre plataformas (Ansi C).
Baixo Nível
7C90EC45 mov dword ptr [esp+4], 1
7C90EC4D mov dword ptr [esp+10h], 0
7C90EC55 mov eax, dword ptr [ebp+8]
Introdução ao C - Linguagens
Engenharia Elétrica © Alessandro Zimmer - 2013
7C90EC58 mov dword ptr [esp+8], eax
7C90EC5C mov eax, esp
7C90EC5E push eax
7C90EC5F call 7C90EBAC
Alto Nível
CREATE TABLE tbl_ufpr
(GRR CHAR(15),
Nome CHAR(50),
Nota DECIMAL(4,2),
Introdução ao C - Linguagens
Engenharia Elétrica © Alessandro Zimmer - 2013
Nota DECIMAL(4,2),
Faltas INT)
SELECT Nome FROM tbl_ufpr WHERE Nota > 4.5 AND Faltas <10
Código em C
void main(void)
{
int x,t, res;
printf(“Entre com os valores de x e y\n”);
Introdução ao C - Linguagens
Engenharia Elétrica © Alessandro Zimmer - 2013
printf(“Entre com os valores de x e y\n”);
scanf(“%d,%d”,&x,&y);
res=x+y;
printf(“A soma de x e y é %d”,res);
}
Estrutura de um Programa em C
- Declarações globais;
<tipo de dado> função main(lista de parâmetros)
Introdução ao C
Engenharia Elétrica © Alessandro Zimmer - 2013
- Funções complementares no formato:
<tipo de dado> nome da função (lista parâm.)
Protótipo da função
Declarações Globais
• Arquivos de cabeçalho (.h) (diretiva #include);� Contém os protótipos das funções.
Introdução ao C
Engenharia Elétrica © Alessandro Zimmer - 2013
� Contém os protótipos das funções.
• Definição de constantes (diretiva #define);
• Declaração de variáveis, estruturas de dados e ponteiros globais;
• Declaração de protótipos de funções.
Função main( )
- Localizada no arquivo principal. É o ponto de entrada do programa início da execução. Não podem haver mais do que uma função main( ) em um mesmo programa em linguagem C.
Introdução ao C
Engenharia Elétrica © Alessandro Zimmer - 2013
um mesmo programa em linguagem C.
Outras Funções
- Porções de código que desempenham tarefas específicas no programa (funções).
Tipos Básicos de DadoObs: O tamanho e a faixa de variação depende do tipo
de processador e da implementação do compilador C.
Tipo Faixa mínima (ANSI C)
Introdução ao C
Engenharia Elétrica © Alessandro Zimmer - 2013
Tipo Faixa mínima (ANSI C)CHAR -127 a + 127 (1 caractere)INT -32767 a 32767FLOAT Valores reais c/precisão simples (6 dig.)DOUBLE Valores reais c/dupla precisão (10 dig.)VOID Tipo de dado sem significado
Modificadores- Operadores opcionais incluídos na frente dos
tipos de dados, alterando-os.Tipos Faixaunsigned char 0 a 255
Introdução ao C
Engenharia Elétrica © Alessandro Zimmer - 2013
signed char = charunsigned int 0 a 65535signed int = intshort int = int
Modificadores
Tipos Faixa
unsigned short int 0 a 65535
signed short int = short int
Introdução ao C
Engenharia Elétrica © Alessandro Zimmer - 2013
signed short int = short int
long int +-2147483647
signed long int = long int
unsigned long int 0 a 4294967295
Modificadores
Tipos Faixa
long float = double
long double precisão de 10
Introdução ao C
Engenharia Elétrica © Alessandro Zimmer - 2013
long double precisão de 10
dígitos + n. longo
(80 bits)
Identificadores- Nomes de funções, variáveis, constantes,
rótulos, etc. do C.- Um ou mais caracteres (dependendo do
compilador). Em ANSI C: 31 caracteres
Introdução ao C
Engenharia Elétrica © Alessandro Zimmer - 2013
compilador). Em ANSI C: 31 caracteres para nomes internos e 6 para nomes externos.
- Composto por uma letra seguido de uma seqüência de letras, dígitos ou sublinhados.
Identificadores
- O identificador não pode ter o mesmo nome do que uma função de biblioteca em
Introdução ao C
Engenharia Elétrica © Alessandro Zimmer - 2013
nome do que uma função de biblioteca em uso ou uma função do usuário.
- Não pode ser igual a palavras chaves do C.
Identificadores
Válidos Inválidos
X 1X
Y X*/
Introdução ao C
Engenharia Elétrica © Alessandro Zimmer - 2013
Y X*/
Z Z_12?
contador 1cont2
cont1 _cont1
Identificadores
Válidos Inválidos
cont1_1 1*cont
vovo_foi_a_feira mamae tambem
Introdução ao C
Engenharia Elétrica © Alessandro Zimmer - 2013
principal main
avoid void
aBc 1*2
AbC A++
Expressões em C
Dados (variáveis + constantes) + Operadores
Variáveis
Introdução ao C
Engenharia Elétrica © Alessandro Zimmer - 2013
- Identificadores que representam posições de memória;
- Devem ser declarados antes de serem utilizados;- O local de sua declaração define o escopo
(abrangência da variável – local, global, param.)
Declarações de Variáveis
TIPO LISTA;
Introdução ao C
Engenharia Elétrica © Alessandro Zimmer - 2013
TIPO = modificador + tipo de dado;
LISTA = um ou mais identificadores separados por vírgulas.
Declarações de Variáveis
Ex:
int x, y, z, papagaio, contador;
Introdução ao C
Engenharia Elétrica © Alessandro Zimmer - 2013
int x, y, z, papagaio, contador;
char sexo, tipo, a1, xy5;
long double salario, imposto, preco;