conceitos fundamentais-de-algoritmos

94
Conceitos Fundamentais de Algoritmos e Programação para iniciantes [email protected] REFERÊNCIA: Material dos Profs. Reinaldo Gomes (UFRPE) e Robson Fidalgo (UFPE) www.xiscanoe.org

Upload: vando-junqueira

Post on 13-Apr-2017

158 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Conceitos fundamentais-de-algoritmos

Conceitos Fundamentais de Algoritmos

e Programação para [email protected]

REFERÊNCIA: Material dos Profs. Reinaldo Gomes (UFRPE) e Robson Fidalgo (UFPE)

www.xiscanoe.org

Page 2: Conceitos fundamentais-de-algoritmos

Algoritmo Textual Informal

• Modo de preparo:– Bata a margarina, as gemas e o açúcar até ficar

cremoso– Junte o leite, o coco e a farinha e continue

batendo– Acrescente o fermento e, por último, as claras em

neve– Unte uma forma com manteiga e leve ao forno

para assar

Quão cremoso?!?

De uma vez só?!?

Quanto tempo?!?

Quanto tempo?!?

Page 3: Conceitos fundamentais-de-algoritmos

• 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 Textual Informal Refinado

Page 4: Conceitos fundamentais-de-algoritmos

Algoritmo Gráfico-Textual Informal

• Montagem de um Aeromodelo– Material

• Cola especial para plásticos• Estilete• Lixas finas• Durex ou fita crepe• Pregador de roupas, elásticos

Page 5: Conceitos fundamentais-de-algoritmos

• Identificação das peças

Algoritmo Gráfico-Textual Informal

Page 6: Conceitos fundamentais-de-algoritmos

• Instruções– Leia e entenda as instruções antes de começar a

montagem– Lave as peças com água e detergente. Na lavagem

serão removidos desmoldantes e sujeiras, que dificultam a colagem e a pintura. Faça isto dentro de uma bacia, para evitar perder peças pequenas, que porventura se soltem

– Encontre as peças que devem ser usadas na primeira parte da montagem (figura do slide anterior)

– Lixe as peças com cuidado eliminando as rebarbas– ...

Algoritmo Gráfico-Textual Informal

Page 7: Conceitos fundamentais-de-algoritmos

• Troca de pneu“Abra o porta-mala e verifique se todos

acessórios estão lá. Em caso negativo, feche o porta-malas e peça carona a alguém. Em caso positivo, retire o triângulo, posicione-o a cerca de 30 m do carro, e, depois, retire o estepe e o macaco. Levante o carro... “

Algoritmo Textual Informal 2

Page 8: Conceitos fundamentais-de-algoritmos

• Troca de pneu

Algoritmo Gráfico Informal

Page 9: Conceitos fundamentais-de-algoritmos

Acessórios OK?

Abre porta-malas

Pega triângulo

Fecha porta-malas

• Troca de pneu (Fluxograma)

Algoritmo Gráfico Semi-formal

Não

Sim

Page 10: Conceitos fundamentais-de-algoritmos

• Troca de pneu

abre(porta_malas) Se acessorio_ok = FALSO Então fecha(porta_malas) espera_carona() Senão pega_triangulo()

...

Algoritmo Textual Formal

Page 11: Conceitos fundamentais-de-algoritmos

• 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: Problemas Complexos

Page 12: Conceitos fundamentais-de-algoritmos

• Passo 1:mova disco menor para terceiro eixo

Algoritmo: Problemas Complexos

Page 13: Conceitos fundamentais-de-algoritmos

• Passo 2:mova disco médio para segundo eixo

Algoritmo: Problemas Complexos

Page 14: Conceitos fundamentais-de-algoritmos

• Passo 3:mova disco menor para segundo eixo

Algoritmo: Problemas Complexos

Page 15: Conceitos fundamentais-de-algoritmos

• Passo 4:mova disco maior para terceiro eixo

