Seja Bem-Vindo. Este site tem recursos de leitura de texto, basta marcar o texto e clicar no ícone do alto-falante   Click to listen highlighted text! Seja Bem-Vindo. Este site tem recursos de leitura de texto, basta marcar o texto e clicar no ícone do alto-falante

Linguagem de Programação C – Aula 03

Assunto

Nesta aula abordaremos lógica de programação utilizando linguagem C.

Algoritmos

Origem da Palavra “Algoritmo”

A palavra “algoritmo” tem suas raízes na história da matemática e remonta ao matemático persa do século IX, Muhammad ibn Musa al-Khwarizmi. Al-Khwarizmi foi um acadêmico na Casa da Sabedoria em Bagdá, e ele é amplamente reconhecido por suas contribuições significativas ao desenvolvimento da álgebra e à introdução dos numerais arábicos na Europa através de suas traduções. Seu nome, “al-Khwarizmi”, foi latinizado para “Algoritmi”, o que eventualmente evoluiu para o termo moderno “algoritmo”.

Abu Abedalá Maomé ibne Muça ibne Alcuarismi

Al-Khwarizmi escreveu um livro intitulado “Al-Kitab al-Mukhtasar fi Hisab al-Jabr wal-Muqabala” (O Livro Conciso sobre Cálculo por Completamento e Balanço), que introduziu conceitos fundamentais de álgebra e procedimentos para resolver equações lineares e quadráticas. Os métodos sistemáticos de cálculo apresentados por ele são considerados alguns dos primeiros algoritmos formais na história.

Conceito Moderno de Algoritmos

No contexto moderno, um algoritmo é uma sequência finita de instruções ou passos bem definidos que resolvem um problema específico ou realizam uma tarefa. Algoritmos são fundamentais na computação, pois eles especificam os procedimentos precisos que um computador deve seguir para alcançar um resultado desejado.

Características de um Algoritmo:

  1. Finitude: Deve ter um número finito de passos.
  2. Definitude: Cada passo deve ser claro e não ambíguo.
  3. Entrada: Deve aceitar zero ou mais entradas.
  4. Saída: Deve produzir pelo menos uma saída.
  5. Eficácia: Cada passo do algoritmo deve ser efetivo, significando que deve ser basicamente realizável.

Exemplos de Algoritmos

  1. Algoritmo de Euclides: Utilizado para encontrar o máximo divisor comum (MDC) de dois números inteiros. É um dos algoritmos mais antigos e conhecidos.
  2. Algoritmo de Ordenação por Bolha (Bubble Sort): Um algoritmo de ordenação simples que percorre a lista repetidamente, trocando os elementos adjacentes que estão na ordem errada.
  3. Busca Binária: Um algoritmo de busca eficiente em listas ordenadas que divide repetidamente o espaço de busca pela metade até encontrar o elemento desejado.
  4. Algoritmo de Dijkstra: Um algoritmo usado para encontrar o caminho mais curto entre dois vértices em um grafo, comumente usado em sistemas de navegação.
  5. Merge Sort: Um algoritmo de ordenação que divide o array em duas metades, ordena cada metade e então as combina em uma única lista ordenada.

Importância do Raciocínio Algorítmico para a Solução de Problemas

O raciocínio algorítmico é crucial na solução de problemas porque ele promove uma abordagem sistemática e lógica para quebrar problemas complexos em partes menores e mais gerenciáveis. Essa habilidade é fundamental não apenas na ciência da computação, mas em muitas outras áreas, incluindo engenharia, finanças, biologia e até na vida cotidiana.

  1. Organização e Clareza: Ao desenvolver um algoritmo, os problemas são estruturados de uma maneira lógica e clara, facilitando a identificação de passos e processos necessários para chegar a uma solução.
  2. Eficiência: Raciocínio algorítmico ajuda a encontrar a solução mais eficiente para um problema, minimizando recursos como tempo de execução e uso de memória.
  3. Reusabilidade: Algoritmos bem projetados podem ser reutilizados em diferentes contextos e problemas, economizando tempo e esforço em novos desenvolvimentos.
  4. Automação: Algoritmos são a base da automação. Eles permitem que máquinas executem tarefas repetitivas e complexas de maneira consistente e sem erros.

Importância dos Algoritmos para a Programação de Computadores

Na programação de computadores, algoritmos são fundamentais por vários motivos:

  1. Base da Programação: Algoritmos formam o núcleo da programação. Eles definem como um problema será resolvido programaticamente, determinando a lógica que será codificada em uma linguagem de programação.
  2. Desempenho e Otimização: Diferentes algoritmos podem resolver o mesmo problema de maneiras mais ou menos eficientes. Escolher o algoritmo correto pode ter um impacto significativo no desempenho de um software.
  3. Escalabilidade: Algoritmos eficientes são essenciais para que os programas possam lidar com grandes volumes de dados e escalem para atender a demandas crescentes.
  4. Complexidade: Entender a complexidade de algoritmos (por exemplo, usando a notação Big-O) permite aos programadores prever o comportamento de seus programas em diferentes cenários e ajustar seus algoritmos para melhor desempenho.

Recursos de Estudo sobre Algoritmos

1. Livros:

      • Introduction to Algorithms de Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest e Clifford Stein: Um dos livros mais respeitados na área, conhecido como CLRS. Cobre uma vasta gama de algoritmos de maneira detalhada e rigorosa.
      • Algorithms de Robert Sedgewick e Kevin Wayne: Este livro é conhecido por sua clareza e abordagem prática aos algoritmos. Acompanha implementações em Java.
        – The Algorithm Design Manual de Steven S. Skiena: Uma referência valiosa que combina teoria e prática, com muitos exemplos e casos de uso reais.

2. Sites e Recursos Online:

3. Vídeos e Palestras:

Conclusão

A história e o desenvolvimento dos algoritmos remontam a séculos atrás, com contribuições significativas de matemáticos como al-Khwarizmi. Hoje, os algoritmos são a espinha dorsal da programação de computadores e desempenham um papel vital na solução de problemas complexos e na automação de tarefas. O estudo e a compreensão dos algoritmos são fundamentais para qualquer pessoa envolvida em ciência da computação ou programação, pois são esses procedimentos que tornam o software eficiente, escalável e confiável.

Algoritmos e Lógica de Programação com Linguagem C

 

 

 

 

 

 

 

 

 

 

 

 

 

Click to listen highlighted text!