Você está na página 1de 29

Estruturas de controlo

Sequencial

Baseadas numa Condição

Decisão ou Seleção

De Escolha Múltipla

Utilizando um contador
Enquanto se verificar
Repetição ou ciclos
uma condição
Baseadas n uma condição
Até se verificar uma
condição
ESTRUTURAS DE CONTROLO
SEQUÊNCIAL
É a estrutura de controlo mais simples e consiste na especificação das instruções a serem
executadas pela sequência que for definida. (Como temos feito até agora).
Ex.: Início
Início
Ler (num)
Ler(num)
contanum+3
Escrever (conta) contanum+3
Fim
Escrever(conta
)

Fim
ESTRUTURAS DE CONTROLO
Decisão ou Seleção - Baseadas numa Condição
Podem-se solucionar problemas utilizando apenas a estrutura de
controlo sequencial. Contudo, apenas podemos solucionar
problemas simples e limitados, como ler valores, atribuir valores,
efetuar cálculos, e escrever resultados. Não podendo ser exercido
qualquer controlo sobre a ordem de execução das instruções.
Para resolver problemas mais complexos precisamos de outras
estruturas que podem alterar a sequência da execução das
instruções de acordo com a decisão do utilizador.
ESTRUTURAS DE CONTROLO
Decisão ou Seleção - Baseadas numa Condição
Neste caso temos a estrutura de decisão:
SE / IF
Esta estrutura permite a seleção entre duas alternativas dependendo
de uma condição ou expressão.

A estrutura SE/IF é utilizada muitas vezes com a clausula:


SENÃO / ELSE
ESTRUTURAS DE CONTROLO
Decisão ou Seleção - Baseadas numa Condição
Assim temos duas formas de utilização desta estrutura
SE / IF SE…SENÃO / IF… ELSE
A condição é avaliada e se o seu Neste caso a condição é avaliada e
valor for verdadeiro é executada a se o seu valor for verdadeiro é
instrução ou o conjunto de executada a instrução ou o conjunto
instruções definido na estrutura. de instruções definido no SE/IF. Se
Se o valor for falso não é o valor for falso é executada a
executado nada. instrução ou o conjunto de
instruções definido no
SENÃO/ELSE. Prof. Nuno
ESTRUTURAS DE CONTROLO
Ex.: Ler um valor e mostrar uma mensagem se o valor for negativo
Início

Início Ler (num)

Ler (num)
Não
num < 0
Se (num<0)
Escrever (“Número Negativo”); Sim
Escrever
Fim (Número Negativo)

Fim
ESTRUTURAS DE CONTROLO
Ex.: Ler um valor e verificar se valor é positivo ou negativo
Início

Ler (num)
Início
Ler (num)
Não
num < 0
Se (num<0)
Escrever (“Número Negativo”) Sim
Escrever Escrever
(“Número (“Número
Senão Negativo”) Positivo”)

Escrever (“Número Positivo”)


Fim Fim
ESTRUTURAS DE CONTROLO
Faça um programa:

1. Pretende-se saber qual o maior de dois valores introduzido a partir do teclado.

2. Tendo em conta a nota final de um determinado aluno, pretende-se saber se o aluno é aprovado ou reprovado.

3. Tendo em conta a nota final de um determinado aluno, pretende-se saber se o aluno é aprovado ou reprovado. Se for
introduzida uma nota maior que 20 e menor que 0, o algoritmo terá que devolver a mensagem “Nota inválida”.

4. Pretende-se ler três números e calcular o maior deles.

5. Pretende-se dizer, qual a avaliação qualitativa do aluno, tendo em conta a tabela abaixo.

AVALIAÇÃO
NOTA
QUALITATIVA

<10 INSUFICIENTE

ENTRE 10 E 15 SUFICIENTE

