CES-10 INTRODUÇÃO À
COMPUTAÇÃO
Aulas Práticas – 2013
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
Algoritmo: sequência finita e ordenada de passos (comandos
executáveis e não ambíguos), que levam à aplicação de um
método para a execução de uma tarefa ou resolução de um
problema
Além de computadores, outras entidades podem executar
algoritmos
Muitas atividades rotineiras dos seres humanos podem ser
descritas por algoritmos
Uma vez escrito o algoritmo para computadores, ele então é
traduzido para uma linguagem de programação
Exemplo: raizes da equação do 2º grau Ax2 + Bx + C = 0
← : sinal de atribuição
Blocos dos fluxogramas:
Círculo: início e
final do algoritmo
Retângulo: comandos
(atribuição ou chamada
de subprograma) a
serem executados
sequencialmente
Losango: decisão por
um de dois caminhos
alternativos
Cartão: entrada de
dados
Folha de papel:
saída de
resultados
Elipse: decisão
por um de vários
caminhos
alternativos
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main () {
--}
Tradução do fluxograma
para a Linguagem C
Digitar para salvar e
executar posteriormente
-
Usa scanf e printf
Usa o getch para encerrar
B2 usa pow; raiz quadrada usa sqrt
float A, B, C, X1, X2, Delta, Real, Imag;
printf (“Digite os coeficientes de uma equacao de 2o grau: ”);
scanf (“%f%f%f”, &A, &B, &C);
O fluxograma não
Delta = pow(B,2) – 4*A*C;
precisa estar amigável,
if (Delta >= 0) {
mas o programa sim
----}
else {
----}
printf (“\n\nDigite algo: ”);
getch ();
No escopo de main
if (Delta >= 0) {
X1 = (-B + sqrt(Delta)) / (2*A);
X2 = (-B - sqrt(Delta)) / (2*A);
printf (- - - - -);
}
else {
Real = -B / (2*A);
Imag = sqrt(-Delta) / (2*A);
printf (- - - - -);
}
if (Delta >= 0) {- - - - printf (“X1 = ”, X1, “ e X2 = ”, X2);
}
else {- - - - printf (“X1 = (”, Real, “)+i(”, Imag, “) e X2 = (”, Real, “)-i(”,
Imag, “)”);
}
As chamadas de printf
contém os elementos a
serem escritos
Não estão escritas em C
printf (“X1 = ”, X1, “ e X2 = ”, X2);
printf (“\nX1 = %g e X2 = %g”, X1, X2);
printf (“X1 = (”, Real, “)+i(”, Imag, “) e X2 = (”, Real, “)-i(”,
Imag, “)”);
printf (“\nX1 = (%g)+i(%g) e X2 = (%g)-i(%g)”, Real, Imag,
Real, Imag);
#include <stdio.h>
#include <conio.h>
Programa final
#include <math.h>
void main () {
float A, B, C, X1, X2, Delta, Real, Imag;
printf ("Digite os coeficientes de uma equacao de 2o grau: ");
scanf ("%f%f%f", &A, &B, &C);
Delta = pow(B,2) - 4*A*C;
if (Delta >= 0) {
X1 = (-B + sqrt(Delta)) / (2*A);
X2 = (-B - sqrt(Delta)) / (2*A);
printf ("\nX1 = %g e X2 = %g", X1, X2);
}
else {
Real = -B / (2*A);
Imag = sqrt(-Delta) / (2*A);
printf ("\nX1 = (%g)+i(%g) e X2 = (%g)-i(%g)", Real, Imag, Real, Imag);
}
printf ("\n\nDigite algo: "); getch ();
Salvar e 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 inverter os dígitos de
um número:
Escrever e
executar um
programa para
ele
A leitura de c
pode ser feita
com getche
Cuidado para
não confundir
“=” com “==”
Exercício 1 do Lab 4: fluxograma para inverter os dígitos de
um número:
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 inverter os dígitos de
um número:
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 números
mágicos entre 1 e n (n deve ser digitado e lido)
Os números 3025 e 998001 são chamados de números mágicos,
pois:
Suas sequências de dígitos significativos podem ser
seccionadas em duas partes de iguais números de dígitos:
3025 → {30 e 25}
998001 → {998 e 001}
E além disso:
(30 + 25 = 55) e (55*55 = 3025)
(998 + 001 = 999) e (999*999 = 998001)
Exercício 2 do Lab 4: fluxograma para encontrar os números
mágicos entre 1 e n (n deve ser digitado e lido)
div ← 10 j/2
pow (10, j/2) é um
valor real
Não pode ser
atribuído à variável
inteira div
Usar:
(int) pow (10, j/2)
que faz a
conversão para
inteiro
Exercício 2 do Lab 4: fluxograma para encontrar os números
mágicos entre 1 e n (n deve ser digitado e lido)
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