Figuras de Lichtenberg

Neste arquivo iremos colocar os problemas já resolvidos (não são problemas "mortos" porque a discussão pode continuar a qualquer altura!)

Mensagempor hexphreak em Terça Jan 15, 2008 11:39 pm

Olá homónimo! :D Primeiro que tudo, parabéns, porque como o Prof. disse o resultado mais normal no primeiro programa em C (que não seja o hello world...) é um crash! Agora tenho que me ir deitar, mas prometo debruçar-me sobre o teu problema amanhã :)
Avatar do utilizador
hexphreak
top-Quark!
top-Quark!
 
Mensagens: 1959
Registado: Segunda Nov 05, 2007 8:52 pm
Localização: Maia/Porto

Mensagempor miranda_henrique em Quarta Jan 16, 2008 9:13 am

Obrigado pelo vosso empenho!
Espero que consigam resolver o problema, cheguei á conclusão que ainda não tenho conhecimentos suficientes para perceber o que está errado.
Fico á espera de novidades.

Hexphreak, na Sexta lá estaremos em Coimbra! :D
Visitem:
Blog da SAC: sac-aac.blogspot.com
Blog do Carro da Queima das Fitas 2011 de Física/Engenharia Física: feitosaobif.blogspot.com
Blog de humor avulso: maybetheperfectblog.blogspot.com
Avatar do utilizador
miranda_henrique
bottom-Quark!
bottom-Quark!
 
Mensagens: 34
Registado: Sábado Dez 22, 2007 2:51 am
Localização: Barcelos

Mensagempor hexphreak em Quarta Jan 16, 2008 5:31 pm

Infelizmente, devido ao mau comportamento das tags, algumas porções do teu código ficaram de fora :( Tenta pô-lo no pastebin. Quanto ao problema em particular, é difícil de encontrar sem o código completo, e o que vi parece-me bem. Como é o teu primeiro programa em C, algumas dicas :)
  • Não precisas de escrever "short int", "unsigned int" ou "long int", a sintaxe deixa-te omitir o "int"
  • Relacionado: numa arquitectura x86, por razões de alinhamento dos endereços de memória, utilizar um "(long) int" é mais eficiente do que um "short", apesar dos dois bytes extra
  • Definir PI como sendo 2\pi é ambíguo e pode levar a confusões; seria melhor chamar-lhe 2PI
  • Quando um loop ou uma condicional contém apenas uma declaração para correr, podes omitir as chavetas
  • Finalmente, não precisas de pôr tantos casts "(double)" na função pos(), já que o compilador interpreta correctamente o tipo de dados
Só alguns conselhos, a maioria é uma questão de estilo e de clareza do código, embora isso seja algo subjectivo. Parabéns pelo uso correcto e oportuno dos pointers :D Fico à espera do resto!

miranda_henrique Escreveu:Hexphreak, na Sexta lá estaremos em Coimbra! :D

Claro! Pena é não termos tempo para um bocadinho de programação (sem ser no papel)... :wink:


P.S.: Em que outras linguagens (se alguma) programas?
Avatar do utilizador
hexphreak
top-Quark!
top-Quark!
 
Mensagens: 1959
Registado: Segunda Nov 05, 2007 8:52 pm
Localização: Maia/Porto

Mensagempor jap em Quarta Jan 16, 2008 5:40 pm

hexphreak Escreveu:(...)
  • Não precisas de escrever "short int", "unsigned int" ou "long int", a sintaxe deixa-te omitir o "int"
    (...)
  • Quando um loop ou uma condicional contém apenas uma declaração para correr, podes omitir as chavetas
  • Finalmente, não precisas de pôr tantos casts "(double)" na função pos(), já que o compilador interpreta correctamente o tipo de dados
Só alguns conselhos, a maioria é uma questão de estilo e de clareza do código, embora isso seja algo subjectivo. Parabéns pelo uso correcto e oportuno dos pointers :D Fico à espera do resto!
(...)

P.S.: Em que outras linguagens (se alguma) programas?



Just teasing...
:razz:

Em Python não precisas de declarar variáveis, até porque não há variáveis, não tens de fazer casts porque estes não existem, não tens de te preocupar com parêntesis, porque não se usam parêntesis, e não tens de te preocupar com pointers, porque não há aritmética de pointers. :shock:

Já perceberam porque é que Python é uma linguagem de programação pitónica? :roll:
José António Paixão
Departamento de Física da FCTUC
Avatar do utilizador
jap
Site Admin
Site Admin
 
Mensagens: 6805
Registado: Quinta Nov 09, 2006 9:34 pm
Localização: Univ. de Coimbra

Mensagempor hexphreak em Quarta Jan 16, 2008 5:50 pm

jap Escreveu:Em Python não precisas de declarar variáveis, até porque não há variáveis, não tens de fazer casts porque estes não existem, não tens de te preocupar com parêntesis, porque não se usam parêntesis, e não tens de te preocupar com pointers, porque não há aritmética de pointers. :shock:

Em Python, podemos esconder as variáveis em qualquer lado, ainda mais do que em obfuscated C, e não temos controlo sobre a memória :P

Just teasing :lol: Por acaso gosto bastante da indentação, porque torna os programas da maioria das pessoas mais claros. No entanto, uma das minhas ideias heterodoxas é que três ou quatro cores substituiriam a indentação em qualquer linguagem mais do que perfeitamente, sendo um exemplo notável disto o colorForth. E mesmo sem cores, é possível um programa mais legível do que C ou mesmo Python (tenho de ver se escrevo um exemplo).

Já agora, para o Prof.: Ten quirky things about Python :)
Avatar do utilizador
hexphreak
top-Quark!
top-Quark!
 
Mensagens: 1959
Registado: Segunda Nov 05, 2007 8:52 pm
Localização: Maia/Porto

Mensagempor jap em Quarta Jan 16, 2008 5:53 pm

hexphreak Escreveu:

(...)

Já agora, para o Prof.: Ten quirky things about Python :)


Só 10? :shock:

Mas a grande maioria não são defeitos, são great features:


Código: Seleccionar Todos
>>> assert 3.14 < pi < 3.15
>>> True

Não é excelente? :lol:
José António Paixão
Departamento de Física da FCTUC
Avatar do utilizador
jap
Site Admin
Site Admin
 
Mensagens: 6805
Registado: Quinta Nov 09, 2006 9:34 pm
Localização: Univ. de Coimbra

Mensagempor jap em Quarta Jan 16, 2008 5:58 pm

hexphreak Escreveu:(...)
uma das minhas ideias heterodoxas é que três ou quatro cores substituiriam a indentação em qualquer linguagem mais do que perfeitamente, sendo um exemplo notável disto o colorForth.
(...)


Do que tu gostas, então não é do colorForth mas de Piet:

Piet programming language

e vê também

Descrição da linguagem Piet
última vez editado por jap s Quarta Jan 16, 2008 6:08 pm, editado 2 vezes no total
José António Paixão
Departamento de Física da FCTUC
Avatar do utilizador
jap
Site Admin
Site Admin
 
Mensagens: 6805
Registado: Quinta Nov 09, 2006 9:34 pm
Localização: Univ. de Coimbra

Mensagempor hexphreak em Quarta Jan 16, 2008 5:59 pm

Código: Seleccionar Todos
int sys = 1337;
printf("%s\n", 1000 < sys < 2000 ? "leet" : "wack");

Sim :wink:

Já conhecia a Piet, mas não me estava exactamente a referir a linguagens esotéricas :lol: Embora ache que dê um excelente wallpaper
Avatar do utilizador
hexphreak
top-Quark!
top-Quark!
 
Mensagens: 1959
Registado: Segunda Nov 05, 2007 8:52 pm
Localização: Maia/Porto

Mensagempor miranda_henrique em Quarta Jan 16, 2008 6:04 pm

Antes de mais nada, obrigadíssimo por teres analisado o código e pelos conselhos. :D
Já implementei as correcções, fiquei :shock: com a informação sobre a arquitectura x86 ainda por cima eu que que sou obcecado pelo desempenho dos programas.

Quanto a outras linguagens de programação, posso dizer que comecei com Visual Basic (não tenho qualquer tipo de orgulho nisso) que me ajudou a começar a conhecer as condicionais, loops etc.. Cheguei a aventurar-me no Java, mas nunca cheguei muito longe. Programo a minha Texas Ti-84 em BASIC. E sei algumas coisas de Scilab nada de muito.

Quanto ao programa é so isso, depois limito-me a traduzir o output para uma matrix do Scilab e para uma imagem com o SIP (um pacote de manipulação de imagens do Scilab).

miranda_henrique Escreveu:Hexphreak, na Sexta lá estaremos em Coimbra! :D

Claro! Pena é não termos tempo para um bocadinho de programação (sem ser no papel)... :wink:


Havemos de encontrar um PC para lá perdido para um canto :wink:
última vez editado por miranda_henrique s Quarta Jan 16, 2008 6:15 pm, editado 3 vezes no total
Visitem:
Blog da SAC: sac-aac.blogspot.com
Blog do Carro da Queima das Fitas 2011 de Física/Engenharia Física: feitosaobif.blogspot.com
Blog de humor avulso: maybetheperfectblog.blogspot.com
Avatar do utilizador
miranda_henrique
bottom-Quark!
bottom-Quark!
 
Mensagens: 34
Registado: Sábado Dez 22, 2007 2:51 am
Localização: Barcelos

Mensagempor jap em Quarta Jan 16, 2008 6:04 pm

Código: Seleccionar Todos
>>> sys = 1337; 1000 < sys < 2000 and "leet" or "wack"
>>> 'leet'


ou ainda melhor


Código: Seleccionar Todos
>>> "leet" if 1000 < 1337 < 2000 else "wack"
>>> "leet"
José António Paixão
Departamento de Física da FCTUC
Avatar do utilizador
jap
Site Admin
Site Admin
 
