CES-10 INTRODUÇÃO À
COMPUTAÇÃO
Aulas Práticas – 2014
Capítulo IV
Fluxogramas
Fluxogramas foram usados para descrever comandos
condicionais e repetitivos:
if (Condição)
Comandos
V
if (Condição)
Comandos 1
else
Comandos 2 Comandos
F
Condição
V
Condição
F
Comandos
2
1
Comandos
do
while (Condição)
Comandos
F
Condição
V
Comandos
Comandos
while (Condição);
Comandos
Dentro dos comandos:
variável = expressão;
scanf (--------);
printf (--------);
Condicionais e repetitivos
V
Condição
F

Fluxogramas podem ser considerados como uma
linguagem para descrição de algoritmos

Uma vez escrito o fluxograma, ele então é traduzido para
uma linguagem de programação
Exemplo: fluxograma para inverter os dígitos de um número
num
aux
 Método: ilustrado com a inversão do número
48728 48728 para
48728
 10
82784
8
inv
0
4872
 10
2
487
 10
7
48
 10
8
4
 10
4
0
aux
* 10 + 8
8
* 10 + 2
82
aux = num; inv = 0;
while (aux != 0) {
inv = 10 * inv + aux % 10;
aux = aux/10;
}
* 10 + 7
827
* 10 + 8
8278
inv
* 10 + 4
82784
Fluxograma:
aux = num; inv = 0;
while (aux != 0) {
inv = 10 * inv + aux % 10; aux = aux/10;
}
← : sinal de
atribuição
#include <stdio.h>
#include <stdlib.h>
int main () {
--}
Tradução do
fluxograma para a
Linguagem C
Copiar para salvar e
executar
posteriormente
-
Usa scanf e printf
Usa system para encerrar
int num, aux, inv; char c, lixo;
printf ("INVERSAO DE NUMEROS:");
printf ("\n\nInverter numero? (s/n): ");
Detalhes da
manipulação do buffer
do teclado não
precisam aparecer no
fluxograma
No escopo de main
if, if-else, while
ou do-while?
int num, aux, inv; char c, lixo;
printf ("INVERSAO DE NUMEROS:");
printf ("\n\nInverter numero? (s/n): ");
do
-------while (- - - - -);
while (- - - - -) {
----}
printf ("\n\n");
system ("pause");
return 0;
if, if-else, while
ou do-while?
if, if-else, while
ou do-while?
int num, aux, inv; char c, lixo;
printf ("INVERSAO DE NUMEROS:");
printf ("\n\nInverter numero? (s/n): ");
do
scanf ("%c%c", &c, &lixo);
while (c != 's' && c != 'n' && c != 'S' && c != 'N');
while (- - - - -) {
----}
printf ("\n\n");
system ("pause");
return 0;
int num, aux, inv; char c, lixo;
printf ("INVERSAO DE NUMEROS:");
printf ("\n\nInverter numero? (s/n): ");
do
scanf ("%c%c", &c, &lixo);
while (c != 's' && c != 'n' && c != 'S' && c != 'N');
while (- - - - -) {
----}
printf ("\n\n");
system ("pause");
return 0;
while (c == 's' || c == 'S') {
printf ("\n\tDigite o numero: ");
scanf("%d%c", &num, &lixo);
aux = num; inv = 0;
while (aux != 0) {
inv = 10 * inv + aux % 10; aux = aux/10;
}
----}
Feito anteriormente
while (c == 's' || c == 'S') {
printf ("\n\tDigite o numero: ");
scanf("%d%c", &num, &lixo);
aux = num; inv = 0;
while (aux != 0) {
inv = 10 * inv + aux % 10; aux = aux/10;
}
----}
while (c == 's' || c == 'S') {
printf ("\n\tDigite o numero: ");
scanf("%d%c", &num, &lixo);
aux = num; inv = 0;
while (aux != 0) {
inv = 10 * inv + aux % 10; aux = aux/10;
}
printf ("\n\t%d invertido torna-se %d", num, inv);
printf ("\n\nInverter numero? (s/n): ");
do
scanf ("%c%c", &c, &lixo);
while (c != 's' && c != 'n' && c != 'S' && c != 'N');
}
Repetição de
código anterior
#include <stdio.h>
#include <stdlib.h>
Programa final
int main () {
int num, aux, inv; char c, lixo;
printf ("INVERSAO DE NUMEROS:");
printf ("\n\nInverter numero? (s/n): ");
do scanf ("%c%c", &c, &lixo);
while (c != 's' && c != 'n' && c != 'S' && c != 'N');
while (c == 's' || c == 'S') {
printf ("\n\tDigite o numero: "); scanf("%d%c", &num, &lixo);
aux = num; inv = 0;
while (aux != 0) {
inv = 10 * inv + aux % 10; aux = aux/10;
}
printf ("\n\t%d invertido torna-se %d", num, inv);
printf ("\n\nInverter numero? (s/n): ");
do scanf ("%c%c", &c, &lixo);
while (c != 's' && c != 'n' && c != 'S' && c != 'N');
}
Salvar e
printf ("\n\n"); system ("pause"); return 0;
}
executar
Exercício: Escrever e executar um programa em C para o
seguinte fluxograma destinado a calcular a soma dos
dígitos ímpares de vários números positivos lidos:
O programa
deve ser
amigável
É necessário
discernir qual o
comando
correspondente
a cada losango:
if-sem-else
if-else
while
do-while
Todas as variáveis
são inteiras
Exercício 1 do Lab 4:
fluxograma para
encontrar os
divisores de vários
números lidos:
Escrever e executar um
programa para ele
Cuidado para não confundir
“=” com “==”
Escolher o comando correto
para cada estrutura com
losango
Esse comando não deve
desobedecer ao fluxograma,
mesmo que o programa
funcione corretamente
Exercício 1 do Lab 4:
fluxograma para
encontrar os
divisores de vários
números lidos:
No fluxograma não aparece
o fechamento da tela
Deixar a saída no vídeo com
certa estética
Exercício 2 do Lab 4:
fluxograma para encontrar
os MMC’s de vários pares
de números lidos
Escrever e executar um programa
para este fluxograma
Valem os mesmos requisitos
anteriores para escolher entre os
comandos
if-sem-else, if-else,
while e do-while
No fluxograma não aparece o
fechamento da tela
Deixar a saída no vídeo com certa
estética
Download

CES-10 Prática Cap 4