ces-10 introduÇÃo À computaÇÃo aulas práticas – 2014 capítulo iii comandos de controle

32
CES-10 INTRODUÇÃO À CES-10 INTRODUÇÃO À COMPUTAÇÃO COMPUTAÇÃO Aulas Práticas – 2014 Aulas Práticas – 2014 Capítulo III Capítulo III Comandos de Controle Comandos de Controle

Upload: barbara-mancha

Post on 07-Apr-2016

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

CES-10 INTRODUÇÃO CES-10 INTRODUÇÃO À COMPUTAÇÃOÀ COMPUTAÇÃO

Aulas Práticas – 2014Aulas Práticas – 2014

Capítulo III Capítulo III Comandos de ControleComandos de Controle

Page 2: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

Programa 3.1: Comandos condicionaisPrograma 3.1: Comandos condicionais

#include <stdio.h>#include <stdio.h>#include <stdlib.h>#include <stdlib.h>

int main () {int main () {char estahfrio;char estahfrio;printf ("Estah frio? (s/n): ");printf ("Estah frio? (s/n): ");scanf ("%c", &estahfrio);scanf ("%c", &estahfrio);if (estahfrio == 's' || estahfrio == 'S')if (estahfrio == 's' || estahfrio == 'S')printf ("\n\tVista seu casaco!!");printf ("\n\tVista seu casaco!!");elseelseprintf ("\n\tDeixe seu casaco no guarda-roupas!!");printf ("\n\tDeixe seu casaco no guarda-roupas!!");printf ("\n\n"); system ("pause");printf ("\n\n"); system ("pause");return 0;return 0;

}}

Digitar, salvar e executar o seguinte programa

Fluxogramas explicativos:

==: usado para comparar dois valores=: usado para atribuir uma expressão a uma variável

||: operador ‘or’ entre duas condições

&&: operador ‘and’ entre duas condições

Page 3: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

Programa 3.2: Outro comando repetitivo: do-Programa 3.2: Outro comando repetitivo: do-whilewhile

#include <stdio.h>#include <stdio.h>#include <stdlib.h>#include <stdlib.h>int main () {int main () {

int n; char c, lixo;int n; char c, lixo;printf ("PAR OU IMPAR");printf ("PAR OU IMPAR");dodo { {

printf ("\n\nDigite um numero seguido de <enter>: ");printf ("\n\nDigite um numero seguido de <enter>: "); scanf ("%d%c", &n, &lixo);scanf ("%d%c", &n, &lixo);

if (n % 2 == 0)if (n % 2 == 0)printf ("\t%d eh par", n);printf ("\t%d eh par", n);elseelseprintf ("\t%d eh impar", n);printf ("\t%d eh impar", n);

printf ("\n\nVerificar paridade? (s/n): ");printf ("\n\nVerificar paridade? (s/n): "); scanf ("%c%c", &c, &lixo);scanf ("%c%c", &c, &lixo);

} } whilewhile (c == 's' || c == 'S'); (c == 's' || c == 'S');printf ("\n\n"); system ("pause"); return 0;printf ("\n\n"); system ("pause"); return 0;

}}

Digitar, salvar e executar o seguinte programa

Comandos

CondiçãoV

F

Fluxograma explicativo

Os comandos são executados pelo menos uma vez

n % 2: resto da divisão de n por 2

Page 4: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

Programa 3.2: Outro comando repetitivo: do-Programa 3.2: Outro comando repetitivo: do-whilewhile

#include <stdio.h>#include <stdio.h>#include <stdlib.h>#include <stdlib.h>int main () {int main () {

int n; char c, int n; char c, lixolixo;;printf ("PAR OU IMPAR");printf ("PAR OU IMPAR");do {do {

printf ("\n\nDigite um numero seguido de <enter>: ");printf ("\n\nDigite um numero seguido de <enter>: "); scanf ("%d%c", &n, scanf ("%d%c", &n, &lixo&lixo););

if (n % 2 == 0)if (n % 2 == 0)printf ("\t%d eh par", n);printf ("\t%d eh par", n);elseelseprintf ("\t%d eh impar", n);printf ("\t%d eh impar", n);

printf ("\n\nVerificar paridade? (s/n): ");printf ("\n\nVerificar paridade? (s/n): "); scanf ("%c%c", &c, scanf ("%c%c", &c, &lixo&lixo););

} while (c == 's' || c == 'S');} while (c == 's' || c == 'S');printf ("\n\n"); system ("pause"); return 0;printf ("\n\n"); system ("pause"); return 0;

}}

