Árvore AVL, usando arquivos para armazenamento de dados

Esta arvore foi implementada usando o conceito de TAD, por isso foram criados três arquivos: Obs.: eu deixei comentários nas linhas mais importantes desta implementação. avl-tree.h - nela estão contidos a estrutura da árvore e os protótipos de todas funções que foram usadas no programa. avl-tree.c - nela está contida a elaboração de todas as funções implementadas neste programa. avl-treeexecucao.c - nela está a função principal para a compilação de todo o programa. Os códigos fora elaborados, somente para serem compilados no Dev-C++: http://sourceforge.net/projects/dev-cpp/ Todos os códigos devem estar salvos na mesma pasta para o seu funcionamento.

Por: Marcos Augusto


Jantar dos Filósofos - Programação Paralela

Um programa concorrente especifica dois ou mais processos concorrentes, onde cada um executa um programa sequencial. Tais processos interagem por meio da comunicação, o que traz a necessidade de sincronização. O problema de sincronização mais conhecido é o do "Jantar dos Filósofos". Ele foi proposto por Dijkstra (1965) como um problema clássico de sincronização e possui a seguinte situação: 1) Cinco filósofos estão sentados ao redor de uma mesa circular para o jantar. 2) Cada filósofo possui um prato para comer macarrão. 3) Os filósofos dispõem de hashis e e cada um precisa de 2 hashis para comer. 4) Entre cada par de pratos existe apenas um hashi: Hashis precisam ser compartilhados de forma sincronizada. 5) Os filósofos comem e pensam, alternadamente. Eles não se atém a apenas uma das tarefas. 6) Além disso, quando comem, pegam apenas um hashi por vez: Se conseguir pegar os dois come por alguns instantes e depois larga os hashis. O problema é coordenar o uso dos hashi de maneira que nenhum filósofo fique com fome. Esse problema exemplifica muito bem muitas soluções e muitos problemas encontrados na programação concorrente. Pode facilmente ocorrer o deadlock se cada filósofo pegar o seu hashi da esquerda e se recusar a liberá-lo até ter comido. Pode ocorrer a inanição se dois filósofos conspirarem contra um terceiro. Na solução dada abaixo, é livre de impasse e permite o máximo paralelismo a uma número arbitrário de filósofos. Ela usa um arranjo de estado para controlar se um filsofo está comendo, pensando ou faminto. Um filósofo só pode mudar comer se nenhum de seus vizinhos estiverem comendo. O programa utiliza um arranjo de semáforos, um por filósofo, assim o filósofos famintos podem ser bloqueados se os garfos necessários estiverem ocupados. Comando para compilar no GCC: $ gcc -o jantar_dos_filosofos.o jantar_dos_filosofos.c -pthread Bom estudo.

Por: Uilian Ries


Jogo de 21 em C

Este é um exemplo de como fazer o jogo de 21 em C. A estrutura e procedimentos podem ser usados também para fazer o jogo de truco ou algum outro. Os procedimentos foram implementados usando a estrutura de dados pilha. Divirtam-se

Por: Tiago Alves de Oliveira


Ejetor

Código que tem a função do eject cdrom, mas ele só faz o CD-ROM voltar, e não sair.

Por: Lord Arthas Menethil


4 EP - Poli USP - LIG4 (LigK)

Um joguinho básico do popular LIG4, distribuído no Brasil pela Estrela. O jogo salva partidas, carrega. Tem a opção de jogar contra o computador. Ainda é possível escolher um "k" para o Lig, por exemplo, Lig5, Lig6, até Lig9.

Por: João Matheus Rugeri Murdiga


3 EP - Poli USP - Angry Birds (angry bixos)

Trabalho da disciplina "MAC2166" - Exercício programa contendo uma ideia do funcionamento do jogo "Angry Birds", obviamente muito menos complexo. Obs: Necessário o arquivo "Entrada.txt" para o carregamento de dados relativos a distância, velocidade máxima, altura, tamanho do alvo...

Por: João Matheus Rugeri Murdiga






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts