4-Modulo3

Page 1

Curso Profissional de Informática de Gestão

Módulo 3: Estruturas de controlo

LINGUAGENS DE PROGRAMAÇÃO

Conteúdos 1. Instruções compostas 2. Estruturas de decisão Selecção simples 2. Selecção composta 3. Selecção múltipla 4. Selecção encadeada 1.

3. Estruturas de repetição Condicionais 2. Incondicionais 1.

4. Salto incondicional Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

2


Bibliografia Damas, Luís; LINGUAGEM C; FCA; 2ª edição; Lisboa;

1999 Aguilar, Luis Joyanes; FUNDAMENTOS DE PROGRAMAÇÃO – Algoritmos, estruturas de dados e objetos; Mc Graw Hill; Tradução da 3ª edição; São Paulo; 2008 Azul, Artur Augusto; BASES DE PROGRAMAÇÃO 10; Porto Editora; Porto http://www.eisnt.com/GPSI/programacao/Aula4C.pdf http://www.linhadecodigo.com.br/Artigo.aspx?id=425 http://www.criarweb.com/artigos/825.php http://deei.fct.ualg.pt/PI_flobo/teorica7.html http://www.di.ubi.pt/~fsilva/prog/Prog_Cap4.pdf (em 10/11/2008) Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

3

Conteúdos 1. Instruções compostas

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

4


1. Instruções compostas Em C as instruções podem ser simples ou

composta. As instruções simples são expressões atómicas, que não contêm qualquer subinstrução. Exemplos: x = 15; printf(“Hello World”); scanf(“%f”, &x); Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

5

1. Instruções compostas Uma instrução composta é um conjunto de

instruções delimitado pelas chavetas { e }. Uma instrução composta também pode ser designada por bloco de instruções. Além de conter instruções, os blocos também podem ter declarações de variáveis. Exemplo { x = 15; printf(“Hello World”); scanf(“%f”, &x); } Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

6


Conteúdos 2. Estruturas de decisão 2. Selecção simples

Selecção composta 4. Selecção múltipla 5. Selecção encadeada 3.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

7

2. Estruturas de decisão / selecção if if-else switch

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

8


if - else A instrução if – else, é uma das instruções de controlo de fluxo da linguagem C. Permite indicar quais as circunstâncias em que determinada instrução ou conjunto de instruções deve se executada.

Sintaxe: if (condição) instrução1; [else instrução2;] A componente else do if é facultativa. Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 2

9

if - else A instrução if – else funciona da seguinte

maneira: A condição é avaliada; Se o resultado da condição for verdadeiro executa

a instrução1; Se o resultado da condição é falso executa a instrução 2.

A condição do if tem que estar sempre dentro de parêntesis. Tanto a instrução1 como a instrução2 são seguidas de ponto e vírgula (;). Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 2

10


NOTAS A condição do if tem que estar sempre dentro de parêntesis. Tanto a instrução1 como a instrução2 são seguidas de ponto e vírgula (;).

Em C, o valor de uma variável ou de uma constante, pode ser aproveitado pelo programador como valor lógico, utilizando-o como FALSO (caso seja 0) ou VERDADE (caso seja diferente de 0).

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 2

11

Instruções if-else encadeadas Existem situações em que uma condição não é

suficiente para tomar uma decisão. Pode ser necessário testar mais do que uma condição.

if(cond1) if (cond2) if (cond3) instrução1 else instrução2 else instrução3 else instrução4 Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

12


Operadores lógicos Existem circunstâncias em que uma simples

condição não chega para tomar uma decisão, sendo por isso necessário a interligação de duas ou mais condições. Para tal a generalidade das linguagens de programação coloca à disposição um conjunto de operadores lógicos. Operador

Significado

Exemplo

&&

AND (E lógico)

z >= 1 && z<= 19

||

OR (OU lógico)

z == 1 || z == 2

!

NOT (Negação lógica)

! Continuar

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

13

Precedência de operadores lógicos e relacionais

