linguagem c, a. barão, 20021 linguagem c conteúdos já desenvolvidos estrutura de um programa em c...

24
Linguagem C, A. Barão, 20 02 1 Conteúdos Estrutura de um programa em C ntificadores, variáveis, constantes, operadores e expressões

Upload: internet

Post on 17-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 1

Linguagem C Conteúdos já desenvolvidos

Estrutura de um programa em C

Identificadores, variáveis, constantes, operadores e expressões

Page 2: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 2

Linguagem C Estrutura de um programa em C

#include <bibliotecas>#define <funções de macros>#define <constantes>

declaração de funções ou protótipos de funções;definição de novos tipos de dados;declaração de variáveis globais;

tipo de dado da função main (argumentos){ definição e declaração de variáveis locais; código de execução da função;}

tipo de dado da função identificador (argumentos){ definição e declaração de variáveis locais; código de execução da função;}

Page 3: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 3

Linguagem C Estrutura de um programa em C

Exemplos:

#include <stdio.h>

void main(void) { printf(“Linguagem C”);}

#include <stdio.h>

void main(void){ int numeroAluno = 12; printf(“O número do aluno é %d”, numeroAluno);}

Page 4: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 4

Linguagem C Estrutura de um programa em C

Caracteres especiais no código fonte:

; (após cada instrução), (para separar identificadores)/* */ (para incluir comentários numa ou mais linhas// (incluir comentários numa linha)“ (delimitar grupos de caracteres)= (atribuição){ (início de um bloco de instruções)} (fim de um bloco de instruções)

Palavras reservadas: auto double if static

break else int struct

case entry long switch

char extern register typedef

continue float return union

default for sizeof unsigned

do goto short while

Page 5: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 5

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Identificador

Deve começar por uma letra ou underscore (a..z, A..Z ou _ );

Não pode conter espaços;

Não é possível utilizar acentuação;

É case-sensitive

Exemplos

mediaAlunototalVendasMAXIMOctd_enderecoSistema...

Page 6: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 6

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Variável

Entidade que pode assumir vários valores durante a execução do programa

Declaração de variáveis (exemplos)

int numeroAluno;

char sexo;

Tipo de dado Identificador da variável

Page 7: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 7

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Declaração de variáveis, continuação

int numeroAluno;

char sexo;

Outro exemplo:

int numeroAluno;int numeroContribuinte;

é o mesmo que:

int numeroAluno, numeroContribuinte;

quando os tipos de atributo são iguais.

As declarações terminam com ponto e vírgula

Page 8: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 8

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Declaração de variáveis, conclusão.

As variáveis podem ser inicializadas no momento da declaração

Exemplos:

int numeroAluno = 12;

char sexo = ‘M’;Tipos de dados básicos

char – carácter int – inteirofloat – vírgula flutuantefouble – vírgula flutuante de precisão duplavoid – vazio ou sem valor definido

Page 9: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 9

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Capacidade dos tipos de dados

char (-128 .. 127, 8 bits)

int (-32768 .. 32767, 16 bits)unsigned int ( 0 .. 65535, 16 bits)signed int (-32768 .. 32767, 16 bits)short int (-32768 .. 32767, 16 bits)unsigned short int ( 0 .. 65535, 16 bits)signed short int (-32768 .. 32767, 16 bits)long int (-2 147 483 648 .. 2 147 483 647, 32 bits)unsigned long int (0 .. 4 294 967 295, 32 bits)

float (3,4x10E-38..3,4x10E38, 32 bits)

double (1,7x10E-308 .. 1,7x10E308, 64 bits)long double (3,4x10E-4932 .. 3,4x10E4932)

Importante:O operador sizeof devolve o espaço de memóriaQue um determinado tipo de dado ocupa

Page 10: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 10

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Conversão de tipos de dados

Em expressões com diferentes tipos de dados podem existir promoções

Exemplos:

•Todos os char e short int são convertidos para int•Todos os float são convertidos para double

Caso concreto numa expressão:

char c;int i;float f;double d;

resultado = ( c / i ) + ( f * d ) + ( f – i )

int double float

Int double float

double

Page 11: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 11

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Conversão de tipos de dados

Casts

• É possível forçar a conversão de tipos através da técnica de cast

Exemplo:

float f = 17.5;

float g;

g = (int) f;

g fica com 17

Page 12: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 12

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Variáveis globais e locais

• Uma variável global é conhecida por todas as funções do programa

• Uma variável local só é conhecida dentro da função que a declara

Como optar?

Depende do problema a resolver... Mas deve-se optar por variáveis locais sempre que possível.

• Quando um nome de uma variável local é o mesmo que uma variável global, o sistema dá preferência à variável local. Ou seja, variáveis locais têm precedência sobre variáveis globais

Page 13: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 13

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Variáveis globais e locais

#include <stdio.h>

Int numeroAlunos = 30;

void main(void) { int numeroProfessores = 8;}

void X(){ int numeroMonitores = 16; }

A função X() pode usar a variável numeroAlunos (global) mas não conhece a variável numeroProfessores (local noutra função)

Só a função main conhece esta variável

Esta variável só é conhecida pela função X()

Page 14: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 14

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Constantes

• O valor de uma constante permanece por definição inalterado durante a execução do programa.

Exemplos:

#define ALUNOS_DA_TURMA 30

Outro tipo de constante:

const alunosDaTurma = 30;

Palavra reservada para declarar uma constante

Page 15: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 15

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Constantes

Exemplos:

#define mensagem = “Seja bem vindo ao sistema”

ou

const mensagem = “Seja bem vindo ao sistema”;

Atenção: aspas e plicas são diferentes!

letra = ‘b’;

frase = “Seja bem vindo...”;

Constante do tipo caractere (plicas)

Constante do tipo string (aspas)

Page 16: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 16

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Constantes de barra

Código Significado

/? Ponto de interrogação

// Barra invertida

/’ Plica ou apóstrofo

/” Aspas

\b backspace

\f Form feed

\n New line

\r Carriage return

\t Tabulação horizontal

\v Tabulação vertical

\xValor Código Valor ASCII em hexadecimal

Page 17: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 17

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Constantes e variáveis

Exemplo 1:

#include <stdio.h>#include <conio.h>

#define mensagemEntrada "Seja bem vindo ao sistema"#define mensagemSaida "Obrigado por ter escolhido o nosso Banco"

#define TAXA_JURO 15.5

void main(void){ clrscr(); printf("\nBanco X\n"); printf("%s\n", mensagemEntrada); printf("A nossa taxa de juro é muito boa: %.2f", TAXA_JURO); printf("\n%s", mensagemSaida);}

Page 18: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 18

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Constantes e variáveis

Exemplo 2:#include <stdio.h> // necessário para printf#include <conio.h> // necessário para clrscr() e getch()

void x(); // protótipo da função X()

int numeroAluno = 10; // variável global

void main(void){ int numeroAluno; // variável local com mesmo nome da global para ver a diferença.. char turma;

clrscr(); // limpar ecrã

turma = 'A';

printf("\nTurma %c", turma);

numeroAluno = 20; printf("\nO numero do aluno da variável local é: %d", numeroAluno); numeroAluno = 21; printf("\nAgora o numero do aluno da variável local é‚: %d", numeroAluno); x(); getch(); // aguardar uma tecla para terminar programa}

/* Função X() que usa a variável global e tem uma variável local */void x(){ int numeroProfessor = 8; // esta variável só é conhecida nesta função printf("\nO valor da variável numeroAluno global é: %d", numeroAluno ); printf("\nO valor da variável numeroProfessor é: %d", numeroProfessor );}

Page 19: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 19

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Operadores

+ Adição

- Subtracção

* Multiplicação

/ Divisão

% Resto da divisão inteira

++ Incremento

-- Decremento

= Atribuição

== Igual

> Maior

< Menor

>= Maior ou igual

<= Menor ou igual

!= Diferente

&& Conjunção (E)

|| Disjunção (OU)

! Negação

& Conjunção (E)

| Disjunção (OU)

^ Disjunção Exclusiva (XOR)

~ Complemento

>> Deslocamento para a direita

<< Deslocamento para a esquerda

Aritméticos Relacionais Lógicos

Manipulação de bits

Em C existem formas abreviadas de codificar, exemplos:

k = k + 1; é o mesmo que ++k;k = k – 1; é o mesmo que --k;

Ou

k = k + 10; é o mesmo que k+=10;

a = b = c = 25; // atribuição múltipla do mesmo valoretc...

Page 20: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 20

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Operadores Aritméticos (exemplo) #include <stdio.h>#include <conio.h>

void main(void){ float valor1, valor2, resultado; int resto;

clrscr();

printf("\nDigite um valor: "); scanf("%f", &valor1);

printf("\nDigite outro valor: "); scanf("%f", &valor2);

resultado = valor1 + valor2; printf("\nSoma: %f", resultado);

resultado = valor1 - valor2; printf("\nSubtraccao: %f", resultado);

resultado = valor1 * valor2; printf("\nMultiplicacao: %f", resultado);

resultado = valor1 / valor2; printf("\nDivisao: %f", resultado);

resto = (int) valor1 % (int) valor2; printf("\nResto da divisao inteira: %d", resto);

getch();}

O resto da divisão inteira não podeser efectuado com floats daí a necessidadede efectuar o cast para int

Page 21: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 21

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Operadores Relacionais (exemplo)

#include <stdio.h>#include <conio.h>

void main(void){ int valor1, valor2;

clrscr();

printf("\nDigite um valor: "); scanf("%d", &valor1);

printf("\nDigite outro valor: "); scanf("%d", &valor2);

printf("\n0 - Falso, 1 - Verdade");

printf("\nvalor1 igual a valor2? %d", (valor1 == valor2) ); printf("\nvalor1 maior que valor2? %d", (valor1 > valor2) ); printf("\nvalor1 menor que valor2? %d", (valor1 < valor2) ); printf("\nvalor1 maior ou igual que valor2? %d", (valor1 >= valor2) ); printf("\nvalor1 menor ou igual que valor2? %d", (valor1 <= valor2) ); printf("\nvalor1 diferente que valor2? %d", (valor1 != valor2) );

getch();}

O resultado da expressão lógica (0/1)será impresso por printf

Page 22: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 22

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Operadores de manipulação de bits (exemplo #1)

#include <stdio.h>#include <conio.h>

void main(void){ int valor;

clrscr();

printf("\nDigite um valor: "); scanf("%d", &valor);

printf("\nValor digitado: %d", valor); printf("\nValor depois de deslocar todos os bits uma posicao para a esquerda: %d", ( valor << 1 ) ); printf("\nValor depois de deslocar todos os bits duas posicoes para a esquerda: %d", ( valor << 2 ) ); printf("\nValor depois de deslocar todos os bits tres posicoes para a esquerda: %d", ( valor << 3 ) );

getch();}

Page 23: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 23

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Operadores de manipulação de bits (exemplo #2)

#include <stdio.h>#include <conio.h>

void main(void){ int a = 45; // em binario 101110 int b = 28; // em binario 011100

clrscr();

printf("\na E b = %d", ( a & b ) ); // resultado 12 (1100) printf("\na OU b = %d", ( a | b ) ); // resultado 61

getch();}

Nota:

As técnicas de manipulação debits são muito importantesPara acesso e configuração dehardware...

Page 24: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e

Linguagem C, A. Barão, 2002 24

Linguagem C Identificadores, variáveis, constantes, operadores e expressões

Prioridade dos operadores

( ) [ ] ->

! - ++ -- & (cast) sizeof

* / %

+ -

<< >>

< <= > >=

== !=

&

^

|

&&

||

?:

= += -= /= %= &= ^= != <<= >>=

,

Maior prioridade

Menor prioridade