Para o scanf, tudo o que é digitado, inclusive o <enter>, fica depositado numa região chamada “buffer do teclado” O computador só espera digitação se esse buffer estiver vazio

Depois da leitura para n e c, o <enter> fica no buffer e será usado na próxima leitura

Nos dois scanf’s, o <enter> será lido e guardado na variável lixo

Page 5: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

Programa 3.2: Outro comando repetitivo: do-Programa 3.2: Outro comando repetitivo: do-whilewhile

#include <stdio.h>#include <stdio.h>#include <stdlib.h>#include <stdlib.h>int main () {int main () {

int n; char c, int n; char c, lixolixo;;printf ("PAR OU IMPAR");printf ("PAR OU IMPAR");do {do {

printf ("\n\nDigite um numero seguido de <enter>: ");printf ("\n\nDigite um numero seguido de <enter>: "); scanf ("%d%c", &n, scanf ("%d%c", &n, &lixo&lixo););

if (n % 2 == 0)if (n % 2 == 0)printf ("\t%d eh par", n);printf ("\t%d eh par", n);elseelseprintf ("\t%d eh impar", n);printf ("\t%d eh impar", n);

printf ("\n\nVerificar paridade? (s/n): ");printf ("\n\nVerificar paridade? (s/n): "); scanf ("%c%c", &c, scanf ("%c%c", &c, &lixo&lixo););

} while (c == 's' || c == 'S');} while (c == 's' || c == 'S');printf ("\n\n"); system ("pause"); return 0;printf ("\n\n"); system ("pause"); return 0;

}}

Para o scanf, tudo o que é digitado, inclusive o <enter>, fica depositado numa região chamada “buffer do teclado” O computador só espera digitação se esse buffer estiver vazio

Se a variável lixo não fosse usada, o <enter> do primeiro scanf seria lido para a variável c, no segundo scanf

Aí o do-while se encerraria sem nova digitação para a variável c

Page 6: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

Com as seguintes construções, escreve-se Com as seguintes construções, escreve-se grande variedade de programas:grande variedade de programas:

Comandos

Condição

V

F

do Comandoswhile (Condição);

Comando

s

Condição

V

Fwhile (Condição) Comandos

Comando

s 2

Condição

V F

Comand

os 1

Condição

V

F

Comand

os

if (Condição) Comandos

if (Condição) Comandos 1else Comandos 2

Além dos comandos:variável = expressão;scanf (--------); printf (--------);

Page 7: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

Programa 3.3: Divisibilidade por 7 – vários Programa 3.3: Divisibilidade por 7 – vários númerosnúmeros

Em Em CC, uma , uma divisãodivisão em que os 2 operandos são em que os 2 operandos são inteirosinteiros produz resultado produz resultado inteiro truncadointeiro truncado

Exemplo: 7 / 3 = 2Exemplo: 7 / 3 = 2

Se um dos operandos for Se um dos operandos for realreal, o resultado será , o resultado será realreal

Operador %: resto de divisãoOperador %: resto de divisão Exemplo: Exemplo: 7 % 3 = 17 % 3 = 1 Os Os operandosoperandos devem ser devem ser inteirosinteiros

Para testar se um número ‘n’ é divisível por 7, basta verificar se a condição

n % 7 == 0é satisfeita

Page 8: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

Divisibilidade por 7 {Divisibilidade por 7 {Escrever um título inicial que diga o assunto do programaEscrever um título inicial que diga o assunto do programaPerguntar ao operador se deseja testar divisibilidade por Perguntar ao operador se deseja testar divisibilidade por 77Obter a resposta do operadorObter a resposta do operadorEnquanto a resposta for “sim” {Enquanto a resposta for “sim” {Pedir o dividendo ao operadorPedir o dividendo ao operadorObter o dividendo do operadorObter o dividendo do operadorTestar a divisibilidade do dividendo por 7 e dar a respostaTestar a divisibilidade do dividendo por 7 e dar a respostaPerguntar novamente ao operador se deseja testar Perguntar novamente ao operador se deseja testar divisibilidade por 7divisibilidade por 7Obter a resposta do operadorObter a resposta do operador}}Fechar a tela de execuçãoFechar a tela de execução

}}

