GFM015 – Introdução à Computação Algoritmos e Programação...

27
GFM015 – Introdução à Computação Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério Reis da Silva [email protected] www.facom.ufu.br/~ilmerio/ic UFU/FACOM

Transcript of GFM015 – Introdução à Computação Algoritmos e Programação...

Page 1: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

GFM015 – Introdução à ComputaçãoAlgoritmos e Programação /

Controle de Fluxo /Estutura Condicional

Ilmério Reis da [email protected]/~ilmerio/icUFU/FACOM

Page 2: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.2

Programa 1. Noções básicas sobre os componentes de micro computadores2.Uso de Aplicativos3. Algoritmos4. Fundamentos de programação

4.1 Tipos primitivos de dados e variáveis;4.2 Expressões: aritméticas, relacionais e lógicas;4.3 Comandos de atribuição, entrada e saída de dados;4.4 Estruturas de controle de fluxo;4.5 Ambiente de programação: editar e executar

programas;5. Estrutura de Dados6. Modularização de programas

Page 3: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.3

Algoritmos - Estrutura Condicional Simples Estrutura simples

SE condiçãoENTÃO comando

SE condiçãoENTÃO INÍCIO

comando1comando2comando3

FIM

Page 4: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.4

Algoritmos – Operadores Relacionais e LógicosRetornam: Verdadeiro ou Falso

Relacionais:> maior que >= maior ou igual < menor <= menor ou igual== igual!= não igual

Lógicos: E OU NÃO

Exemplo: a > 20 E a < 30

Page 5: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.5

Tabela Verdade

TABELA E TABELA OU TABELA NÃO

V E V = V V OU V = V NÃO V = F

V E F = F V OU F = V NÃO F = V

F E V = F F OU V = V

F E F = F F OU F = F

Page 6: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.6

Algoritmos - Estrutura Condicional Composta Estrutura composta

SE condiçãoENTÃO comando

SENÃO comando2

SE condiçãoENTÃO INÍCIO

comando1comando2

FIMSENÃO INÍCIO

comando3comando4

FIM

Page 7: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.7

Algoritmos - Condições aninhadasNinhos de condições: Comandos em condições podem ser outras condiçõesSE <condição1> ENTÃO SE <condição2> ENTÃO bloco de comandos1 FIM-SE SENÃO SE <condição3> ENTÃO bloco de comandos2 SENÃO bloco de comandos3

FIM-SEFIM-SE

Page 8: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.8

Algoritmos - Condições aninhadasComentário sobre ninhos de condições:

• Quando as condições são aninhadas aumenta a chance de erros

• Uma alternativa para condições mutuamente exclusivas é mostrada a seguir

Page 9: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.9

Algoritmos-Condições mutualmente exclusivasComando CASO

CASO <variável> <op1>: bloco de comandos <op2>: bloco de comandos <op3>: bloco de comandos .......... <opk>: bloco de comandos

OUTRO: bloco de comandosFIM-CASO

OBS: A cláusula OUTRO do comando é opcional.

Page 10: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.10

Algoritmos-Condições mutualmente exclusivasExemplo de Comando CASO

CASO estado_civil “S”: ESCREVA(“Solteiro”) “C”: ESCREVA(“Casado”) “D”: ESCREVA(“Divorciado”) “V”: ESCREVA(“Viúvo”) OUTRO: escreva(“Desconhecido”)FIM-CASO

Page 11: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.11

Algoritmos - Exemplo 1) A nota de um estudante é calculada a partir de três notas com os seguintes pesos:

Faça um programa que calcule a média ponderada e o conceito conforme a seguinte tabela:

NOTA PESOTrabalho 2Prova semestral 3Prova Final 5

