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
Download

comandos