Encontre milhões de e-books, audiobooks e muito mais com um período de teste gratuito

Apenas $11.99/mês após o término do seu período de teste gratuito. Cancele a qualquer momento.

Algoritmo Explicado
Algoritmo Explicado
Algoritmo Explicado
E-book414 páginas3 horas

Algoritmo Explicado

Nota: 0 de 5 estrelas

()

Ler a amostra

Sobre este e-book

Um livro voltado para iniciantes em programação. Aborda o básico para começar a pensar logicamente e criar programas em qualquer linguagem escolhida pelo leitor.
IdiomaPortuguês
Data de lançamento5 de nov. de 2021
Algoritmo Explicado

Relacionado a Algoritmo Explicado

Ebooks relacionados

Computadores para você

Visualizar mais

Artigos relacionados

Avaliações de Algoritmo Explicado

Nota: 0 de 5 estrelas
0 notas

0 avaliação0 avaliação

O que você achou?

Toque para dar uma nota

A avaliação deve ter pelo menos 10 palavras

    Pré-visualização do livro

    Algoritmo Explicado - Jorge Luiz E. De Souza

    Objetivo

    Dar ao iniciante uma visão geral sobre a lógica de programação baseada em estruturação do pensamento.

    Procurei ser o mais simplificado possível, sem deixar de ser abrangente no tocante aos exercícios demonstrados e propostos.

    As ferramentas apresentadas aqui são a base para uma programação concisa e eficaz. Qualquer manual que você escolha as apresentará a você. O diferencial aqui é a maneira como os exemplos são explicados passo a passo, mostrando o porque de cada linha de código.

    Espero abrir uma janela entre você e o mundo da programação de computadores.

    Enjoy!

    JLes

    Introdução

    Abra sua mente! Existe uma grande diferença entre conhecer o caminho e percorrê-lo.

    Morpheus (The Matrix)

    Procurei tornar a curva de aprendizado o mais suave possível, com um grande número de exercícios propostos. Os alunos encontrarão em toda a primeira parte (Parte I), várias técnicas para iniciar a pensar logicamente sobre as coisas em geral e a criar soluções estruturadas para problemas corriqueiros.

    Posso até arriscar a dizer que aprenderão a planejar, mesmo sendo uma forma simples de planejamento.

    Na segunda parte (Parte II), teremos a introdução ao estudo algorítmico, onde serão apresentados os conceitos básicos da ‘pseudo-linguagem’, sintaxe, operadores e uma análise completa de um algoritmo simples.

    A parte III se desdobra em várias seções denominadas Algoritmo X, onde X evolui em ordem numérica determinando o estágio de aprendizado da pseudo-linguagem algorítmica continuando a numeração da parte II.

    Algoritmo II se dedica a apresentar as estruturas condicionais e estudá-las a fundo, apresentando diversos algoritmos onde são empregadas e analisando a sua utilização.

    Algoritmo III apresenta as estruturas de repetição,

    Algoritmo IV apresenta vetores e matrizes.

    Algoritmo V apresenta funções e procedimentos e finalmente Algoritmo VI apresenta o conceito de registros e arquivos.

    Exercícios finais são proposições de sistemas a serem desenvolvidos. São projetos completos em requisitos, possibilitando a análise e permitindo o desenvolvimento individualizado. Boa sorte!

    Textos adicionais são alguns escritos meus sobre a atual realidade da computação e deve ser entendido como a opinião de um profissional, sujeita a críticas e sugestões construtivas.

    Bom estudo.

    Parte I

    Pensamento estruturado

    Conceito fundamental

    Pensar estruturadamente é pensar de maneira ordenada e lógica. Todos pensamos estruturadamente para resolver problemas comuns do dia a dia, mas nem nos damos conta disto, pois é uma forma natural de se pensar. Não precisamos analisar a toda hora o porque estamos pensando daquela maneira, e sim, por exemplo: - O que eu vou fazer agora? Isto vai resolver meu problema? Se aquele quebra-galho acabar?! O que eu vou fazer?

    Pensamento estruturado computacionalmente falando, é você ter conciência de que você está pensando para a solução de um problema! Que você está definindo estágios necessários para que ele seja resolvido, mudando o foco de suas decisões. Transformar:

    O que eu vou fazer agora?, em:

    Devo fazer isto agora para obter este resultado que será necessário mais tarde.

    Isto vai resolver meu problema, em:

    Se isto não resolver meu problema então devo fazer aquilo para resolvê-lo.

    Se aquele quebra-galho acabar?! O que eu vou fazer?, em:

    Se aquele quebra-galho acabar então finalizar obra.

    Tudo bem, são exemplos pouco ortodoxos, mas o objetivo aqui é apresentar a mudança de paradigma de pensamento para aqueles que pretendem aprender algoritmos.

    Deve-se ter em mente que tudo que será feito, deverá sê-lo, pensando em uma solução exata, e não em uma possibilidade de solução. Deve-se escolher um caminho lógico para uma solução e segui-lo até obter o resultado que se deseja.

    Lógica

    Segundo o papai... Lógica é:

    "ló.gi.ca

    s. f. Filos. Parte da filosofia que estuda as leis do raciocínio."

    Cit. Dic Michaelis – UOL

    Para mim, é uma maneira de encadear passos, concisos e bem definidos, segundo um ordenamento de idéias que resultarão em uma; de N soluções possíveis para resolver um problema.

    Isto significa que, a solução que você criar para um problema é uma de N, as outras podem ser melhores ou piores que a sua, mas se você resolver o problema...

    Portugol

    O que é

    É uma forma de introdução aos conceitos computacionais e a lógica de programação que utiliza o português para expressar as soluções algorítmicas para problemas corriqueiros e não computacionais.

    Seu objetivo não é escrever um programa para computador, e sim apresentar alguns conceitos importantes para a criação de programas de computador, como estrutura de pensamento, lógica e sintaxe.

    De acordo com a definição anterior, podemos dizer que o que importa em portugol é entender e utilizar os conceitos computacionais para a solução destes problemas inicialmente. Lembre-se sua solução será uma de N possíveis.

    Sintaxe

    Sintaxe é um termo que estará presente sempre em todas as linguagens de computação. E o seu conceito fundamental é:

    Forma correta de escrita e utilização de comandos computacionais.

    Para se entender a sintaxe computacional, é necessário algumas convenções de escrita.

    <> Indica que o seu interior é obrigatório

    Exemplo:

    Para até faça

    No comando acima, as expressão dentro dos símbolos <> são obrigatórias

    [] Indica que o seu interior é opcional

    Se {[E Condição] [Ou Condição] }>

    [senão]

    [ / ] Indica que o seu interior é opcional e os termos separados pela barra são mutuamente excludentes (ou um ou outro)

    Se {[E Condição] [Ou Condição] }>

    [senão]

    {} agrupa segmentos relacionados

    Se {[E Condiçãoo] [Ou Condição] }>

    [senão]

    Observação: o texto acima está destacado, mas o negrito não faz parte da sintaxe.

    A sintaxe é uma maneira abstrata de se apresentar a forma genérica de utilização de um comando ou expressão computacional. É como as fórmulas matemáticas, temos que substituir os valores do problema nos Xis das expressões.

    Por enquanto este conceito é o suficiente.

    Apresento agora a sintaxe do portugol adotada por mim. (pode apresentar variações entre autores).

    Para se escrever um algoritmo em portugol, as regras abaixo devem ser seguidas.

    1. Cada linha deve representar um único comando iniciado com um verbo no infinitivo.

    2. As linhas de comando devem ser enumeradas.

    3. Entre uma linha de comando e outra, poderá haver linhas adicionais, não enumeradas utilizadas para refinamento (veremos mais afrente o que é isto) do comando imediatamente anterior.

    4. Os comandos devem ser concisos e a seqüência de idéias deve resolver o problema, levando a um resultado possível.

    Como os problemas tratados aqui não são computacionais, fica difícil prever qualquer caminho que seguirá o futuro programador que se propuser a resolvê-los. Fica então, a dica:

    As variáveis envolvidas são muito diversas e dependentes de fatores não padronizados, isto significa que quanto menos variáveis incomuns você imaginar na solução do seu problema, mais genérica será a solução e o resultado.

    Veja isto da seguinte forma:

    - Se o problema apresentado for ligar um carro, não pense em uma Ferrari com ignição digital, e sim em um carro popular, com uma forma convencional de solução para o problema apresentado. Assim, sua solução irá atingir a uma percentagem de utilidade muito maior.

    Traduzindo... se você fosse vender seu portugol pensando em quantas pessoas ele atingiria: - resolver o problema da Ferrari não lhe satisfaria.

    Exercícios Resolvidos

    1. Ler um livro;

    Solução

    1.Ir até a estante de livros;

    2.Escolher um título;

    3.Pegar o livro;

    4.Ir até um local iluminado

    5.Abrir o livro

    6. Começar leitura

    1. Ouvir a faixa 5 de um CD;

    Solução

    1. Ir até a estante de CDs

    2. Escolher um titulo

    3. Pegar o CD

    4. Ir até o aparelho de som

    5. Ligar o aparelho de som

    6. inserir o CD no aparelho de som

    7. Escolher a faixa 5

    8. Ouvir a música

    1. Supondo que você está na escola, pegar um livro na biblioteca;

    Solução

    1. Ir até a biblioteca da escola

    2. Ir até o computador

    3. Digitar o titulo do livro

    4. Requisitar o livro junto a bibliotecária

    5. Apresentar a carteirinha de estudante

    6. Escolher entre ler e levar o livro

    Exercícios propostos

    Lembre-se:

    Portugol trata da solução de algoritmos não computacionais, portanto, qualquer solução lógica que resolva o problema deve ser aceita, mas seja critico, analise os passos e pense sempre que eles devem servir de base para que qualquer pessoa que ler sua receita de bolo consiga chegar ao resultado que você está propondo, dentro das condições ambientais que você imaginou.

    Para a solução destes primeiros exercícios, utilize somente as regras 1, 2 e 4 de portugol, analisaremos o refinamento de código mais adiante.

    1. Digitar um trabalho no computador

    2. Entrar em casa

    3. Abrir a janela da sala

    4. Receber uma visita

    5. Mostrar o boletim para os pais

    6. Ligar para a Gabriela

    7. Andar de bicicleta

    8. Recarregar o Celular

    9. Levantar cedo no domingo

    10. Ir ao parque

    11. Abrir uma cortina

    12. Acampar

    (sinta-se a vontade para propor e solucionar em portugol seus prórios problemas não computacionais até você se sentir a vontade para prosseguir)

    Estrutura condicional (Refinamento de código)

    Conceito

    Você deve ter percebido que até agora, somente nos preocupamos com os passos lógicos para a solução dos problemas não computacionais. E deve ter sentido a necessidade de um recurso de tomada de decisão. As vezes você precisa escolher entre dois caminhos, onde cada um tem seu próprio desenrolar de ações para chegar a um resultado onde o algoritmo possa prosseguir na solução inicial.

    A este recurso de decisão damos o nome de estrutura condicional. Sua sintaxe é:

    Se

    Então

    Senão

    Onde:

    Se

    é palavra reservada que inicia a tomada de decisão.

    é a condição simples ou composta que ao ser resolvida tomará os caminhos lógicos:Então para condição verdadeira e

    Senão

    para condição falsa.

    Então

    é o caminho tomado quando a condição da tomada de decisão SE retorna um valor verdadeiro.

    Senão

    Senão é o caminho tomado quando a condição da tomada de decisão SE retorna um valor falso.

    < Comando / Bloco de comandos>

    < Comando / Bloco de comandos> Comando representa uma única linha de instrução e Bloco de comandos representa várias linhas de instrução delimitadas pelas palavras chave Inicio e Fim

    Utilização

    Peguemos o primeiro exercício resolvido anteriormente.

    1. Ler um livro;

    Solução

    1. Ir até a estante de livros;

    2. Escolher um título;

    3. Pegar o livro;

    4. Ir até um local iluminado

    5. Abrir o livro

    6. Começar leitura

    A linha destacada contem uma instrução complexa que poderia ser "REFINADA", isto é, desdobrada em outros passos menores cuja execução seria equivalente ao comando Escolher um título.

    Vejamos:

    1. Ler um livro;

    Solução

    1. Ir até a estante de livros;

    2. Escolher um título;

    Se a estante é alta

    Então 2.1 Voltar com uma escada

    Senão Escolher um título

    3. Pegar o livro;

    4. Ir até um local iluminado

    5. Abrir o livro

    6. Começar leitura

    Analisando o refinamento anterior poderíamos dizer que a tomada de decisão abaixo da linha de instrução 2 equivale a ela.

    Dica:

    Observe também que para manter a concisão, você deve escolher o verbo mais adequado por exemplo: o verbo Voltar é mais completo que o verbo Pegar, pois voltar já implica em continuar a fazer o que se estava fazendo.

    Na solução de refinamento anterior, prevemos somente uma de N variações possíveis para a execução da instrução Escolher um Titulo. Poderíamos colocar muito mais situações de tomada de decisão para se escolher um livro.

    A Instrução 2.1 Voltar com uma escada ainda não satisfaz totalmente o caminho lógico para o próximo passo 3. Pegar o livro pois o caminho lógico da estrutura pressupõe que ao sair do Então da estrutura condicional, o livro já deveria estar escolhido pois a próxima instrução depende da escolha do titulo.

    Para resolvermos isto, podemos nos valer da sintaxe do comando SE, mostrada anteriormente que nos permite escolher entre executar um único comando após as palavras ENTÂO e SENÂO, ou um Bloco de comandos delimitados pelas palavras reservadas INICIO e FIM. A instrução ficaria assim.

    2. Escolher um título;

    Se a estante é alta

    Então Inicio

    2.1 Voltar com uma escada

    Escolher um Título

    Fim

    Senão Escolher um título

    Observe que tivemos que recorrer a um bloco de comandos para o caminho de decisão Então da estrutura condicional para podermos escrever a instrução Escolher um Título após termos apanhado a escada. Agora, qualquer que seja o resultado da condição a estante é alta executaremos a instrução Escolher um título que é o objeto de refinamento.

    Dica:

    Por que não utilizamos a instrução 2.1 Voltar com uma escada e escolher um título?

    Porque uma das regras do portugol é: 1. Um comando por linha e a conjunção coordenativa aditiva E liga duas orações completas, portanto, dois comandos na mesma linha. Erro de Sintaxe.

    Por quê utilizamos as palavras reservadas Inicio e Fim?

    A sintaxe do comando se mostra que para que duas ou mais linhas de instrução pertençam a um caminho de tomada de decisão (Então, Senão) eles devem estar delimitados pelas palavras chaves Inicio e Fim.

    Por que o caminho Senão da tomada de decisão não tem as palavras reservadas Inicio e Fim?

    Por que só há uma linha de instrução pertencente a ele.

    Importante

    Observe que o refinamento foi feito por mim, com base em uma variante que eu escolhi ao acaso que foi: A estante ser alta.

    Para efeito de treinamento, você pode escolher uma linha de comando do seu portugol, determinar a variante a ser resolvida e criar um código de tomada de decisão que equivalha a linha de comando escolhida. Isto é, Executar o refinamento equivale a executar a linha escolhida.

    Exercícios

    Use os exercícios de portugol já feitos para treinar o refinamento de código.

    Parte II

    Algoritmo I

    Conceito fundamental

    Até alguns anos atrás algoritmo era uma ‘pseudolinguagem’...

    ‘To be continued’...

    Para compreendermos a frase anterior e podermos completar o período com uma significação maior, vejamos alguns conceitos.

    Segundo o Dic Michaelis eletrônico:

    lin.gua.gem

    s. f. 1. Faculdade de expressão audível e articulada do homem. 2. Conjunto de sinais falados, escritos ou gesticulados de que se serve o homem para exprimir suas idéias e sentimentos. 3. Qualquer meio que sirva para exprimir sensações ou idéias. 4. A voz dos animais.

    pro.gra.ma.ção

    s. f. 1. Ato de estabelecer um programa. 2. O programa.

    Juntando as idéias, uma linguagem de programação seria então:

    Um programa que dispõe de um conjunto de sinais capazes de permitir ao homem um meio de expressar suas idéias para solução de problemas computacionais criando programas que poderão ser utilizados por qualquer individuo para obter a solução do problema em questão nas mesmas condições estabelecidas no código.

    Isto significa dizer que uma linguagem de programação é um programa para criar programas de computador.

    ... ‘Continuing’

    Até alguns anos atrás algoritmo era uma pseudolinguagem por que não existia nenhum programa de computador capaz de compilar, ou mesmo, interpretar o código criado na linguagem algorítmica, produzindo na tela do computador os efeitos lógicos codificados no pseudocódigo. Isto agora é possível com o AMBAP.

    Um programa criado e mantido pela Universidade Federal de Alagoas – UFAL, cuja sigla significa: Ambiente de aprendizado de programação. Pelos alunos André Atanásio M. Almeida, Klebson dos Santos Silva e Rodrigo Paes sob orientação de Eliana da Silva Almeida e implementado em JAVA (tm)  .

    Este projeto pode ser obtido em http://ambap.ufal.br

    OBS: Out 2021 O Projeto ambap foi descontinuado, mas os conceitos deste e-book sempre estarão em dia.

    Ora! Se o código criado em algoritmo não pode se transformar em programa de computador, então, porque escrever códigos em linguagem algorítmica.

    Para respondermos a esta questão vejamos:

    Segundo o Dic Michaelis eletrônico:

    al.go.rit.mo

    s. m. Sistema particular de disposição que se dá a uma sucessão de cálculos numéricos: Algoritmo de cálculo diferencial.

    Já definimos algoritmos computacionais anteriormente neste volume, mas não de forma direta (vide Pensamento estruturado). Façamo-lo agora.

    Algoritmo seria a utilização das estruturas computacionais (sinais e estruturas disponíveis em uma dada linguagem de programação) para a criação de um caminho lógico para a solução de um problema.

    Segundo esta definição, a linguagem algorítmica, mesmo quando não havia um programa, como o AMBAP, capaz de executar o código no computador, ainda assim tinha e tem o seu valor

    Está gostando da amostra?
    Página 1 de 1