Algoritmo: Problemas Complexos

Page 16: Conceitos fundamentais-de-algoritmos

• Passo 5:mova disco menor para primeiro eixo

Algoritmo: Problemas Complexos

Page 17: Conceitos fundamentais-de-algoritmos

• Passo 6:mova disco médio para terceiro eixo

Algoritmo: Problemas Complexos

Page 18: Conceitos fundamentais-de-algoritmos

• Passo 7:mova disco menor para terceiro eixo

Algoritmo: Problemas Complexos

Page 19: Conceitos fundamentais-de-algoritmos

• 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 eixoPasso 4: mova disco maior para terceiro eixoPasso 5: mova disco menor para primeiro eixoPasso 6: mova disco médio para terceiro eixoPasso 7: mova disco menor para terceiro eixo

Algoritmo: Problemas Complexos

Page 20: Conceitos fundamentais-de-algoritmos

Algoritmo: CONCEITO• O que é um ALGORITMO?

• OBS.: Não existe um algoritmo para construir algoritmos

– a criação de um algoritmo é um exercício de criatividade (conhecimento) e experiência (técnica e prática)

Page 21: Conceitos fundamentais-de-algoritmos

O que é Programação? = ABSTRAÇÃO!

A realidade é complexa e rica em detalhes!

Page 22: Conceitos fundamentais-de-algoritmos

Abstração

RealidadeRealidade

O que você O que você abstraiabstrai dessa realidade? dessa realidade?

Page 23: Conceitos fundamentais-de-algoritmos

Abstração

O que é abstração?

Page 24: Conceitos fundamentais-de-algoritmos

Abstração

Abstração=

Operação mental que observa a realidade e

captura apenas os aspectos relevantes

para um contexto

Page 25: Conceitos fundamentais-de-algoritmos
Page 26: Conceitos fundamentais-de-algoritmos
Page 27: Conceitos fundamentais-de-algoritmos
Page 28: Conceitos fundamentais-de-algoritmos

MASLOW

Page 29: Conceitos fundamentais-de-algoritmos

• A tarefa de programar sistemas computacionais envolve o exercício constante da abstração da realidade e sua codificação em uma linguagem de programação

Abstração

RealidadeRealidade

Sistema de Locadora de VeículoSistema de Locadora de Veículo

AbstraçãoAbstração++

ProgramaçãoProgramação

Page 30: Conceitos fundamentais-de-algoritmos

Sistema Computacional

O que é um Sistema Computacional?

Page 31: Conceitos fundamentais-de-algoritmos

Sistema Computacional

Sistema Computacional

Software Hardware

Peopleware

Page 32: Conceitos fundamentais-de-algoritmos

Programação de Sistema Computacional

• A programação de um sistema computacional pode ser resumida em 3 passos básicos

ProcessamentoEntrada Saída

Dispositivode Entrada

Dispositivode Saída

Memória

UCP

Page 33: Conceitos fundamentais-de-algoritmos

Programação de Sistema Computacional

• Exemplo 1 – Exibir a média de dois números

ProcessamentoEntrada Saída

Dispositivode Entrada

Dispositivode Saída

Memória

UCP

6 , 8 (6 + 8) / 2 7

Page 34: Conceitos fundamentais-de-algoritmos

Programação de Sistema Computacional

• Exemplo 2 – Exibir se o aluno está aprovado ou reprovado

ProcessamentoEntrada Saída

Dispositivode Entrada

Dispositivode Saída

Memória

UCP

Ana, 5, 3 Se (5+3)/2>=7 aprovadoSenão reprovado

Ana, reprovado

Page 35: Conceitos fundamentais-de-algoritmos

Programação de Sistema Computacional• Tipos de Linguagens de Programação

– 1 - Totalmente codificadas em binário (0´s e 1´s)– 2 - Usa instruções simbólicas para representar os 0´s e 1´s– 3 - Voltadas para facilitar o raciocínio humano

Linguagem

Assembly

( Mnem ô nica )

LOAD R1, val1

LOAD R2, val2

ADD R1, R2

STORE R1, val2

Linguagem

de

M á quina

0010 0001 1110

0010 0010 1111

0001 0001 0010

0011 0001 1111

Linguagem

de

Alto N í vel

val2 = val1+val2

Baixo Nível Alto Nível

(1) (2) (3)

Page 36: Conceitos fundamentais-de-algoritmos

Noções de Lógica

• Exemplos de aplicação da lógica

– O quarto está fechado e que meu livro está no quarto. Então, preciso primeiro abrir o quarto para pegar o livro

– Rosa é mãe de Ana, Paula é filha de Rosa, Júlia é filha de Ana. Então, Júlia é neta de Rosa e sobrinha de Paula

– Todo mamífero é animal e todo cavalo é mamífero. Então, todo cavalo é animal

– Todo mamífero bebe leite e o homem bebe leite. Então, todo homem é mamífero e animal (mas não é um cavalo)

Page 37: Conceitos fundamentais-de-algoritmos

Atividade 1 (10min)

• Resolva os seguintes problemas de lógica– P1 – Uma lesma deve subir um poste de 10m de

altura. De dia sobe 2m e à noite desce 1m. Em quantos dias atingirá o topo do poste?

– P2 - Três gatos comem três ratos em três minutos. Cem gatos comem cem ratos em quantos minutos?

– P3 - O pai do padre é filho do meu pai. O que eu sou do Padre?

– P4 - Se um bezerro pesa 75 kg mais meio bezerro, quanto pesa um bezerro inteiro?

Page 38: Conceitos fundamentais-de-algoritmos

Atividade 1 (10min)• Resolva os seguintes problemas de lógica

– P5 – Qual o próximo número da seqüência 7,8,10,13,17,?

– P6 – Um pai de 80kg e suas 2 filhas (40kg cada), precisam sair de uma ilha com um barco. Porém a capacidade do barco é de 80kg. Como farão para sair da ilha?

– P7 – Usando uma jangada, um camponês precisa atravessar uma cabra, um leão e um fardo de capim para a outra margem do rio. A jangada só tem lugar para ele e mais outra coisa. O que ele deve fazer para atravessar o rio com seus pertences intactos?

Page 39: Conceitos fundamentais-de-algoritmos

RESPOSTAS - Atividade 1• Respostas

– R1 - 9(nove) dias. No nono dia a lesma sobe 2(dois) metros, atinge o topo e evidentemente não desce 1 metro

– R2 – 3 (três) minutos– R3 – Tio– R4 – 150 (cento e cinqüenta) kg – R5 – 22– R6 – Vão as duas filhas. Uma delas volta. O pai sai. A outra filha

volta. As duas filhas saem juntas.– R7 - Primeiro leve a cabra, volte e pegue o capim; deixe o capim

e leve a cabra de volta; deixe a cabra e leve o leão, depois é só voltar e pegar a cabra.

Page 40: Conceitos fundamentais-de-algoritmos

Noções de Lógica

Em Lógica um conceito importanteé o de “Proposição”

Você sabe o que é umaPROPOSIÇÃO?

Page 41: Conceitos fundamentais-de-algoritmos

Noções de Lógica

• Proposição: é um enunciado verbal, ao qual deve ser atribuído, sem ambigüidade, 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 vôlei. (quais ?)

Page 42: Conceitos fundamentais-de-algoritmos

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)

Page 43: Conceitos fundamentais-de-algoritmos

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)

Page 44: Conceitos fundamentais-de-algoritmos

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)

Page 45: Conceitos fundamentais-de-algoritmos

Noções de Lógica

• Exemplos de aplicação das operações lógica– Resumindo:

– 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

p q p ^ q p v qV V V VV F F VF V F VF F F F

~pFFVV

pp qq p ^ qp ^ q p v qp v qVV VV VV VVVV FF FF VVFF VV FF VVFF FF FF FF

~p~pFFFFVVVV

Page 46: Conceitos fundamentais-de-algoritmos

Atividade 2• Considerando p = V e q = F, resolva as seguintes expressões

lógicas– ~p– ~q– p ^ q– p v q– (~p) ^ q– (~p) v q– p ^ (~q)– p v (~q)– (~p) ^ (~q)– (~p) v (~q)

Page 47: Conceitos fundamentais-de-algoritmos

RESPOSTAS - Atividade 2

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

Page 48: Conceitos fundamentais-de-algoritmos

Lógica de Programação & Algoritmo

O que éProgramação

de computadores?

INSTRUÇÕES

Page 49: Conceitos fundamentais-de-algoritmos

Instruções Delimitadoras

• Servem para especificar o início e o fim do algoritmo.

início ...fim

Page 50: Conceitos fundamentais-de-algoritmos

Declaração de Variáveis

• Utilizado para especificar os nomes e os respectivos 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

Page 51: Conceitos fundamentais-de-algoritmos

Declaração de Variáveis

• Exemplos:

declare a,b,c: real;declare nome: string;declare sexo: caracter;declare pratica_esporte: lógico;

Page 52: Conceitos fundamentais-de-algoritmos

Bloco de Comentário• Serve para explicar um determinado

trecho do algoritmo, para torna-lo mais claro, facilitando seu entendimento por outras pessoas ou posteriormente.

{ <comentário> }Exemplo:{ Isto é um exemplo de comentário }

Page 53: Conceitos fundamentais-de-algoritmos

Instrução de Entrada

• Usada para ler dados de entrada do algoritmo.

leia(<variáveis>);

onde:<variáveis> - conterão os dados lidos.

Page 54: Conceitos fundamentais-de-algoritmos

Instrução de Entrada

• Exemplos:

leia(a,b,c);leia(nome);leia(sexo);leia(pratica_esporte);

Page 55: Conceitos fundamentais-de-algoritmos

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.

Page 56: Conceitos fundamentais-de-algoritmos

Instrução de Saída• Exemplos:

escreva(“O valor de D é: ”, D);escreva(nome, sexo);escreva(“Pratica esporte.”);

Page 57: Conceitos fundamentais-de-algoritmos

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.

Page 58: Conceitos fundamentais-de-algoritmos

Instrução de Atribuição• Exemplos

D B^2-4*A*C;nome “Paulo”;Pratica_Esporte TRUE; Sexo ‘M’;

Page 59: Conceitos fundamentais-de-algoritmos

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.

Page 60: Conceitos fundamentais-de-algoritmos

Estruturas de Controle• São elas:

– Estrutura Seqüencial: os comandos ou instruções vão sendo executados na ordem em que aparecem no algoritmo.

Page 61: Conceitos fundamentais-de-algoritmos

Estruturas de Controle• Estrutura de Repetição: comandos são

executados repetidas vezes até que uma condição de parada seja satisfeita

Page 62: Conceitos fundamentais-de-algoritmos

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

Page 63: Conceitos fundamentais-de-algoritmos

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.

Page 64: Conceitos fundamentais-de-algoritmos

Instruções de Seleção• Exemplo:

se A>0 então B A + 1;

A 0; fim-se

Page 65: Conceitos fundamentais-de-algoritmos

Instruções de Seleção• Tipo composto:

se <sentença> então <comandos1>;

senão<comandos2>;

fim-seOBS.: <comandos1> serão executados apenas se

<sentença> resultar em TRUE. Em caso contrário, <comandos2> serão executados.

Page 66: Conceitos fundamentais-de-algoritmos

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

Page 67: Conceitos fundamentais-de-algoritmos

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.

Page 68: Conceitos fundamentais-de-algoritmos

Instruções de Repetição• Exemplo:

enquanto A>0 façaleia(B);

escreva(B); A A - 1;fim-enquanto;

Page 69: Conceitos fundamentais-de-algoritmos

Instruções de Repetição• Repita / Até

repita<comandos>;

até <sentença>;OBS.: <comandos> serão executados até que

<sentença> resulte em TRUE.

Page 70: Conceitos fundamentais-de-algoritmos

Instruções de Repetição• Exemplo:

repitaleia(B);

escreva(B); A A - 1;até A<1;

Page 71: Conceitos fundamentais-de-algoritmos

Instruções de Repetição• Para / Até / Fim-Para

para <variável> <inicial> até <final> faça<comandos>;

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

Page 72: Conceitos fundamentais-de-algoritmos

Instruções de Repetição• Exemplo:

{ Comandos para escrever 10 vezes uma frase na tela do computador }

para i 1 até 10 façaescreva(“Último tipo de repetição”);

fim-para;

Page 73: Conceitos fundamentais-de-algoritmos

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

Page 74: Conceitos fundamentais-de-algoritmos

Lógica de Programação & Algoritmo

• Estruturas básicas de um algoritmo: – Seqüência – Início/Fim

• Define uma estrutura onde as instruções serão executadas na ordem que aparecem.

– Seleção – Se-Então/Senão• Define uma estrutura condicional que dada a sua

avaliação (V ou F) determina qual “caminho” do algoritmo será executado

– Repetição – Repita, Enquanto ou Para• Define uma estrutura de iteração condicional (V ou

F) ou contada (pré-definida) de instruções

Page 75: Conceitos fundamentais-de-algoritmos

Lógica de Programação & Algoritmo

• Algoritmo para ligar de um telefone público - SeqüênciaInício1. Tirar o fone do gancho;2. Ouvir o sinal de linha;3. Introduzir o cartão;4. Teclar o número desejado;5. Conversar;6. Desligar;7. Retirar o cartão;Fim.

Este algoritmo só usa umaestrutura de seqüência

“Início/Fim”

Page 76: Conceitos fundamentais-de-algoritmos

Lógica de Programação & Algoritmo

• Algoritmo para ligar de um telefone público – SeleçãoE se o telefone público estiver com defeito?Início1. Tirar o fone do gancho;2. Se ouvir o sinal de linha, então

1. Introduzir o cartão;2. Teclar o número desejado;3. Conversar;4. Desligar;5. Retirar o cartão;

3. Senão 1. ir para o próximo telefone;

Fim.

Este algoritmo usa uma estrutura de decisão

“Se-então/Senão”

Page 77: Conceitos fundamentais-de-algoritmos

Lógica de Programação & Algoritmo

• Algoritmo para ligar de um telefone público – RepetiçãoE se o próximo telefone público também estiver com defeito?Início1. Repita

1. Tirar o fone do gancho;2. Se ouvir o sinal de linha então

1. Introduzir o cartão;2. Teclar o número desejado;3. Conversar;4. Desligar;5. Retirar o cartão;

3. Senão 1. ir para o próximo telefone;

2. Até ouvir o sinal de linha Fim.

Este algoritmo usa uma estrutura de repetição

“Repita/Até”

Page 78: Conceitos fundamentais-de-algoritmos

Lógica de Programação & Algoritmo

• Algoritmo para ligar de um telefone público – Repetição• E se o telefone chamado estiver com defeito?• E se o telefone chamado estiver ocupado?• E se acabarem os créditos do cartão telefônico?• E se ...?

Um algoritmo SEMPRE sofre melhorias sucessivas.

(Técnica de refinamentos sucessivos)

Page 79: Conceitos fundamentais-de-algoritmos

Fluxogramas - Exemplo 1• Achar o valor da expressão: D = B2 - 4AC.

Início

Ler A, B, C D = B^2 - 4*A*C

1

1

Escrever D

Fim

Page 80: Conceitos fundamentais-de-algoritmos

