Category: C

Ago 11 2010

Adicionando método ao servidor VFS no Minix

Boa Noite,

Primeiramente, o que é VFS? VFS é Virtual File System. É uma camada que existe em muitos sistemas operacionais e também no Minix, que cuida da parte comunicação com o File System. O mesmo foi desenvolvido pelo Balázs Gerófi como tese de Mestrado na universidade de Amsterdam com nome de “Design and implementation of the MINIX Virtual File system“.

Read more »

Jul 26 2010

Criando uma biblioteca do sistema no Minix.

Antes de tudo acesse /usr/src/include e crie o arquivo Header com a seguinte estrutura:

NOME.h

_PROTOTYPE(int NOME_DA_FUNCAO, (int PARAM));

Read more »

Set 25 2009

Exercicio em C++

Boa noite,

Nos últimos dias uma amiga pediu ajuda para resolver dois exercícios em C++ que o professor dela havia passado. O enunciado dos mesmo são:

1. Faça um programa que leia um numero não determinado de valores inteiros e positivos. Para cada valor lido: se o numero for par, verificar quantos divisores possui e escrever esta informação. Se for impar e menor que 12, escrever o seu fatorial. Se for impar e maior que 12, escrever a soma dos números de 1 até ele.

Resolução C++ do exercicio 1.

2. Escrever um programa que leia valores, um de cada vez, e conta quantos deles estão em cada um dos intervalos: [0,25], [25, 50], [50, 75] e [75,100].

Resolução C++ do exercicio 2

Matheus

PS: Pra mim é C mas como só ajudei ela não entrei no mérito dessa questão.

Jul 01 2009

Árvore B, Estrutura de Dados.

Boa noite,

Neste post vou publicar uma árvore B em C++ desenvolvida por mim e pelo meu colega Olav, como trabalho da aula de estrutura de dados. A mesma le um arquivo de ceps e insere os mesmos em uma árvore e calcula o tempo de inserção para cada item. Infelizmente, me parece que o medidor de tempo não está correto, porém com a árvore está.

Caso você descubra algo errado por favor, reporte-me

Árvore B

Matheus Bratfisch

Mai 06 2009

Lista encadeada, Estrutura de dados.

Saudações,

Para não perder o costume, irei postar outro exercicio resolvido em uma aula. Dessa vez o exercicio é o seguinte:
- Implemenetar o sistema de contabilidade de um mafioso. (outros detalhes continue lendo o post)

O enunciado do mesmo se encontra no “read the rest of this entry” para não deixar o post muito extenso devido ao longo enunciado.

A resolução do mesmo você pode baixar aqui.

Read more »

Abr 29 2009

Lista com ponteiros, Estrutura de Dados.

Boa noite a todos,

Como ainda não produzi nada muito bom hoje em casa (no lab produzi algo relaciona a xml-rpc que pretendo postar em breve), resolvi postar mais um dos 198578951 exercicios que estou tendo que fazer para estrutura de dados. O Exercicio de hoje é nada mais nada menos que uma implementação de uma Lista com Ponteiros, ou seja, ela não tem limite de elementos (é claro, se a memoria for infinita).

Como no exercicio anterior, o enunciado fica para a pagina inteira pois é muito grande.

O exercicio resolvido você encontra aqui.

Read more »

Abr 28 2009

Pilha, com ponteiros, Estrutura de Dados.

Então, hoje vou demonstrar um dos outros exercicios que fizemos na aula de estrutura de dados, lembrando mais uma vez que estes são exercicios que eu faço rapidamente e não me importo muito com várias coisas pela falta de tempo. O que irei mostrar hoje é uma Pilha com vetores porém em vez de ele ter um inteiro indicando o ultimo elemento, o ultimo será um ponteiro para o ultimo elemento da pilha.

Para ver o enunciado inteiro continue lendo (enunciado grande).

Para baixar o arquivo, clique aqui!

Read more »

Abr 27 2009

Ubuntu com Netbeans Java e C

Boa noite,

Hoje pretendia instalar o netbeans 6.5.1 no Ubuntu 64 bits, baixei a versão que eu queria (C/C++) no site do netbeans. Tentava instalar o netbeans com o comando:

$ ./netbeans-6.5.1-ml-cpp-linux.sh

(PS: Tornei o mesmo executavel antes, com o comando $ chmod +x netbeans-6.5.1-ml-cpp-linux.sh)

Recebia a seguinte resposta:

x-warrior@x-warrior-desktop:~/Desktop$ ./netbeans-6.5.1-ml-cpp-linux.sh
Configuring the installer…
Searching for JVM on the system…
Extracting installation data…
Running the installer wizard…
x-warrior@x-warrior-desktop:~/Desktop$

Porém a parte grafíca não acontecia. Fui olhar o log da seguinte maneira:

$ sh netbeans-6.5.1-ml-cpp-linux.sh –verbose –output out.txt

Analisando o arquivo out.txt pude ver o seguinte erro:

[2009-04-27 20:56:18.173]: at org.netbeans.installer.Installer.main(Installer.java:78)
[2009-04-27 20:56:18.174]: … show message dialog
[2009-04-27 20:56:18.174]: title: Critical Error
[2009-04-27 20:56:18.174]: message: An unexpected exception happened in thread main
[2009-04-27 20:56:18.174]:
[2009-04-27 20:56:18.174]: Exception:
[2009-04-27 20:56:18.174]: java.lang.NoClassDefFoundError:
[2009-04-27 20:56:18.175]: Could not initialize class java.awt.Toolkit

Infelizmente não sabia como corrigi-lo. Pesquisei um pouco e não achei nada que funcionasse. Então tive a brilhante idéia de instalar pelo synaptic. Instalei o netbeans que estava lá, tudo ocorreu normalmente. Executei o mesmo e fui criar um novo projeto, me deparo que a versão instalada era a para Java. Me decepcionei, afinal precisava mesmo da versão para C/C++. Quando fiz a instalação pelo synaptic percebi que existiam muitas dependencias, tentei instalar novamente a versão para C e vua-la. Consegui instalar a mesma. (Meio na gambiarra eu sei, afinal fiquei com 2 versões de netbeans uma para C e outra para Java, mas sem problemas já que eu utilizo as duas.)

Então caso você queira instalar a versão para C/C++, instale a versão de Java, ou suas dependencias somente e em seguida instale o para C/C++ que tudo vai ocorrer bem.

Ah, para um melhor entendimento editei o menu (Botao direito sobre Applications – edit menu), ele é muito intuitivo então não vou entrar em mais detalhes. Mas no mesmo editei os Netbeans 6.5 e 6.5.1 para Netbeans 6.5 (Java) e Netbeans 6.5.1 (C/C++). Assim não corro o problema de esquecer e abrir a versão errada perdendo tempo.

Espero que essa gambiarra dica ajude vocês.

Abraços,
Matheus

PS: Se alguem tiver a solução decente para conseguir instalar o Netbeans me avise que eu posto aqui. Ou caso eu descubra, postarei também.

Abr 25 2009

Lista, Estrutura de dados

Boa tarde,

Como estou tendo aula de estrutura de dados estou tentando colocar aqui, alguns dos conceitos que aprendemos em sala, junto ao seu exercicio e uma implementação de um exercicio (desenvolvido rapidamente, muitas vezes). A estrutura apresentada hoje é Lista, uma estrutura de dados linear. Existe também a lista ligada, ou encadeada que também é conhecida por linear e dinamica (fica pra outro post) e a lista duplamente ligada, ou duplamente encadeada (fica pra outro post também). A pilha e a fila são implementações especiais de listas. A Lista, não possue restrições como suas implementações especiais, e pode receber elementos em qualquer posição, remover de qualquer posição, remover especifico, adicionar em ordem entre outras.

O enunciado do exercicio que foi proposto para lista é o seguinte:

1. Crie o seu tipo de dados tLista em um headerfile;
2. esta deverá ser uma lista de elementos do tipo tAgenda;
3. O tipo tAgenda é um tipo que representa um nome de 30 posições e um número de telefone;
4. crie uma função maior(a,b) que compare os nomes de duas entradas;
5. programe todas as funções documentando cada função, inclusive com dicionário de dados;
6. crie um programa principal que execute todas as funções de lista a partir de um menu. A função procurar específico deverá basear-se no nome em uma Agenda;
7. além dessas funções, o programa deverá ser capaz de listar a lista em ordem alfabética.

Resolução do mesmo aqui.

Até mais,
Matheus

Abr 15 2009

Fila, Estrutura de dados

Boa Noite,

Como estou tendo aula de estrutura de dados estou tentando colocar aqui, alguns dos conceitos que aprendemos em sala, junto ao seu exercicio e uma implementação de um exercicio (desenvolvido rapidamente, muitas vezes). A estrutura apresentada hoje é Fila, uma estrutura de dados baseada no principio FIFO (first in, first out) ou seja, primeiro a entrar é o primeiro a sair. Ela, como a pilha possui duas funções básicas, que é adiciona e remove. Uma adicionando no fim, como uma fila (sem furos, é claro!) e a outra retirando do inicio.

Já faz alguns dias que resolvemos esse exercicio e pra ser sincero não tenho certeza se estou postando a ultima versão que tenho do mesmo, mas acredito que sim. O enunciado do exercicio resolvido foi o seguinte:

* Implemente todas as operações vistas sobre fila;
* implemente um programa principal que utilize a fila através de um menu com os seguintes itens: enfileirar, desenfileirar, limpar, mostrar fila, sair do programa. Use a estrutura de programação switch do “C” para isto;
* a fila possuirá tamanho máximo 100, definido como uma constante chamada MAXFILA. Utilize esta constante para a definição da estrutura de dados que será a fila;
* a fila será referenciada por uma variável global;
* para implementar a estrutura de dados defina um tipo elementoDaFila que será char[40] e defina a sua fila como um vetor de 100 elementoDaFila .

Aqui está a implementação da mesma que acredito ser a ultima.

Abraços,
Matheus

PS: Com o tempo eu pretendo (não sei se consigo) fazer algumas mudanças nas mesmas assim que for aprendendo novas tecnicas e conceitos relacionados ao assunto, mas como a faculdade ta muito corrida não sei se vai ser possivel.