Programação - Algoritmos

Page 1

Programação - Algoritmos


Algoritmo - Definição É uma sequência finita de instruções bem definidas e não ambíguas, cada uma das quais pode ser executada mecanicamente num período de tempo finito e com uma quantidade de esforço finita. O conceito de algoritmo é frequentemente ilustrado pelo exemplo de uma receita. Podem repetir passos (fazer iterações) ou necessitar de decisões (tais como comparações ou lógica).


Programa - Definição Um programa de computador é essencialmente um algoritmo que diz ao computador os passos específicos e em que ordem eles devem ser executados ETAPAS NA RESOLUÇÃO DE UM PROBLEMA


Algoritmo • Modo de preparo:

Quão cremoso?!?

▫ Bata a margarina, as gemas e o açúcar até ficar cremoso Quanto tempo?!? ▫ Junte o leite, o coco e a farinha e continue batendo ▫ Acrescente o fermento e, por último, as claras em neve De uma vez só?!? ▫ Unte uma forma com manteiga e leve ao forno para assar Quanto tempo?!?


Algoritmo – v2 • Modo de preparo: ▫ Bata a margarina, as gemas e o açúcar por 15 minutos ▫ Junte o leite, o coco e a farinha e continue batendo por mais 15 minutos ▫ Acrescente 20 g de fermento e, por último, as claras em neve ▫ Unte uma forma com manteiga e leve ao forno para assar por 30 minutos


Algoritmo • Troca de pneu (Fluxograma)

Abre porta-malas

Acessórios OK?

Não Fecha porta-malas

Sim

Pega triângulo


Algoritmo • Troca de pneu abre(porta_malas) Se acessorio_ok = FALSO Então fecha(porta_malas) espera_carona() Senão pega_triangulo()

...


Algoritmo • Problema da Torre de Hanói ▫ Seja a seguinte situação:  deve-se mover todos os discos do primeiro eixo para o terceiro mantendo-se a ordem original  em cada movimento, pode-se mover apenas um disco  um disco nunca poderá ser sobreposto por outro maior


Algoritmo: (Resolução) • Passo 1: mova disco menor para terceiro eixo


Algoritmo: (Resolução) • Passo 2: mova disco médio para segundo eixo


Algoritmo: (Resolução) • Passo 3: mova disco menor para segundo eixo


Algoritmo: (Resolução) • Passo 4: mova disco maior para terceiro eixo


Algoritmo: (Resolução) • Passo 5: mova disco menor para primeiro eixo


Algoritmo: (Resolução) • Passo 6: mova disco médio para terceiro eixo


Algoritmo: (Resolução) • Passo 7: mova disco menor para terceiro eixo


Algoritmo: • Seqüência de passos completa: Passo 1: mova disco menor para terceiro eixo Passo 2: mova disco médio para segundo eixo Passo 3: mova disco menor para segundo eixo Passo 4: mova disco maior para terceiro eixo Passo 5: mova disco menor para primeiro eixo Passo 6: mova disco médio para terceiro eixo Passo 7: mova disco menor para terceiro eixo


Estrutura geral de um Algoritmo


Variáveis Variável é a forma programática de identificar uma zona de memória do computador que pode ser consultada e alterada pelo Programa em execução. Tipos de Variáveis: Variáveis Numéricas Variáveis String Variáveis Booleanas Variáveis Data Variáveis Objeto Variáveis Variant


Variáveis Numéricas Integer: Valores inteiros entre –32768 e 32767 Long: Valores inteiros entre –2147483648 e 2147483647 Single: Valores Reais de precisão simples entre +/-1.401298E-45 Double: Valores Reais de precisão dupla entre e +/-3.402823E38


Variáveis String Uma sequência de caracteres

Variáveis Booleanas Só tem o resultado TRUE ou FALSE


Noções de Lógica • Proposição: é um enunciado verbal, ao qual deve ser atribuído, sem ambiguidade, um valor lógico verdadeiro (V) ou falso (F). ▫ Exemplos de proposições:  Robson Fidalgo é Professor (V)  3 + 5 = 10 (F)  5 < 8 (V) ▫ Contra-exemplos de Proposições:  Onde você vai ?  3+5  Os estudantes jogam voleibol. (quais ?)


Noções de Lógica • Operações Lógicas: são usadas para formar novas proposições a partir de proposições existentes. ▫ Considerando p e q duas proposições genéricas, pode-se aplicar as seguintes operações lógicas básicas sobre elas

▫ Definindo a prioridade:  Usar parênteses Ex:((p v q)^(~q)) ou  Obedecer (~) > (^) > (v)



