Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 ALGOP – Algoritmos e Programação Aula 1 – Conceitos iniciais + Definição de Algoritmos + Formas de Representação + Tipos de Dados, variáveis e constantes + Instruções Primitivas 2 ALGOP – Algoritmos e Programação Algoritmos (definições) “ Algoritmo é o conjunto predeterminado e bem definido de regras e processos destinados à solução de um problema, com um número finito de etapas. “ (Dicionário Cegalla) “ Um algoritmo é a descrição de um padrão de comportamento, expressado em termos de um repertório bem definido e finito de ações primitivas, das quais damos por certo que elas podem ser executadas. ” (Guimarães e Lages) “ Algoritmo é a descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações. “ (Farrer e colegas) “ Um algoritmo pode ser definido como uma sequência de passos que visam a atingir um objetivo bem definido. “ (Forbellone e Eberspacher) 3 ALGOP – Algoritmos e Programação Algoritmos (definições) O conceito de algoritmo é utilizado em diversas áreas do conhecimento, mesmo sem utilizar o nome algoritmo. Por exemplo: Para administradores e contadores, um plano de ação é um algoritmo, pois nele são listados passos para que se chegue a um resultado satisfatório. Para os matemáticos, o termo algoritmo pode descrever o processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam regras formais para a obtenção da solução do problema. Diariamente aplicamos/exercitamos o conceito de algoritmos, de maneira involuntária ou não... :-) … veja os exemplos seguintes: 4 ALGOP – Algoritmos e Programação Algoritmos (exemplos do cotidiano) Ao tomar banho, podemos distinguir os possíveis passos: 1) Entrar no banheiro e tirar a roupa; 2) Abrir a torneira do chuveiro; 3) Entrar na água; 4) Ensaboar-se; 5) Enxaguar-se; 6) Fechar a torneira; 7) Sair da água, ou da “área do box”; 8) Enxugar-se; 9) Vestir-se. 5 ALGOP – Algoritmos e Programação Algoritmos (exemplos do cotidiano) Podemos preparar uns bifes para o almoço seguindo os passos: 1) Limpar a peça de carne; 2) Fatiar a carne em bifes; 3) Cortar cebolas em rodelas; 4) Repetir, para cada bife: 4.1) levar bife à frigideira; 4.2) aguardar dourar, virando ambas as faces; 4.3) retirar bife e colocar sobre papel toalha até secar; 4.4) retirar do papel toalha e juntar numa travessa; 5) Levar as cebolas fatiadas ao fogo até dourar; 6) Colocar as cebolas douradas sobre os bifes; 7) Servir. 6 ALGOP – Algoritmos e Programação Algoritmos (características) Um algoritmo possui cinco características importantes: 1) Finitude: Um algoritmo deve sempre terminar após um número finito de passos; 2) Definição: Cada passo deve conter ações definidas rigorosamente e sem ambiguidades; 3) Entradas: Um algoritmo deve ter zero ou mais entradas (conjunto de valores que lhe são fornecidos antes do algoritmo iniciar); 4) Saídas: Um algoritmo deve ter uma ou mais saídas (conjunto de valores relacionados com a solução do problema em questão); 5) Efetividade: As operações de um algoritmo devem ser simples de modo que possam ser executadas com precisão, em um tempo finito. 7 ALGOP – Algoritmos e Programação Algoritmos (características) Um algoritmo, como qualquer modelo, é uma abstração da realidade. Abstração é o processo de identificar as propriedades relevantes do fenômeno que está sendo modelado. Usando o modelo abstrato, podemos nos concentrar apenas nos atributos relevantes para nós, dependendo da finalidade da abstração, e ignorar os atributos que não nos interessam no momento. Todos nós sabemos construir algoritmos. Se isso não fosse verdade, não conseguiríamos escovar os dentes, ir ao trabalho, voltar para casa, etc... Para elaborar algoritmos é preciso utilizar a lógica (coerência de raciocínio, de idéias). Quando planejamos algo, utilizamos o raciocínio lógico, colocando ordem no pensamento, nas idéias... :-) ... 8 ALGOP – Algoritmos e Programação Algoritmos (exercitando o raciocínio lógico) Descreva os passos necessários para a resolução dos cenários a seguir: 1) Temos 3 potes para armazenar água, com as respectivas capacidades: 5, 6 e 8 litros. Os potes de 5 e 6 litros estão cheios de água. Precisamos separar apenas 1 litro de água para fazer café. Como podemos manejar a água, sem desperdicios, para conseguir isolar apenas 1 litro? 2) Um barqueiro precisa atravessar 1 raposa, 1 galinha e 1 pacote de milho para a outra margem do rio. Contudo, ele só pode levar um dos elementos em cada viagem. Como podemos planejar as viagens, de maneira que nenhum dos elementos se alimente do outro? 9 ALGOP – Algoritmos e Programação Algoritmos (formas de representação) Os algoritmos podem ser representados de diferentes formas, de maneira gráfica ou textual: + Descrição narrativa – utiliza linguagem natural para especificar os passos para realização das tarefas. + Diagramas de blocos – (ou fluxograma), é uma forma universal de representação, pois se utiliza de figuras geométricas para ilustrar os passos a serem seguidos para a resolução do problema. + Diagrama de Chapin – apresenta a solução do problema por meio de um diagrama de quadros com uma visão hierárquica e estruturada. + Pseudolinguagem – (ou português estruturado, ou portugol), utiliza uma linguagem flexível, intermediária entre a linguagem natural e a linguagem de programação. 10 ALGOP – Algoritmos e Programação Algoritmos (formas de representação) Um exemplo de algoritmo para cálculo da média de um aluno: Cálculo da média do aluno (descrição narrativa; um texto ou em tópicos) + obter as duas notas do aluno; + calcular a média das notas fornecidas; + se a média for maior ou igual a 7.0 + apresentar mensagem de aprovado; + senão + apresentar mensagem de reprovado. 11 ALGOP – Algoritmos e Programação Algoritmos (formas de representação) Diagrama de blocos (fluxograma) Diagrama de Chapin 12 ALGOP – Algoritmos e Programação Algoritmos (formas de representação) O mesmo exemplo em Pseudolinguagem: Algoritmo Media Var N1, N2, Media : Real Inicio Leia N1, N2 Media ← (N1 + N2) / 2 Se (Media >= 7) Então Escreva “Aprovado” Senão Escreva “Reprovado” Fim Se Fim Fim Algoritmo 13 ALGOP – Algoritmos e Programação Algoritmos (formas de representação) Cada forma de representação possui pontos fracos e fortes. Por exemplo: Linguagem Natural / Descrição Narrativa Vantagens: + O português é conhecido por nós. Desvantagens: + Imprecisão. + Pouca confiabilidade (a imprecisão gera desconfiança). + Extensão (normalmente, escreve-se muito para dizer pouca coisa) 14 ALGOP – Algoritmos e Programação Algoritmos (formas de representação) Fluxograma (Diagrama de blocos) Vantagens: + Uma das ferramentas mais conhecidas. + Figuras dizem muito mais que palavras. + Padrão mundial. Desvantagens: + Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou representá-los. + Complica-se a medida que o algoritmo cresce. 15 ALGOP – Algoritmos e Programação Algoritmos (formas de representação) Pseudolinguagem (português estruturado ou portugol) Vantagens: + Usa o português como base. + Pode-se definir quais os dados e como eles vão estar estruturados. + Passagem quase imediata do algoritmo para uma linguagem de programação qualquer. Desvantagens: + Exige a definição de uma linguagem não real para trabalho. + Não padronizado. 16 ALGOP – Algoritmos e Programação Algoritmos (o algoritmo e o computador) Para usarmos o computador como uma ferramenta eficaz de trabalho, algunspassos devem ser observados criteriosamente: 1) Definir o problema: é descrever o problema, os dados de entrada e os resultados desejados, tão claro e detalhado quanto possível. 2) Planejar um algoritmo de solução: é decidir como proceder na solução do problema, identificando operações que o computador possa executar. 3) Codificar a solução: é redigir um programa para dirigir o computador na execução das operações identificadas no algoritmo de solução. 4) Testar o programa: é depurar e testar o programa codificado, para assegurar que os resultados desejados sejam fornecidos como saída. 5) Completar a documentação: é preparar um manual que possa ser consultado por qualquer pessoa que necessite do programa. 17 ALGOP – Algoritmos e Programação Algoritmos (o algoritmo e o programa de computador) Um programa de computador é um conjunto organizado de instruções que fornecemos ao hardware, que tem a capacidade de entendê-las e executá-las. Antes de construir o programa, é importante elaborar o algoritmo que será utilizado para a resolução do problema. De posse do algoritmo, podemos inserí-lo em um programa escrito numa linguagem qualquer. As instruções das linguagens de programação pertencem a 3 categorias: + Instruções declarativas: definem uma terminologia personalizada a ser utilizada no programa, como por exemplo, os nomes associados as dados. + Instruções imperativas: descrevem os passos dos algoritmos, o que fazer com os dados. + Comentários: facilitam a leitura do programa, explicando suas características. 18 ALGOP – Algoritmos e Programação Algoritmos (o algoritmo e o programa de computador) Programas podem ser escritos em diversas linguagens de programação, com instruções entendidas pelo ser humano. Posteriormente, eles serão traduzidos para a linguagem de máquina, entendida pelo computador. Essas traduções são realizadas por programas (software) conhecidos como compiladores, que produzem uma versão do programa em linguagem de máquina, para uso futuro. Existem também os interpretadores, que executam as instruções imediatamente após a sua tradução. Compiladores: Traduzem tudo, geram versão em linguagem de máquina (*.exe)... posteriormente utilizamos esse executável (programa). Interpretadores: Traduzem e executam as instruções, uma a uma... (normalmente mais lento durante a execução). 19 ALGOP – Algoritmos e Programação Algoritmos (dado e informação) É comum observarmos uma certa confusão entre os termos “dado” e “informação”... De maneira breve temos: Dado: Elemento que expressa a menor unidade da informação (átomo da informação). Informação: Conjunto de dados reunidos com regras específicas à natureza da informação. O dado puro não carrega obrigatoriamente caráter informativo. Podemos dizer que o dado é a matéria prima da informação. Quando escrevemos, trabalhamos com letras (dados), que, ao serem ligados, formam palavras (que já é uma informação), que por sua vez formam frases... 20 ALGOP – Algoritmos e Programação Algoritmos (tipos de dados) Existem 4 tipos primitivos de dados que serão utilizados na construção dos algoritmos. São eles: Inteiro: dado numérico pertencente ao conjunto dos números inteiros relativos (negativo, nulo ou positivo). Exemplos: a) Nós temos 5 professores. b) A frota conta com 50 veículos. Real: dado numérico pertencente ao conjunto dos números reais (negativo, nulo ou positivo). Exemplos: a) O Giba tem 1.98m de altura. b) Meu saldo bancário é de R$100.35 … 21 ALGOP – Algoritmos e Programação Algoritmos (tipos de dados) Tipos primitivos de dados (continuação)... Literal (ou caracter): dados compostos por conjuntos de caracteres alfanuméricos: numéricos (0..9), alfabéticos (A..Z, a..z) e especiais (#, !, ?, @, ...). Exemplos: a) Constava na prova: “Use somente caneta.” b) O e-mail do aluno é: “jonas.silva@gmail.com” Lógico: dado que apresenta um dos valores (verdadeiro ou falso). Exemplos: a) A porta está fechada. (ou é verdadeiro, ou é falso) b) A lâmpada está apagada. 22 ALGOP – Algoritmos e Programação Algoritmos (definições) Num algoritmo, trabalhamos com valores que no mundo real representam informações relevantes do problema que estamos resolvendo. Tais valores (dados) podem sofrer, ou não, alterações durante o tempo de execução do programa. Podemos então classificá-los como: Variáveis: dados que podem sofrer alterações de valor (conteúdo) durante o processamento do algoritmo. Exemplos: A cotação do dólar, o salário de um funcionário, o índice da inflação... Constantes: dados que não sofrem alterações de valor (conteúdo) durante a execução do algoritmo. Exemplos: Partes de mensagens enviadas ao usuário (na tela), constantes matemáticas como PI = 3.141592... 23 ALGOP – Algoritmos e Programação Algoritmos (usando variáveis) Imagine a memória do computador como um “arquivo de metal com gavetas”, em que cada gaveta possui uma etiqueta para identificação do conteúdo. Quando declaramos uma variável, reservamos uma região de memória (uma gaveta) identificada (etiquetada) para posterior utilização; quando atribuimos um valor a uma variável, incluímos o conteúdo na região de memória (gaveta) identificada pelo nome da variável. Declarações Atribuições Var idade : Inteiro (Pseudolinguagem) idade ← 39 Dim idade As Integer (Visual Basic) idade = 39 int idade; (c/c++, java) idade = 39; 24 ALGOP – Algoritmos e Programação Algoritmos (usando variáveis) Existem regras para a formação dos nomes (ou identificadores) das variáveis. São elas: + Iniciar o nome da variável com uma letra (caracter alfabético); + Os próximos caracteres poderão ser letras, números ou o “_”; + Não usar espaços em branco e nem caracteres especiais (@, #, …), com exceção do underline “_”; + Nome não pode ser igual a uma palavra reservada da linguagem. Identificadores válidos Identificadores inválidos idade, X, a1, salario_bruto 5X, E(14), A:B, Nota/2 Práticas comuns: Programadores C → iNumeroChamada Java → numeroChamada Constantes → todas as letras maiúsculas → PI = 3.14159265; 25 ALGOP – Algoritmos e Programação Algoritmos (entrada de dados) Normalmente, um algoritmo trabalha com diferentes dados, fornecidos por usuários distintos. Quando necessário, o usuário digita o valor que será utilizado no processamento. Para isso contamos com uma instrução de entrada de dados, que atribui o valor digitado a uma variável. Exemplo: … Var idade : Inteiro Inicio Leia (idade) … Essa instrução, quando executada, gera uma pausa no processamento, aguardando uma ação do usuário (que ele forneça um valor). Na linguagem C, utilizaríamos a função: scanf (“%d”, &idade); (próxima aula) 26 ALGOP – Algoritmos e Programação Algoritmos (saída de dados) Durante o tempo de processamento, o algoritmo transforma um conjunto de dados, gerando com isso informações que podem ser apresentadas ao usuário (na tela por exemplo). Para isso, contamos com uma instrução de saída de dados, que apresenta mensagens e os valores das variáveis. Exemplo: … Var idade : Inteiro Inicio Leia (idade) Escreva (“A idade informada é: “, idade) … Essa instrução, mostra uma frase apresentando o valor da variável idade. . Na linguagem C, utilizaríamos a função: printf (“A idade informada é: %d”, idade); (próxima aula) 27 ALGOP – Algoritmos e Programação Algoritmos (conceitos iniciais – sugestões de leitura) + MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo. Algoritmos: lógica para desenvolvimento de programação de computadores. 17.ed. São Paulo: Érica, 2005. Capítulos: 1. Abordagem Contextual 2. Introdução à Lógica 3. Tipos de dados e instruções primitivas + ARAÚJO, Everton C. Algoritmos: fundamento e prática. 2.ed.Florianópolis: VisualBooks, 2005. Capítulos: 2. Programação – Antes do início 4. Alguns Conceitos 9. Pseudocódigos + Na WEB: http://pt.wikipedia.org/wiki/Algoritmo 28 ALGOP – Algoritmos e Programação Algoritmos (conceitos iniciais – para saber mais) + SALIBA, Walter Luís Caram. Técnicas de programação: uma abordagem estruturada. São Paulo: Pearson Education do Brasil, 1992. Capítulos: 1. Introdução 2. Formas de representação de algoritmos 3. Tipos de dados 4. Variáveis 6. Instruções primitivas + ASCENCIO, Ana Fernanda Gomes; VENERUCHI, Edilene Aparecida. Fundamentos de programação de computadores: algoritmos, Pascal e C/C++. São Paulo: Prentice Hall, 2002. Capítulos: 1. Conceitos básicos Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28
Compartilhar