ces-10 introduÇÃo À computaÇÃo aulas práticas – 2013 capítulo iv fluxogramas

18
CES-10 INTRODUÇÃO À CES-10 INTRODUÇÃO À COMPUTAÇÃO COMPUTAÇÃO Aulas Práticas – 2013 Aulas Práticas – 2013 Capítulo IV Capítulo IV Fluxogramas Fluxogramas

Upload: internet

Post on 22-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

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

Aulas Práticas – 2013Aulas Práticas – 2013

Capítulo IV Capítulo IV

FluxogramasFluxogramas

Page 2: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

Fluxogramas foram usados para descrever Fluxogramas foram usados para descrever comandos condicionais e repetitivos:comandos condicionais e repetitivos:

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

Dentro dos comandos:

variável = expressão;scanf (--------); printf (--------);Condicionais e repetitivos

Page 3: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

FluxogramasFluxogramas podem ser considerados como uma podem ser considerados como uma linguagemlinguagem para descrição de para descrição de algoritmosalgoritmos

Algoritmo: Algoritmo: sequência finita e ordenadasequência finita e ordenada de de passospassos (comandos executáveis e não ambíguos), que levam (comandos executáveis e não ambíguos), que levam à aplicação de um à aplicação de um métodométodo para a execução de uma para a execução de uma tarefatarefa ou resolução de um ou resolução de um problemaproblema

Além de computadores, Além de computadores, outras entidadesoutras entidades podem podem executar algoritmos executar algoritmos

Muitas atividades rotineiras dos Muitas atividades rotineiras dos seres humanosseres humanos podem ser descritas por algoritmopodem ser descritas por algoritmoss

Uma vez escrito o Uma vez escrito o algoritmo algoritmo para computadores, para computadores, ele então é ele então é traduzidotraduzido para uma para uma linguagem de linguagem de programaçãoprogramação

Page 4: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

Exemplo: raizes da equação do 2º grau AxExemplo: raizes da equação do 2º grau Ax2 2 + + Bx + C = 0Bx + C = 0

← : sinal de atribuição

Page 5: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

Blocos dos fluxogramas:Blocos dos fluxogramas:

Círculo: início e final do algoritmo

Retângulo: comandos (atribuição ou chamada de subprograma) a serem executados sequencialmenteLosango: 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

Page 6: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

#include <stdio.h> - Usa scanf e printf#include <stdio.h> - Usa scanf e printf

#include <conio.h> - Usa o getch para #include <conio.h> - Usa o getch para encerrarencerrar

#include <math.h> - B#include <math.h> - B22 usa pow; raiz usa pow; raiz quadrada usa sqrtquadrada usa sqrt

void main () {void main () {

- - -- - -

}}

Tradução do fluxograma para a Linguagem C

Digitar para salvar e executar posteriormente

Page 7: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

float A, B, C, X1, X2, Delta, Real, Imag;float A, B, C, X1, X2, Delta, Real, Imag;

printf (“Digite os coeficientes de uma equacao de printf (“Digite os coeficientes de uma equacao de 2o grau: ”);2o grau: ”);

scanf (“%f%f%f”, &A, &B, &C);scanf (“%f%f%f”, &A, &B, &C);

Delta = pow(B,2) – 4*A*C;Delta = pow(B,2) – 4*A*C;

if (Delta >= 0) {if (Delta >= 0) {

- - - - -- - - - -

}}

else {else {

- - - - -- - - - -

}}

printf (“\n\nDigite algo: ”);printf (“\n\nDigite algo: ”);

getch ();getch ();

No escopo de main

O fluxograma não precisa estar amigável, mas o programa sim

Page 8: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

if (Delta >= 0) {if (Delta >= 0) {

X1 = (-B + sqrt(Delta)) / (2*A); X1 = (-B + sqrt(Delta)) / (2*A);

X2 = (-B - sqrt(Delta)) / (2*A); X2 = (-B - sqrt(Delta)) / (2*A);

printf (- - - - -);printf (- - - - -);

}}

else {else {

Real = -B / (2*A);Real = -B / (2*A);

Imag = sqrt(-Delta) / (2*A);Imag = sqrt(-Delta) / (2*A);

printf (- - - - -);printf (- - - - -);

}}

Page 9: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

if (Delta >= 0) {- - - - -if (Delta >= 0) {- - - - -

printf (“X1 = ”, X1, “ e X2 = ”, X2);printf (“X1 = ”, X1, “ e X2 = ”, X2);

}}

else {- - - - -else {- - - - -

printf (“X1 = (”, Real, “)+i(”, Imag, “) e X2 = printf (“X1 = (”, Real, “)+i(”, Imag, “) e X2 = (”, Real, “)-i(”, (”, Real, “)-i(”, Imag, “)”);Imag, “)”);

}}

As chamadas de printf contém os elementos a serem escritos

Não estão escritas em C

Page 10: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

printf (“X1 = ”, X1, “ e X2 = ”, X2);printf (“X1 = ”, X1, “ e X2 = ”, X2);

printf (“\nX1 = %g e X2 = %g”, X1, X2);printf (“\nX1 = %g e X2 = %g”, X1, X2);

printf (“X1 = (”, Real, “)+i(”, Imag, “) e X2 = (”, printf (“X1 = (”, Real, “)+i(”, Imag, “) e X2 = (”, Real, “)-i(”, Real, “)-i(”, Imag, “)”);Imag, “)”);

printf (“\nX1 = (%g)+i(%g) e X2 = (%g)-i(%g)”, printf (“\nX1 = (%g)+i(%g) e X2 = (%g)-i(%g)”, Real, Imag, Real, Imag, Real, Imag);Real, Imag);

Page 11: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

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

#include <conio.h>#include <conio.h>

#include <math.h>#include <math.h>

void main () {void main () {

float A, B, C, X1, X2, Delta, Real, Imag;float A, B, C, X1, X2, Delta, Real, Imag;

printf ("Digite os coeficientes de uma equacao de 2o grau: ");printf ("Digite os coeficientes de uma equacao de 2o grau: ");

scanf ("%f%f%f", &A, &B, &C);scanf ("%f%f%f", &A, &B, &C);

Delta = pow(B,2) - 4*A*C;Delta = pow(B,2) - 4*A*C;

if (Delta >= 0) {if (Delta >= 0) {

X1 = (-B + sqrt(Delta)) / (2*A);X1 = (-B + sqrt(Delta)) / (2*A);

X2 = (-B - sqrt(Delta)) / (2*A);X2 = (-B - sqrt(Delta)) / (2*A);

printf ("\nX1 = %g e X2 = %g", X1, X2);printf ("\nX1 = %g e X2 = %g", X1, X2);

}}

else {else {

Real = -B / (2*A);Real = -B / (2*A);

Imag = sqrt(-Delta) / (2*A);Imag = sqrt(-Delta) / (2*A);

printf ("\nX1 = (%g)+i(%g) e X2 = (%g)-i(%g)", Real, Imag, printf ("\nX1 = (%g)+i(%g) e X2 = (%g)-i(%g)", Real, Imag, Real, Imag);Real, Imag);

}}

printf ("\n\nDigite algo: "); getch ();printf ("\n\nDigite algo: "); getch ();

}}

Programa final

Salvar e executar

Page 12: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

Exercício:Exercício: Escrever e executar um Escrever e executar um programa programa em Cem C para o seguinte para o seguinte fluxogramafluxograma destinado destinado a calcular a a calcular a soma dos dígitos ímparessoma dos dígitos ímpares de de vários números positivos lidos:vários números positivos lidos:

Todas as variáveis são inteiras

O programa deve ser amigável

É necessário discernir qual o comando correspondente a cada losango:

if-sem-elseif-elsewhiledo-while

Page 13: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

Exercício 1 do Lab 4: Exercício 1 do Lab 4: fluxograma para inverter fluxograma para inverter os dígitos de um número: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 “==”

Page 14: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

Exercício 1 do Lab 4: Exercício 1 do Lab 4: fluxograma para inverter fluxograma para inverter os dígitos de um número: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

Page 15: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

Exercício 1 do Lab 4: Exercício 1 do Lab 4: fluxograma para inverter fluxograma para inverter os dígitos de um número: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

Page 16: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

Exercício 2 do Lab 4: Exercício 2 do Lab 4: fluxograma para encontrar fluxograma para encontrar os números mágicos entre 1 e os números mágicos entre 1 e n (n n (n deve ser deve ser digitado e lidodigitado e lido))

Os números Os números 30253025 e e 998001998001 são chamados de são chamados de números mágicos, pois:números mágicos, pois:

Suas sequências de dígitos significativos podem Suas sequências de dígitos significativos podem ser seccionadas em duas partes de iguais ser seccionadas em duas partes de iguais números de dígitos:números de dígitos:

3025 → {30 3025 → {30 e e 25}25}

998001 → {998 998001 → {998 e e 001}001}

E além disso:E além disso:

(30 + 25 = 55)(30 + 25 = 55) e ( e (55*55 = 3025)55*55 = 3025)

(998 + 001 = 999) (998 + 001 = 999) e e (999*999 = 998001)(999*999 = 998001)

Page 17: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

Exercício 2 do Lab 4: Exercício 2 do Lab 4: fluxograma para fluxograma para encontrar os números mágicos entre 1 e encontrar os números mágicos entre 1 e n (n n (n deve ser digitado e lidodeve 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

Page 18: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IV Fluxogramas

Exercício 2 do Lab 4: Exercício 2 do Lab 4: fluxograma para fluxograma para encontrar os números mágicos entre 1 e encontrar os números mágicos entre 1 e n (n n (n deve ser digitado e lidodeve 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