Noções de Lógica • Exemplos de aplicação das operações lógica ▫ Considere:  p = 7 é primo = (V)  q = 4 é impar = (F) ▫ Então:  4 NÃO é impar = ~q = (~F) = (V)  7 NÃO é primo = ~p = (~V) = (F)  7 é primo E 4 NÃO é impar = p ^ ~q = (V ^ (~F)) = (V ^ V) = (V)  7 é primo E 4 é impar = p ^ q = (V ^ F) = (F)  4 é impar E 7 é primo = q ^ p = (F ^ V) = (F)  4 é impar E 7 NÃO é primo = q ^ ~p = (F ^ (~V)) = (F ^ F) = (F)


Noções de Lógica • Exemplos de aplicação das operações lógica (Cont.) ▫ Considere:  p = 7 é primo = (V)  q = 4 é impar = (F) ▫ Então:  7 é primo OU 4 NÃO é impar = p v ~q = (V v (~F)) = (V v V) = (V)  7 é primo OU 4 é impar = p v q = (V v F) = (V)  4 é impar OU 7 é primo = q v p = (F v V) = (V)  4 é impar OU 7 NÃO é primo = q v ~p = (F v (~V)) = (F v F ) = (F)


Noções de Lógica • Exemplos de aplicação das operações lógica ▫ Resumindo: p V V F F

q V F V F

~p F F V V

p^q V F F F

pvq V V V F

▫ Ou seja:  Não (~) troca o valor lógico. Se é F passa a ser V e vice-versa  E (^) só tem valor V quando as duas proposições forem V, basta uma proposição ser F para o resultado ser F  OU (v) só tem valor F quando as duas proposições forem F, basta uma proposição ser V para o resultado ser V


Atividade • Considerando p = V e q = F, resolva as seguintes expressões lógicas ▫ ~p ▫ ~q ▫ p^q ▫ pvq ▫ (~p) ^ q ▫ (~p) v q ▫ p ^ (~q) ▫ p v (~q) ▫ (~p) ^ (~q) ▫ (~p) v (~q)


RESPOSTAS • Considerando p = V e q = F, resolva as seguintes expressões lógicas ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫

~p = F ~q = V p^q=F pvq=V (~p) ^ q = F (~p) v q = F p ^ (~q) = V p v (~q) = V (~p) ^ (~q) = F (~p) v (~q) = V


Lógica de Programação e Algoritmo

O que é Programação de computadores?  INSTRUÇÕES


Instruções Delimitadoras • Servem para especificar o início e o fim do algoritmo. início ... fim


Declaração de Variáveis • Utilizado para especificar os nomes e os respetivos tipos das variáveis necessárias no algoritmo

declare <variáveis>: <tipo>; onde: <variáveis> - lista de nomes de variáveis separados por vírgula <tipo> - inteiro, real, caracter, string, lógico


Declaração de Variáveis • Exemplos: declare a,b,c: real; declare nome: string; declare sexo: caracter; declare pratica_esporte: lógico;


Bloco de Comentário • Serve para explicar um determinado trecho do algoritmo, para torná-lo mais claro, facilitando seu entendimento por outras pessoas ou posteriormente. { <comentário> } Exemplo: { Isto é um exemplo de comentário }


Instrução de Entrada • Usada para ler dados de entrada do algoritmo. leia(<variáveis>); onde: <variáveis> - conterão os dados lidos.


Instrução de Entrada • Exemplos: leia(a,b,c); leia(nome); leia(sexo); leia(pratica_esporte);


Instrução de Saída • Usada para mostrar os resultados do processamento dos dados de entrada. escreva(<resultados>); onde: <resultados> - geralmente é o conteúdo de uma ou mais variáveis com a resposta do problema.


Instrução de Saída • Exemplos: escreva(“O valor de D é: ”, D); escreva(nome, sexo); escreva(“Pratica esporte.”);


Instrução de Atribuição • Utilizado para atribuir um determinado valor a uma variável. <variável> <expressão>; onde: <variável> - nome de uma variável <expressão> - um valor do mesmo tipo da variável ou uma expressão lógica ou aritmética.


Instrução de Atribuição • Exemplos D B^2-4*A*C; nome “Paulo”; Pratica_Esporte Sexo ‘M’;

TRUE;



Estruturas de Controle • Baseado na lógica estruturada, Bohn e Jacopini provaram que apenas três estruturas são suficientes para explicar a solução de qualquer problema, inclusive tornando-os estruturados e mais legíveis.


Estruturas de Controle • São elas: ▫ Estrutura Sequencial: os comandos ou instruções vão sendo executados na ordem em que aparecem no algoritmo.


Estruturas de Controle • Estrutura de Repetição: comandos são executados repetidas vezes até que uma condição de parada seja satisfeita


Estruturas de Controle • Estrutura de Seleção: Conforme o resultado de uma expressão lógica, determinados comandos são executados e outros não, caracterizando assim uma seleção de comandos TRUE

