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

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

Upload: internet

Post on 21-Apr-2015

107 views

Category:

Documents


2 download

TRANSCRIPT

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

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

Aulas Práticas – 2014Aulas Práticas – 2014

Capítulo IV Capítulo IV

FluxogramasFluxogramas

Page 2: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 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 – 2014 Capítulo IV Fluxogramas

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

Uma vez escrito o Uma vez escrito o fluxogramafluxograma, 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 – 2014 Capítulo IV Fluxogramas

Exemplo: Exemplo: fluxograma para inverter os dígitos de fluxograma para inverter os dígitos de um númeroum número

Método: ilustrado com a inversão do Método: ilustrado com a inversão do número 48728 para 82784número 48728 para 82784

48728 10

8 4872 10

2 487 10

7 48 10

8 4 10

4 0* 10 +

88 * 10 + 282 * 10 +

7827 * 10 + 88278 * 10 +

4 82784

0

48728numaux

inv

aux

inv

aux = num; inv = 0;while (aux != 0) { inv = 10 * inv + aux % 10; aux = aux/10;}

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

Fluxograma:Fluxograma:

← : sinal de atribuição

aux = num; inv = 0;while (aux != 0) { inv = 10 * inv + aux % 10; aux = aux/10;}

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

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

#include <stdlib.h> - Usa #include <stdlib.h> - Usa systemsystem para para encerrarencerrar

int main () {int main () {

- - -- - -

}}

Tradução do fluxograma para a Linguagem C

Copiar para salvar e executar posteriormente

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

int num, aux, inv; char c, int num, aux, inv; char c, lixolixo;;

printf ("INVERSAO DE NUMEROS:");printf ("INVERSAO DE NUMEROS:");

printf ("\n\nInverter numero? (s/n): ");printf ("\n\nInverter numero? (s/n): ");

No escopo de main

if, if-else, while ou do-while?

Detalhes da manipulação do buffer do teclado não precisam aparecer no fluxograma

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

int num, aux, inv; char c, int num, aux, inv; char c, lixolixo;;

printf ("INVERSAO DE NUMEROS:");printf ("INVERSAO DE NUMEROS:");

printf ("\n\nInverter numero? (s/n): ");printf ("\n\nInverter numero? (s/n): ");

do do

- - - - - - - - - - - - - - - -

while (- - - - -);while (- - - - -);

while (- - - - -) {while (- - - - -) {

- - - - -- - - - -

}}

printf ("\n\n");printf ("\n\n");

system ("pause");system ("pause");

return 0;return 0;

if, if-else, while ou do-while?

if, if-else, while ou do-while?

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

int num, aux, inv; char c, int num, aux, inv; char c, lixolixo;;

printf ("INVERSAO DE NUMEROS:");printf ("INVERSAO DE NUMEROS:");

printf ("\n\nInverter numero? (s/n): ");printf ("\n\nInverter numero? (s/n): ");

do do

scanf ("%c%c", &c, &lixo); scanf ("%c%c", &c, &lixo);

while (c != 's' && c != 'n' && c != 'S' && c != 'N');while (c != 's' && c != 'n' && c != 'S' && c != 'N');

while (- - - - -) {while (- - - - -) {

- - - - -- - - - -

}}

printf ("\n\n");printf ("\n\n");

system ("pause");system ("pause");

return 0;return 0;

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

int num, aux, inv; char c, int num, aux, inv; char c, lixolixo;;

printf ("INVERSAO DE NUMEROS:");printf ("INVERSAO DE NUMEROS:");

printf ("\n\nInverter numero? (s/n): ");printf ("\n\nInverter numero? (s/n): ");

do do

scanf ("%c%c", &c, &lixo); scanf ("%c%c", &c, &lixo);

while (c != 's' && c != 'n' && c != 'S' && c != 'N');while (c != 's' && c != 'n' && c != 'S' && c != 'N');

while (- - - - -) {while (- - - - -) {

- - - - -- - - - -

}}

printf ("\n\n");printf ("\n\n");

system ("pause");system ("pause");

return 0;return 0;

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

