nunopicado Posted July 10, 2013 at 06:03 PM Report #518121 Posted July 10, 2013 at 06:03 PM Boas Só porque sim, aqui fica um exercício para fazerem, e proporem as vossas soluções. É algo do mais simples que há, e até o aprendiz mais aprendiz é capaz de o fazer. O truque está em não usar a solução óbvia e sim procurar a mais eficaz. Requisitos: Fazer 10 perguntas, e receber 10 respostas (texto). Não interessa quais perguntas são, surpreendam-me! 😉 Simples não? Vamos complicar só um bocadinho... As perguntas devem ser feitas em ordem aleatoria. Os mais "velhinhos" atrasem p.f. um pouco a resposta, para dar hipotese aos outros de proporem as suas soluções. Depois, se for o caso, debate-se o assunto! 😉 Até já! "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
thoga31 Posted July 10, 2013 at 09:42 PM Report #518172 Posted July 10, 2013 at 09:42 PM Posso colocar as questões num ficheiro e carregá-las a partir dele? Eu já tenho algumas ideias em mente, e seria muito mais decente meter as perguntas num TXT 😄 Knowledge is free!
nunopicado Posted July 10, 2013 at 09:45 PM Author Report #518175 Posted July 10, 2013 at 09:45 PM Poder podes... 🙂 A ideia é ver as vossas opções para tal! Mas sugiro uma coisa (a todos): Keep It Simple! 😉 "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
passarito Posted July 11, 2013 at 04:05 PM Report #518354 Posted July 11, 2013 at 04:05 PM Em caso de optimização, o melhor seria um ficheiro de registo de dados (file of record). É que nestes podes colocar o ponteiro para leitura onde tu quizeres directamente. Ponto negativos desta solução: é que terias de fazer algo para gerires as perguntas e respostas!
nunopicado Posted July 11, 2013 at 04:16 PM Author Report #518358 Posted July 11, 2013 at 04:16 PM 🙂 Keep it simple... "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
thoga31 Posted July 11, 2013 at 05:23 PM Report #518372 Posted July 11, 2013 at 05:23 PM (edited) Eu já tenho uma solução funcional de 56 linhas (sem linhas em branco). Só me falta é criar as questões 😄 @passarito, eu não utilizei nenhum file of. Se é para haver simplicidade, também a deve haver na hora de criar as questões. Eu dou a hipótese de as questões serem escritas, uma por linha, num TXT. As primeiras 10 linhas são contabilizadas, as restantes ignoradas. Assim pode-se escrever facilmente as questões. Para as meter no formato file of tinha de andar a criar um programa só para criar o dito ficheiro, e eu não estou para isso 😄 O Object Pascal fornece ferramentas muito boas para resolver isto num instante. 🙂 Edited July 11, 2013 at 05:28 PM by thoga31 Knowledge is free!
nunopicado Posted July 11, 2013 at 05:32 PM Author Report #518377 Posted July 11, 2013 at 05:32 PM Olha aí uma para a lista: “Measuring programming progress by lines of code is like measuring aircraft building progress by weight.” --- Bill Gates --- 😉 "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
thoga31 Posted July 11, 2013 at 05:34 PM Report #518378 Posted July 11, 2013 at 05:34 PM (edited) Suponho que isso seja bom 😄 Mas é uma frase do Tio Bill e não uma pergunta, Nuno... 😛 É preciso mesmo fornecer as questões? Edited July 11, 2013 at 05:34 PM by thoga31 Knowledge is free!
thoga31 Posted July 11, 2013 at 05:44 PM Report #518381 Posted July 11, 2013 at 05:44 PM (edited) Oh Nuno, eu acho que não vai haver muitos novatos a participar... a época escolar já lá vai, e se fosse época escolar teríamos alguns tópicos com pedido de ajuda e este tópico quase de certeza sem respostas deles... 😕 Não valia mais debatermos aqui entre nós as nossas soluções e trocarmos ideias? Se entretanto algum novato quiser participar, será muito bem-vindo (claro!), teremos todo o gosto em lhe explicar o que usámos e ajudar na sua tentativa 🙂 Edited July 11, 2013 at 05:45 PM by thoga31 Knowledge is free!
nunopicado Posted July 11, 2013 at 05:44 PM Author Report #518382 Posted July 11, 2013 at 05:44 PM (edited) Moço: Esquece as questões... Mete lá blablabla 1 a 10, que por mim tanto me dá... Eu quero-vos é ver a relacionar duas strings, uma que já exista no programa com outra que o utilizador vai dar. Edit: 'Bora lá que estou à espera... 😉 Edited July 11, 2013 at 05:45 PM by nunopicado "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
thoga31 Posted July 11, 2013 at 05:46 PM Report #518383 Posted July 11, 2013 at 05:46 PM Eu quero-vos é ver a relacionar duas strings, uma que já exista no programa com outra que o utilizador vai dar. Wait wait wait, pal... O que queres dizer com isto? Knowledge is free!
nunopicado Posted July 11, 2013 at 05:47 PM Author Report #518385 Posted July 11, 2013 at 05:47 PM Wait wait wait, pal... O que queres dizer com isto? O que disse... 🙂 Strings que já existem: Perguntas Strings que o utilizador vai inserir: Respostas O resto é código! "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
thoga31 Posted July 11, 2013 at 05:48 PM Report #518386 Posted July 11, 2013 at 05:48 PM Ok, e se eu te disser que no fim faço uma revisão das respostas dadas às perguntas, mas desta vez ordenadas tal como no ficheiro? 😛 Knowledge is free!
nunopicado Posted July 11, 2013 at 05:49 PM Author Report #518387 Posted July 11, 2013 at 05:49 PM Eu respondo: Keep it simple! 😉 "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
thoga31 Posted July 11, 2013 at 05:51 PM Report #518389 Posted July 11, 2013 at 05:51 PM Olha, que se dane... fiz isto como intervalo de um relatório que ando a fazer, e fiz como me veio à cabeça. Espero que gostes 😄 {$mode objfpc} program exercicio_nunopicado; uses classes, sysutils, crt; const MAX = 10; type TLista = set of byte; var perguntas, respostas : TStringList; disponiveis : TLista = [1..MAX]; questao : byte = 0; resp : string = ''; n : byte = 1; procedure Pause; begin repeat until readkey = #13; end; function ObterQuestao(var lista : TLista) : byte; begin randomize; repeat ObterQuestao := random(MAX)+1; until (ObterQuestao in lista); lista := lista - [ObterQuestao]; end; function Int2Str(num : integer) : string; begin str(num, Int2Str); if num < 10 then Int2Str := '0' + Int2Str; end; function SubString(s : string; ind, size : byte) : string; begin Delete(s, ind, size); SubString := s; end; begin try perguntas := TStringList.Create; respostas := TStringList.Create; perguntas.LoadFromFile('perguntas.txt'); repeat questao := ObterQuestao(disponiveis); writeln('Questao ', n, ': ', perguntas[questao-1]); write('Resposta? '); readln(resp); respostas.Append(Int2Str(questao) + ': ' + perguntas[questao-1] + ' -> ' + resp); inc(n); until (disponiveis = []); respostas.Sorted := False; respostas.Sort; writeln; writeln('REVISAO:'); for resp in respostas do writeln(SubString(resp, 1, 4)); respostas.SaveToFile('respostas.txt'); perguntas.Destroy; respostas.Destroy; Pause; except on ex:exception do begin writeln(ex.classname,': ',ex.message); Pause; end; end; end. Knowledge is free!
pwseo Posted July 11, 2013 at 06:21 PM Report #518395 Posted July 11, 2013 at 06:21 PM É preciso ler as questões de um ficheiro? Não podem estar hardcoded no programa? E nesse caso, porque não colocá-las num array de strings (e ter um array de strings para as respostas)? Acho que não estou a perceber bem o que pretendes, Nuno 🙂
thoga31 Posted July 11, 2013 at 06:23 PM Report #518396 Posted July 11, 2013 at 06:23 PM (edited) É um exercício muito free style, segundo me parece. Utiliza o que bem entenderes, @pwseo 😉 Eu cá preferi carregar de um ficheiro, se quiseres metê-las no código, força. Pessoalmente não gosto nada de ver códigos com as perguntas hardcoded. Aproveitei também para me voltar a meter com a minha velha amiga TStringList, já tinha saudades 😄 Faz uma solução desse género para variar. Também fico à espera das propostas do @nunopicado e do @passarito. 😉 Edited July 11, 2013 at 06:25 PM by thoga31 Knowledge is free!
nunopicado Posted July 11, 2013 at 08:36 PM Author Report #518411 Posted July 11, 2013 at 08:36 PM É preciso ler as questões de um ficheiro? Não podem estar hardcoded no programa? E nesse caso, porque não colocá-las num array de strings (e ter um array de strings para as respostas)? Acho que não estou a perceber bem o que pretendes, Nuno 🙂 Já eu acho que foste o único (até agora) que percebeu bem o que eu queria... 🙂 Keep It Simple é o mote! Para o caso que é, hardcoded está optimo, tu é que sabes. Se preferires, até podes usar ponteiros! Isto não será bem uma prova para ver quem ganha... 🙂 É mais para ver movimento, e perceber o tipo de programação que cada um faz perante um desafio tão parvo como este! 😉 Thoga: Está aí uma solução. Consegues pensar noutra? Sinceramente, até pensei que ias por outro lado! hehehehe É dificil escolher entre duas amigas, não é? "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
thoga31 Posted July 11, 2013 at 08:40 PM Report #518414 Posted July 11, 2013 at 08:40 PM (edited) Eu pensei em várias formas, Nuno. Mas esta foi a mais rápida de implementar, aproveitei e peguei no exercício para descontrair de uma coisa super chata que estava a fazer. Se quisesse mesmo pegar no objectivo de eficácia, não teria ido para as TStringList's. Talvez faça outra solução, já se vê. De qualquer das formas, dei uma solução prática para aplicações "mais-maiores". Edited July 11, 2013 at 08:41 PM by thoga31 Knowledge is free!
nunopicado Posted July 11, 2013 at 08:47 PM Author Report #518416 Posted July 11, 2013 at 08:47 PM Sem duvida, essa é um solução até mais "pro" do que a hardcoded! Eu é que estava certo que ias escolher outra coisa! hehehe "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now