190 likes | 358 Views
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014. Capítulo IV Fluxogramas. if (Condição) Comandos 1 else Comandos 2. Fluxogramas foram usados para descrever comandos condicionais e repetitivos:. if (Condição) Comandos. F. Condição. Comandos. do Comandos
E N D
CES-10 INTRODUÇÃO À COMPUTAÇÃOAulas Práticas – 2014 Capítulo IV Fluxogramas
if (Condição) Comandos 1 else Comandos 2 Fluxogramas foram usados para descrever comandos condicionais e repetitivos: if (Condição) Comandos F Condição Comandos do Comandos while (Condição); V V F F Condição Condição while (Condição) Comandos V Comandos V Condição Dentro dos comandos: variável = expressão; scanf (--------); printf (--------); Condicionais e repetitivos Comandos 2 Comandos 1 Comandos 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
aux 48728 10 Exemplo: fluxograma para inverter os dígitos de um número • Método: ilustrado com a inversão do número 48728 para 82784 8 4872 10 2 487 10 7 48 10 inv 8 4 10 0 * 10 + 8 4 0 8 * 10 + 2 aux 82 * 10 + 7 827 * 10 + 8 aux = num; inv = 0; while (aux != 0) { inv = 10 * inv + aux % 10; aux = aux/10; } num 8278 * 10 + 4 48728 inv 82784
Fluxograma: aux = num; inv = 0; while (aux != 0) { inv = 10 * inv + aux % 10; aux = aux/10; } ← : sinal de atribuição
#include <stdio.h> - Usa scanf e printf #include <stdlib.h> - Usa system para encerrar int main () { - - - } Tradução do fluxograma para a Linguagem C Copiar para salvar e executar posteriormente
if, if-else, while ou do-while? 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?
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
Programa final #include <stdio.h> #include <stdlib.h> 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'); } printf ("\n\n"); system ("pause"); return 0; } 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 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