Introdução a Linguagem de Programação (1)

Preview:

DESCRIPTION

introdução sobre programação de computadores

Citation preview

Lógica Computacional

Prof. Cláudio da Silva

Fluxograma

É o gráfico que representa a seqüência de um trabalho,

produto ou documento, de forma analítica, caracterizando

as operações e os agentes executores.

Vantagens e Desvantagens

Possibilita a:

• simplificar o trabalho pela eliminação, combinação e redefinição de fases ou passos;

• visualizar, localizar, corrigir e eliminar os movimentos desnecessários;

• estudar, corrigir e obter a melhor seqüência

das fases necessárias;

• a chefia aplicar, de forma mais eficiente, as normas e as instruções traçadas.

Tipos de fluxogramas

Fluxograma sintético

Fluxograma de blocos

Fluxograma esqueleto

Fluxograma de

procedimentos

Fluxograma vertical e

horizontal

Não

Sim

INÍCIO

DEFINIR O

PROBLEMA

ANALISAR O

PROBLEMA

PARA

RESOL-

VER

ACHAR

SOLUÇÃO

POSSÍVEL

RESOLVE

PLANEJAR

SOLUÇÃO

IMPLANTAR

AVALIAR

FIM

REUNIR

MAIS

DADOS

GERAR

ALTERNATIVA

Não

Sim

1

1

Prof. Virginia PO04 6

Símbolos de Diagramas de Blocos e

Fluxogramas

Processamento

entrada /saída

decisão

Terminal

conexão

conexão de página

Fluxograma para Problemas Matemáticos

Fluxograma de Processos

Algoritmo e Português

Estruturado

IIa Parte

História

A palavra algoritmo origina-se no nome: Muhammad

ibn Musa al-Jwarizmi, que viveu no século IX.

Tentou preservar o conhecimento da antiga

Grécia

Seus livros eram de fácil compreensão, baseavam-

se na criação de novos teoremas com o objetivo

de simplificar a matemática.

Estudou a maneira de reduzir as operações que

formavam o cálculo.

A palavra ALGORITMO fazia referência as regras

de uso da aritmética utilizando dígitos árabes,

sendo uma derivação de al-Khwarizmi,

algobarismus, que mais tarde mudaria para a

palabra algoritmo en el siglo XVIII.

O que é Problema Computacional

Consiste em computar o valor de uma função para uma entrada

que satisfaça as especificações.

Ou seja, dada uma função f : A → B e uma entrada x que

pertence a A, computar y = f (x).

Definir um problema computacional é especificar a relação

entre entrada e saída.

Exemplo: x codifica um grafo direcionado G = (V , E), uma

função w : E → R com os pesos dos arcos, e dois vértices s e t. f

(x) é o caminho mais curto de s a t.

Necessidade de algoritmo para resolvê-lo

O que é um Algoritmo ?

Informalmente, um algoritmo é um procedimento

computacional bem-definido que toma como entrada um

valor (ou conjunto de valores) e produz como saída um valor

(ou conjunto de valores) com a solução de um problema

computacional.

Um algoritmo é uma seqüência de passos computacionais que

transforma entrada em saída.

Podemos ver um algoritmo como uma ferramenta para

resolver um problema computacional bem definido.

O que é um Algoritmo ?

Resolução de Problemas por

Computador

Resumindo, um algoritmo A resolve um problema P se, ao

receber qualquer instância I de P, sempre produzir uma

solução S para I.

A – algoritmo.

I – entrada (instância).

S – saída (resultado).

I S Para qualquer entrada I, o algoritmo deve ser executável em

tempo finito e, além disso, gerar uma solução correta de P.

Algoritmos

Resolução de Problemas por

Computador

ESTRUTURA GERAL DE UM ALGORITMO

Algoritmo (Nome-do-Algoritmo);

Declaração de constantes, tipos e variáveis;

Início

Seqüências de Comandos;

Fim.

Algoritmos

Resolução de Problemas por

Computador

ESTRUTURA GERAL DE UM ALGORITMO

Algoritmo (Nome-do-Algoritmo);

Declaração de constantes, tipos e variáveis;

Início

Atribuições

Comandos de E/S

Estruturas de controle

Seleção

Repetição Fim.

Algoritmos

Resolução de Problemas por

Computador

Constantes

Informação que não sofre variação no decorrer do tempo.

Ex: 5, “Não Fume”, 2548, -0,62, “R$10,00”, Falso.

Variáveis

Informação que tem a possibilidade de ser alterada em algum

instante no decorrer do tempo.

Ex: Cotação do dólar, peso de uma pessoa, salário.