FALSE


Instruções de Seleção • Tipo simples: se <sentença> então <comandos>; fim-se OBS.: <comandos> serão executados apenas se <sentença> resultar em TRUE.


Instruções de Seleção • Exemplo: se A>0 então B A + 1; A 0; fim-se


Instruções de Seleção • Tipo composto: se <sentença> então <comandos1>; senão <comandos2>; fim-se OBS.: <comandos1> serão executados apenas se <sentença> resultar em TRUE. Em caso contrário, <comandos2> serão executados.


Instruções de Seleção • Exemplo: se A>B então B A + 1; A 0; senão A 0; B A + 1; fim-se


Instruções de Repetição • Enquanto / Fim-Enquanto enquanto <sentença> faça <comandos>; fim-enquanto; OBS.: <comandos> serão executados enquanto <sentença> resultar em TRUE.


Instruções de Repetição • Exemplo: enquanto A>0 faça leia(B); escreva(B); A A - 1; fim-enquanto;


Instruções de Repetição • Repita / Até repita <comandos>; até <sentença>; OBS.: <comandos> serão executados até que <sentença> resulte em TRUE.


Instruções de Repetição • Exemplo: repita leia(B); escreva(B); A A - 1; até A<1;


Instruções de Repetição • Para / Até / Fim-Para para <variável> <comandos>; fim-para;

<inicial> até <final> faça

OBS.: <variável> - contador do tipo inteiro <inicial> - valor inicial da variável <final> - valor final da variável


Instruções de Repetição • Exemplo: { Comandos para escrever 10 vezes uma frase na tela do computador } para i 1 até 10 faça escreva(“Último tipo de repetição”); fim-para;


Estrutura de um Algoritmo • Um algoritmo em “Portugol” tem a seguinte estrutura: início <declaração de variáveis> <inicialização de variáveis> <corpo lógico do algoritmo> fim


Fluxogramas • Achar o valor da expressão: D = B2 - 4AC. Início

Ler A, B, C

1

D = B^2 - 4*A*C

1

Escrever D

Fim


Fluxogramas • Achar o maior de dois números A e B.

Início

Ler A, B

Comparar A com B

A=B Escrever: “A e B iguais”

A>B Escrever: “A é maior”

Fim

A<B Escrever: “B é maior”


Português Estruturado • Achar o valor da expressão: D = B2 - 4AC. Ler os valores de A, B e C Calcular a expressão D = B2 - 4AC Mostrar o resultado desse cálculo


Português Estruturado • Achar o maior de dois números A e B. Ler dois números A e B Comparar A com B Mostrar o resultado dessa comparação


Pseudocódigo • Achar o valor da expressão: D = B2 - 4AC. Início Declare A,B,C,D; { Declaração de variáveis } Leia(A,B,C); D B^2 - 4*A*C; { Operação de atribuição } Escreva(D); Fim.


Pseudocódigo • Achar o maior de dois números A e B. Início Declare A,B; { Declaração de variáveis } Leia(A,B); Se A = B Então Escreva(“A e B iguais”); Senão Se A>B Então Escreva(“A é maior”); Senão Escreva(“B é maior”); Fim-Se Fim-Se Fim.


Exercícios... 1) leia um número inteiro e mostre uma mensagem indicando se este número é par ou ímpar, e se é positivo ou negativo 2) leia quatro números inteiros e encontre a média aritmética simples entre as que correspondem a números pares. Lembrese que não pode haver divisão por zero 3) leia 4 notas, calcule a média dessas e escreva: Reprovado (média < 5), Recuperação (média >= 5 e < 7) e Aprovado (média >= 7)


mais exercícios... 4) leia a idade de um nadador e exiba sua categoria segundo as regras: A(5 até 7); B(8 até 10); C(11 até 13); D(14 até 18) e E( Idade > 18) 5) leia dois números inteiros, uma operação matemática (+,-,*,/) e faça o calculo destes números segundo a operação lida 6) leia o nome e a idade de três pessoas e informe o nome da pessoa mais velha e o nome da pessoa mais nova. Considere que não existem idades iguais


ainda mais exercícios... 7) leia os números inteiros A e B e informe se A é múltiplo, divisor ou nada de B 8) leia três números e mostre-os em ordem crescente 9) leia uma milhar e informe se esse número é palíndromo. Exemplos de números palíndromos: 9889, 7337 e 2002 10) leia um número inteiro entre 20 e 59 e mostre seu extenso. Exiba um erro se o número estiver fora do intervalo


Próximos passos? • Praticar a leitura e entendimento de Algoritmos de sua área de aplicação • Aprender uma Linguagem de Programação para Computadores • Programação!


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.