Fluxogramas: Exemplo 2

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

Início

Ler A, B

A=B A<B A>B

CompararA com B

Escrever:“A e B iguais”

Fim

Escrever:“A é maior”

Escrever:“B é maior”

Page 81: Conceitos fundamentais-de-algoritmos

Português Estruturado - Exemplo 1

• Achar o valor da expressão: D = B2 - 4AC.

Ler os valores de A, B e CCalcular a expressão D = B2 - 4ACMostrar o resultado desse cálculo

Page 82: Conceitos fundamentais-de-algoritmos

Português Estruturado - Exemplo 2

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

Ler dois números A e BComparar A com BMostrar o resultado dessa comparação

Page 83: Conceitos fundamentais-de-algoritmos

Pseudocódigo - Exemplo 1

• Achar o valor da expressão: D = B2 - 4AC.

InícioDeclare 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.

Page 84: Conceitos fundamentais-de-algoritmos

Pseudocódigo - Exemplo 2• Achar o maior de dois números A e B.

InícioDeclare 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.

Page 85: Conceitos fundamentais-de-algoritmos

Atividade 3• Reescreva corretamente o algoritmo abaixo• Algoritmo aprovação

Início1. Obter as 2 notas do aluno;2. Repita

1. Se Média do aluno >=7, então1. Repita

1. Informar que o aluno está REPROVADO;2. Até Média < 7

2. Senão Média >= 71. Informar que o aluno está APROVADO;

3. Até último aluno;Fim.

Page 86: Conceitos fundamentais-de-algoritmos

RESPOSTA - Atividade 3• Algoritmo aprovação

Início1. Repita

1. Obter as 2 notas do aluno;2. Se Média do aluno >=7, então

1. Informar que o aluno está APROVADO3. Senão

1. Informar que o aluno está REPROVADO;2. Até último alunoFim

Page 87: Conceitos fundamentais-de-algoritmos

• #! /usr/bin/perl -w

• my $file = $ARGV[0];

• open NEW, $file;

• my $numero_g=0;• my $numero_c=0;• my $numero_total=0;

• my $um=0;

• while (<NEW>) {• if (/\>/) {• # if ($um == 2) {• # last;• # }• # $um++;• next;• }

• # print $_;

• chomp;

• for ($i=0; $i<length($_); $i++) {• $numero_total++;• if (uc(substr($_,$i,1)) eq "C" ) {• $numero_c++;• }• if (uc(substr($_,$i,1)) eq "G") {• $numero_g++;• }• }• }

• print "Total de Gs : $numero_g \n";• print "Total de Cs : $numero_c \n";• print "Total de bases : $numero_total \n";

• print "Total de GCs (%) : " . (($numero_g + $numero_c) / $numero_total) * 100;

Page 88: Conceitos fundamentais-de-algoritmos

UM EXERCÍCIO• Construa um algoritmo para escolher as

duas maiores laranjas de um balaio

Page 89: Conceitos fundamentais-de-algoritmos

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. Lembre-se 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)

Outros exercícios...

Page 90: Conceitos fundamentais-de-algoritmos

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

mais exercícios...

Page 91: Conceitos fundamentais-de-algoritmos

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

ainda mais exercícios...

Page 92: Conceitos fundamentais-de-algoritmos

AMBIENTES/LINGUAGENS DE PROGRAMAÇÃO

LA PASCALdeclare Var

Início Begin

Fim End

Caracter Char

Inteiro Integer

Real Real

Lógico Boolean

Leia Read

Escreva Write

Page 93: Conceitos fundamentais-de-algoritmos

AMBIENTES/LINGUAGENS DE PROGRAMAÇÃO

LA Cdeclare

Início {

Fim }

Caracter Char

Inteiro Int

Real Double

Lógico Boolean

Leia Scanf

Escreva Printf

Page 94: Conceitos fundamentais-de-algoritmos

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!