35
Módulo 3 1 2 3 4 5 6 7 Apênd ice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções 6 Recursividade 7 Construção de bibliotecas Apêndice - Programação em C Programação e Sistemas de Informação Índice Programação Estruturada

Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Embed Size (px)

Citation preview

Page 1: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice1

1 Conceitos básicos

2 Variáveis locais e globais

3 Passagem de parâmetros

4 Estrutura de subprogramas

5 Procedimentos e funções

6 Recursividade

7 Construção de bibliotecas

Apêndice - Programação em C

Programação e Sistemas de Informação

Índice

• Programação Estruturada

Page 2: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice2

1 Conceitos básicos

• Programação estruturada– Subalgoritmos

1

• Permitem organizar a complexidade de um programa;

• Reduzir custos de desenvolvimento de sistemas;

• Criação de blocos de instruções que podem ser chamadas várias vezes no mesmo programa ou em vários programas.

Para resolver um problema complexo, comece por decompô-lo em pequenos subproblemas.

Page 3: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice3

1 Conceitos básicos

• Controlo de execução do programa

Função SQR

T

Algoritmo principal....

Y SQRT (X) ....

Instruções que definem a função

Controlo transferido para a função SQRT

Retorno do controloPara executar as instruções da função SQRT (square root ) é fornecido um valor como argumento para corresponder ao parâmetro à custa do qual a função está definida.

1

Page 4: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice4

1 Conceitos básicos

• Exemplo:Função MEDIA(VAL1, VAL2, VAL3)M (VAL1+ VAL2 + VAL3)/3Retornar (M)

Algoritmo TESTEInícioLer (A, B, C)D MEDIA(A, B, C)Escrever (D)E MEDIA(C, A, B) + MEDIA (A+1, B, 10)Escrever (E)Fim

Função MEDIA tem 3 parâmetros

A, B e C são os argumentos para a função MEDIA da primeira vez que é chamada neste algoritmo: VAL1=A, VAL2=B e VAL3=C

VAL1=C, VAL2=A e VAL3=BVAL1=A+1, VAL2=B e VAL3=10

1

Page 5: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice5

2 Variáveis locais e globais

• Abrangência (scope ) de uma variável

2

•A maior parte das variáveis usadas num programa são variáveis locais;

•Uma variável local (privada) só é reconhecida dentro do subalgoritmo em que é usada;

•Uma variável global é reconhecida em todo o algoritmo.As variáveis globais valem em qualquer parte do algoritmo, excepto no caso de ser novamente declarada como variável local. As variáveis locais mantém-se em memória apenas durante a execução do subprograma.

Page 6: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice6

2 Variáveis locais e globais

• Exemplo

2

Algoritmo TESTEVARVariável I inteiro [I variável global]

Procedimento TESTEVariável I inteiro [I variável local]Início

I 5Fim[Programa principal]Início

I 1TESTEEscrever (I)

Fim

•O output do programa será 1:

•A variável I declarada dentro do procedimento ignora a variável global e perde a validade ao terminar o procedimento.Se retirássemos a declaração da variável I do procedimento TESTE, o output seria 5.

Page 7: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice7

• Passagem por valorA 3B 6PROC( A, 17 , B^2-1 ).....procedimento PROC(X, Y, Z)

17

3 Passagem de parâmetros

•É o método mais directo de fazer corresponder um argumento a um parâmetro de uma função;

•Cada um dos argumentos é atribuído ao respectivo parâmetro, pela mesma ordem;

•O argumento pode ser uma variável, uma expressão ou uma constante.Os parâmetros recebem os valores dos argumentos, mas não há maneira de os ligar. Assim, alterações dos parâmetros durante o procedimento, não afectam os argumentos.

335

3

Page 8: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice8

• Passagem por referência (ou por endereço - como variável)A 3

B 6PROC( A, 17 , B^2-1 ).....procedimento PROC(X, Y, Z)

17

3 Passagem de parâmetros

3 35Local de

armazenamento em memória

•Em vez de passar o valor, passa a própria variável, possibilitando que possa ser modificada durante o procedimento;

•Pode ser feito de 2 maneiras:1. Copiar o valor do argumento, no momento em que é chamado o procedimento, e, no fim, copiar os valores dos parâmetros, antes de retornar;2. Passar o endereço do argumento.

Pode provocar efeitos indesejados nas variáveis.3

Page 9: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice9

• Exemplo

procedimento DOBRO(X )X X+Xretornar

Algoritmo PRINCIPALN 5DOBRO(N)Escrever(N)Fim