Desenvolvimento do programa

Algoritmo do programa, escrito em Português, num certo nível de detalhes

Page 9: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

Divisibilidade por 7 {Divisibilidade por 7 {Escrever um título inicial que diga o assunto do programaEscrever um título inicial que diga o assunto do programaPerguntar ao operador se deseja testar divisibilidade por Perguntar ao operador se deseja testar divisibilidade por 77Obter a resposta do operadorObter a resposta do operadorEnquanto a resposta for “sim” {Enquanto a resposta for “sim” {Pedir o dividendo ao operadorPedir o dividendo ao operadorObter o dividendo do operadorObter o dividendo do operadorTestar a divisibilidade do dividendo por 7 e dar a respostaTestar a divisibilidade do dividendo por 7 e dar a respostaPerguntar novamente ao operador se deseja testar Perguntar novamente ao operador se deseja testar divisibilidade por 7divisibilidade por 7Obter a resposta do operadorObter a resposta do operador}}Fechar a tela de execuçãoFechar a tela de execução

}}

Page 10: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

int main () {int main () {Escrever um título inicial que diga o assunto do programaEscrever um título inicial que diga o assunto do programaPerguntar ao operador se deseja testar divisibilidade por Perguntar ao operador se deseja testar divisibilidade por 77Obter a resposta do operadorObter a resposta do operadorEnquanto a resposta for “sim” {Enquanto a resposta for “sim” {Pedir o dividendo ao operadorPedir o dividendo ao operadorObter o dividendo do operadorObter o dividendo do operadorTestar a divisibilidade do dividendo por 7 e dar a respostaTestar a divisibilidade do dividendo por 7 e dar a respostaPerguntar novamente ao operador se deseja testar Perguntar novamente ao operador se deseja testar divisibilidade por 7divisibilidade por 7Obter a resposta do operadorObter a resposta do operador}}Fechar a tela de execuçãoFechar a tela de execução

}}

Page 11: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

int main () {int main () {Escrever um título inicial que diga o assunto do programaEscrever um título inicial que diga o assunto do programaPerguntar ao operador se deseja testar divisibilidade por Perguntar ao operador se deseja testar divisibilidade por 77Obter a resposta do operadorObter a resposta do operadorEnquanto a resposta for “sim” {Enquanto a resposta for “sim” {Pedir o dividendo ao operadorPedir o dividendo ao operadorObter o dividendo do operadorObter o dividendo do operadorTestar a divisibilidade do dividendo por 7 e dar a respostaTestar a divisibilidade do dividendo por 7 e dar a respostaPerguntar novamente ao operador se deseja testar Perguntar novamente ao operador se deseja testar divisibilidade por 7divisibilidade por 7Obter a resposta do operadorObter a resposta do operador}}Fechar a tela de execuçãoFechar a tela de execução

}}

Page 12: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

#include <stdio.h>#include <stdio.h>

int main () {int main () {printf ("DIVISIBILIDADE POR 7");printf ("DIVISIBILIDADE POR 7");Perguntar ao operador se deseja testar divisibilidade por Perguntar ao operador se deseja testar divisibilidade por 77Obter a resposta do operadorObter a resposta do operadorEnquanto a resposta for “sim” {Enquanto a resposta for “sim” {Pedir o dividendo ao operadorPedir o dividendo ao operadorObter o dividendo do operadorObter o dividendo do operadorTestar a divisibilidade do dividendo por 7 e dar a Testar a divisibilidade do dividendo por 7 e dar a respostarespostaPerguntar novamente ao operador se deseja testar Perguntar novamente ao operador se deseja testar divisibilidade por 7divisibilidade por 7Obter a resposta do operadorObter a resposta do operador}}Fechar a tela de execuçãoFechar a tela de execução

}}

Page 13: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

#include <stdio.h>#include <stdio.h>