Operador < <= > >= == != && || ?: Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

14


Operador Condicional O Operador Condicional ? É o único operador ternário do C, o que significa que espera três argumentos. Sintaxe: condição ? expressão1 : expressão2; Exemplo: salario = salario>1000 ? salario*1.05 : salario*1.07;

Nota: Embora pareçam, a instrução if if--else e o operador ?

não são iguais. O if if--else indica quais as instruções a executar, enquanto o operador ? devolve sempre um resultado. Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

15

switch A instrução switch adapta-se particularmente à tomada de decisões em que o número de possibilidades é elevada. Sintaxe: switch (expressão) { case constante1: instruções1; case constante2: instruções2; …… case constanten: instruçõesn; [default: instruções;] } Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

16


Switch - Exemplo #include<stdio.h> main() { char Est_Civil; printf(“Qual o estado civil? “); scanf(“ %c”, &Est_Civil); switch(Est_Civil) { case ‘C’: printf(“Casado\n”); case ‘S’: printf(“Solteiro\n”); case ‘D’: printf(“Divorciado\n”); case ‘V’: printf(“Viuvo\n”); default : printf(“Estado civil incorrecto”); } } Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

17

Switch – Exemplo v2.0 #include<stdio.h> main() { char Est_Civil; printf(“Qual o estado civil? “); scanf(“ %c”, &Est_Civil); switch(Est_Civil) { case ‘c’: case ‘C’: printf(“Casado\n”); case ‘s’: case ‘S’: printf(“Solteiro\n”); case ‘d’: case ‘D’: printf(“Divorciado\n”); case ‘v’: case ‘V’: printf(“Viuvo\n”); default : printf(“Estado civil incorrecto”); } } Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

18


Conteúdos 3. Estruturas de repetição Condicionais 2. Incondicionais 1.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

19

3. Estruturas de repetição while for do … while

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

20


while A instrução while executa uma instrução ou bloco de instruções enquanto uma determinada condição for verdadeira. Sintaxe:

while (condição) instrução; 1. 2.

3. 4.

A condição é avaliada. Se o resultado da avaliação for Falso, o ciclo termina e o programa continua na instrução imediatamente a seguir ao while. Se o resultado da avaliação for Verdade, é executada a instrução associada ao while. Volta-se ao ponto 1. Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

21

while #include <stdio.h> main() { int i; i= 1; while (i<=10) { printf(“%d\n”,i); i= i+1; } }

OUTPUT: 1 2 3 4 5 6 7 8 9 10

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

22


for A instrução for adapta-se particularmente a

situações em que o número de iterações é conhecido à partida. Sintaxe:

for(inicializações; condição; pós-instrução) instrução; Embora apresente um formato estranho, é um

ciclo particularmente bem desenhado, que resume, numa mesma instrução repetitiva, tudo aquilo de que ela necessita. Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

23

for(inicialização;condição;pós-instrução) 1.

2. 3.

4. 5.

6.

É executado o código presente em inicializações. Normalmente são aqui inicializadas as variáveis presentes no ciclo. Esta componente do ciclo for é executada apenas uma vez. A condição é avaliada. Se o resultado da condição devolver Falso, então o ciclo termina e o programa continua na instrução imediatamente a seguir. Se o resultado da condição devolver o valor Verdade, então é executada a instrução do ciclo. Depois de executada a instrução é executada a pósinstrução. Nesta componente do ciclo for, são normalmente realizadas as alterações necessárias para passar à próxima iteração do ciclo (incremento ou decremento de variáveis p.e.). Voltar ao ponto 2. Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

24


for #include <stdio.h> main() { int i; for(i=1; i<=10; i= i+1) printf(“%d\n”,i); }

OUTPUT: 1 2 3 4 5 6 7 8 9 10

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

25

while vs for

#include <stdio.h> main() { int i; i= 1; while (i<=10) { printf(“%d\n”,i); i= i+1; } }

#include <stdio.h> main() { int i; for(i=1; i<=10; i= i+1) printf(“%d\n”,i); }

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