3 Passagem de parâmetros

DOBRO(5)

N é passado por valor

3

X=5X=10

5

procedimento DOBRO(X )X X+Xretornar

Algoritmo PRINCIPALN 5DOBRO(N)Escrever(N)Fim

DOBRO(N)

N é passado por referência

N=X=5N=X=1

0

10

Page 10: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice10

• Estrutura de um programa em C# include <bibliotecas.h># define constantes

tipo funcao( tipo param1, …){declaração de variáveis;instruções;}main(){declaração de variáveis;instruções;}

# Directivas do pré-processadorUma ou mais funções: main() e outras…Cabeçalho (header )

4 Estrutura de um subprograma

4

Page 11: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice11

5 Procedimentos e funções

• Funções

• Predefinidas: ROUND, TRUNC, INT, SQRT, ABS, SIN, COS, TAN, etc.

• Construídas pelo programador

Uma função é definida em termos de um ou mais parâmetros e retorna um valor.Exemplo: Y=SQRT(X)SQRT calcula a raiz quadrada de X e retorna um valor que será atribuído a Y.

5

Page 12: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice12

5 Procedimentos e funções

• Procedimentos

• São executadas as instruções mas não há retorno de valores.

Um procedimento é definido em termos de parâmetros de input e/ou de output.

Procedimento TROCA(VAL1, VAL2)TMP VAL1VAL1 VAL2VAL2 TMPRetornar

Algoritmo ORDENAR2InícioLer (A, B)Se A>B então TROCA(A,B)Escrever (A,B)Fim

• Exemplo:

Na prática, não é tão simples...Ver implementação em C: «troca.c» Cuidado na passagem de argumentos!!

5

Page 13: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice13

6 Recursividade

• Exemplo

Um subalgoritmo é recursivo se ele chama-se a si próprio.

Função FACT_RECURSIVO(N)Se N=0 então

Retornar(1)Senão

Retornar(N*FACT_RECURSIVO(N-1))

Fim se

6

Page 14: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice14

6 Recursividade

• Traçagem de FACT_RECURSIVO(4)

FACT_RECURSIVO(4) = 4 * FACT_RECURSIVO(3) = 24

FACT_RECURSIVO(3) = 3 * FACT_RECURSIVO(2) = 6

FACT_RECURSIVO(2) = 2 * FACT_RECURSIVO(1) = 2

FACT_RECURSIVO(1) = 1 * FACT_RECURSIVO(0) = 1

FACT_RECURSIVO(0) = 1

Resultado final

6

Page 15: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice15

7 Construção de bibliotecas

• Exemplos:#include

<math.h>#include <stdio.h>•A linguagem C é muito compacta. Muitas das funções que

fazem parte de outras linguagens não estão directamente incluídas na linguagem C.

Temos como exemplo as operações de entrada/saída, a manipulação de strings e certas operações matemáticas.

A funcionalidade correspondente a estas e outras operações não faz parte integrante da linguagem, mas está incluída numa biblioteca externa, bastante rica e standard. Todas essas operações são executadas por via da invocação de funções externas definidas nessa biblioteca standard.

•Qualquer programador poderá desenvolver a sua própria biblioteca de funções, podendo até substituir algumas das funções standard, e também utilizar outras bibliotecas comerciais já existentes (p. ex. NAG, PHIGS, etc). 7

Page 16: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice16

• Compilação e execução de um programa em C

Programação em C

•Criação do programa fonte (texto)

•Compilação desse programa, para a sua tradução para código executável;

•Execução do código produzido.

No caso da detecção de qualquer erro em qualquer dos estados, todos eles deverão ser repetidos desde o início.

Apêndice

Page 17: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice17

Código fonte

Código assembly

Código objecto

Código executável

Pré-processador

Compilador

Assembler

Linker

Bibliotecas externas

• remover os comentários de um programa;

• interpretar directivas especiais a si dirigidas, que começam pelo carácter #. • traduzir o código fonte para linguagem assembly (texto);

• traduzir o código assembly para código objecto (instruções em binário).

• combinar todos os objectos com o resultado compilado dessas funções num único ficheiro com código executável.

Programação em C

Apêndice

Page 18: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice18

Programação em C

#include <stdio.h>

main() {float raio, area;printf("raio = ?");scanf("%f", &raio);area =3.14159*raio*raio;printf("Area = %f", area);

}

#include <stdio.h>#define PI 3.14159

float processa(float r) {float a;a = PI*r*r;return(a);

}

main() {float raio, area;

printf("raio = ?");scanf("%f", &raio);area = processa(raio);printf("Area = %f", area);

}