int main () {int main () {printf ("DIVISIBILIDADE POR 7");printf ("DIVISIBILIDADE POR 7");Perguntar ao operador se deseja testar divisibilidade por Perguntar ao operador se deseja testar divisibilidade por 77Obter a resposta do operadorObter a resposta do operadorEnquanto a resposta for “sim” {Enquanto a resposta for “sim” {Pedir o dividendo ao operadorPedir o dividendo ao operadorObter o dividendo do operadorObter o dividendo do operadorTestar a divisibilidade do dividendo por 7 e dar a Testar a divisibilidade do dividendo por 7 e dar a respostarespostaPerguntar novamente ao operador se deseja testar Perguntar novamente ao operador se deseja testar divisibilidade por 7divisibilidade por 7Obter a resposta do operadorObter a resposta do operador}}Fechar a tela de execuçãoFechar a tela de execução

}}

Page 14: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

#include <stdio.h>#include <stdio.h>

int main () {int main () {char testar, lixo;char testar, lixo;printf ("DIVISIBILIDADE POR 7");printf ("DIVISIBILIDADE POR 7");printf ("\n\nTestar divisibilidade? (s/n): ");printf ("\n\nTestar divisibilidade? (s/n): ");scanf ("%c%c", &testar, &lixo);scanf ("%c%c", &testar, &lixo);Enquanto a resposta for “sim” {Enquanto a resposta for “sim” {Pedir o dividendo ao operadorPedir o dividendo ao operadorObter o dividendo do operadorObter o dividendo do operadorTestar a divisibilidade do dividendo por 7 e dar a Testar a divisibilidade do dividendo por 7 e dar a respostarespostaPerguntar novamente ao operador se deseja testar Perguntar novamente ao operador se deseja testar divisibilidade por 7divisibilidade por 7Obter a resposta do operadorObter a resposta do operador}}Fechar a tela de execuçãoFechar a tela de execução

}}

Page 15: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

#include <stdio.h>#include <stdio.h>

int main () {int main () {char testar, lixo;char testar, lixo;printf ("DIVISIBILIDADE POR 7");printf ("DIVISIBILIDADE POR 7");printf ("\n\nTestar divisibilidade? (s/n): ");printf ("\n\nTestar divisibilidade? (s/n): ");scanf ("%c%c", &testar, &lixo);scanf ("%c%c", &testar, &lixo);Enquanto a resposta for “sim” {Enquanto a resposta for “sim” {Pedir o dividendo ao operadorPedir o dividendo ao operadorObter o dividendo do operadorObter o dividendo do operadorTestar a divisibilidade do dividendo por 7 e dar a Testar a divisibilidade do dividendo por 7 e dar a respostarespostaPerguntar novamente ao operador se deseja testar Perguntar novamente ao operador se deseja testar divisibilidade por 7divisibilidade por 7Obter a resposta do operadorObter a resposta do operador}}Fechar a tela de execuçãoFechar a tela de execução

}}

Page 16: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

#include <stdio.h>#include <stdio.h>

int main () {int main () {char testar, lixo;char testar, lixo;printf ("DIVISIBILIDADE POR 7");printf ("DIVISIBILIDADE POR 7");printf ("\n\nTestar divisibilidade? (s/n): ");printf ("\n\nTestar divisibilidade? (s/n): ");scanf ("%c%c", &testar, &lixo);scanf ("%c%c", &testar, &lixo);while (testar == 's' || testar == 'S') {while (testar == 's' || testar == 'S') {Pedir o dividendo ao operadorPedir o dividendo ao operadorObter o dividendo do operadorObter o dividendo do operadorTestar a divisibilidade do dividendo por 7 e dar a Testar a divisibilidade do dividendo por 7 e dar a respostarespostaPerguntar novamente ao operador se deseja testar Perguntar novamente ao operador se deseja testar divisibilidade por 7divisibilidade por 7Obter a resposta do operadorObter a resposta do operador}}Fechar a tela de execuçãoFechar a tela de execução

}}

Page 17: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

#include <stdio.h>#include <stdio.h>

int main () {int main () {char testar, lixo;char testar, lixo;printf ("DIVISIBILIDADE POR 7");printf ("DIVISIBILIDADE POR 7");printf ("\n\nTestar divisibilidade? (s/n): ");printf ("\n\nTestar divisibilidade? (s/n): ");scanf ("%c%c", &testar, &lixo);scanf ("%c%c", &testar, &lixo);while (testar == 's' || testar == 'S') {while (testar == 's' || testar == 'S') {Pedir o dividendo ao operadorPedir o dividendo ao operadorObter o dividendo do operadorObter o dividendo do operadorTestar a divisibilidade do dividendo por 7 e dar a Testar a divisibilidade do dividendo por 7 e dar a respostarespostaPerguntar novamente ao operador se deseja testar Perguntar novamente ao operador se deseja testar divisibilidade por 7divisibilidade por 7Obter a resposta do operadorObter a resposta do operador}}Fechar a tela de execuçãoFechar a tela de execução

}}

Page 18: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

#include <stdio.h>#include <stdio.h>

int main () {int main () {char testar, lixo; char testar, lixo; int dvdo;int dvdo;printf ("DIVISIBILIDADE POR 7");printf ("DIVISIBILIDADE POR 7");printf ("\n\nTestar divisibilidade? (s/n): ");printf ("\n\nTestar divisibilidade? (s/n): ");scanf ("%c%c", &testar, &lixo);scanf ("%c%c", &testar, &lixo);while (testar == 's' || testar == 'S') {while (testar == 's' || testar == 'S') {printf ("\n\tDigite o dividendo seguido de <enter>: ");printf ("\n\tDigite o dividendo seguido de <enter>: ");scanf ("%d%c", &dvdo, &lixo);scanf ("%d%c", &dvdo, &lixo);Testar a divisibilidade do dividendo por 7 e dar a Testar a divisibilidade do dividendo por 7 e dar a respostarespostaPerguntar novamente ao operador se deseja testar Perguntar novamente ao operador se deseja testar divisibilidade por 7divisibilidade por 7Obter a resposta do operadorObter a resposta do operador}}Fechar a tela de execuçãoFechar a tela de execução

}}

Page 19: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

#include <stdio.h>#include <stdio.h>

int main () {int main () {char testar, lixo; int dvdo;char testar, lixo; int dvdo;printf ("DIVISIBILIDADE POR 7");printf ("DIVISIBILIDADE POR 7");printf ("\n\nTestar divisibilidade? (s/n): ");printf ("\n\nTestar divisibilidade? (s/n): ");scanf ("%c%c", &testar, &lixo);scanf ("%c%c", &testar, &lixo);while (testar == 's' || testar == 'S') {while (testar == 's' || testar == 'S') {printf ("\n\tDigite o dividendo seguido de <enter>: ");printf ("\n\tDigite o dividendo seguido de <enter>: ");scanf ("%d%c", &dvdo, &lixo);scanf ("%d%c", &dvdo, &lixo);Testar a divisibilidade do dividendo por 7 e dar a Testar a divisibilidade do dividendo por 7 e dar a respostarespostaPerguntar novamente ao operador se deseja testar Perguntar novamente ao operador se deseja testar divisibilidade por 7divisibilidade por 7Obter a resposta do operadorObter a resposta do operador}}Fechar a tela de execuçãoFechar a tela de execução

}}

Page 20: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

#include <stdio.h>#include <stdio.h>#include <stdlib.h>#include <stdlib.h>int main () {int main () {

char testar, lixo; int dvdo;char testar, lixo; int dvdo;printf ("DIVISIBILIDADE POR 7");printf ("DIVISIBILIDADE POR 7");printf ("\n\nTestar divisibilidade? (s/n): ");printf ("\n\nTestar divisibilidade? (s/n): ");scanf ("%c%c", &testar, &lixo);scanf ("%c%c", &testar, &lixo);while (testar == 's' || testar == 'S') {while (testar == 's' || testar == 'S') {printf ("\n\tDigite o dividendo seguido de <enter>: ");printf ("\n\tDigite o dividendo seguido de <enter>: ");scanf ("%d%c", &dvdo, &lixo);scanf ("%d%c", &dvdo, &lixo);Testar a divisibilidade do dividendo por 7 e dar a Testar a divisibilidade do dividendo por 7 e dar a respostarespostaprintf ("\n\nTestar divisibilidade? (s/n): ");printf ("\n\nTestar divisibilidade? (s/n): ");scanf ("%c%c", &testar, &lixo);scanf ("%c%c", &testar, &lixo);}}

printf ("\n\n"); system ("pause"); return 0;printf ("\n\n"); system ("pause"); return 0;}}

Page 21: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