while (c == 's' || c == 'S') {while (c == 's' || c == 'S') {

printf ("\n\tDigite o numero: "); printf ("\n\tDigite o numero: ");

scanf("%d%c", &num, &lixo);scanf("%d%c", &num, &lixo);

aux = num; inv = 0;aux = num; inv = 0;

while (aux != 0) {while (aux != 0) {

inv = 10 * inv + aux % 10; aux = aux/10;inv = 10 * inv + aux % 10; aux = aux/10;

}}

- - - - -- - - - -

}}

Feito anteriormente

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

while (c == 's' || c == 'S') {while (c == 's' || c == 'S') {

printf ("\n\tDigite o numero: "); printf ("\n\tDigite o numero: ");

scanf("%d%c", &num, &lixo);scanf("%d%c", &num, &lixo);

aux = num; inv = 0;aux = num; inv = 0;

while (aux != 0) {while (aux != 0) {

inv = 10 * inv + aux % 10; aux = aux/10;inv = 10 * inv + aux % 10; aux = aux/10;

}}

- - - - -- - - - -

}}

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

while (c == 's' || c == 'S') {while (c == 's' || c == 'S') {

printf ("\n\tDigite o numero: "); printf ("\n\tDigite o numero: ");

scanf("%d%c", &num, &lixo);scanf("%d%c", &num, &lixo);

aux = num; inv = 0;aux = num; inv = 0;

while (aux != 0) {while (aux != 0) {

inv = 10 * inv + aux % 10; aux = aux/10;inv = 10 * inv + aux % 10; aux = aux/10;

}}

printf ("\n\t%d invertido torna-se %d", num, inv);printf ("\n\t%d invertido torna-se %d", num, inv);

printf ("\n\nInverter numero? (s/n): ");printf ("\n\nInverter numero? (s/n): ");

dodo

scanf ("%c%c", &c, &lixo);scanf ("%c%c", &c, &lixo);

while (c != 's' && c != 'n' && c != 'S' && c != 'N');while (c != 's' && c != 'n' && c != 'S' && c != 'N');

}}

Repetição de código anterior

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

#include <stdio.h>#include <stdio.h>#include <stdlib.h>#include <stdlib.h>int main () {int main () {

int num, aux, inv; char c, lixo;int num, aux, inv; char c, lixo; printf ("INVERSAO DE NUMEROS:");printf ("INVERSAO DE NUMEROS:"); printf ("\n\nInverter numero? (s/n): ");printf ("\n\nInverter numero? (s/n): "); do scanf ("%c%c", &c, &lixo);do scanf ("%c%c", &c, &lixo); while (c != 's' && c != 'n' && c != 'S' && c != 'N');while (c != 's' && c != 'n' && c != 'S' && c != 'N');

while (c == 's' || c == 'S') {while (c == 's' || c == 'S') { printf ("\n\tDigite o numero: "); scanf("%d%c", &num, printf ("\n\tDigite o numero: "); scanf("%d%c", &num,

&lixo);&lixo);aux = num; inv = 0;aux = num; inv = 0;while (aux != 0) {while (aux != 0) {

inv = 10 * inv + aux % 10; aux = aux/10;inv = 10 * inv + aux % 10; aux = aux/10;}}printf ("\n\t%d invertido torna-se %d", num, inv);printf ("\n\t%d invertido torna-se %d", num, inv);

printf ("\n\nInverter numero? (s/n): ");printf ("\n\nInverter numero? (s/n): "); do scanf ("%c%c", &c, &lixo);do scanf ("%c%c", &c, &lixo); while (c != 's' && c != 'n' && c != 'S' && c != 'N');while (c != 's' && c != 'n' && c != 'S' && c != 'N');

}}printf ("\n\n"); system ("pause"); return 0;printf ("\n\n"); system ("pause"); return 0;

}}

Programa final

Salvar e executar

Page 15: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 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 16: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo IV Fluxogramas

Exercício 1 do Exercício 1 do Lab 4: Lab 4: fluxograma fluxograma para encontrar para encontrar os divisores de os divisores de vários números vários números lidos: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

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

Exercício 1 do Exercício 1 do Lab 4: Lab 4: fluxograma fluxograma para encontrar para encontrar os divisores de os divisores de vários números vários números lidos:lidos:No fluxograma não

aparece o fechamento da tela

Deixar a saída no vídeo com certa estética

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

Exercício 2 do Lab Exercício 2 do Lab 4: 4: fluxograma para fluxograma para encontrar os encontrar os MMC’s de vários MMC’s de vários pares de números pares de números lidoslidosEscrever 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