Algoritmos

Resolução de Problemas por

Computador

Declaração de Variáveis e Constantes

Alocar espaço de memória do tamanho do tipo-de-dado e

dar um nome a este espaço;

Ao longo do programa, usa-se o nome dado ao invés do

valor.

CONST n=50;

VAR a, b, c, soma : TIPO;

Algoritmos

Resolução de Problemas por

Computador

Declaração de Variáveis e Constantes

Quando definir variáveis ?

Quando um elemento da lógica para a resolução do problema sofrer alterações de valor ao longo desta resolução.

Quando definir constantes ?

Quando uma valor fixo for utilizado várias vezes na lógica para a resolução do problema.

Algoritmos

Resolução de Problemas por

Computador

Tipos de Dados

Primitivos

INTEIRO

REAL

LÓGICO

CARACTERE

STRING

Definidos pelo programador

DISCIPLINA

FILA

PILHA

Algoritmos

Resolução de Problemas por

Computador

Expressões Aritméticas

Aquelas cujos operadores são aritméticos e cujos operandos são

constantes e/ou variáveis do tipo numérico (inteiro e/ou real).

Operadores Aritméticos

+ Adição * Multiplicação / Divisão

- Subtração ** Potenciação // Radiciação

mod ou % resto da divisão.

Algoritmos

Resolução de Problemas por

Computador

Funções Matemáticas

sen (x) - seno de x

cos(x) - cosseno de x

tg(x) - tangente de x

abs (x) - valor absoluto (módulo) de x

int (x) - parte inteira de um número real

Algoritmos

Resolução de Problemas por

Computador

Prioridades

parênteses mais internos

funções matemáticas

** //

* /

+ -

Algoritmos

Resolução de Problemas por

Computador

Expressões Relacionais

Comparação entre dois valores de um mesmo tipo primitivo.

Estes valores podem ser constantes, variáveis ou expressões

aritméticas.

O resultado obtido de uma relação é sempre um valor

lógico.

Operadores Relacionais

= igual a <> diferente de

> maior que >= maior igual a

< menor que <= menor igual a

Algoritmos

Resolução de Problemas por

Computador

Expressões Lógicas

Aquelas cujos operadores são lógicos e/ou relacionais e cujos

operandos são relações e/ou variáveis e/ou constantes do tipo

lógico.

Operadores Lógicos

e - Conjunção

ou - Disjunção (não-exclusiva)

xou - Disjunção (exclusiva)

não - negação

Algoritmos

Resolução de Problemas por

Computador

Prioridades entre todos os Operadores

parênteses mais internos

funções aritméticas

operadores aritméticos

operadores relacionais

operadores lógicos

Algoritmos

Resolução de Problemas por

Computador

ESTRUTURA GERAL DE UM ALGORITMO

Algoritmo (Nome-do-Algoritmo);

Declaração de constantes, tipos e variáveis;

Início

Atribuições

Comandos de E/S

Estruturas de controle

Seleção

Repetição Fim.

Algoritmos

Resolução de Problemas por

Computador

Atribuição

Fornece um valor a uma variável.

Ex: a 1;

sexo “FEMININO”;

salário 128,00;

Algoritmos

Resolução de Problemas por

Computador

ESTRUTURA GERAL DE UM ALGORITMO

Algoritmo (Nome-do-Algoritmo);

Declaração de constantes, tipos e variáveis;

Início

Atribuições

Comandos de E/S

Estruturas de controle

Seleção

Repetição Fim.

Algoritmos

Resolução de Problemas por

Computador

Comandos de Entrada e Saída

Exemplos do comando de entrada leia:

leia (x);

leia (a, nota, faltas);

Exemplos do comando de saída escreva:

escreva (x);

escreva (a, nota, faltas);

escreva („Bom Dia „, nome);

escreva („Você pesa „, x * 2, „quilos.‟);

Algoritmos

Resolução de Problemas por

Computador

ESTRUTURA GERAL DE UM ALGORITMO

Algoritmo (Nome-do-Algoritmo);

Declaração de constantes, tipos e variáveis;

Início

Atribuições

Comandos de E/S

Estruturas de controle

Seleção

Repetição Fim.

Algoritmos

Resolução de Problemas por

Computador

Estruturas de Controle de Fluxo

Seqüência

Seleção

simples

composta

encadeada

múltipla escolha

Repetição

Teste condicional no início

Número de repetições conhecido

Número de repetições desconhecido

Teste condicional no fim

Algoritmos

Resolução de Problemas por

Computador

Estruturas de Controle de Fluxo

Seqüência

início

<comando 1>;