• Funções em C

Apêndice

Page 19: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice19

Programação em C

#include <stdio.h>#define PI 3.14159

float processa(float r) {float a;a = PI*r*r;return(a);

}

main() {float raio, area;

printf("raio = ?");scanf("%f", &raio);area = processa(raio);printf("Area = %f", area);

}

#include <stdio.h>#define PI 3.14159

float processa(float r) {float a;a = PI*r*r;return(a);

}

main() {float raio, area;int cont;

printf("para sair,introduza 0");printf("\nraio = ?");scanf("%f", &n);

for(cont=1;raio !=0;cont++) {area = processa(raio);printf("Area = %f", area);printf("\nraio = ?");scanf("%f", &raio);

}}

• Funções em C

Apêndice

Page 20: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice20

Programação em C

#include <stdio.h>#define PI 3.14159main() {

float raio, area;int cont;float processa(float raio);

printf("para sair,introduza 0");printf("\nraio = ?");scanf("%f", &n);

for(cont=1;raio !=0;cont++) {area = processa(raio);printf("Area=

%f",area);printf("\nraio=?");scanf("%f",&raio);

}}

float processa(float r) {float a;a = PI*r*r;return(a);

}

#include <stdio.h>#define PI 3.14159main() {

float raio, area;float processa(float raio);

printf("para sair,introduza 0");printf("\nraio = ?");scanf("%f", &n);

while(raio !=0) {area = processa(raio);printf("Area=%f",area);printf("\nraio=?");scanf("%f", &raio);

}}

float processa(float r) {float a;a = PI*r*r;return(a);

}

• Funções em C

Apêndice

Page 21: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice21

Resumo

• Em C, um programa inclui sempre uma função main().

• Um conjunto de instruções é colocado entre {}.• Cada instrução é seguida de ;.• A disposição do programa é arbitrária.• O C é Case Sensitive.• printf pertence a uma biblioteca de funções.• Os comentários são escritos entre /* e */ e são