#include <stdio.h>#include <stdio.h>#include <stdlib.h>#include <stdlib.h>int main () {int main () {

char testar, lixo; int dvdo;char testar, lixo; int dvdo;printf ("DIVISIBILIDADE POR 7");printf ("DIVISIBILIDADE POR 7");printf ("\n\nTestar divisibilidade? (s/n): ");printf ("\n\nTestar divisibilidade? (s/n): ");scanf ("%c%c", &testar, &lixo);scanf ("%c%c", &testar, &lixo);while (testar == 's' || testar == 'S') {while (testar == 's' || testar == 'S') {printf ("\n\tDigite o dividendo seguido de <enter>: ");printf ("\n\tDigite o dividendo seguido de <enter>: ");scanf ("%d%c", &dvdo, &lixo);scanf ("%d%c", &dvdo, &lixo);Testar a divisibilidade do dividendo por 7 e dar a Testar a divisibilidade do dividendo por 7 e dar a respostarespostaprintf ("\n\nTestar divisibilidade? (s/n): ");printf ("\n\nTestar divisibilidade? (s/n): ");scanf ("%c%c", &testar, &lixo);scanf ("%c%c", &testar, &lixo);}}

printf ("\n\n"); system ("pause"); return 0;printf ("\n\n"); system ("pause"); return 0;}}

Page 22: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

#include <stdio.h>#include <stdio.h>#include <stdlib.h>#include <stdlib.h>int main () {int main () {

char testar, lixo; int dvdo;char testar, lixo; int dvdo;printf ("DIVISIBILIDADE POR 7");printf ("DIVISIBILIDADE POR 7");printf ("\n\nTestar divisibilidade? (s/n): ");printf ("\n\nTestar divisibilidade? (s/n): ");scanf ("%c%c", &testar, &lixo);scanf ("%c%c", &testar, &lixo);while (testar == 's' || testar == 'S') {while (testar == 's' || testar == 'S') {

printf ("\n\tDigite o dividendo seguido de <enter>: ");printf ("\n\tDigite o dividendo seguido de <enter>: ");scanf ("%d%c", &dvdo, &lixo);scanf ("%d%c", &dvdo, &lixo);if (dvdo % 7 == 0)if (dvdo % 7 == 0)

printf ("\n\t%d eh divisivel por 7", dvdo);printf ("\n\t%d eh divisivel por 7", dvdo);elseelse

printf ("\n\t%d nao eh divisivel por 7", dvdo);printf ("\n\t%d nao eh divisivel por 7", dvdo);printf ("\n\nTestar divisibilidade? (s/n): "); printf ("\n\nTestar divisibilidade? (s/n): "); scanf ("%c%c", &testar, &lixo);scanf ("%c%c", &testar, &lixo);

}} printf ("\n\n"); system ("pause"); return 0;printf ("\n\n"); system ("pause"); return 0;}}

Page 23: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

#include <stdio.h>#include <stdio.h>#include <stdlib.h>#include <stdlib.h>int main () {int main () {

char testar, lixo; int dvdo;char testar, lixo; int dvdo;printf ("DIVISIBILIDADE POR 7");printf ("DIVISIBILIDADE POR 7");printf ("\n\nTestar divisibilidade? (s/n): ");printf ("\n\nTestar divisibilidade? (s/n): ");scanf ("%c%c", &testar, &lixo);scanf ("%c%c", &testar, &lixo);while (testar == 's' || testar == 'S') {while (testar == 's' || testar == 'S') {

printf ("\n\tDigite o dividendo seguido de <enter>: ");printf ("\n\tDigite o dividendo seguido de <enter>: ");scanf ("%d%c", &dvdo, &lixo);scanf ("%d%c", &dvdo, &lixo);if (dvdo % 7 == 0)if (dvdo % 7 == 0)

printf ("\n\t%d eh divisivel por 7", dvdo);printf ("\n\t%d eh divisivel por 7", dvdo);elseelse

printf ("\n\t%d nao eh divisivel por 7", dvdo);printf ("\n\t%d nao eh divisivel por 7", dvdo);printf ("\n\nTestar divisibilidade? (s/n): "); printf ("\n\nTestar divisibilidade? (s/n): "); scanf ("%c%c", &testar, &lixo);scanf ("%c%c", &testar, &lixo);

}} printf ("\n\n"); system ("pause"); return 0;printf ("\n\n"); system ("pause"); return 0;}}

