Algoritmos e Programação 1 - Introdução

Começar. É Gratuito
ou inscrever-se com seu endereço de e-mail
Algoritmos e Programação 1 - Introdução por Mind Map: Algoritmos e Programação 1 - Introdução

1. Programação

1.1. É usada quando queremos que um computador resolva um algoritmo computacional

1.2. Usamos linguaguem de programação

1.2.1. Traduz a nossa linguagem natural para linguagem de máquina

1.2.2. Usa comandos específicos

1.2.3. Cada comando tem a sua forma correta de escrever e seu objetivo próprio

2. Algoritmos

2.1. Definição

2.1.1. É uma sequência de passos ordenados logicamente para resolver um problema.

2.2. Características

2.2.1. Precisão

2.2.1.1. Significa dizer que cada passo do algoritmo deve ser claro e não ambíguo.

2.2.1.2. Exemplo: Em vez de dizer "Adicione um pouco de sal", um algoritmo preciso diria "Adicione 1/4 de colher de chá de sal".

2.2.2. Finitude

2.2.2.1. O algoritmo deve terminar após um número finito de passos.

2.2.2.2. Exemplo: Um algoritmo para encontrar o maior número em uma lista terminará quando todos os números forem comparados.

2.2.3. Entrada definida

2.2.3.1. O algoritmo deve especificar quais dados são necessários para sua execução.

2.2.3.2. Exemplo: Um algoritmo para calcular a área de um retângulo precisa da entrada de dois valores: comprimento e largura.

2.2.4. Saída definida

2.2.4.1. O algoritmo deve produzir um resultado específico.

2.2.4.2. Exemplo: O algoritmo de ordenação deve produzir uma lista ordenada como saída.

2.2.5. Eficácia

2.2.5.1. Cada instrução do algoritmo deve ser básica o suficiente para ser executada em um tempo finito.

2.2.5.2. Exemplo: "Divida o número por 2" é uma instrução eficaz, enquanto "Pense em um número aleatório" não é.

2.2.6. Generalidade

2.2.6.1. O algoritmo deve ser aplicável a um conjunto de entradas, não apenas a um caso específico.

2.2.6.2. Exemplo: Um algoritmo para calcular a média deve funcionar para qualquer conjunto de números, não apenas para um conjunto específico.

2.2.7. Determinismo

2.2.7.1. Para o mesmo conjunto de entradas, o algoritmo deve sempre produzir o mesmo resultado.

2.2.7.2. Exemplo: Um algoritmo de ordenação sempre produzirá a mesma sequência ordenada para uma dada lista de entrada.

2.3. Exemplos de algoritmos não computacionais

2.3.1. Algoritmo para preparar um sanduiche

2.3.1.1. Reúna os ingredientes: 2 fatias de pão, queijo, presunto, alface, tomate, maionese.

2.3.1.2. Pegue uma fatia de pão e coloque-a em um prato limpo.

2.3.1.3. Espalhe uma camada fina de maio nese na fatia de pão.

2.3.1.4. Coloque uma fatia de queijo sobre a maionese.

2.3.1.5. Adicione uma fatia de presunto sobre o queijo.

2.3.1.6. Lave o tomate e corte-o em fatias finas.

2.3.1.7. Coloque 2-3 fatias de tomate sobre o presunto.

2.3.1.8. Lave uma folha de alface e coloque-a sobre o tomate.

2.3.1.9. Pegue a segunda fatia de pão e coloque-a sobre o alface.

2.3.1.10. Pressione levemente o sanduíche para compactá-lo.

2.3.1.11. Corte o sanduíche pela diagonal, se desejar.

2.3.2. Algoritmo para trocar uma lâmpada

2.3.2.1. Verifique se a lâmpada está realmente queimada, testando o interruptor.

2.3.2.2. Desligue o interruptor da luz.

2.3.2.3. Espere a lâmpada esfriar, se estiver quente.

