engenharia de controle e automaÇÃo -...

24
Engenharia de CONTROLE e AUTOMAÇÃO Introdução à Linguagem C Aula 02 Prof. Rafael Concatto Beltrame [email protected] DPEE 1038 – Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria

Upload: lenguyet

Post on 19-Jan-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

Engenharia de CONTROLE e AUTOMAÇÃO

Introdução à

Linguagem CAula 02

Prof. Rafael Concatto [email protected]

DPEE 1038 –

Estrutura de Dados para AutomaçãoCurso de Engenharia de Controle e Automação

Universidade Federal de Santa Maria

Page 2: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

2Prof. Rafael Concatto Beltrame

• Histórico da linguagem C• Visão geral

– Estrutura do compilador– Organização do código‐fonte

• Sintaxe– Tipos, Operações, Funções, Expressões

• Funções básicas– printf( ), scanf( )

• Estruturas de controle de fluxo– if( ), if‐else‐if( ), switch( ), for( ), while( ), do while( ), break, continue

• Exemplos

Sumário

Page 3: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

3Prof. Rafael Concatto Beltrame

• Criada por Dennis Ritchie

(1972‐2011)– AT&T (Bell Labs)– Reescrita do Sistema Operacional UNIX

• 1970: UNIX é

liberado às universidades– Popularização da linguagem C

• Linguagem de propósito geral– Adequada à

programação estruturada

– Criação de compiladores, bancos de dados, editores de texto, etc.

• Características principais– Portabilidade, modularidade, compilação separada, recursos de baixo 

nível, geração de código eficiente, confiabilidade, simplicidade e  facilidade de uso

Histórico

Page 4: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

4Prof. Rafael Concatto Beltrame

• A geração de um executável a partir de um código‐fonte  obedece a uma série de operações

Visão Geral de um Programa em C

EditorCódigo-fonte

Pré-ProcessadorCódigo-fonte expandido

CompiladorArquivo objeto

LinkerArquivo executável

Page 5: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

5Prof. Rafael Concatto Beltrame

• Organização do código‐fonte

(Editor)

Visão Geral de um Programa em C

//---------------------------------------------------------------//// Universidade Federal de Santa Maria //// Curso de Engenharia de Controle e Automação //// DPEE 1038 - Estrutura de Dados para Automação //// //// Programadores: //// Nome 1 (Matrícula1) //// Nome 2 (Matrícula2) //// //// Versão: 1.0 - Data: 04/04/2013 ////===============================================================//// Descrição do Programa ////===============================================================//// Escreva aqui uma breve descrição do seu programa. //// //// v1.0 - Versão Inicial. ////---------------------------------------------------------------//

Page 6: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

6Prof. Rafael Concatto Beltrame

• Organização do código‐fonte

(Editor)

Visão Geral de um Programa em C

//---------------------------------------------------------------//// Arquivos de cabeçalho ////---------------------------------------------------------------//#include <stdio.h>#include <math.h>

//---------------------------------------------------------------//// Função principal ////---------------------------------------------------------------//int main(){

}//---------------------------------------------------------------//

Page 7: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

7Prof. Rafael Concatto Beltrame

• São regras detalhadas para cada construção válida em C– Tipos:

propriedades dos dados

– Declarações:

dão significado a um identificador (variável), alocar  memória, definir funções

– Funções:

ações de um programa– Expressões:

chamada de funções, alterações de valores, etc.

• As funções são as entidades básicas

de um programa em C– Podem ser a união de uma ou mais funções, cada qual 

desempenhando uma tarefa específica– Todo programa em C inicia com a função main( )

Sintaxe

Page 8: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

8Prof. Rafael Concatto Beltrame

• Quando um identificador

é declarado, ele recebe um tipo– Como o dado é

representado

e quais operações

podem ser realizadas

Tipos

Tipos de Função

Tipos de objetos de

dadosTipos

escalares

Não escalares

• Estrutura• União• Matriz

Aritméticos

Ponteiros

Inteiros

Flutuantes

• char• short• int• long• (signed)• (unsigned)

• float• double• long double

• para funções• para objetos de dados

Page 9: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

9Prof. Rafael Concatto Beltrame

• São nomes usados para fazer referência à– Variáveis– Constantes– Funções– Outros objetos definidos pelo usuário

• Case‐sensitive: difere maiúsculas e minúsculas

Identificadores

// Declaração de variáveis

int variavel1;int Variavel1;

Page 10: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

10Prof. Rafael Concatto Beltrame

• Operador atribuição:   

=• Operadores aritméticos:

+  – *  /  %

Operadores

