INTRODUÇÃO À PROGRAMAÇÃO - PDF
Download "INTRODUÇÃO À PROGRAMAÇÃO"
Lorena Cortês Teixeira
1 INTRODUÇÃO À PROGRAMAÇÃO 1 - CONCEITO DE ALGORITMO A automação é o processo em que uma tarefa deixa de ser desempenhada pelo homem e passa a ser realizada por máquinas, sejam estas dispositivos mecânicos, eletrônicos (como os computadores) ou de natureza mista. Para que a automação de uma tarefa seja bem sucedida é necessário que a máquina que passará a realizá-la seja capaz de desempenhar cada uma das etapas constituintes do processo a ser automatizado com eficiência, de modo a garantir a repetibilidade do mesmo. Assim, é necessário que seja especificado com clareza e exatidão o que deve ser realizado em cada uma das fases do processo a ser automatizado, bem como a seqüência em que estas fases devem ser realizadas. À especificação da seqüência ordenada de passos que deve ser seguida para a realização de uma tarefa, garantindo a sua repetibilidade, dá-se o nome de algoritmo. Ao contrário do que se pode pensar, o conceito de algoritmo não foi criado para satisfazer às necessidades da computação. Pelo contrário, a programação de computadores é apenas um dos campos de aplicação dos algoritmos. Na verdade, há inúmeros casos que podem exemplificar o uso (involuntário ou não) de algoritmos para a padronização do exercício de tarefas rotineiras. Para que um computador possa desempenhar uma tarefa é necessário que esta seja detalhada passo a passo, numa forma compreensível pela máquina, utilizando aquilo que se chama de programa. Neste sentido, um programa de computador nada mais é que um algoritmo escrito numa forma compreensível pelo computador. 2 - APRESENTAÇÃO DE UMA LINGUAGEM HIPOTÉTICA Existem diversas formas de representação de algoritmos, mas não há um consenso com relação à melhor delas. 1
2 Algumas formas de representação de algoritmos tratam os problemas apenas em nível lógico, abstraindo-se de detalhes de implementação muitas vezes relacionados com alguma linguagem de programação específica. Por outro lado, existem formas de representação de algoritmos que possuem uma maior riqueza de detalhes e muitas vezes acabam por obscurecer a idéia principal, o algoritmo, dificultando seu entendimento. Dentre as formas de representação de algoritmos mais conhecidas sobressaltam: Descrição Narrativa; Fluxograma Convencional; Pseudocódigo, também conhecido como Linguagem Estruturada ou Portugol Descrição Narrativa Nesta forma de representação os algoritmos são expressos diretamente em linguagem natural. Como exemplo, têm-se os algoritmos seguintes: Receita de bolo: Misture os ingredientes Unte a forma com manteiga Despeje a mistura na forma Se houver coco ralado então despeje sobre a mistura Leve a forma ao forno Enquanto não corar deixe a forma no forno Retire do forno Deixe esfriar Troca de um pneu furado: Afrouxar ligeiramente as porcas Suspender o carro Retirar as porcas e o pneu Colocar o pneu reserva 2
3 Apertar as porcas Abaixar o carro Dar o aperto final nas porcas Cálculo da média de um aluno: Obter as notas da primeira e da segunda provas Calcular a média aritmética entre as duas Se a média for maior que 7, o aluno foi aprovado, senão ele foi reprovado Esta representação é pouco usada na prática porque o uso da linguagem natural muitas vezes dá oportunidade a más interpretações, ambigüidades e imprecisões. Por exemplo, a instrução "afrouxar ligeiramente as porcas" no algoritmo da troca de pneus está sujeita a interpretações diferentes por pessoas distintas. Uma instrução mais precisa seria: 'afrouxar a porca, girando-a de 30 o no sentido anti-horário Fluxograma Convencional É uma representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintos. Tal propriedade facilita o entendimento das idéias contidas nos algoritmos e justifica sua popularidade. Esta forma é aproximadamente intermediária à descrição narrativa e ao pseudocódigo (subitem seguinte), pois é mais precisa que a primeira e, no entanto, não se preocupa com detalhes de implementação do programa, como o tipo das variáveis usadas (veremos adiante). Há vários padrões que definem as formas geométricas das figuras que devem ser usadas para representar cada um dos diversos tipos de instruções; contudo, nenhum deles se sobressai com relação aos demais no que diz respeito à aceitação por parte dos usuários. Uma notação simplificada de fluxogramas é a seguinte: 3
4 = Início e final do fluxograma = Operação de entrada de dados = Operação de saída de dados = Operação de atribuição e chamada ou retomo de subalgoritmo = decisão De modo geral, um fluxograma se resume a um único símbolo inicial, por onde a execução do algoritmo começa, e um ou mais símbolos finais, que são pontos onde a execução do algoritmo se encerra. Partindo do símbolo inicial, há sempre um único caminho orientado a ser seguido, representando a existência de uma única seqüência de execução das instruções. Isto pode ser melhor visualizado pelo fato de que, apesar de vários caminhos poderem convergir para uma mesma figura do diagrama, há sempre um único caminho saindo desta. Exceções a esta regra são os símbolos finais, dos quais não há nenhum fluxo saindo, e os símbolos de decisão, de onde pode haver mais de um caminho de saída (usualmente dois caminhos), representando uma bifurcação no fluxo. A figura abaixo mostra a representação do algoritmo de cálculo da média de um aluno sob a forma de um fluxograma. 4
5 INÍCIO N1, N2 Média <= (N1 + N2) / 2 Média > 7.V. "Aprovado".F. "Reprovado" FIM Pseudocódigo Esta forma de representação de algoritmos é rica em detalhes, como a definição dos tipos das variáveis usadas no algoritmo e, por assemelhar-se bastante à forma em que os programas são escritos, encontra muita aceitação. Na verdade, esta representação é suficientemente geral para permitir que a tradução de um algoritmo nela representado para uma linguagem de programação específica seja praticamente direta. A forma geral da representação de um algoritmo na forma de pseudocódigo é a seguinte: Algoritmo <nome-do-algoritmo> <declaração_de_variáveis> <subalgoritmos> Início Fim. <corpo_do_algoritmo> 5
6 onde: Algoritmo é uma palavra que indica o início da definição de um algoritmo em forma de pseudocódigo. <nome_do_algoritmo> é um nome simbólico dado ao algoritmo com a finalidade de distingui-lo dos demais. <declaração-de-variáveis> consiste em uma porção opcional onde são declaradas as variáveis globais usadas no algoritmo principal e, eventualmente, nos subalgoritmos <subalgoritmos> consiste de uma porção opcional do pseudocódigo onde são definidos os subalgoritmos (veremos adiante). Início e Fim são respectivamente as palavras que delimitam o início e o término do conjunto de instruções do corpo do algoritmo. 3 - SOLUÇÃO DE PROBLEMAS ATRAVÉS DO COMPUTADOR HIPOTÉTICO Como exemplo, abaixo temos a representação do algoritmo do cálculo da média de um aluno, na forma de um pseudocódigo. As expressões, operadores e instruções, bem como a forma correta de colocá-las (sintaxe), serão vistas na unidade 4. Algoritmo, Média Var Nl, N2, Média : real Início Leia N1, N2 Média <= (N1 + N2) / 2 Se Média > 7 Então Escreva "Aprovado" Senão Escreva "Reprovado" Fim_se Fim. 4 - ERROS Quando se fala em erro em um algoritmo ou programa é porque as instruções não estão numa seqüência correta ou ainda, por tratar de informações que não existam ou que existam mas não são do tipo correto. 6
7 Os erros são ocorrências comuns que você deverá permanentemente estar preocupado, não só pela sua ocorrência mas, também, pela resolução da mesma. Os tipos de erros mais comuns que ocorrem num programa são, geralmente, erros de sintaxe e erros de lógica. Analisaremos esses tipos através do exemplo anterior. Algoritmo, Média Var Nl, N2, Média : real Início 3. Média <= (N1 + N2) / 2 4. Leia N1, M2 5. Se Média < 7 Então 6. Escreva "Aprovado" 7. Senão 8. Escreva "Reprovado" 9. Fim_se Fim. Perceba que algumas instruções foram alteradas para simular erros, vamos relacioná-los: As linhas 4 e 5 estão invertidas não se pode calcular a média sem antes saber quais são as notas. Na linha 5 temos uma instrução onde o programa pede informações que serão armazenadas em variáveis. Perceba que a variável M2 não existe. Este tipo de erro é bastante comum. O correto seria N2. Na linha 6, onde acontece uma comparação lógica, o programa escreverá aprovado se a média for menor que 7. Na realidade a instrução deverá ser média > 7, ou seja, se a expressão for verdadeira então o programa escreverá aprovado, caso contrário (se a média for <= 7 então o programa escreverá reprovado. 7
8 EXERCÍCIOS: 1. O que é algoritmo? 2. Qual a diferença entre algoritmo e programa? 3. Quais são as formas de representação de algoritmos? Descreva-as. 4. Elabore um algoritmo na forma narrativa para descrever os processos desde quando você acorda até o momento de ir trabalhar ou estudar. 5. Elabore um algoritmo (em todas as representações) para somar dois números. 6. Descreva o significado de Erros em um programa ou algoritmo. Exemplifique a ocorrência de um erro do algoritmo anterior. 8
Ivanovitch Medeiros Dantas da Silva. Natal, 01 de setembro de 2011
Ivanovitch Medeiros Dantas da Silva Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação DCA0800 - Algoritmos e Lógica de Programação Natal, 01 de setembro de
ALGORITMOS. Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação
Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação ALGORITMOS tal, RN, maio/2004 Professor Responsável: Luiz Affonso Henderson Guedes de Oliveira Prof.
ALP Algoritmos e Programação Iniciação aos Algoritmos. Conceito. Formas. Exemplos. Exercícios 1 Algoritmos: Conceito. Um Conceito Consiste em uma seqüência finita de regras ou instruções que especificam
Como representar um algoritmo?
de Algoritmos Prof. Araken Medeiros araken@ufersa.edu.br Angicos, RN 15/9/2009 Como representar um algoritmo? 15/9/2009 Prof. Araken Medeiros 2 Há várias formas de representação de Dentre elas, as mais
Ciência da Computação. Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano Cansian
Algoritmos e Programação Informática II Ciência da Computação Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano Cansian 1 Sumário Noções de lógica Representação do Conhecimento Lógica na Programação Lógica
ALGORITMOS. Alessandro J. de Souza DIATINF - IFRN. Conceitos e Forma de Representação. twi;er.
ALGORITMOS Cnceits e Frma de Representaçã Alessandr J. de Suza DIATINF - IFRN alessandr.suza@ifrn.edu.br twi;er.cm/ajdsuza Primeira Aula Teórica ² Intrduçã Cnceits de algritms ² Frmas de Representaçã de
Algoritmos e Técnicas de Programação Introdução filipe.raulino@ifrn.edu.br Créditos O material utilizado neste curso é composto de adaptações dos Slides do Professor Diego Silveira. Objetivos Fazer uma
Estrutura de Dados Algoritmos
Estrutura de Dados Algoritmos Antonio Felicio Netto antonio.felicio@anhanguera.com Algoritmo O que é um algoritmo? Processo sistemático para computar um resultado a partir de dados de entrada O que são
LÓGICA DE PROGRAMAÇÃO Prof. Marcelo West Araçuaí 2013 Sumário 1. Introdução... 1 1.1 Algoritmos não computacionais... 2 1.2 Algoritmos computacionais... 4 1.2.1 Teste de Mesa... 6 1.4 Formas de Representação
1 1. INTRODUÇÃO E CONCEITOS BÁSICOS 1.1. OBJETIVOS DA DISCIPLINA Preparar o aluno para o desenvolvimento de soluções computacionais eficientes. Capacitar o aluno ao desenvolvimento de algoritmos capazes
Algoritmos e Programação. Noções de Lógica e Algoritmos Tarcio Carvalho
s e Programação Noções de Lógica e Algoritmos Tarcio Carvalho EMENTA Desenvolvimento de algoritmos; Tipos de dados básicos e estruturados; Comandos de uma linguagem de Programação; Metodologia de desenvolvimento
UNIDADE 2 ALGORITMO E RESOLUÇÃO DE PROBLEMAS Noções de lógica para construção de algoritmos Construção de algoritmos sobre problemas do cotidiano O QUE É LÓGICA? Em termos usuais falamos de lógica no nosso
Métodos de Representação de Algoritmos
Métodos de Representação de Algoritmos Contudo, quando falamos em algoritmo sob o enfoque computacional, como já foi mencionado, não podemos utilizar uma descrição narrativa para representar um algoritmo.
Quando temos um problema e vamos utilizar um computador para resolve-lo inevitavelmente temos que passar pelas seguintes etapas:
1. Introdução 1.1 Conceito de Algoritmo A automação é o processo em que uma tarefa deixa de ser desempenhada pelo homem e passa a ser realizada por máquinas, sejam estas dispositivos mecânicos, eletrônicos
Fig.1: Ilustração de Lógica Fonte: Internet
1. Introdução à Lógica de Programação Neste capítulo serão definidos alguns dos conceitos básicos necessários que vão ajudar o leitor na compreensão dos mecanismos utilizados na escrita de programas de
Algoritmos e Programação Engenharia de Produção Prof. Carlos Noriega 1 LÓGICA DE PROGRAMAÇÃO CONCEITOS BÁSICOS ROTEIRO Representação Algorítmica Fases Básicas da Construção de Algoritmos Programação Estruturada
Fluxograma. Símbolo Nome Descrição
63 Fluxograma Analisaremos agora o método de representação de algoritmos denominado fluxograma. Conceitualmente um fluxograma é um tipo de diagrama, e pode ser entendido como uma representação esquemática
Revisão Histórico das Linguagens de Programação
Revisão Histórico das Linguagens de Programação Qual a única linguagem compreendida pelos computadores? O que é uma linguagem de programação de alto nível? Como fazer o computador entender um programa
Aula I Introdução à Lógica de Programação Referência bibliográfica BENEDUZZI H, METZ J. Lógica e Linguagem de Programação Introdução ao Desenvolvimento de Software. Ed. Livro Técnico Introdução A demanda
CONCEITO DE COMPUTADOR. O que é um computador?
CONCEITO DE COMPUTADOR O que é um computador? CONCEITO DE COMPUTADOR Denomina-se computador uma máquina capaz de variados tipos de tratamento automático de informações ou processamento de dados. Contudo,
65 Fluxograma Analisaremos agora o método de representação de algoritmos denominado fluxograma. Conceitualmente um fluxograma é um tipo de diagrama, e pode ser entendido como uma representação esquemática
Computação I: Representações de Algoritmos
Computação I: Representações de Algoritmos reginaldo.re@utfpr.edu.br * Parte da apresentação foi gentilmente cedida pelo prof. Igor Steinmacher Agenda Objetivos Relembrando... Algoritmos para desenvolver
Lógica de Programação Significa o uso correto das leis do pensamento e de processos de raciocínio para a produção de soluções logicamente válidas v e coerentes,, que resolvam com qualidade os problemas