• Nenhum resultado encontrado

IEC081 Introdução à Ciência dos Computadores Estruturas Condicionais em Linguagem C

N/A
N/A
Protected

Academic year: 2021

Share "IEC081 Introdução à Ciência dos Computadores Estruturas Condicionais em Linguagem C"

Copied!
48
0
0

Texto

(1)

IEC081

Introdução à Ciência dos Computadores

Estruturas Condicionais em Linguagem C

Turma: 01A / 01B / 01C

Professor: Fabíola Nakamura

E-mail: fabiola@icomp.ufam.edu.br

Página: iccufam.weebly.com

(2)

Resolução de Problemas

Algorítmicos

Definir as entradas e as saídas Fim Identificar o problema Início Converter o algoritmo em declarações da linguagem de programação Projetar o algoritmo Decompor Refinar passo a passo Testar o programa resultante 1 2 3 4 5

(3)
(4)

Estruturas de Programação

Qualquer programa de computador pode ser

escrito combinando-se os três tipos básicos de

estruturas de programação:

(5)

Estruturas de Programação

Teorema provado em

1966 por Corrado

Böhm (1923-) e

Giuseppe Jacopini

(1936-2001) no artigo:

“Flow Diagrams,

Turing Machines And

Languages With Only

Two Formation Rules”.

(6)

Estrutura Sequencial

É a estrutura de programação mais simples.

O fluxo de comandos do algoritmo segue a mesma

sequência linear da nossa escrita:

De cima para baixo

Da esquerda para direita

p/ esquerda

p/ baixo

a = 3

b = 4

m = (a + b)/2

print(m

)

(7)

Estrutura Condicional

Permite alterar o fluxo de execução, de forma a

selecionar qual parte do algoritmo deve ser

executada.

Essa decisão é tomada a partir de uma condição,

que pode resultar apenas em:

Verdade, ou

Falsidade

(8)

Condição verdadeira, condição

falsa

Verdadeiro ou falso são valores lógicos. São

atributos da expressão condicional.

O funcionamento correto do seu script não está

condicionado a resultados lógicos com valor

verdadeiro.

quebro u?

(9)

if (delta < 0){

printf(“Nao tem raizes reais”); }

Estrutura Condicional Simples

Quando a condição é

verdadeira, o “bloco

verdade” é executado.

Quando a condição é

falsa, o “bloco

verdade” não é

executado.

início a, b, c fim delta < 0 F Não tem raízes reais V delta ← b**2 – 4*a*c

(10)

Estrutura Condicional Simples

:: Em C

início a, b, c fim delta < 0

F Não tem raízes

reais

v

(11)

Estruturas Condicionais Compostas

Quando a condição é

verdadeira, o “bloco

verdade” é executado.

Quando a condição é

falsa, o “bloco

falsidade” é executado.

início a, b, c fim delta < 0 F Não tem raízes reais V delta ← b**2 – 4*a*c Tem raiz real

(12)

Estruturas Condicionais Compostas

:: Em C

início a, b, c fim delta < 0 F Não tem raízes reais V delta ← b**2 – 4*a*c Tem raiz real

(13)

Indentação

O comando else deve estar alinhado com o

comandos if correspondente.

Todos os comandos de um mesmo bloco deverão

(14)
(15)

Problema 1

Uma lata de leite em pó da marca A, com 400g,

custa R$ 8,39.

Um saco de leite em pó da marca B, com 1kg, custa

R$ 20,30.

(16)

Problema 1

2 – Definir entradas e saídas

  Grandeza Unidade de medida Faixa de valores

Entradas

Saídas

  Grandeza Unidade de medida Faixa de valores

Entradas

PrecoA R$ 8.39

PesoA kg 0.4

PrecoB R$ 20.30

PesoB kg 1.0

(17)

Problema 1

3 – Projetar algoritmo

F V início PrecoA, PesoA PrecoB, PesoB fim marca ← “A” rA > rB marca ← “B” rA ← PrecoA/PesoA rB ← PrecoB/PesoB marca

(18)

Problema 1

(19)

Problema 2

y

x

R

(20)

Problema 2

2 – Definir entradas e saídas

  Grandeza Unidade de medida Faixa de valores Entradas

Raio --- >=0

Coordenada X de P --- Real

Coordenada Y de P --- Real

(21)

Problema 2

3 – Projetar algoritmo

X**2 + Y**2 == R**2 X**2 + Y**2 < R**2 Na circunferência

V

P é interno

F

P é externo

V

F

(22)

Problema 2

3 – Projetar algoritmo

V F fim Externo C2 Interno V F início R, X, Y Na circunferência C1 X**2 + Y**2 == R**2

C1

X**2 + Y**2 < R**2

C2

(23)

Problema 2

4 – Codificar

(24)

Problema 3

Projete um algoritmo para uma máquina

caça-níquel que gere 3 números aleatórios entre 1 e 10.

Se os três números forem iguais, o jogador ganha.

(25)

Problema 3

2 – Definir entradas e saídas

  Grandeza Unidade de medida Faixa de valores Entradas

Saídas

  Grandeza Unidade de medida Faixa de valores Entradas

