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

Post on 17-Apr-2015

105 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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;}

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);}

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

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...

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

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

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

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

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

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

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

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()

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

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)

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

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);}

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 );}

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...

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

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

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();}

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...

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

top related