<comando 2>;

<comando N>;

fim

Algoritmos

Resolução de Problemas por

Computador

Estruturas de Controle de Fluxo

Seleção simples início se <condição 1> então <comando 1>; <comando 2>; <comando N>; fim se fim

Algoritmos

Resolução de Problemas por

Computador

Estruturas de Controle de Fluxo

Seleção composta início se <condição 1> então <comando 1>; <comando 2>; <comando N>; senão <comando 1>; <comando 2>; <comando N>; fim se fim

Algoritmos

BLOCO

VERDADE

BLOCO FALSO

Resolução de Problemas por

Computador

Seleção composta início se <condição 1> então se <condição 2> então

<comando 1>; <comando N>; fim se senão se <condição 3> então

<comando 1>; <comando N>; senão

se <condição 4> então <comando 1>;

<comando N>; senão

<comando 1>; fim se <comando 1>; fim se fim se fim

Algoritmos

Resolução de Problemas por

Computador

Seleção de múltipla escolha

início

escolha (x)

caso VALOR1 : <comando 1>;

caso VALOR2 : <comando 2>;

caso VALOR3 : <comando N>;

fim escolha fim

Algoritmos

Resolução de Problemas por

Computador

Seleção de múltipla escolha

início

se <x = VALOR1> então <comando 1>; senão se <x = VALOR2> então

<comando 2>; senão

se <x = VALOR3> então <comando 3>;

fim se fim se fim se fim

Algoritmos

Resolução de Problemas por

Computador

Repetição

Usada em trechos do algoritmo em que há a

necessidade de se realizar um bloco de comando

um número determinado de vezes.

Algoritmos

Resolução de Problemas por

Computador

Repetição com teste no início (ENQUANTO-FAÇA)

Permite executar diversas vezes um trecho do algoritmo, porém, sempre verificando antes de cada execução se é “permitido” executar algum trecho.

enquanto (<condição1>) faça

<comando1>;

<comando2>;

<comandoN>;

fim enquanto

Quando o resultado da <condição1> for falso, o comando é abandonado.

Se já da primeira vez o resultado for falso, os comandos não são executados nem uma vez.

Algoritmos

Resolução de Problemas por

Computador

Repetição com teste no FINAL (REPITA-ATÉ)

repita

<comando1>;

<comando2>;

<comandoN>;

até (<condição1>)

O bloco de comandos é executado pelo menos uma vez, independente da

validade da <condição1>. Isto ocorre porque a inspeção da <condição1> é feita após a execução do bloco.

Algoritmos

Resolução de Problemas por

Computador

Repetição com variável de controle

(PARA)

para (V = vi; V <= vf; passo p) faça

<comando1>;

<comando2>;

<comandoN>;

fim para

Algoritmos

onde:

• V é a variável de controle;

• vi é o valor inicial de V;

• vf é o valor final de V, ou seja, o

valor até o qual ela pode chegar e;

• p é o valor do incremento dado a V.

Resolução de Problemas por

Computador

Comparação entre as estruturas de Repetição

Toda estrutura ENQUANTO pode ser convertida para REPITA e vice-e-

versa;

Toda estrutura PARA pode ser convertida em ENQUANTO, mas nem

toda estrutura ENQUANTO pode ser convertida em PARA.

Estrutura Condição Qtde de execuções Cond. de existência

Enquanto início ? condição verdadeira

Repita fim mínimo 1 condição falsa

Para implícita início (vf - vi) div p vi vf

Algoritmos

ALGUNS PROBLEMAS

PROBLEMA DE ACHAR O MENOR

Encontrar o menor dentre um conjunto de números.

PROBLEMA DE ACHAR O MENOR

ALGORITMO EncontraMenor;

VAR n, qtde-num, num, menor: INTEIRO;

INICIO

LER (n);

LER (num);

menor num;

qtde-num 1;

ENQUANTO (qtde-num < n)

LER (num);

SE num < menor

menor num;

FIM-SE;

qtde-num qtde-num +1;

FIM-ENQUANTO;

ESCREVER (menor);

FIM.

PROBLEMA DE ACHAR O MENOR E O MAIOR

Encontrar o menor e o maior dentre um conjunto de números.

ALGORITMO EncontraMenorMaior;

VAR n, qtde-num, num, menor, maior: INTEIRO;

INICIO

LER (n);

LER (num);

menor num;

maior num;

qtde-num 1;

ENQUANTO (qtde-num < n)

LER (num);

SE num < menor

menor num;

SENAO SE num > maior

maior num;

FIM-SE;

qtde-num qtde-num +1;

FIM-ENQUANTO;