>=15 BOM
#include<stdio.h>
# include <stdio.h>
main (){
main() float num1, num2, num3;
{ printf ("Numero 1\n");
float n1, n2; scanf ("%f",&num1);

printf(“Insira o primeiro numero: "); printf ("Numero 2\n");

scanf("%f",&n1); scanf ("%f",&num2);


printf ("Numero 3\n");
printf(“Insira o segundo numero: ");
scanf ("%f",&num3);
scanf("%f",&n2);
if (num1>num2&&num1>num3){
if(n1>n2){ printf(“O número 1 é maior");}
printf("%f maior que %f",n1,n2); else
if (num2>num1&&num2>num3){

}else printf(“O número 2 é maior");}

{ else {
printf(“O número 3 é maior");}
printf("%f maior que %f",n2,n1);
}
}
}
#include<stdio.h> #include <stdio.h>
main()
{ main()
float nota;
printf(“Insira a nota do aluno: "); {
scanf("%f",&nota); float nota;
if(nota<0 or nota>20) printf(“Insira a nota do aluno: ");
{
printf("Nota Invalida"); scanf("%f",&nota);
}
else
if(nota<0 or nota>20){
{ printf("Nota inválida");
if(nota<10)
{ }
printf("Insuficiente");
} else{
else if(nota>=9.5){
{
if(nota>=15) printf(“O aluno foi Aprovado");
{
printf("Bom"); }
}
else{
else
{ printf(“O aluno foi Reprovado");
printf("Suficiente");
} }
}
} }
} }
ESTRUTURAS DE CONTROLO
Decisão ou Seleção - De Escolha Múltipla
Esta estrutura permite a escolha entre várias alternativas, é
selecionada uma instrução ou blocos de instruções com base numa
expressão designada seletor.

Chama-se a esta estrutura:


ESCOLHA …CASO / SWITCH…CASE
ESTRUTURAS DE CONTROLO
• Ex.: Ao introduzir-se os valores entre 1 e 12, correspondentes aos meses do
ano, pretende-se apresentar no ecrã o nome do mês correspondente.
Início
Início
Ler
Ler (num_mes) (num_mes)

Escolha (num_mes)
num_mes
caso 1: Escrever (“Janeiro”)
1 2 3 …
caso 2: Escrever (“Fevereiro”)
Escrever Escrever Escrever

caso 3: Escrever (“Março”) (“Janeiro”) (“Janeiro”) (“Janeiro”)

....
Fim
FIM
EXERCÍCIOS COM SWITCH CASE

1. Pedir ao utilizador dois valores numéricos inteiros ou reais e, em seguida,


pedir que escolha através de uma letra qual a operação aritmética que
deseja efetuar.
2. Após a introdução de uma classificação entre 0 e 20, efetuar a
correspondência entre a classificação numérica e um nível qualitativo
(0..4 – Mau; 5..9 – Insuficiente; 10..13 – Suficiente; 14..17 – Bom;
18..20 – Muito Bom)
Switch…
Case
ESTRUTURAS DE CONTROLO
Estruturas de repetição ou Ciclos
As estruturas que estudámos até agora possibilitam-nos elaborar
algoritmos, em que podemos escolher as instruções a serem
executadas, mas cada instrução só pode ser executada uma única
vez.
Por vezes é necessário ter que repetir uma instrução ou conjunto de
instruções.
Para esse efeito temos as estruturas de repetição ou ciclos.
ESTRUTURAS DE CONTROLO
Estruturas de repetição ou Ciclos
Um ciclo é constituído por uma sequência de instruções e por uma
estrutura que controla a execução dessas instruções, especificando
o número de vezes que o ciclo é executado (é repetido).
Existem 3 tipos ciclos:
- PARA/FOR - Utilizando um contador
- ENQUANTO/WHILE - Enquanto se verificar uma condição
- FAZER…ENQUANTO/DO…WHILE - Até se verificar uma
condição
ESTRUTURAS DE CONTROLO
CICLO PARA/FOR

Esta estrutura é utilizada quando se pretende repetir uma instrução


ou conjunto de instruções um DETERMINADO número de vezes.
O número de repetições é controlado por um contador.
ESTRUTURAS DE CONTROLO
Ex.: Pretende-se escrever no ecrã “Eu gosto muito da disciplina de
API” 10 vezes Início

Início contador 1

Para contador de 1 até 10 faça


Contador Não
Escrever(“Eu gosto muito da disciplina de API”) <10?
Sim
Fim
contador contador +1

Escrever(“Eu gosto
muito da disciplina de
API”)

Fim
ESTRUTURAS DE CONTROLO – PARA / FOR

Exercício 1: Pretende-se escrever no ecrã os números inteiros entre 1 e


20.
Exercício 2: Pretende-se escrever no ecrã os números inteiros entre
100 e 200 mas de 5 em 5.
Exercício 3: Pretende-se escrever no ecrã os números inteiros entre 30
e -30 (por ordem inversa).

Programa em C
1 3

2
ESTRUTURAS DE CONTROLO – PARA / FOR

Exercício 4: Pretende-se escrever no ecrã os números pares entre


1 e 50.

Exercício 5: Pretende-se escrever no ecrã 15 vezes o nome do(s)


aluno(s) que está a fazer o trabalho.

Programa em C
4
5
REPETIÇÃO OU CICLOS - BASEADAS NUMA
CONDIÇÃO
ENQUANTO SE VERIFICAR UMA CONDIÇÃO
Ciclo Enquanto / While
A estrutura Enquanto/While possibilita repetir a execução de uma
ou várias instruções, enquanto determinada condição tiver o valor
verdadeiro.
Normalmente, não é possível determinar, à partida, o número de
vezes que o ciclo é executado, pois isso é determinado pela
condição.
REPETIÇÃO OU CICLOS - BASEADAS NUMA
CONDIÇÃO
ENQUANTO SE VERIFICAR UMA CONDIÇÃO
Ex.: Pedir um número ao utilizador, enquanto for menor do que 10.
Início
Início
Enquanto (numero<10)
Ler(numero) Não
Numero
<10?
Escrever (“BOA! Número maior que 10!”)
Sim
Fim Ler(numero
)

Escrever (“BOA!
Número maior que 10!”)

Fim
REPETIÇÃO OU CICLOS - BASEADAS NUMA
CONDIÇÃO
ENQUANTO SE VERIFICAR UMA CONDIÇÃO
Exercícios:
1. Pedir ao utilizador um número enquanto o número for diferente de
Zero.
2. Escrever um programa que coloque no ecrã a tabuada do nº5.
o que terá de aparecer será:
5*1=5
5 * 2 = 10

REPETIÇÃO OU CICLOS - BASEADAS NUMA
CONDIÇÃO
ATÉ SE VERIFICAR UMA CONDIÇÃO
Ciclo Faz…Enquanto / Do…While
Esta estrutura permite repetir uma ou várias instruções, ATÉ que
uma determinada condição, do tipo lógico, tenha um valor
verdadeiro.
Ao contrário da estrutura While, primeiro são executadas as
instruções e só depois é verificada a condição.
REPETIÇÃO OU CICLOS - BASEADAS NUMA
CONDIÇÃO
ATÉ SE VERIFICAR UMA CONDIÇÃO
Ex.: Pedir um número ao utilizador, até o número ser 10.
Início
Início
Faz
Ler(numero
Ler(numero)
)
Enquanto (numero <>10)
Sim Numero
Escrever (“BOA! Acertaste no 10!”) <>10?

Fim Não

Escrever (“BOA!
acertaste no 10!”)

Fim
REPETIÇÃO OU CICLOS - BASEADAS N UMA
CONDIÇÃO
ATÉ SE VERIFICAR UMA CONDIÇÃO
Exercícios:
1. Pedir ao utilizador um número até que esse número seja maior
que 100.
2. Pedir ao utilizador um número, até que o seu dobro seja
superior a 50
Exercícios :

1. Pretende-se obter o valor da soma, dos números pares compreendidos entre 100 e 200
(inclusive).- Estrutura Do
2. Mostrar no ecrã o quadrado dos números compreendidos entre 1 e 20. – Estrutura For
3. Calcular a media de uma serie de valores pedidos ao utilizador. Devera ser pedido
também o numero de valores. - Estrutura While
4. Calcular a variação de volume de um cubo, sabendo que o volume e dado pela
Formula: V = A3 A aresta varia entre 10 e 100 cm. – Estrutura For
5. Dado uma serie de valores representando as notas dos alunos, elabore um algoritmo
que determine quantos tiveram nota positiva. – Estrutura For
6. Ler um numero, diferente de zero, e escrever no ecrã POSITIVO ou NEGATIVO
consoante se trate de um numero positivo ou negativo respetivamente. – Estrutura IF

Você também pode gostar