Arquivo de etiquetas: algoritmos

Algoritmo de Dijkstra

Nesta edição da Programar, não quisemos deixar de lado uma das linguagens mais usadas de todos os tempos.

A famosa linguagem C

E nesta edição comemorativa dos 10 anos da nossa revista, achamos que faria todo o sentido recordar um algoritmo, que em algum dia das nossas vidas, todos nós, programadores ouvimos falar… o não menos famoso que a própria linguagem C, o algoritmo de Dijkstra… e porque este algoritmo? Porquê este refere, o caminho do custo mínimo. E todos nós sabemos que a nossa revista já percorreu muitos caminhos até chegamos à edição 53.

Ora para os mais distraídos, e para os menos recordados, este algoritmo data do ano de 1956, tendo tido a sua primeira publicação em 1959. Foi criado por um matemático computacional holandês, Edsger Dijkstra. E trouxe uma solução que vários procuravam na altura, a solução para o problema do caminho mais curto num grafo dirigido.

Continuar a ler

Ordenação Genérica em C

Introdução

Em um artigo anterior, tratei do problema da construção de estruturas de dados genéricas, isto é, estruturas capazes de manipular diferentes tipos de dados, informados no momento da criação destas estruturas. No final deste artigo, levantei a seguinte questão:

Como podemos criar uma função comparar os itens de uma estrutura de dados genérica, uma vez que ela não conhece o seu tipo, a priori. Mesmo sabendo qual é o tipo de dado, em alguns casos, não seria possível compará-los; por exemplo, quando o tipo de dado é uma estrutura complexa, criada pelo próprio desenvolvedor, como uma struct para armazenar os dados de um aluno, entre outros.

Para resolver este problema, utilizando a linguagem C, precisamos lançar mão de um recurso conhecido como funções callback. Esse tipo de função tira proveito do fato de que a linguagem C trabalha com ponteiros para funções, isto é, podemos passar para uma função, um ponteiro que aponta para o bloco da memória onde está localizada outra função do sistema (ou até mesmo a própria função que está recebendo o parâmetro). Isto permite que uma determinada função chame outras funções, mesmo sem ter conhecimentos de quais funções são estas.

Continuar a ler

Estruturas de Dados e Algoritmos em C

Programação, a “linguagem do futuro” permite executar praticamente tudo, se não mesmo tudo aquilo que a nossa imaginação possa equacionar. No entanto o desenvolvimento de soluções de software de média e elevada complexidade trás consigo a necessidade de aprofundar os conceitos algorítmicos que no fundo são a base da programação.

É com esse mesmo objectivo de aprofundar os conceitos algorítmicos dos programadores que se apresenta este livro Estruturas de Dados e Algoritmos em C.

Continuar a ler

Exercícios em Java – Algoritmia e Programação Estruturada

Quem está a dar, ou já deu, os seus primeiros passos na programação, sabe como tudo parece um bicho de sete cabeças. Seja qual for a linguagem de programação, existe um conjunto de regras mais simples do que a gramática da língua natural do programador, mas não deixa de ser tanto ou mais restritiva do que esta. Temos então o processo natural de aprendizagem de uma linguagem que passa normalmente pela leitura de texto explicativos destes conceitos, que numa primeira fase, por assentarem numa base lógica muito forte, se tornam muito complicados para a mente criativa do ser humano. Uma maneira de colmatar esta dificuldade na absorção de informação e processos, é a prática. Assim como o exercício físico repetitivo cria flexibilidade e memória muscular, o exercício mental cria a mesma flexibilidade mental assim como molda o pensamento aos conceitos usados.

Continuar a ler