ESCREVER (menor, maior);

FIM.

PROBLEMA DE ACHAR O MENOR E O MAIOR

PROBLEMA DO AZARÃO

Fazer um programa que escreva os 100 primeiros múltiplos de 13.

ALGORITMO Azarao;

CONST n = 100;

VAR num, cont: INTEIRO;

INICIO

num 13;

cont 1;

ENQUANTO cont < 100

ESCREVA (num);

num num +13;

cont cont +1;

FIM-ENQUANTO;

FIM.

PROBLEMA DO AZARÃO

ALGORITMO Azarao;

CONST n = 100;

VAR num, cont: INTEIRO;

INICIO

num 13;

cont 1;

REPITA

ESCREVA (num);

num num +13;

cont cont +1;

ATE cont > 100;

FIM.

PROBLEMA DO AZARÃO

PROBLEMA DO VÍCIO

Calcule e mostre a despesa diária, semanal e mensal de uma pessoa com cigarros, dados o número de cigarros que ela fuma por dia e o

preço do maço de cigarros que ela fuma.

ALGORITMO Vicio;

VAR num-c-dia : INTEIRO;

preco-m, preco-c,

despesa-d, despesa-s, despesa-m: REAL;

INICIO

ESCREVA (‘Quantos cigarros vc fuma por dia?’);

LER (num-c-dia);

ESCREVA (‘Quanto custa o maco de cigarros que vc fuma?’);

LER (preco-m);

preco-c preco-m/20;

despesa-d preco-c * num-c-dia;

despesa-s despesa-d * 7;

despesa-m despesa-d * 30;

ESCREVA (‘Sua despesa com cigarros diária, semanal e mensal eh: ‘

despesa-d, despesa-s, despesa-m);

FIM.

PROBLEMA DO VÍCIO

PROBLEMA DO FATORIAL DE UM NÚMERO

Calcule o fatorial de 5.

E para um n qualquer ?

ENUNCIADO DO PROBLEMA: Calcular o fatorial de 5.

PARÂMETROS: n

RESTRIÇÕES: n Z+

SOLUÇÃO: result = n.(n-1).(n-2). ... .2.1

INSTÂNCIA: n=5

SOLUÇÃO_DA_INSTÂNCIA: result=5.4.3.2.1=120

PROBLEMA DO FATORIAL DE UM NÚMERO

ALGORITMO Fatorial;

VAR fat, i : INTEIROS;

INICIO

fat = 1;

PARA i := 2 a n FAÇA

fat := fat * i;

END;

MOSTRE fat;

FIM.

PROBLEMA DO FATORIAL DE UM NÚMERO

PROBLEMA SOBRE A SÉRIE DE FIBONACCI

Calcule o n-ésimo termos da série de Fibonacci.

ENUNCIADO DO PROBLEMA: Mostrar o n-ésimo termo da Série de Fibonacci.

PARÂMETROS: n

RESTRIÇÕES: n Z+

SOLUÇÃO: result = n-ésimo termo

INSTÂNCIA: n=5

SOLUÇÃO_DA_INSTÂNCIA: result=3

PROBLEMA SOBRE A SÉRIE DE FIBONACCI

ALGORITMO Fibonacci;

VAR i, fib,fib1,fib2,n : INTEIRO;

INICIO

SE n = 1 RETURN 0; SENAO SE n = 2 RETURN 1; fib1 := 1; fib2 := 0; PARA i := 3 a N FAÇA fib := fib1 + fib2; fib2 := fib1; fib1 := fib; FIM-PARA; MOSTRE fib;

FIM.

PROBLEMA SOBRE A SÉRIE DE FIBONACCI

ALGORITMO Fibonacci-v2;

VAR i, fib,fib1,fib2,n : INTEIRO;

INICIO

SE n <= 2 RETURN n; fib1 := 1; fib2 := 0; PARA i := 3 a N FAÇA fib := fib1 + fib2; fib2 := fib1; fib1 := fib; FIM-PARA; MOSTRE fib;

FIM.

PROBLEMA SOBRE A SÉRIE DE FIBONACCI

PROBLEMA DOS APROVADOS

Dado um conjunto de n notas de alunos, contar o número de alunos que foram aprovados.

Considera-se aprovado o aluno que obteve nota igual ou maior que 5.0.

Solução

PROBLEMA DA AVALIAÇÃO

Fornecer a média aritmética simples das n notas de um aluno, indicando também sua

situação final (média>=9 excelente, média>=7 bom, média>=5 regular, média<5 insuficiente).

FIM

Ia Parte de Lógica Computacional

Recommended