15/03/2005
Função para MMC e Gerador de Gráficos em Setores
Baseando-me no programa KBruch (um joguinho educativo do KDE que serve pra somar e subtrair duas frações) resolvi fazer uma função que calculasse MMC (pra dar o resultado do KBruch bem rápido! Hehehe). A função recebe dois argumentos: o número de termos e os termos (num vetor) e ficou bem simpes (e eu até comentei). Vejam mmc.c na seção de códigos-fonte. Depois eu fiquei pensando que eu não estou calculando MMC como as pessoas calculam, então depois vou desenvolver uma outra função que calcule o MMC como as pessoas geralmente fazem, tipo assim:
MMC como as pessoas fazem
- 4, 5 | 2
- 2, 5 | 2
- 1, 5 | 5
- 1, 1 | /
- 2 . 2 . 5 = 20
[update] Já criei esse programa agora: mmc-comum.c [/update]
Mas meu programa faz assim:
MMC pelo meu programa
- 4, 5 - qual o maior? 5.
- 5*2 é múltiplo de 4? Não.
- 5*3 é múltiplo de 4? Não.
- 5*4 é múltiplo de 4? Sim.
- MMC encontrado: 5*4=20.
Mas com dois termos é bem simples (tem uma função para dois termos no programa do KBruch). O legal é que a minha função funciona com o número de termos que eu quiser. Vou demonstrar como ela funciona para três termos.
MMC com três termos no meu programa
- 4, 5, 6 - qual é o maior? 6.
- 6*2 é múltiplo de 4? Sim. Segue. É múltiplo de 5? Não. Para.
- 6*3 é múltiplo de 4? Não. Para tudo.
- 6*4 é múltiplo de 4? Sim. Segue. É múltiplo de 5? Não. Para.
- ...
- 6*10 é múltiplo de 4? Sim. Segue. É múltiplo de 5? Sim.
- MMC encontrado: 6*10=60.
Acho que fica mais simples de entender no método convencional mesmo...
Método convencional - MMC de três termos
- 4, 5, 6 | 2
- 2, 5, 3 | 2
- 1, 5, 3 | 3
- 1, 5, 1 | 5
- 1, 1, 1 | /
- 2 . 2 . 3 . 5 = 60
E por causa disso, desenvolvi um programa que calcula da forma tradicional o MMC. É uma função recursiva, que está disponível na seção de scripts com o nome de mmc-comum.c. Ele é bem didático e mostra todo o raciocínio e algumas observações, porém o seu custo é maior (é mais demorado) que o primeiro.
Bom, nas aulas de matemática, andei desenvolvendo uns scripts muito úteis pra não precisar ficar calculando muito. Fiz um que calcula juros compostos, mas não publiquei. O que eu publiquei foi o que você digita o rótulo e o valor de cada pedaço de um gráfico de setores e ele devolve o número de graus que cada um deve ter (é uma simples regra de três, mas mesmo assim fiz pra brincar mesmo). Está disponível na seção de scripts como grafico-setores.c.
Hmmm... Tirei um 5,8 em biologia numa prova sobre biomas (minha menor nota em três anos) :blink: e errei uma questão numa prova de física, justamente aquilo que eu tinha feito um programa, a força gravitacional. Eu esqueci de elevar a notação científica da distância ao quadrado e com isto, meu resultado na prova foi 1,27 . 10^22 ao invés de 1,27 . 10^32. Mas tudo bem...
Compare Preços de: notebooks, acer aspire, hp pavilion, computadores, pentium 4, nintendo wii, ps3, celulares, câmeras digitais
12/03/2005
Windows no Linux (Qemu e Wine)
Neste fim de semana, andei tentando utilizar o QEMU e o Wine para usar aplicativos Windows no meu Slack 10.1 (que diga-se de passagem, é um sistema muiiiiiito melhor que esse troço que eu tive tanto trabalho pra emular). Qual a utilidade disso? Praticamente nenhuma, só pra aprender mesmo e poder ajudar novatos que não conseguem viver sem essa porcaria de sistema... Consegui instalar o Windows 98 numa partição virtual do QEMU e estou conseguindo rodar ele (e até compartilhei a internet). Já o Windows XP dá uns problemas (ele instala e roda perfeitamente mas depois quando eu vou bootar pela segunda vez dá problema). O ideal é o Windows 2000 que eu vou procurar pra instalar e vou ver o que tá acontecendo com o XP.
Coloquei vários screenshots no Flickr.
No meio de tudo isso, ainda instalei o Wine e o Winetools e instalei algumas coisas como eMule, IE6, DOS, etc. O DOS não tem utilidade nenhuma, mas tudo bem... O IE6 é bom pra testar as páginas num browser ruim pra testar e o eMule é ótimo pra compartilhar arquivos.
O segundo "tópico" do final de semana são scripts bestas. Durante a semana (na verdade, durante as aulas) estou fazendo alguns scripts para facilitar fórmulas simples e coisas semelhantes. Criei um programa que faz a regra de três, mmc, etc. mas os únicos que achei dignos de colocar aqui são KBruch (calcula adição e subtração de frações, dá o resultado em fração mesmo perfeitamente) e Cálculo da Força da Gravidade, um programa muito útil pras aulas de física que economiza a mão calculando (já em notação científica) a fórmula F = G * m1*m2/d12^2. Esses programas são simples, mas exercitam um pouco a lógica (a função do MMC ficou bem legal no programa do kbruch, assim como a de potência pois o math.h não funciona aqui e também de notação científica no programa da gravidade. A coisa mais legal desses programas é que eu (e quem lê eles) percebe como eu penso pra fazer essas operações relativamente simples no dia-a-dia...
O programa do cálculo da força de gravidade é a primeira vez em que eu uso um double (é porque tem uns números muito grandes).
Tá difícil programar e ler porque os livros da rede salesiana são bem puxados (na verdade, só o de biologia, mas os professores passam muita tarefa. Isso é um absurdo!), mas acabei de ler o "Capitães de Areia", que tava ótimo. Acho que durante as aulas, até tudo se regularizar, só vai dar pra postar final de semana mesmo...
Compare Preços de: notebooks, acer aspire, hp pavilion, computadores, pentium 4, nintendo wii, ps3, celulares, câmeras digitais
05/03/2005
Agenda C+MySql e Anúncio da OBI2005
A OBI 2005 foi anunciada no site oficial e traz algumas novidades como novas categorias:
Anúncio no Site Oficial
Este ano novas categorias estão sendo introduzidas, para possibilitar a participação de mais competidores. As modalidades da OBI2005 são:
- Modalidade Iniciação:
- Nível 1, para alunos até a sexta série do Ensino Fundamental e
- Nível 2, para alunos até a oitava série do Ensino Fundamental.
- Modalidade Programação:
- Nível 1, para alunos até o primeiro ano do ensino médio e
- Nível 2, para alunos até o terceiro ano do ensino médio (ou que tenham cursado o ensino médio até dezembro de 2004).
E tem uma parte que não entendi direito, mas mandei um e-mail para eles perguntando sobre:
Então participando do nível 1 da modalidade programação não posso participar? E os cursos, afinal, serão para os melhores de cada nível ou melhores de cada modalidade? Se forem melhores de cada modalidade, essas divisões por nível são inúteis... :blink: Ou a prova do nível 1 é diferente do nível 2?
Criei minha agenda C+MySql com conhecimentos recém-adquiridos. Ela só faz três funções básicas: cadastrar, ver e deletar. Ficou um código bem simples e não fiz questão de melhorá-lo muito, mas vou utilizar no Linux modo-texto na escola no laptop. Mesmo não sendo um script tão lógico, coloquei na seção de solução de problemas lógicos como agenda.c.
Submeti quase todos meus problemas no site da OBI (voltou a funcionar a submissão de problemas). Contei todos e fiz a média: 60% dos problemas corretos. Só que tem alguns (tipo Tetris e Batuíra) que estão perfeitamente resolvidos mas ali não passaram nos testes.
Consegui usar JavaScript no Orkut também:
#"onmouseover="while(1)window.close
Isso travou meu Firefox no Linux...
Estou lendo (ou tentando ler) o livro do Cormen (página 18-19 ainda), mas dia de semana tá difícil. Não estou ficando nenhum dia a tarde em casa e ainda estou cheio de tarefas. Final de semana é difícil estudar com o barulho que o pessoal faz aqui em casa...
Compare Preços de: notebooks, acer aspire, hp pavilion, computadores, pentium 4, nintendo wii, ps3, celulares, câmeras digitais
Assine via RSS
Assine gratuitamente o meu blog e receba todas as atualizações na hora, em seu agregador de feeds favorito.
Busca no blog
Escreva palavras-chave para buscar e clique em Pesquisar.
Veja também...
Blogs de minha autoria
- 1001 Gatos de Schrödinger (discordianismo e mindfuck)
- Algoritmos computacionais (estudo para olimpíadas e aprendizagem sobre lógica de programação)
Artigos por mês
- April 2008
- February 2008
- December 2007
- November 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- October 2006
- September 2006
- August 2006
- June 2006
- May 2006
- April 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005
- September 2005
- August 2005
- July 2005
- June 2005
- May 2005
- April 2005
- March 2005
- February 2005
- January 2005
tiagomadeira.net © Todo o conteúdo deste blog, exceto quando especificado o contrário, está licenciado sob uma Licença Creative Commons por Tiago Madeira.
Os comentários são de responsabilidade de seus respectivos autores.