ignorados pelo compilador (ou // até ao fim da linha).

Apêndice

Page 22: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice22

Tipos de dados

• Declaração de variáveis tipo var1 [, var2, …, varn];

int 2 a 4 bytes %d (formato de leitura/escrita)

char 1 byte %c (ou em formato ASCII %d)

float 4 bytes %f, %e, %Edouble 8 bytes %f, %e, %E

short int 2 bytes %hd entre -32768 e 32767

long int 4 bytes %ldunsigned %u

• Atribuição de valores às variáveis var = valor;• &var endereço da variável var

Apêndice

Page 23: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice23

Tipos de dados

0 127 255-128

signed char

unsigned char

TipoTamanho

Menor Maior

char 1 byte -128 127

int2

bytes-32768 32767

unsigned int

2 bytes

0 65535

long int4

bytes-2147483648 2147483647

float4

bytes3,4x10-38 3,4x1038

Apêndice

Page 24: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice24

Resumo

• Depois de declarada, uma variável assume um valor aleatório.

• A atribuição de valores a uma variável é feita pelo sinal =.

• Uma variável pode ser inicializada assim que é declarada, colocando o sinal de atribuição seguido do valor a atribuir.

• As operações +, -, *, /(divisão inteira) e %(resto da divisão inteira) entre inteiros é um número inteiro.

• A leitura e escrita de valores pode fazer-se através das funções printf e scanf, usando os formatos adequados a cada tipo. No caso do scanf, cada variável deve ser precedida por &.

• Sempre que é necessário (des)promover uma variável a um determinado tipo utiliza-se o casting (tipo). Esta promoção é temporária.

• Não se deve realizar a leitura de variáveis de um determinado tipo, usando um formato de leitura que não corresponda a esse tipo.

Apêndice

Page 25: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice25

Funções

• Um programa em C tem sempre a função main().• As variáveis declaradas dentro de um bloco, são

locais a esse bloco, não sendo conhecidas fora dele.

• O nome de uma função é único, num programa.• Uma função pode ser chamada dentro de outra

função.• Uma função pode retornar um valor.• Quando um programa chama uma função, pode

enviar argumentos, que são recebidos e armazenados em variáveis locais que são automaticamente inicializadas com esses valores. A estas variáveis dá-se o nome de PARÂMETROS.

• Se uma função não retorna valores chama-se procedimento.

Apêndice

Page 26: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice26

main(){ …

void funcao(‘A’, 123, 23.456);

…}

void funcao(char ch, int n, float x){ …

return;}

Funções

ch, n e x são parâmetros da

função.

Esta função não retorna um valor,

diz-se um procedimento.

Apêndice

Page 27: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice27

Funções printf, scanf e getchar

Exemplos de leitura e escrita de variáveis

• printf(“O caracter ‘%c’ tem código ASCII n.o %d\n”, ch, ch);

• printf(“O caracter ‘%c’ tem código ASCII n.o %d\n”, ch, (int) ch);

• scanf(“%d”,&num);

• char ch=getchar();

(CASTING)

Apêndice

Page 28: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice28

Estruturas de repetição

WHILE FOR DO … WHILE

Sintaxewhile (condição) instrução;

for(inic;cond;posinst) instrução;

do instrução;while (condição);

Executa a

instrução

Zero oumais vezes

Zero oumais vezes

Uma oumais vezes

Testa aCondiç

ão

Antes dainstrução

Antes dainstrução

Depois dainstrução

Utilização

Frequente FrequentePouco

frequente

• CICLOS (RESUMO)

Apêndice

Page 29: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice29

Estruturas de repetição

• breakPode ser usada para terminar uma sequência de instruções dentro de um switch ou para parar um ciclo.

• continuePode ser utilizada dentro de um ciclo para fazer avançar o ciclo para a próxima iteração.

Apêndice

Page 30: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice30

Operadores ++ e – –

++ Incremento de 1-- Decremento de 1

Modo Posfixo Modo Prefixo

Y= X++ ++X =Y

1.º O valor de X é

atribuído a Y;

1.º O valor de X é

incrementado;

2.º O valor de X é

incrementado.

2.º O valor de X é

atribuído a Y.

Apêndice

Page 31: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice31

Atribuição composta

VAR OP= EXPRESSÃOé equivalente a

VAR = VAR OP (EXPRESSÃO)

EXEMPLO SIGNIFICADO

X += 1 X = X + 1

Y *= 2+3 Y = Y * (2+3)

A –= B+1 A = A – (B+1)

R %= 2 R = R % 2

Apêndice

Page 32: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice32

Resumo

• Em C, não existe um tipo específico para armazenar valores lógicos: 0 equivale a FALSO; qualquer valor diferente de 0 equivale a VERDADE.

• O teste de condições pode ser realizado através das instruções if-else e switch.

• Na instrução if-else, a condição é avaliada e caso seja Verdadeira (isto é, diferente de zero) é executada a instrução associada ao if. A componente else é executada quando a condição devolve o valor lógico Falso (zero).

• A componente else do if é opcional.• É possível operar valores lógicos através dos

operadores && (AND), || (OR) ou ! (NOT).• O operador && tem maior precedência que o

operador ||.

Apêndice

Page 33: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice33

Resumo

• A instrução if-else pode ser evitada sempre que uma mesma variável, dependendo de uma condição, possa receber dois valores diferentes. Neste caso, pode ser substituída pelo operador condicional ?:.

• A fim de eliminar conjuntos de if-else encadeados, pode usar-se a instrução switch.

• Ao contrário do if, que permite definir intervalos de valores (x>=10 && x<=120), o switch só admite valores constantes predefinidas do tipo int ou char.

• A instrução break permite parar um conjunto de instruções dentro de um switch, continuando o programa na instrução imediatamente a seguir.

Apêndice

Page 34: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice34

Macros

• A definição de constantes deve ser feita fora das funções, de forma bem visível

• const

Sintaxe:

const tipo nome_var=valor;

• #define

Sintaxe:

#define nome_var valor

• Outras bibliotecas standard#include <string.h> //funções de manipulação de

strings#include <mem.h> //funções de manipulação de

memória (RAM)

Apêndice

Page 35: Módulo 3 1234567Apêndice 1 1 Conceitos básicos 2 Variáveis locais e globais 3 Passagem de parâmetros 4 Estrutura de subprogramas 5 Procedimentos e funções

Módulo 3

1 2 3 4 5 6 7Apênd

ice35

Referências

• TREMBLAY, Jean-Paul & BUNT, Richard B., Introduction to Computer Science: An Algorithmic Approach, 2.ª Ed. Lisboa: McGraw-Hill, 1989.

• AZUL, Artur A., Bases de Programação – Curso Tecnológico de Informática – 10.º ano, Porto: Porto Editora, 2004.

• MARQUES DE SÁ, Joaquim P., Fundamentos de Programação Usando C, Lisboa: FCA, 2004.

• KERNIGHAN, Brian & RITCHIE, Dennis, The C Programming Language, 2nd Ed. New Jersey: Prentice Hall, 1988.