Sei sulla pagina 1di 29

Universidade Federal da Paraba

Centro de Informtica
Introduo Programao

Prof. Bruno Jefferson


bruno@ci.ufpb.br

Bruno Jefferson (2014)

Roteiro
Estrutura sequencial
 Estruturas de deciso


Deciso Simples
Deciso Composta


Exerccios

Bruno Jefferson (2014)

Estruturas bsicas


Na construo de algoritmos, existem


basicamente trs tipos de estruturas de
controle:
Estrutura sequencial.
Estrutura de deciso.
Estrutura de repetio.

Bruno Jefferson (2014)

Estrutura sequencial
Em um algoritmo, os comandos devero
ser executados numa sequncia linear,
seguindo a direo de cima para baixo e
da esquerda para a direita.
 Linguagem Algortmica


incio
comando-1
comando-2
...
comando-n
fim

algoritmo ADICAO
A,B,SOMA : real;
incio
leia(A,B);
SOMA <- A + B;
escreva(SOMA);
fim
Bruno Jefferson (2014)

Estruturas de deciso


Deciso simples
Quando se deseja executar um comando ou uma
sequncia de comandos caso uma determinada
condio seja verdadeira.

Linguagem Algortmica

Fluxograma

se condio ento
comando-1
comando-2
. . .
comando-n
fim-se

Bruno Jefferson (2014)

Estrutura sequencial
Exerccios
1. Determine os valore finais de A, B e C aps a execuo do
trecho do algoritmo abaixo:

2. A ordem das atribuies importante? A<-B e C<-A tem o


mesmo efeito de C<-A e A<-B?
3. Escreva um algoritmo para calcular a rea de um tringulo,
sendo dados a sua base e a sua altura.
4. Escreva um algoritmo para ler o nome e o sobrenome de uma
pessoa e escrev-los na seguinte forma:
- sobrenome seguido por uma vrgula e pelo nome.

Bruno Jefferson (2014)

Estrutura de deciso


Deciso simples
Exemplo
algoritmo CALCULA_MEDIA_NOTAS
media, n1, n2, n3: real;
situacao: string;
incio
leia(n1, n2, n3);
media  (n1 + n2 + n3) / 3;
se (media 7) ento
situacao  "Aprovado;
escreva(situacao);
fim-se
fim
Bruno Jefferson (2014)

Estrutura de deciso


Deciso composta
Utilizada quando se deseja executar um entre
dois ou mais blocos de comandos, conforme
o resultado da avaliao de uma condio.

Bruno Jefferson (2014)

Estrutura de deciso


Deciso composta

Linguagem Algortmica

Fluxograma

se (condio) ento
comando-A1;
comando-A2;
...
comando-Na;
seno
comando-B1;
comando-B2;
...
comando-Bn;
fim-se

Bruno Jefferson (2014)

Estrutura de deciso


Exemplo