main(){int x, y; // Declaraçãox=10; y=3; // Inicializaçãoprintf("%d \n", x/y);printf("%d \n", x%y);}

Page 11: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

11Prof. Rafael Concatto Beltrame

• Operadores lógicos:

retornam 0 (falso) ou 1 (verdadeiro)>

maior que

>=

maior ou igual< 

menor

<=

menor ou igual==

igual

!=

não igual (diferente)

• Operadores relacionais: retornam 0 (falso) ou 1 (verdadeiro)&&

and

||

or! 

not

Operadores

Page 12: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

12Prof. Rafael Concatto Beltrame

• Exemplo

Operadores

main(){int i, j;printf("digite dois numeros: ");scanf("%d%d",&i,&j);printf("%d == %d é %d \n", i, j, i==j);printf("%d != %d é %d \n", i, j, i!=j);printf("%d <= %d é %d \n", i, j, i<=j);printf("%d >= %d é %d \n", i, j, i>=j);printf("%d < %d é %d \n", i, j, i< j);printf("%d > %d é %d \n", i, j, i> j);}

Page 13: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

13Prof. Rafael Concatto Beltrame

• printf( )

printf("expressao de controle", argumentos);

– Função de I/O que permite escrever no dispositivo padrão (tela)

– Expressão de controle• Contém caracteres que serão exibidos na tela• Contém códigos de formatação

– Argumentos• Separados por vírgula

Funções Básicas

Page 14: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

14Prof. Rafael Concatto Beltrame

– Códigos de formatação

Funções Básicas

\n // Nova linha\t // Tab\b // Retrocesso\” // Aspas\\ // Barra

%c // Caracteres simples%d // Decimal%e // Notação científica%f // Ponto flutuante%o // Octal%s // Cadeia de caracteres%u // Decimal sem sinal%x // Hexadecimal

Page 15: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

15Prof. Rafael Concatto Beltrame

– Exemplos

Funções Básicas

main() // Exibição na tela{printf("Este é o numero dois: %d", 2);printf("%s esta a %d milhas\n do sol", "Venus", 67e6);}

main() // Arredondamento{printf("\n %4.1f", 3456.78); // 3456.8printf("\n %1.3d", 3456.78); // 3456.780}

Parcela inteira                 Parcela fracionária

Page 16: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

16Prof. Rafael Concatto Beltrame

• scanf( )

scanf("expressão de controle", argumentos);

– Função de I/O que permite ler dados do dispositivo padrão (teclado)

– Expressão de controle• Contém informações sobre o tipo de dado lido• Ex: decimal (%d), float

(%f), hexadecimal (%x), cadeia de caractere (%s)

– Argumentos• Endereço das variáveis

• Operador endereço: 

&

Funções Básicas

Page 17: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

17Prof. Rafael Concatto Beltrame

– Exemplo

Funções Básicas

main(){// Declaração da variávelint num;// Escrita na telaprintf("Digite um numero: ");// Leitura do tecladoscanf("%d", &num);// Exibição do resultadoprintf("\n o numero é %d", num);printf("\n o endereço é %u", &num);}

Page 18: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

18Prof. Rafael Concatto Beltrame

• if( )

if(condição) {comandos;}else {comandos;}

– Basta à

condição seja diferente de zero para ser

verdadeira– A condição deve ser igual a zero para ser

falsa

Estruturas de Controle de Fluxo

main() {int a, b;scanf("%d%d", &a, &b);if (b) { printf("%d\n", a/b); }else { printf("divisao por zero"); }}

Page 19: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

19Prof. Rafael Concatto Beltrame

• if‐else‐if( )

if(condição) {comandos;}else if(condição) {comandos;}else if(condição) {comandos;}...else {comandos;}

– Testes sucessivos

até

que uma condição seja satisfeita

Estruturas de Controle de Fluxo

Page 20: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

20Prof. Rafael Concatto Beltrame

• switch( )

switch(variável){case constante1: {comandos; break;}case constante2: {comandos; break;}default: {comandos;}}

– Uma variável é

testada sucessivamente

contra possíveis resultados– Quando uma condição é

atendida, o bloco é executado

– Se nenhuma condição é

atendida, o bloco default é executado• Opcional

Estruturas de Controle de Fluxo

Page 21: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

21Prof. Rafael Concatto Beltrame

• for( )

for(inicialização, condição, incremento){comandos;}

– Basta que condição seja diferente de zero para ser

verdadeira– A condição deve ser igual a zero para ser

falsa

Estruturas de Controle de Fluxo

main() {int x;for(x=1; x<100; x++) { printf("%d \n", x); }}

Page 22: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

22Prof. Rafael Concatto Beltrame

• while( )

while(condição){comandos;}

– Basta que condição seja diferente de zero para ser

verdadeira– Os comandos são executados continuamente

enquanto a condição é

verdadeira (teste no início)

Estruturas de Controle de Fluxo

main() {char ch;while(ch!='a') { ch=getchar() };}

Page 23: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

23Prof. Rafael Concatto Beltrame

• do while( )

do {comandos;}while(condição)

– Basta que condição seja diferente de zero para ser

verdadeira– Os comandos são executados continuamente

enquanto a condição é

verdadeira (teste ao final)

Estruturas de Controle de Fluxo

Page 24: Engenharia de CONTROLE e AUTOMAÇÃO - coral.ufsm.brcoral.ufsm.br/beltrame/arquivos/disciplinas/graduacao_estrutura_de... · Aula 02. Prof. Rafael Concatto Beltrame ... Estrutura

1/5

24Prof. Rafael Concatto Beltrame

• Histórico: Dennis Ritchie

e UNIX• Visão geral

– Estrutura do compilador– Organização do código‐fonte

• Sintaxe do programa– Tipos, declarações, funções, expressões

• Funções básicas– printf( ), scanf( )

• Estruturas de controle de fluxo– if( ), if‐else‐if( ), switch( ), for( ), while( ), do while( )

Revisão