Prévia do material em texto
<p>Conceitos Fundamentais de</p><p>Algoritmos</p><p>e Programação para iniciantes</p><p>Clodomir.Coradini@fmpsc.edu.br</p><p>CURSO : ADS - Análise e Desenvolvimento de</p><p>Sistemas</p><p>Faculdade Municipal de Palhoça</p><p>Ano 2020 2</p><p>Algoritmo Textual Informal</p><p>• Modo de preparo:</p><p>– Bata a margarina, as gemas e o açúcar até ficar</p><p>cremoso</p><p>– Junte o leite, o coco e a farinha e continue</p><p>batendo</p><p>– Acrescente o fermento e, por último, as claras em</p><p>neve</p><p>– Unte uma forma com manteiga e leve ao forno</p><p>para assar</p><p>Quão cremoso?!?</p><p>De uma vez só?!?</p><p>Quanto tempo?!?</p><p>Quanto tempo?!?</p><p>• Modo de preparo:</p><p>– Bata a margarina, as gemas e o açúcar por 15</p><p>minutos</p><p>– Junte o leite, o coco e a farinha e continue</p><p>batendo por mais 15 minutos</p><p>– Acrescente 20 g de fermento e, por último, as</p><p>claras em neve</p><p>– Unte uma forma com manteiga e leve ao forno</p><p>para assar por 30 minutos</p><p>Algoritmo Textual Informal</p><p>Refinado</p><p>Algoritmo Gráfico-Textual Informal</p><p>• Montagem de um Aeromodelo</p><p>– Material</p><p>• Cola especial para plásticos</p><p>• Estilete</p><p>• Lixas finas</p><p>• Durex ou fita crepe</p><p>• Pregador de roupas, elásticos</p><p>• Identificação das peças</p><p>Algoritmo Gráfico-Textual</p><p>Informal</p><p>• Instruções</p><p>– Leia e entenda as instruções antes de começar a</p><p>montagem</p><p>– Lave as peças com água e detergente. Na lavagem</p><p>serão removidos desmoldantes e sujeiras, que</p><p>dificultam a colagem e a pintura. Faça isto dentro de</p><p>uma bacia, para evitar perder peças pequenas, que</p><p>porventura se soltem</p><p>– Encontre as peças que devem ser usadas na primeira</p><p>parte da montagem (figura do slide anterior)</p><p>– Lixe as peças com cuidado eliminando as rebarbas</p><p>– ...</p><p>Algoritmo Gráfico-Textual</p><p>Informal</p><p>• Troca de pneu</p><p>“Abra o porta-mala e verifique se todos</p><p>acessórios estão lá. Em caso negativo,</p><p>feche o porta-malas e peça carona a</p><p>alguém. Em caso positivo, retire o</p><p>triângulo, posicione-o a cerca de 30 m do</p><p>carro, e, depois, retire o estepe e o macaco.</p><p>Levante o carro... “</p><p>Algoritmo Textual Informal 2</p><p>• Troca de pneu</p><p>Algoritmo Gráfico Informal</p><p>Acessórios</p><p>OK?</p><p>Abre porta-malas</p><p>Pega triângulo</p><p>Fecha</p><p>porta-malas</p><p>• Troca de pneu (Fluxograma)</p><p>Algoritmo Gráfico Semi-formal</p><p>Não</p><p>Sim</p><p>• Troca de pneu</p><p>abre(porta_malas)</p><p>Se acessorio_ok = FALSO</p><p>Então</p><p>fecha(porta_malas)</p><p>espera_carona()</p><p>Senão</p><p>pega_triangulo()</p><p>...</p><p>Algoritmo Textual Formal</p><p>• Problema da Torre de Hanói</p><p>– Seja a seguinte situação:</p><p>• deve-se mover todos os discos do primeiro eixo para o</p><p>terceiro mantendo-se a ordem original</p><p>• em cada movimento, pode-se mover apenas um disco</p><p>• um disco nunca poderá ser sobreposto por outro maior</p><p>Algoritmo: Problemas Complexos</p><p>• Passo 1:</p><p>mova disco menor para terceiro eixo</p><p>Algoritmo: Problemas Complexos</p><p>• Passo 2:</p><p>mova disco médio para segundo eixo</p><p>Algoritmo: Problemas Complexos</p><p>• Passo 3:</p><p>mova disco menor para segundo eixo</p><p>Algoritmo: Problemas Complexos</p><p>• Passo 4:</p><p>mova disco maior para terceiro eixo</p><p>Algoritmo: Problemas Complexos</p><p>• Passo 5:</p><p>mova disco menor para primeiro eixo</p><p>Algoritmo: Problemas Complexos</p><p>• Passo 6:</p><p>mova disco médio para terceiro eixo</p><p>Algoritmo: Problemas Complexos</p><p>• Passo 7:</p><p>mova disco menor para terceiro eixo</p><p>Algoritmo: Problemas Complexos</p><p>• Seqüência de passos completa:</p><p>Passo 1: mova disco menor para terceiro eixo</p><p>Passo 2: mova disco médio para segundo eixo</p><p>Passo 3: mova disco menor para segundo eixo</p><p>Passo 4: mova disco maior para terceiro eixo</p><p>Passo 5: mova disco menor para primeiro eixo</p><p>Passo 6: mova disco médio para terceiro eixo</p><p>Passo 7: mova disco menor para terceiro eixo</p><p>Algoritmo: Problemas Complexos</p><p>Algoritmo: CONCEITO</p><p>• O que é um ALGORITMO?</p><p>• OBS.: Não existe um algoritmo para</p><p>construir algoritmos</p><p>– a criação de um algoritmo é um exercício de criatividade</p><p>(conhecimento) e experiência (técnica e prática)</p><p>O que é Programação? =</p><p>ABSTRAÇÃO!</p><p>A realidade é</p><p>complexa</p><p>e rica em detalhes!</p><p>Abstração</p><p>Realidade</p><p>O que você abstrai dessa realidade?</p><p>Abstração</p><p>O que é abstração?</p><p>Abstração</p><p>Abstração</p><p>=</p><p>Operação mental que</p><p>observa a realidade e</p><p>captura apenas os</p><p>aspectos relevantes</p><p>para um contexto</p><p>MASLOW</p><p>• A tarefa de programar</p><p>sistemas computacionais</p><p>envolve o exercício</p><p>constante da abstração da</p><p>realidade e sua codificação</p><p>em uma linguagem de</p><p>programação</p><p>Abstração</p><p>Sistema de Locadora de Veículo</p><p>Abstração</p><p>+</p><p>Programação</p><p>Sistema Computacional</p><p>O que é um</p><p>Sistema</p><p>Computacional?</p><p>Sistema Computacional</p><p>Sistema</p><p>Computacional</p><p>Software</p><p>Hardware</p><p>Peoplewar</p><p>e</p><p>Programação de Sistema</p><p>Computacional</p><p>• A programação de um sistema computacional</p><p>pode ser resumida em 3 passos básicos</p><p>ProcessamentoEntrada Saída</p><p>Dispositivo</p><p>de Entrada</p><p>Dispositivo</p><p>de Saída</p><p>Memória</p><p>UCP</p><p>Programação de Sistema</p><p>Computacional</p><p>• Exemplo 1 – Exibir a média de dois números</p><p>ProcessamentoEntrada Saída</p><p>Dispositivo</p><p>de Entrada</p><p>Dispositivo</p><p>de Saída</p><p>Memória</p><p>UCP</p><p>6 , 8 (6 + 8) / 2 7</p><p>Programação de Sistema</p><p>Computacional</p><p>• Exemplo 2 – Exibir se o aluno está aprovado ou reprovado</p><p>ProcessamentoEntrada Saída</p><p>Dispositivo</p><p>de Entrada</p><p>Dispositivo</p><p>de Saída</p><p>Memória</p><p>UCP</p><p>Ana, 5, 3 Se (5+3)/2>=7</p><p>aprovado</p><p>Senão</p><p>reprovado</p><p>Ana, reprovado</p><p>Programação de Sistema Computacional</p><p>• Tipos de Linguagens de Programação</p><p>– 1 - Totalmente codificadas em binário (0´s e 1´s)</p><p>– 2 - Usa instruções simbólicas para representar os 0´s e 1´s</p><p>– 3 - Voltadas para facilitar o raciocínio humano</p><p>Baixo Nível Alto Nível</p><p>(1) (2) (3)</p><p>Noções de Lógica</p><p>• Exemplos de aplicação da lógica</p><p>– O quarto está fechado e que meu livro está no quarto. Então,</p><p>preciso primeiro abrir o quarto para pegar o livro</p><p>– Rosa é mãe de Ana, Paula é filha de Rosa, Júlia é filha de Ana.</p><p>Então, Júlia é neta de Rosa e sobrinha de Paula</p><p>– Todo mamífero é animal e todo cavalo é mamífero. Então, todo</p><p>cavalo é animal</p><p>– Todo mamífero bebe leite e o homem bebe leite. Então, todo</p><p>homem é mamífero e animal (mas não é um cavalo)</p><p>Atividade 1 (10min)</p><p>• Resolva os seguintes problemas de lógica</p><p>– P1 – Uma lesma deve subir um poste de 10m de</p><p>altura. De dia sobe 2m e à noite desce 1m. Em</p><p>quantos dias atingirá o topo do poste?</p><p>– P2 - Três gatos comem três ratos em três minutos.</p><p>Cem gatos comem cem ratos em quantos minutos?</p><p>– P3 - O pai do padre é filho do meu pai. O que eu sou</p><p>do Padre?</p><p>– P4 - Se um bezerro pesa 75 kg mais meio bezerro,</p><p>quanto pesa um bezerro inteiro?</p><p>Atividade 1 (10min)</p><p>• Resolva os seguintes problemas de lógica</p><p>– P5 – Qual o próximo número da seqüência</p><p>7,8,10,13,17,?</p><p>– P6 – Um pai de 80kg e suas 2 filhas (40kg cada),</p><p>precisam sair de uma ilha com um barco. Porém a</p><p>capacidade do barco é de 80kg. Como farão para sair</p><p>da ilha?</p><p>– P7 – Usando uma jangada, um camponês precisa</p><p>atravessar uma cabra, um leão e um fardo de capim</p><p>para a outra margem do rio. A jangada só tem lugar</p><p>para ele e mais outra coisa. O que ele deve fazer</p><p>para atravessar o rio com seus pertences intactos?</p><p>RESPOSTAS - Atividade 1</p><p>• Respostas</p><p>– R1 - 9(nove) dias. No nono dia a lesma sobe 2(dois) metros,</p><p>atinge o topo e evidentemente não desce 1 metro</p><p>– R2 – 3 (três) minutos</p><p>– R3 – Tio</p><p>– R4 – 150 (cento e cinqüenta) kg</p><p>– R5 – 22</p><p>– R6 – Vão as duas filhas. Uma delas volta. O pai sai. A outra filha</p><p>volta. As duas filhas saem juntas.</p><p>– R7 - Primeiro leve a cabra, volte e pegue o capim; deixe o capim</p><p>e leve a cabra de volta; deixe a cabra e leve o leão, depois é só</p><p>voltar e pegar a cabra.</p><p>Noções de Lógica</p><p>Em Lógica um conceito importante</p><p>é o de “Proposição”</p><p>Você sabe o que é</p><p>uma</p><p>PROPOSIÇÃO?</p><p>Noções de Lógica</p><p>• Proposição: é um enunciado verbal, ao qual deve ser atribuído,</p><p>sem ambigüidade, um valor lógico verdadeiro (V) ou falso (F).</p><p>– Exemplos de proposições:</p><p>• Robson Fidalgo é Professor (V)</p><p>• 3 + 5 = 10 (F)</p><p>• 5 < 8 (V)</p><p>– Contra-exemplos de Proposições:</p><p>• Onde você vai ?</p><p>• 3 + 5</p><p>• Os estudantes jogam vôlei. (quais ?)</p><p>Noções de Lógica</p><p>• Operações Lógicas: são usadas para formar novas proposições a</p><p>partir de proposições existentes.</p><p>– Considerando p e</p><p>q duas proposições genéricas, pode-se</p><p>aplicar as seguintes operações lógicas básicas sobre elas</p><p>– Definindo a prioridade:</p><p>• Usar parênteses Ex:((p v q)^(~q)) ou</p><p>• Obedecer (~) > (^) > (v)</p><p>Noções de Lógica</p><p>• Exemplos de aplicação das operações lógica</p><p>– Considere:</p><p>• p = 7 é primo = (V)</p><p>• q = 4 é impar = (F)</p><p>– Então:</p><p>• 4 NÃO é impar = ~q = (~F) = (V)</p><p>• 7 NÃO é primo = ~p = (~V) = (F)</p><p>• 7 é primo E 4 NÃO é impar = p ^ ~q = (V ^ (~F)) = (V ^ V) =</p><p>(V)</p><p>• 7 é primo E 4 é impar = p ^ q = (V ^ F) = (F)</p><p>• 4 é impar E 7 é primo = q ^ p = (F ^ V) = (F)</p><p>• 4 é impar E 7 NÃO é primo = q ^ ~p = (F ^ (~V)) = (F ^ F) =</p><p>(F)</p><p>Noções de Lógica</p><p>• Exemplos de aplicação das operações lógica (Cont.)</p><p>– Considere:</p><p>• p = 7 é primo = (V)</p><p>• q = 4 é impar = (F)</p><p>– Então:</p><p>• 7 é primo OU 4 NÃO é impar = p v ~q = (V v (~F)) = (V v V)</p><p>= (V)</p><p>• 7 é primo OU 4 é impar = p v q = (V v F) = (V)</p><p>• 4 é impar OU 7 é primo = q v p = (F v V) = (V)</p><p>• 4 é impar OU 7 NÃO é primo = q v ~p = (F v (~V)) = (F v F</p><p>) = (F)</p><p>Noções de Lógica</p><p>• Exemplos de aplicação das operações lógica</p><p>– Resumindo:</p><p>– Ou seja:</p><p>• Não (~) troca o valor lógico. Se é F passa a ser V e</p><p>vice-versa</p><p>• E (^) só tem valor V quando as duas proposições forem V,</p><p>basta uma proposição ser F para o resultado ser F</p><p>• OU (v) só tem valor F quando as duas proposições forem F,</p><p>basta uma proposição ser V para o resultado ser V</p><p>Atividade 2</p><p>• Considerando p = V e q = F, resolva as seguintes expressões</p><p>lógicas</p><p>– ~p</p><p>– ~q</p><p>– p ^ q</p><p>– p v q</p><p>– (~p) ^ q</p><p>– (~p) v q</p><p>– p ^ (~q)</p><p>– p v (~q)</p><p>– (~p) ^ (~q)</p><p>– (~p) v (~q)</p><p>RESPOSTAS - Atividade 2</p><p>• Considerando p = V e q = F, resolva as seguintes expressões</p><p>lógicas</p><p>– ~p = F</p><p>– ~q = V</p><p>– p ^ q = F</p><p>– p v q = V</p><p>– (~p) ^ q = F</p><p>– (~p) v q = F</p><p>– p ^ (~q) = V</p><p>– p v (~q) = V</p><p>– (~p) ^ (~q) = F</p><p>– (~p) v (~q) = V</p><p>Lógica de Programação &</p><p>Algoritmo</p><p>O que é</p><p>Programação</p><p>de</p><p>computadores?</p><p>INSTRUÇÕES</p><p>Instruções Delimitadoras</p><p>• Servem para especificar o início e o fim do</p><p>algoritmo.</p><p>início</p><p>...</p><p>fim</p><p>Declaração de Variáveis</p><p>• Utilizado para especificar os nomes e os</p><p>respectivos tipos das variáveis</p><p>necessárias no algoritmo</p><p>declare <variáveis>: <tipo>;</p><p>onde:</p><p><variáveis> - lista de nomes de variáveis</p><p>separados por vírgula</p><p><tipo> - inteiro, real, caracter, string, lógico</p><p>Declaração de Variáveis</p><p>• Exemplos:</p><p>declare a,b,c: real;</p><p>declare nome: string;</p><p>declare sexo: caracter;</p><p>declare pratica_esporte: lógico;</p><p>Bloco de Comentário</p><p>• Serve para explicar um determinado</p><p>trecho do algoritmo, para torna-lo mais</p><p>claro, facilitando seu entendimento por</p><p>outras pessoas ou posteriormente.</p><p>{ <comentário> }</p><p>Exemplo:</p><p>{ Isto é um exemplo de comentário }</p><p>Instrução de Entrada</p><p>• Usada para ler dados de entrada do</p><p>algoritmo.</p><p>leia(<variáveis>);</p><p>onde:</p><p><variáveis> - conterão os dados lidos.</p><p>Instrução de Entrada</p><p>• Exemplos:</p><p>leia(a,b,c);</p><p>leia(nome);</p><p>leia(sexo);</p><p>leia(pratica_esporte);</p><p>Instrução de Saída</p><p>• Usada para mostrar os resultados do</p><p>processamento dos dados de entrada.</p><p>escreva(<resultados>);</p><p>onde:</p><p><resultados> - geralmente é o conteúdo de uma</p><p>ou mais variáveis com a resposta do</p><p>problema.</p><p>Instrução de Saída</p><p>• Exemplos:</p><p>escreva(“O valor de D é: ”, D);</p><p>escreva(nome, sexo);</p><p>escreva(“Pratica esporte.”);</p><p>Instrução de Atribuição</p><p>• Utilizado para atribuir um determinado</p><p>valor a uma variável.</p><p><variável> <expressão>;</p><p>onde:</p><p><variável> - nome de uma variável</p><p><expressão> - um valor do mesmo tipo da</p><p>variável ou uma expressão lógica ou</p><p>aritmética.</p><p>Instrução de Atribuição</p><p>• Exemplos</p><p>D B^2-4*A*C;</p><p>nome “Paulo”;</p><p>Pratica_Esporte TRUE;</p><p>Sexo ‘M’;</p><p>Estruturas de Controle</p><p>• Baseado na lógica estruturada, Bohn e</p><p>Jacopini provaram que apenas três</p><p>estruturas são suficientes para explicar a</p><p>solução de qualquer problema, inclusive</p><p>tornando-os estruturados e mais legíveis.</p><p>Estruturas de Controle</p><p>• São elas:</p><p>– Estrutura Seqüencial: os comandos ou</p><p>instruções vão sendo executados na ordem</p><p>em que aparecem no algoritmo.</p><p>Estruturas de Controle</p><p>• Estrutura de Repetição: comandos são</p><p>executados repetidas vezes até que uma</p><p>condição de parada seja satisfeita</p><p>Estruturas de Controle</p><p>• Estrutura de Seleção: Conforme o</p><p>resultado de uma expressão lógica,</p><p>determinados comandos são executados</p><p>e outros não, caracterizando assim uma</p><p>seleção de comandos</p><p>TRUE</p><p>FALSE</p><p>Instruções de Seleção</p><p>• Tipo simples:</p><p>se <sentença> então</p><p><comandos>;</p><p>fim-se</p><p>OBS.:</p><p><comandos> serão executados apenas se</p><p><sentença> resultar em TRUE.</p><p>Instruções de Seleção</p><p>• Exemplo:</p><p>se A>0 então</p><p>B A + 1;</p><p>A 0;</p><p>fim-se</p><p>Instruções de Seleção</p><p>• Tipo composto:</p><p>se <sentença> então</p><p><comandos1>;</p><p>senão</p><p><comandos2>;</p><p>fim-se</p><p>OBS.:</p><p><comandos1> serão executados apenas se</p><p><sentença> resultar em TRUE. Em caso contrário,</p><p><comandos2> serão executados.</p><p>Instruções de Seleção</p><p>• Exemplo:</p><p>se A>B então</p><p>B A + 1;</p><p>A 0;</p><p>senão</p><p>A 0;</p><p>B A + 1;</p><p>fim-se</p><p>Instruções de Repetição</p><p>• Enquanto / Fim-Enquanto</p><p>enquanto <sentença> faça</p><p><comandos>;</p><p>fim-enquanto;</p><p>OBS.:</p><p><comandos> serão executados enquanto</p><p><sentença> resultar em TRUE.</p><p>Instruções de Repetição</p><p>• Exemplo:</p><p>enquanto A>0 faça</p><p>leia(B);</p><p>escreva(B);</p><p>A A - 1;</p><p>fim-enquanto;</p><p>Instruções de Repetição</p><p>• Repita / Até</p><p>repita</p><p><comandos>;</p><p>até <sentença>;</p><p>OBS.:</p><p><comandos> serão executados até que</p><p><sentença> resulte em TRUE.</p><p>Instruções de Repetição</p><p>• Exemplo:</p><p>repita</p><p>leia(B);</p><p>escreva(B);</p><p>A A - 1;</p><p>até A<1;</p><p>Instruções de Repetição</p><p>• Para / Até / Fim-Para</p><p>para <variável> <inicial> até <final> faça</p><p><comandos>;</p><p>fim-para;</p><p>OBS.:</p><p><variável> - contador do tipo inteiro</p><p><inicial> - valor inicial da variável</p><p><final> - valor final da variável</p><p>Instruções de Repetição</p><p>• Exemplo:</p><p>{ Comandos para escrever 10 vezes uma frase</p><p>na tela do computador }</p><p>para i 1 até 10 faça</p><p>escreva(“Último tipo de repetição”);</p><p>fim-para;</p><p>Estrutura de um Algoritmo</p><p>• Um algoritmo em Portugol tem a seguinte</p><p>estrutura:</p><p>início</p><p><declaração de variáveis></p><p><inicialização de variáveis></p><p><corpo lógico do algoritmo></p><p>fim</p><p>Lógica de Programação & Algoritmo</p><p>• Estruturas básicas de um algoritmo:</p><p>– Seqüência – Início/Fim</p><p>• Define uma estrutura onde as instruções serão</p><p>executadas na ordem que aparecem.</p><p>– Seleção – Se-Então/Senão</p><p>• Define uma estrutura condicional que dada a sua</p><p>avaliação (V ou F) determina qual “caminho” do</p><p>algoritmo será executado</p><p>– Repetição – Repita, Enquanto ou Para</p><p>• Define uma estrutura de iteração condicional (V ou F)</p><p>ou contada (pré-definida) de instruções</p><p>Lógica de Programação &</p><p>Algoritmo</p><p>• Algoritmo para ligar de um telefone público - Seqüência</p><p>Início</p><p>1. Tirar o fone do gancho;</p><p>2. Ouvir o sinal de linha;</p><p>3. Introduzir o cartão;</p><p>4. Teclar o número desejado;</p><p>5. Conversar;</p><p>6. Desligar;</p><p>7. Retirar o cartão;</p><p>Fim.</p><p>Este algoritmo só usa uma</p><p>estrutura de seqüência</p><p>“Início/Fim”</p><p>Lógica de Programação & Algoritmo</p><p>• Algoritmo para ligar de um telefone</p><p>público – Seleção</p><p>E se o telefone público estiver com defeito?</p><p>Início</p><p>1. Tirar o fone do gancho;</p><p>2. Se ouvir o sinal de linha, então</p><p>1. Introduzir o cartão;</p><p>2. Teclar o número desejado;</p><p>3. Conversar;</p><p>4. Desligar;</p><p>5. Retirar o cartão;</p><p>3. Senão</p><p>1. ir para o próximo telefone;</p><p>Fim.</p><p>Este algoritmo usa uma</p><p>estrutura de decisão</p><p>“Se-então/Senão”</p><p>Lógica de Programação & Algoritmo</p><p>• Algoritmo para ligar de um telefone público – Repetição</p><p>E se o próximo telefone público também estiver com defeito?</p><p>Início</p><p>1. Repita</p><p>1. Tirar o fone do gancho;</p><p>2. Se ouvir o sinal de linha então</p><p>1. Introduzir o cartão;</p><p>2. Teclar o número desejado;</p><p>3. Conversar;</p><p>4. Desligar;</p><p>5. Retirar o cartão;</p><p>3. Senão</p><p>1. ir para o próximo telefone;</p><p>2. Até ouvir o sinal de linha</p><p>Fim.</p><p>Este algoritmo usa uma</p><p>estrutura de repetição</p><p>“Repita/Até”</p><p>Lógica de Programação & Algoritmo</p><p>• Algoritmo para ligar de um telefone público – Repetição</p><p>• E se o telefone chamado</p><p>estiver com defeito?</p><p>• E se o telefone chamado estiver ocupado?</p><p>• E se acabarem os créditos do cartão telefônico?</p><p>• E se ...?</p><p>Um algoritmo</p><p>SEMPRE sofre melhorias sucessivas.</p><p>(Técnica de refinamentos sucessivos)</p><p>Fluxogramas - Exemplo 1</p><p>• Achar o valor da expressão: D = B2 - 4AC.</p><p>Início</p><p>Ler A, B, C D = B^2 - 4*A*C</p><p>1</p><p>1</p><p>Escrever D</p><p>Fim</p><p>Fluxogramas:</p><p>Exemplo 2</p><p>• Achar o maior de</p><p>dois números A e</p><p>B.</p><p>Início</p><p>Ler A, B</p><p>A=B A<B A>B</p><p>Comparar</p><p>A com B</p><p>Escrever:</p><p>“A e B iguais”</p><p>Fim</p><p>Escrever:</p><p>“A é maior”</p><p>Escrever:</p><p>“B é maior”</p><p>Português Estruturado - Exemplo 1</p><p>• Achar o valor da expressão: D = B2 - 4AC.</p><p>Ler os valores de A, B e C</p><p>Calcular a expressão D = B2 - 4AC</p><p>Mostrar o resultado desse cálculo</p><p>Português Estruturado - Exemplo 2</p><p>• Achar o maior de dois números A e B.</p><p>Ler dois números A e B</p><p>Comparar A com B</p><p>Mostrar o resultado dessa comparação</p><p>Pseudocódigo - Exemplo 1</p><p>• Achar o valor da expressão: D = B2 - 4AC.</p><p>Início</p><p>Declare A,B,C,D; { Declaração de variáveis }</p><p>Leia(A,B,C);</p><p>D B^2 - 4*A*C; { Operação de atribuição }</p><p>Escreva(D);</p><p>Fim.</p><p>Pseudocódigo - Exemplo 2</p><p>• Achar o maior de dois números A e B.</p><p>Início</p><p>Declare A,B; { Declaração de variáveis }</p><p>Leia(A,B);</p><p>Se A = B Então Escreva(“A e B iguais”);</p><p>Senão Se A>B Então Escreva(“A é maior”);</p><p>Senão Escreva(“B é maior”);</p><p>Fim-Se</p><p>Fim-Se</p><p>Fim.</p><p>Atividade 3</p><p>• Reescreva corretamente o algoritmo</p><p>abaixo</p><p>• Algoritmo aprovação</p><p>Início</p><p>1. Obter as 2 notas do aluno;</p><p>2. Repita</p><p>1. Se Média do aluno >=7, então</p><p>1. Repita</p><p>1. Informar que o aluno está REPROVADO;</p><p>2. Até Média < 7</p><p>2. Senão Média >= 7</p><p>1. Informar que o aluno está APROVADO;</p><p>3. Até último aluno;</p><p>Fim.</p><p>RESPOSTA - Atividade 3</p><p>• Algoritmo aprovação</p><p>Início</p><p>1. Repita</p><p>1. Obter as 2 notas do aluno;</p><p>2. Se Média do aluno >=7, então</p><p>1. Informar que o aluno está APROVADO</p><p>3. Senão</p><p>1. Informar que o aluno está REPROVADO;</p><p>2. Até último aluno</p><p>Fim</p><p>• #! /usr/bin/perl -w</p><p>• my $file = $ARGV[0];</p><p>• open NEW, $file;</p><p>• my $numero_g=0;</p><p>• my $numero_c=0;</p><p>• my $numero_total=0;</p><p>• my $um=0;</p><p>• while (<NEW>) {</p><p>• if (/\>/) {</p><p>• # if ($um == 2) {</p><p>• # last;</p><p>• # }</p><p>• # $um++;</p><p>• next;</p><p>• }</p><p>• # print $_;</p><p>• chomp;</p><p>• for ($i=0; $i<length($_); $i++) {</p><p>• $numero_total++;</p><p>• if (uc(substr($_,$i,1)) eq "C" ) {</p><p>• $numero_c++;</p><p>• }</p><p>• if (uc(substr($_,$i,1)) eq "G") {</p><p>• $numero_g++;</p><p>• }</p><p>• }</p><p>• }</p><p>• print "Total de Gs : $numero_g \n";</p><p>• print "Total de Cs : $numero_c \n";</p><p>• print "Total de bases : $numero_total \n";</p><p>• print "Total de GCs (%) : " . (($numero_g + $numero_c) / $numero_total) * 100;</p><p>UM EXERCÍCIO</p><p>• Construa um algoritmo para escolher as</p><p>duas maiores laranjas de um balaio</p><p>1) leia um número inteiro e mostre uma mensagem indicando se</p><p>este número é par ou ímpar, e se é positivo ou negativo</p><p>2) leia quatro números inteiros e encontre a média aritmética</p><p>simples entre as que correspondem a números pares.</p><p>Lembre-se que não pode haver divisão por zero</p><p>3) leia 4 notas, calcule a média dessas e escreva: Reprovado</p><p>(média < 5), Recuperação (média >= 5 e < 7) e Aprovado</p><p>(média >= 7)</p><p>Outros exercícios...</p><p>4) leia a idade de um nadador e exiba sua categoria segundo as</p><p>regras: A(5 até 7); B(8 até 10); C(11 até 13); D(14 até 18) e E(</p><p>Idade > 18)</p><p>5) leia dois números inteiros, uma operação matemática</p><p>(+,-,*,/) e faça o calculo destes números segundo a operação</p><p>lida</p><p>6) leia o nome e a idade de três pessoas e informe o nome da</p><p>pessoa mais velha e o nome da pessoa mais nova. Considere</p><p>que não existem idades iguais</p><p>mais exercícios...</p><p>7) leia os números inteiros A e B e informe se A é múltiplo,</p><p>divisor ou nada de B</p><p>8) leia três números e mostre-os em ordem crescente</p><p>9) leia uma milhar e informe se esse número é palíndromo.</p><p>Exemplos de números palíndromos: 9889, 7337 e 2002</p><p>10) leia um número inteiro entre 20 e 59 e mostre seu extenso.</p><p>Exiba um erro se o número estiver fora do intervalo</p><p>ainda mais exercícios...</p><p>AMBIENTES/LINGUAGENS DE</p><p>PROGRAMAÇÃO</p><p>LA PASCAL</p><p>declare Var</p><p>Início Begin</p><p>Fim End</p><p>Caracter Char</p><p>Inteiro Integer</p><p>Real Real</p><p>Lógico Boolean</p><p>Leia Read</p><p>Escreva Write</p><p>AMBIENTES/LINGUAGENS DE</p><p>PROGRAMAÇÃO</p><p>LA C</p><p>declare</p><p>Início {</p><p>Fim }</p><p>Caracter Char</p><p>Inteiro Int</p><p>Real Double</p><p>Lógico Boolean</p><p>Leia Scanf</p><p>Escreva Printf</p><p>Próximos passos?</p><p>• Praticar a leitura e entendimento de</p><p>Algoritmos de sua área de aplicação</p><p>• Aprender uma Linguagem de</p><p>Programação para Computadores</p><p>• Programação!</p>