algoritmo analisa_peso
peso : real;
incio
leia(peso);
se (peso >= 80) ento
escreva("Voc est obeso);
escreva("Faa atividades fsicas);
seno
se (peso > 70 e peso < 80) ento
escreva(Voc est quase no peso ideal);
seno
escreva("Voc est no peso certo);
escreva("Procure manter sua forma);
fim-se
fim-se
escreva(" Final de Avaliao);
fim
Bruno Jefferson (2014)

10

Estrutura de deciso
Exerccios
1.Verificar se um nmero menor, igual ou maior que
zero.
2. Escreva um algoritmo que leia dois nmeros e exiba-os
em ordem crescente.
3. Escreva um algoritmo que determine o grau de
obesidade de uma pessoa, sendo fornecido o peso e a
altura da pessoa. O grau de obesidade determinado pelo
ndice da massa corprea (IMC = Peso /Altura ) atravs da
tabela abaixo:

Bruno Jefferson (2014)

11

Estruturas de Deciso em C


Comando if-else

se (condio) ento
instruo 1;
instruo 2;
(...)
seno
instruo 3;
instruo 4;
(...)
fim-se

if (condio) {
instruo 1;
instruo 2;
(...)
} else {
instruo 3;
instruo 4;
(...)
}

No h a necessidade do uso das chaves { } quando


existe apenas uma instruo no corpo do if-else.
Bruno Jefferson (2014)

12

Expresses Lgicas


Expresses lgicas em C
Expresso 1

Operador

Expresso 2 Resultado

&&

&&

&&

||

||

||

Bruno Jefferson (2014)

13

Acompanhamento da execuo do
programas


Exemplo
Considere o seguinte algoritmo onde i1, i2, i3, i4 e i5
representam instrues:
a) Instrues executadas quando b1 = V, b2 = V e
b3 = F?
b) Instrues executadas quando b1 = F, b2 = V e
b3 = F?

Respostas
a) I1 e i5
b) i3, i4 e i5

Bruno Jefferson (2014)

14

Acompanhamento da execuo do
programas


Exemplo

#include <stdio.h>
int main() {
int x = 1, y = -10, z; // I1
if (x > 0)
if (y > 0)
z = x +
else
z = x
else
if (y < 5)
z = x *
else
z = x /

y; // I2
y;

// I3

y; // I4

Instruo

I1

-10

I2

I3

-10

11

I4

I5

y; // I5

return 0;
}

Bruno Jefferson (2014)

15

Comando if-else


Exerccio Resolvido 1
Escreva um programa que leia a mdia de um
aluno e escreva na tela a sua situao de
acordo com quadro abaixo:
Mdia

Situao

>= 7.0

Aprovado

>=4.0 e < 7.0

Final

< 4.0

Reprovado

Bruno Jefferson (2014)

16

Comando if-else


Exerccio Resolvido 1(Esboo da


Soluo)
Entrada de dados
 Mdia do aluno

Processamento
 Estruturas de Controle
 if-else

Sada de dados
 Situao: Aprovado, Final ou Reprovado.

Bruno Jefferson (2014)

17

Comando if-else


Exerccio Resolvido I (Soluo)


#include <stdio.h>
int main() {
float media;
printf("Informe a media do aluno: ");
scanf("%f", &media);
if (media >= 7)
printf("O aluno esta' aprovado.");
else
if (media >= 4)
printf("O aluno esta' na final.");
else
printf("O aluno esta' reprovado.");
return 0;
}
Bruno Jefferson (2014)

18

Estruturas de Deciso em C


Comando switch-case

escolha (varivel) {
caso VALOR1:
instruao1;
instruo2;
break;
caso VALOR2:
instruao3;
instruo4;
break;
padro:
instruao5;
instruo6;
break;
}

<varivel >deve
ser do tipo int
ou char.

switch (varivel) {
case VALOR1:
instruao1;
instruo2;
break;
case VALOR2:
instruao3;
instruo4;
break;
default:
instruao5;
instruo6;
break;
}
Bruno Jefferson (2014)

19

Comando switch-case


Exerccios Resolvido II
Elabore um programa que leia o nmero de
campeonatos brasileiros de 1 (um) a 4
(quatro) que seu time de futebol ganhou e
depois exiba sua classificao correspondente
(1= campeo, 2=bicampeo, ...,
4=tetracampeo). Caso um valor fora do
intervalo de 1 a 4 seja digitado, deve ser
exibida uma mensagem informando que o
valor invlido.
Bruno Jefferson (2014)

20

Comando switch-case


Exerccio Resolvido1I (Esboo da


Soluo)
Entrada de dados
 Inteiro de 1 a 4

Processamento
 Estruturas de Controle
 switch (inteiro) case

Sada de dados
 Classificao do time

Bruno Jefferson (2014)

21

#include <stdio.h>
int main() {
int quant; // quantidade de titulos
printf("Digite um numero de 1 a 4: ");
scanf("%d", &quant);

S
O
L
U

switch (quant) {
case 1:
printf(Campeao");
break;
case 2:
printf(Bicampeao");
break;
case 3:
printf(Tricampeao");
break;
case 4:
printf(Tetracampeao");
break;
default:
printf("Numero fora do intervalo permitido.");
break;
}
return 0;
}
Bruno Jefferson (2014)

22

Exerccio 1
Considere o seguinte algoritmo onde i1, i2, i3, i4 e i5
representam instrues:
leia(b1, b2, b3);
se b1 ento i1;
fim-se
seno
se b2 ento
se b3 ento
i2;
seno
i3;
i4;
fim-se
fim-se
i5;

a) Que instrues sero executadas quando b1 = F, b2 = V e b3 = V?


b) Que valores b1, b2 e b3 devem assumir para que apenas i5 seja
executada?
Bruno Jefferson (2014)

23

Exerccio II
Escreva um algoritmo que leia um nmero
inteiro e imprima se esse nmero par ou
mpar.

Bruno Jefferson (2014)

24

Exerccio III
Escreva um programa em C que troque o
valor de duas variveis inteiras.
Sugesto: Pense na soluo que voc usaria
para trocar um lquido de um copo para
outro.

Bruno Jefferson (2014)

25

Exerccio IV
Escreva um algoritmo que receba o valor do
salrio bruto, calcule e apresente o valor de
desconto do INSS e o valor do salrio lquido
(o salrio bruto descontado do INSS),
considerando que:
Para um salrio de at R$ 420, o desconto de
INSS de 8%;
Para um salrio de at R$ 420 at R$ 1350, o
desconto de INSS de 9%;
Para um salrio acima de R$ 1350,00, o desconto
de INSS de 10%;
Bruno Jefferson (2014)

26

Exerccio V
Escreva um programa em C que receba as 3 notas obtidas
por um aluno, calcule a mdia aritmtica de
aproveitamento e apresente o conceito e a situao do
aluno (APROVADO ou REPROVADO). O aluno
considerado APROVADO se tiver conceito A, B ou C e
REPROVADO, caso obtenha conceitos D e E. A atribuio
de conceitos obedece tabela abaixo:
Mdia de
Conceito
Aproveitamento
A partir de 9,0
A
De 7,5 at 9,0
B
De 6,0 at 7,5
C
De 4,0 at 6,0
D
Abaixo de 4,0
E
Bruno Jefferson (2014)

27

Exerccio VI
Elabore um programa em C que leia um
nmero de 1 (um) a 12 (doze) e depois
exiba o ms correspondente (1= janeiro,
2=fevereiro, ..., 12=dezembro). Caso um
valor fora do intervalo de 1 a 12 seja
digitado, deve ser exibida uma mensagem
informando que o valor invlido. Obs.:
Utilize o comando switch.

Bruno Jefferson (2014)

28

Referncias
ASCENCIO, A. F. G., CAMPOS, E. A.V.;
Fundamentos da Programao de
Computadores, 3. Ed., So Paulo: Pearson,
2012.
 Schildt, H; C Completo e Total. Makron
Books. 1997.
 Oliveira, U.; Programando em C Fundamentos.Volume I. Editora Cincia
Moderna. 2008.


Bruno Jefferson (2014)

29

Potrebbero piacerti anche