N1 --- [1,10]

N2 --- [1,10]

N3 --- [1,10]

(26)

Problema 3

3 – Projetar algoritmo

N1 == N2

N2 == N3

perdeu

F

perdeu

V

ganhou

F

V

(27)

Problema 3

3 – Projetar algoritmo

V F F início Gerar N1, N2, N3 Ganhou! fim N1 == N2 Perdeu! Perdeu! N2 == N3 V

(28)

Problema 3

4 – Codificar

(29)

Problema 4

Dados três valores X, Y e Z, verifique:

Se eles podem ser os comprimentos dos lados de um

triângulo.

Caso positivo, se o triângulo é equilátero, isósceles ou

escaleno.

(30)

Problema 4

1 – Identificar o problema

Propriedade básica de um triângulo:

O comprimento de cada lado de um triângulo é menor

do que a soma dos comprimentos dos demais lados.

(31)

Problema 4

2 – Definir entradas e saídas

  Grandeza Unidade de medida Faixa de valores Entradas

Saídas

  Grandeza Unidade de medida Faixa de valores Entradas X m > 0 Y m > 0 Z m > 0 Saídas mensagem ---“Não é triângulo”, “Triângulo equilátero”, “Triângulo isósceles”, “Triângulo escaleno”

(32)

Problema 4

3 – Projetar algoritmo

V F fim C2 Equilátero V F início X, Y, Z Não é triângulo C1 (X >= Y + Z) OU (Y >= Z + X) OU (Z >= X + Y)

C1

(X == Y) E (Y == Z)

C2

(X == Y) OU (Y == Z) OU (Z == X)

C3

V F Escaleno C3 Isósceles

(33)

Problema 4

4 – Codificar

(34)

Estruturas Condicionais

Encadeadas

Estruturas condicionais encadeadas (ou aninhadas)

são estruturas condicionais dentro de outras

estruturas condicionais.

Quando um problema exige um longo

encadeamento de ifs e elses, a criação de

diversos níveis deslocados poderia causar

(35)

Estruturas Condicionais

Encadeadas :: Exemplo

Calcular r1 e r2

Δ<0

F V Sem solução Calcular r1

Δ=0

V F fim

(36)

Problema 5

Escrever um script em Python que leia um ângulo

entre 0 e 360° e informe o ponto cardeal

correspondente.

(37)

Problema 5

2 – Definir entradas e saídas

  Grandeza Unidade de medida Faixa de valores Entradas

Saídas

  Grandeza Unidade de medida Faixa de valores

Entradas Ângulo graus [0; 360]

(38)

Problema 5

(39)

Problema 5

4 – Codificar

(40)
(41)

Problema 6

2 – Definir entradas e saídas

  Grandeza Unidade de medida Faixa de valores Entradas

Saídas

  Grandeza Unidade de medida Faixa de valores

Entradas Ano

(42)

Problema 6

3 – Projetar algoritmo – versão 1

ano % 400 == 0 ano % 100 == 0 Bissexto V Não bissexto F V F ano % 4 == 0

Bissexto bissextoNão

(43)

Problema 6

3 – Projetar algoritmo – versão 1

V F fim C2 Não bissexto V F início ano Bissexto C1 ano % 400 == 0

C1

ano % 100 == 0

C2

ano % 4 == 0

C3

V F Não bissexto C3 Bissexto

(44)

Problema 6

(45)

Problema 6

3 – Projetar algoritmo – versão 2

ano % 400 == 0 ano % 100 == 0 Bissexto V Não bissexto F V F ano % 4 == 0

Bissexto bissextoNão

V F

(46)

Problema 6

3 – Projetar algoritmo – versão 2

fim Não bissexto V F início ano Bissexto C1 (ano % 400 == 0) OU ((ano % 100 ≠ 0) E (ano % 4 == 0))

C1

(47)

Problema 6

(48)

Referências

Documentos relacionados

 Cada vez que uma função é chamada podemos considerar que uma nova instância daquela função é criada na

• Medir é comparar uma determinada grandeza com outra grandeza escolhida como unidade padrão de medida...

Outras funções podem ter acesso a variáveis locais de uma determinada função quando recebem como argumento o valor ou o endereço destas variáveis (com o endereço, é

Em relação ao while, este é constituído somente por um argumento, que corresponde à condição imposta, ou seja, enquanto a condição for verdadeira, o que está dentro do while

Vamos voltar ao formulário (basta clicar na sua barra de título ou pressionar a tecla F12, ou ainda, menu View, comando Toggle Form/Unit) e efetuar o mesmo procedimento para o

verdadeiro que o valor desta esta variável é menor do que 8, os comandos desta estrutura (linhas 5.1, 5.2, 5.3 e 5.4) serão repetidos – caso contrário o controle será desviado para

O identificador é uma sequência de letras, dígitos e caractere para sublinhamento escolhida pelo programador e (como foi dito acima) será utilizado no programa para se

Isto acontece porque programas escritos em linguagens de programação são traduzidos para o código de máquina do computador em vez de ser diretamente executado.. Uma meta ambiciosa