ces-10 introduÇÃo À computaÇÃo aulas práticas – 2014 capítulo iii comandos de controle
TRANSCRIPT
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
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
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
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
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
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 (--------);
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
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
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
}}
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
}}
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
}}
#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
}}
#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
}}
#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
}}
#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
}}
#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
}}
#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
}}
#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
}}
#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
}}
#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;}}
#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;}}
#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;}}
#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;}}
#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
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
#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
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
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)
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;
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;
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
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