MÉDIA PONDERADA CONCEITO[8, 10] A[7, 8[ B[6, 7[ C[5, 6[ D[0, 5[ E

Page 12: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.12

Algoritmos - Exemplo

ALGORITMODECLARE NUMÉRICO nota_trab, aval1_sem, exame, mediaESCREVA “Digite a nota do trabalho”LEIA nota_trabESCREVA “Digite a nota da avaliação semestral”LEIA aval1_semESCREVA “Digite a nota do exame final”LEIA examemedia (nota_trab * 2 + aval1_sem * 3 + exame * 5) / 10←ESCREVA “Media ponderada : “, mediaSE media >=8 E media <= 10 ENTAO ESCREVA “Conceito A”SE media >=7 E media < 8 ENTAO ESCREVA “Conceito B”SE media >=6 E media < 7 ENTAO ESCREVA “Conceito C”SE media >=5 E media < 6 ENTAO ESCREVA “Conceito D”SE media >=0 E media < 5 ENTAO ESCREVA “Conceito E”FIM_ALGORITMO

Page 13: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.13

Algoritmos - Exercícios1) Faça um algoritmo para montar um menu na tela com 5 opções (1 - Cadastro, 2 - Edição, 3 - Consulta, 4 - Exclusão e 5 - Sair), leia a opção escolhida e chame a função correspondente. Obs: neste exercício, a chamada de uma função equivale a digitar o seu nome.

2) Elabore um algoritmo que dado um número inteiro qualquer, responda se ele é positivo, negativo ou nulo (igual a zero).

3) Modifique o algoritmo anterior, de modo que ele responda se o número é par ou ímpar

Page 14: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.14

Linguagem C - Estrutura Condicional SimplesSintaxe:

if (condição)comando;

if (condição){

comando1;comando2;comando3;

}

Page 15: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.15

Linguagem C - Estrutura Condicional CompostaSintaxe:

if (condição)comando;

elsecomando;

if (condição) {comando1;comando2;

} else {comando3;comando4;

}

Page 16: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.16

Linguagem C - Estrutura Condicional TernáriaSintaxe:

expressao1 ? expressao2 : expressao3

Se expressao1 é verdadeira, expressao2 é executada;Senão será executada a expressao3.

Não deve ser incluído ponto-e-vírgula após expressao2

Exemplo: maior = n > m ? n : m;

Page 17: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.17

Linguagem C - Estrutura CaseSintaxe:

Switch (variável){

case valor1: lista de comandos; break;case valor2: lista de comandos; break;...default: lista de comandos;

}

Page 18: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.18

Linguagem C - Exemplo Estrutura Case#include <stdio.h>void main (){int i;printf (“Digite um numero”);scanf(“%d”, &i);switch (i)

{case 1: printf (“Um”); break;case 2: printf (“Dois”); break;default: printf (“Diferente de um e de dois”);

}

Page 19: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.19

Linguagem C – Operadores Relacionais e LógicosRetornam: 1 (se verdadeiro) ou 0 (se falso)

Relacionais:> maior que >= maior ou igual < menor <= menor ou igual== igual!= não igual

Lógicos:&& E|| OU! NÃO

Page 20: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.20

Linguagem C – Operadores Relacionais e Lógicos Exemplomain(){

int i,j;printf("digite dois números: ");scanf("%d%d",&i,&j);printf("%d == %d e' %d\n",i,j,i==j);printf("%d != %d e' %d\n",i,j,i!=j);printf("%d <= %d e' %d\n",i,j,i<=j);printf("%d >= %d e' %d\n",i,j,i>=j);printf("%d < %d e' %d\n",i,j,i< j);printf("%d > %d e' %d\n",i,j,i> j);

}

Page 21: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.21

Tabela Verdade

TABELA E (&&) TABELA OU (||) TABELA NÃO (!)

V && V = V V || V = V !V = F

V && F = F V || F = V !F = V

F && V = F F || V = V

F && F = F F || F = F

Page 22: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.22

Linguagem C - Exemplos Operadores Lógicosif (x == 3)

printf (“Numero igual a três”);

if (x > 5 && x < 10)printf (“Numero entre cinco e dez”);

if ((x == 5 && y == 2) || y == 3) print (“x é igual a 5 e y é igual a 2 ou y é igual a 3”);

OBS: – em Linguagem C as condições devem estar entre

parêntesis – parêntesis internos indicam prioridade de

execução

Page 23: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.23

Linguagem C - ExemplosImplemente em Linguagem C o algoritmo que calcula o conceito do aluno à partir da média ponderada#include <stdio.h>main () { int trabalho, semestre, final;float media;printf ("Digite a nota do trabalho\n");scanf("%d", &trabalho);printf ("Digite a nota da avaliação semestral\n");scanf("%d", &semestre);printf ("Digite a nota do exame final\n");scanf("%d", &final);media = (float) (trabalho * 2 + semestre * 3 + final * 5 ) / 10;printf ("Media ponderada : %f\n", media);if (media >=8 && media <= 10) printf ("Conceito A\n");if (media >=7 && media < 8) printf ("Conceito B\n");if (media >=6 && media < 7) printf ("Conceito C\n");if (media >=5 && media < 6) printf ("Conceito D\n");if (media >=0 && media < 5) printf ("Conceito E\n");getch();}

Page 24: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.24

Exemplos Algoritmos e Linguagem C

Veja os exemplos do Capítulo 4 no site do livro texto e transforme-os de C++ para C padrão, executando a nova versão no ambiente Dev C++. A url do sítio do livro-texto está disponível no Roteiro 02 das aulas instrumentais.

Page 25: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.25

Execícios Propostos - Linguagem C1) Codifique um programa que dado um número inteiro qualquer, responda se ele é positivo, negativo ou nulo e se o número é par ou ímpar.

2) Codifique um programa para verificar se um determinado número inteiro é divisível por 3 e 5, mas não simultaneamente pelos dois

3) Codifique um programa que leia três valores e calcule o maior entre eles usando apenas condicionais ternárias

4) Codifique um programa que leia um número, exiba uma msg se o número for menor que 1 ou maior que 12, ou o nome do mês correspondente caso seja entre 1 e 12.

Page 26: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

Página:4b.26

Bibliografia

Disponível em: http://www.facom.ufu.br/~ilmerio/ic/ic_s4b_programacao2.pdf

Material de apoio em:http://www.facom.ufu.br/~ilmerio/ic

Page 27: GFM015 – Introdução à Computação Algoritmos e Programação ...ilmerio/ic/ic_s4b_programacao2.pdf · Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério

FIM