Page 24: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

#include <stdio.h>#include <stdio.h>#include <stdlib.h>#include <stdlib.h>int main () {int main () {

char testar, lixo; int dvdo;char testar, lixo; int dvdo;printf ("DIVISIBILIDADE POR 7");printf ("DIVISIBILIDADE POR 7");printf ("\n\nTestar divisibilidade? (s/n): ");printf ("\n\nTestar divisibilidade? (s/n): ");scanf ("%c%c", &testar, &lixo);scanf ("%c%c", &testar, &lixo);while (testar == 's' || testar == 'S') {while (testar == 's' || testar == 'S') {

printf ("\n\tDigite o dividendo seguido de <enter>: ");printf ("\n\tDigite o dividendo seguido de <enter>: ");scanf ("%d%c", &dvdo, &lixo);scanf ("%d%c", &dvdo, &lixo);if (dvdo % 7 == 0)if (dvdo % 7 == 0)

printf ("\n\t%d eh divisivel por 7", dvdo);printf ("\n\t%d eh divisivel por 7", dvdo);elseelse

printf ("\n\t%d nao eh divisivel por 7", dvdo);printf ("\n\t%d nao eh divisivel por 7", dvdo);printf ("\n\nTestar divisibilidade? (s/n): "); printf ("\n\nTestar divisibilidade? (s/n): "); scanf ("%c%c", &testar, &lixo);scanf ("%c%c", &testar, &lixo);

}} printf ("\n\n"); system ("pause"); return 0;printf ("\n\n"); system ("pause"); return 0;}}

Salvar e executarEste programa só testa divisibilidade por 7

Page 25: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

Exercício: Alterar o programa anterior de Exercício: Alterar o programa anterior de forma que o divisor também seja digitado forma que o divisor também seja digitado pelo operadorpelo operador

Cuidado: o divisor não pode ser zeroCuidado: o divisor não pode ser zero

Se o operador digitar Se o operador digitar 0 (zero) 0 (zero) para o para o divisordivisor, , o programa deve o programa deve insistirinsistir para ele refazer a para ele refazer a digitação, até que digitação, até que não mais cometa esse não mais cometa esse erroerro

Page 26: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

#include <stdio.h>#include <stdio.h>#include <stdlib.h>#include <stdlib.h>int main () {int main () {

char testar, lixo; int dvdo, char testar, lixo; int dvdo, dsordsor;;printf ("Testar divisibilidade? (s/n): "); scanf ("%c%c", &testar, printf ("Testar divisibilidade? (s/n): "); scanf ("%c%c", &testar, &lixo);&lixo);while (testar == 's' || testar == 'S') {while (testar == 's' || testar == 'S') {printf ("\n\tDigite o dividendo printf ("\n\tDigite o dividendo e o divisore o divisor seguidos de <enter>: "); seguidos de <enter>: ");scanf ("%d%d%c", &dvdo, scanf ("%d%d%c", &dvdo, &dsor&dsor, &lixo);, &lixo);

while (dsor == 0) {while (dsor == 0) {printf ("\n\tDigite novamente o divisor seguido de <enter>: "); printf ("\n\tDigite novamente o divisor seguido de <enter>: "); scanf ("%d%c", &dsor, &lixo);scanf ("%d%c", &dsor, &lixo);

}}if (dvdo % if (dvdo % dsordsor == 0) == 0)printf ("\n\t%d eh divisivel por printf ("\n\t%d eh divisivel por %d%d", dvdo, ", dvdo, dsordsor););elseelseprintf ("\n\t%d nao eh divisivel por printf ("\n\t%d nao eh divisivel por %d%d", dvdo, ", dvdo, dsordsor););printf ("\n\nTestar divisibilidade? (s/n): "); printf ("\n\nTestar divisibilidade? (s/n): "); scanf ("%c%c", &testar, &lixo);scanf ("%c%c", &testar, &lixo);}}

printf ("\n\n"); system ("pause"); return 0;printf ("\n\n"); system ("pause"); return 0;}}

Uma possível solução

Page 27: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

Exercício do Lab 3: Escrever um programa Exercício do Lab 3: Escrever um programa amigável em C para:amigável em C para:

Inicialmente, ler um Inicialmente, ler um número inteiro positivonúmero inteiro positivo digitado e guardá-lo na variável digitado e guardá-lo na variável nn

Caso o operador não digite um número Caso o operador não digite um número positivo positivo para para nn, o programa deve , o programa deve insistirinsistir para ele refazer a digitação, até que para ele refazer a digitação, até que não não mais cometa esse erromais cometa esse erro

Em seguida, o programa deve ler Em seguida, o programa deve ler nn números números inteiros digitadosinteiros digitados

Continua no próximo slide

Page 28: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

Realizar com os números inteiros lidos as Realizar com os números inteiros lidos as seguintes tarefas:seguintes tarefas:

1.1. Contabilizar e imprimir a Contabilizar e imprimir a média aritméticamédia aritmética dos números lidosdos números lidos

Inicializar uma variável Inicializar uma variável soma soma com com zerozero e com e com zerozero também uma variável também uma variável contcont, , contadora de números lidoscontadora de números lidos

A cada número lido A cada número lido numnum, fazer, fazersoma = soma + num;soma = soma + num;cont = cont + 1;cont = cont + 1;

No final, dividir No final, dividir somasoma por por cont cont (resultado real)(resultado real)

Page 29: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

Realizar com os números inteiros lidos as Realizar com os números inteiros lidos as seguintes tarefas:seguintes tarefas:

2.2. Contabilizar e imprimir a Contabilizar e imprimir a soma soma dos dos números lidos que são números lidos que são parespares

Inicializar outra variável Inicializar outra variável somapares somapares com com zerozero

A cada número lido A cada número lido num num que for par, que for par, fazerfazer

somapares = somapares = somapares + num;somapares + num;

Page 30: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

Realizar com os números inteiros lidos as Realizar com os números inteiros lidos as seguintes tarefas:seguintes tarefas:

3.3. Contabilizar e imprimir a Contabilizar e imprimir a soma soma dos dos números lidos números lidos positivospositivos que são que são múltiplos múltiplos de 3 de 3 ou ou de 7de 7

Inicializar outra variável Inicializar outra variável soma3ou7 soma3ou7 com com zerozero

A cada número lido A cada número lido num num que for que for positivo e múltiplo de 3 ou de 7, fazerpositivo e múltiplo de 3 ou de 7, fazer

soma3ou7 = soma3ou7 + num;soma3ou7 = soma3ou7 + num;

Page 31: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

Realizar com os números inteiros lidos as seguintes Realizar com os números inteiros lidos as seguintes tarefas:tarefas:

4.4. Para cada número Para cada número positivopositivo lido, notificar o caso lido, notificar o caso de ele ser ode ele ser o fatorial fatorial de algum número inteiro de algum número inteiro positivo positivo

5.5. Encontrar e imprimir Encontrar e imprimir o maior e o menoro maior e o menor em em valores valores relativosrelativos dentre todos os números lidos dentre todos os números lidos

Inicializar duas variáveis Inicializar duas variáveis maiormaior e e menor menor com o primeiro dos com o primeiro dos n n números digitadosnúmeros digitados

A cada novo número lido A cada novo número lido numnum, caso ele seja , caso ele seja maior relativamente que o valor de maior relativamente que o valor de maiormaior, , fazerfazer

maior = num;maior = num; Analogamente para o valor de Analogamente para o valor de menormenor

Page 32: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle

Realizar com os números inteiros lidos as seguintes Realizar com os números inteiros lidos as seguintes tarefas:tarefas:

6.6. Para cada número Para cada número positivopositivo lido, notificar o caso lido, notificar o caso de ele ser um dos termos da de ele ser um dos termos da Série deSérie de FibonacciFibonacci

A Série de Fibonacci é a seguinte: A Série de Fibonacci é a seguinte: 0, 1, 1, 2, 3, 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, .......,5, 8, 13, 21, 34, 55, ......., onde onde

– O primeiro termo é 0 (zero), o segundo é 1 O primeiro termo é 0 (zero), o segundo é 1 (um) (um)

– Os outros termos são dados por Os outros termos são dados por

termo[i] = termo [i-1] + termo [i-2]termo[i] = termo [i-1] + termo [i-2]

Não usar as chamadas variáveis indexadasNão usar as chamadas variáveis indexadas