2.3.2.4. Pegue uma escada ou banquinho seguro.

2.3.2.5. Posicione a escada embaixo da lâmpada.

2.3.2.6. Suba na escada com cuidado.

2.3.2.7. Gire a lâmpada queimada no sentido anti-horário para removê-la.

2.3.2.8. Pegue a nova lâmpada, verificando se a potência é compatível.

2.3.2.9. Insira a nova lâmpada no soquete.

2.3.2.10. Gire a nova lâmpada no sentido horário até ficar firme.

2.3.2.11. Desça da escada com cuidado.

2.3.2.12. Ligue o interruptor para testar a nova lâmpada.

2.4. Exemplos de algoritmos computacionais

2.4.1. Algoritmo para calcular a média de um aluno da UFERSA

2.4.1.1. Declarar variáveis: nota1, nota2, nota3 e media

2.4.1.2. Pedir ao usuário que informe os valores de nota1, nota2 e nota3

2.4.1.3. Receber os valores que o usuário informou

2.4.1.4. Converter os valores para o tipo correto (float)

2.4.1.5. Armazenar os valores nas variáves nota1, nota2 e nota3 respectivamente

2.4.1.6. Somar os valores armazenados em nota1, nota2 e nota3

2.4.1.7. Dividir o valor encontrado na soma por 3

2.4.1.8. Armazenar o valor encontrado na divisão na variável media

2.4.1.9. Exibir o valor encontrado e armazenado na variável média

2.4.2. Algoritmo para calcular o troco da janta no RU

2.4.2.1. Declarar variáveis: valor_pago e troco

2.4.2.2. Pedir ao usuário o valor que ele deseja fornecer

2.4.2.3. Receber o valor que o usuário informou

2.4.2.4. Converter o valor para o tipo correto (float)

2.4.2.5. Armazenar o valor na variável valor_pago

2.4.2.6. Se o usuário trouxer a carterinha, considerar o valor da janta a R$ 2,00

2.4.2.7. Se não trouxe a carterinha, considerar o valor da janta a R$ 11,00.

2.4.2.8. Diminuir o valor da janta do valor_pago

2.4.2.9. Armazenar o valor encontrado na variável troco

2.4.2.10. Exibir o valor do troco encontrado para o usuário

2.5. Por que criamos algoritmos para resolver problemas?

2.5.1. Eficiência

2.5.1.1. Algoritmos nos permitem resolver problemas de forma sistemática e eficiente.

2.5.1.2. Reduzem o tempo e esforço necessários para completar tarefas complexas.

2.5.2. Consistência

2.5.2.1. Garantem que um problema seja resolvido da mesma maneira toda vez.

2.5.2.2. Reduzem erros humanos e variabilidade nos resultados.

2.5.3. Automação

2.5.3.1. Possibilitam que computadores executem tarefas sem intervenção humana constante.

2.5.3.2. Permitem o processamento de grandes volumes de dados rapidamente.

2.5.4. Escalabilidade

2.5.4.1. Algoritmos bem projetados podem lidar com problemas de diferentes tamanhos.

2.5.4.2. Facilitam a expansão de soluções para problemas maiores.

2.5.5. Compreensão do problema

2.5.5.1. O processo de criar um algoritmo nos força a entender profundamente o problema.

2.5.5.2. Ajuda a identificar casos especiais e exceções.

2.5.6. Comunicação

2.5.6.1. Algoritmos são uma forma de comunicar soluções de problemas entre pessoas.

2.5.6.2. Facilitam a colaboração em projetos de software.

2.5.7. Otimização

2.5.7.1. Permitem melhorar continuamente a solução de um problema.

2.5.7.2. Possibilitam comparar diferentes abordagens para resolver o mesmo problema.

2.5.8. Reusabilidade

2.5.8.1. Algoritmos bem projetados podem ser reutilizados em diferentes contextos.

2.5.8.2. Economizam tempo no desenvolvimento de novas soluções.