26


for O ciclo for identifica as suas três

componentes separando-as por ponto e vírgula (;). Assim, se for necessário realizar mais do que uma inicialização ou mis do que uma pós-instrução, estas deverão ser separadas por vírgula(,).

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

27

do … while A instrução do … while difere dos ciclos

anteriores porque o teste de condição é realizado no fim do corpo do ciclo e não antes, como acontecia nos ciclo while e for. Desta forma o corpo deste ciclo é executado pelo menos uma vez, enquanto nos ciclos for e while pode nunca ser executado.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

28


do … while Sintaxe

do instrução; while (condição) 1. A instrução é executada. 2. A condição é avaliada. 3. Se o resultado da condição for Verdade, volta-se

ao ponto 1. 4. Se o resultado da condição for Falso, termina o ciclo e o programa continua na instrução seguinte ao ciclo. Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

29

Conteúdos 4. Salto incondicional

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

30


break A instrução break pode ser utilizada para

terminar uma sequência de instruções dentro de um switch ou para terminar um ciclo. A instrução break, quando aplicada dentro de

um ciclo, termina o correspondente ciclo, continuando o programa na instrução imediatamente a seguir ao.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

31

continue A instrução continue dentro de um ciclo

permite que a execução da instrução ou bloco de instruções corrente seja terminado, passando à próxima iteração do ciclo.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

32


exemplo #include <stdio.h> main() { int i; for(i=1; i<=100; i=i+1); if (i==60) break; else if (i%2==1) continue; else printf(“%d\n”, i); printf(“FIM DO CICLO”); }

O programa vai percorrer todos os números entre 1 e 60 (por causa do break). Para cada um deles verifica se o número em questão é impar. Se for, termina a execução da instrução, executando em seguida a pós-instrução. Se não for impar mostra-se o próprio número. Resumindo: mostra os primeiros 29 números pares.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

33

Denominam-se por ciclos infinitos os ciclos

que nunca terminam, isto é, apresentam condições que são sempre verdadeiras. Este tipo de ciclos são utilizados normalmente quando não se sabe à partida qual o número de vezes que se vai iterar o ciclo. Para terminar um ciclo infinito usa-se a instrução break ou return.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

34


De volta aos operadores… A linguagem C possui um conjunto de

operadores particularmente úteis que permitem realizar o incremento ou o decremento de variáveis, reduzindo a quantidade de código escrito.

Operador

Significado

Exemplo

++

Incremento de 1

i++ ++ , ++k ++

--

Decremento de 1

-- , ---alfa j--

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

35

De volta aos operadores… Diferença entre ++x e x++: y = x++;

y = ++x;

Acontecem duas coisas, por esta Acontecem duas coisas, por esta ordem: ordem: 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

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

36


Atribuição composta Quando uma variável recebe um novo valor

que depende do seu valor actual, pode evitarse a duplicação da escrita da variável à esquerda e à direita, colocando o operador imediatamente junto (à esquerda) da atribuição. Sintaxe

var op= expressão; Exemplo: x += 3; é equivalente a x = x + 3;

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

37

Bibliografia Damas, Luís; LINGUAGEM C; FCA; 2ª edição; Lisboa;

1999 Aguilar, Luis Joyanes; FUNDAMENTOS DE PROGRAMAÇÃO – Algoritmos, estruturas de dados e objetos; Mc Graw Hill; Tradução da 3ª edição; São Paulo; 2008 Azul, Artur Augusto; BASES DE PROGRAMAÇÃO 10; Porto Editora; Porto Em 10/11/2008

http://www.eisnt.com/GPSI/programacao/Aula4C.pdf http://www.linhadecodigo.com.br/Artigo.aspx?id=425 http://www.criarweb.com/artigos/825.php http://deei.fct.ualg.pt/PI_flobo/teorica7.html http://www.di.ubi.pt/~fsilva/prog/Prog_Cap4.pdf

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 3

38


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.