Mensagens: 6805
Registado: Quinta Nov 09, 2006 9:34 pm
Localização: Univ. de Coimbra

Mensagempor manuelmarque em Quarta Jan 16, 2008 6:22 pm

miranda_henrique Escreveu:Antes de mais nada, obrigadíssimo por teres analisado o código e pelos conselhos. :D
Já implementei as correcções, fiquei :shock: com a informação sobre a arquitectura x86 ainda por cima eu que que sou obcecado pelo desempenho dos programas.

Quanto a outras linguagens de programação, posso dizer que comecei com Visual Basic (não tenho qualquer tipo de orgulho nisso) que me ajudou a começar a conhecer as condicionais, loops etc.. Cheguei a aventurar-me no Java, mas nunca cheguei muito longe. Programo a minha Texas Ti-84 em BASIC. E sei algumas coisas de Scilab nada de muito.

Quanto ao programa é so isso, depois limito-me a traduzir o output para uma matrix do Scilab e para uma imagem com o SIP (um pacote de manipulação de imagens do Scilab).

miranda_henrique Escreveu:Hexphreak, na Sexta lá estaremos em Coimbra! :D

Claro! Pena é não termos tempo para um bocadinho de programação (sem ser no papel)... :wink:


Havemos de encontrar um PC para lá perdido para um canto :wink:


Hehe, BASIC... que saudades de programar a minha TI-82. :D

Pois é, tenho mesmo que começar a aprender C...
Avatar do utilizador
manuelmarque
strange-Quark!
strange-Quark!
 
Mensagens: 979
Registado: Quinta Nov 16, 2006 7:57 pm
Localização: Maia/Porto, Portugal

Mensagempor Ivo_Timóteo em Quinta Jan 17, 2008 11:39 pm

Bem, hoje lá estava a estudar base de dados para o teste de amanhã quando me fartei e me apeteceu schemar um bocadinho...

Para não dizerem que scheme é só (((((()))))) e que não serve para mais nada, aqui vão dois vídeos "pintados" em tempo real. (daí o tamanho reduzido, para não ficar aborrecido...)

Vá lá, não se faz muito com scheme... Mas até é girinho!

O tradicional

Uma experiência, ainda não está exactamente como eu quero...

Os vídeos não estão muito bons, telemóvel a filmar um monitor... Ao vivo é mais bonito até porque está feito pixel a pixel.

Se quiserem o código eu passo, se quiserem direct download do DrScheme para brincarem com o código, também indico :wink:
Avatar do utilizador
Ivo_Timóteo
charm-Quark!
charm-Quark!
 
Mensagens: 579
Registado: Quarta Nov 15, 2006 7:25 pm
Localização: V. N. Gaia

Mensagempor hexphreak em Quinta Jan 17, 2008 11:43 pm

Gostei :D Também gostava de ver o código, nunca vi grande coisa em Scheme (só Common LISP). Parece que em Eng.ª Informática se aprendem umas coisitas :wink:
Avatar do utilizador
hexphreak
top-Quark!
top-Quark!
 
Mensagens: 1959
Registado: Segunda Nov 05, 2007 8:52 pm
Localização: Maia/Porto

Mensagempor jap em Quinta Jan 17, 2008 11:45 pm

Muito bem, Ivo! :hands:

Nada como lambda para cá e para lá e um belo embricado de funções puras! :P

Ora posta aqui o código para eu fazer uma versão pitónica em estilo funcional...a imitar o Scheme...só para atazanar com o Henrique! :lol:
José António Paixão
Departamento de Física da FCTUC
Avatar do utilizador
jap
Site Admin
Site Admin
 
Mensagens: 6805
Registado: Quinta Nov 09, 2006 9:34 pm
Localização: Univ. de Coimbra

Mensagempor vbmaster em Sexta Jan 18, 2008 12:38 pm

Ivo_Timóteo Escreveu:Vá lá, não se faz muito com scheme...



Nós por cá resolvemos sudokus em scheme... ainda é alguma coisa... :P (o infamente projecto que trama a maior parte dos alunos.... )

Epah, já tenho é visto códigos de pessal da FEUP e acho sempre engraçado vocês nunca definirem procedimentos com "açucar sintático", fazem sempre (define <nome> (lambda (<args>) <corpo>))... acho estranho... podem fazer directamente (define (<nome> <args>) <corpo>).

Mas adorei aí o programa. Nós por acaso não exlorámos a vertante gráfica do scheme, já que no nosso projecto já nos davam a inteface gráfica.
Avatar do utilizador
vbmaster
up-Quark!
up-Quark!
 
Mensagens: 464
Registado: Quarta Nov 15, 2006 11:49 pm
Localização: Peniche

AnteriorPróximo

Voltar para Problemas resolvidos

Quem está ligado

Utilizadores a navegar neste fórum: Nenhum utilizador registado e 1 visitante

cron