deathseeker25 Posted September 3, 2005 at 09:04 PM Report #4403 Posted September 3, 2005 at 09:04 PM Boas, Na sequencia desta duvida acerca de um programa pessoal resolvi tornar este codificador um projecto publico. Este codificador converte caracteres de texto em linguagem matemática. Cada caracter tem direito a um código numérico específico. Cada código numérico é composto por 5 dígitos que variam entre 1 e 5. Por exemplo queremos converter a palavra "olá" para código numérico. O output ao executar o codificador seria: 444553345512345 Aqui o código é relativamente fácil de ler porque é apenas uma palavra com 3 letras. Agora imaginem um texto inteiro com mais de 1000 caracteres....só um descodificador próprio é que poderia fazer a descodificação da forma numeral para os respectivos caracteres. Podem consultar o código que escrevi naquele post. Podem tambem fazer download do código, assim como do executável aqui: Código-fonte Executável São ficheiros muito pequenos ainda, versão 0.1, que necessitam de ajustes e não funcionam a 100%. A própria linguagem matemática necessita tambem de ajustes, alem de que está muito primitiva ainda, na minha opinião. A próxima versão do programa apresentará algumas melhorias em relação a este: ➔ Aperfeiçoamento do código; ➔ Introdução de novas funções para o programa; ➔ Melhoria da linguagem matemática. Cumps
thranduil Posted September 3, 2005 at 09:52 PM Report #4413 Posted September 3, 2005 at 09:52 PM hmm não está a traduzir o texto todo..
deathseeker25 Posted September 3, 2005 at 09:54 PM Author Report #4414 Posted September 3, 2005 at 09:54 PM hmm não está a traduzir o texto todo.. Pois como eu disse tem algumas limitações. Só traduz até um certo numero de caracteres, mas ainda tenho de perceber porque.... Cumps
MSA Posted September 3, 2005 at 09:56 PM Report #4415 Posted September 3, 2005 at 09:56 PM Tambem me aconteceu uma cena. Escrevi o meu nome e apareceu tambem uma letra :? Mas parece estar a andar. 😛
deathseeker25 Posted September 3, 2005 at 09:57 PM Author Report #4416 Posted September 3, 2005 at 09:57 PM Tambem me aconteceu uma cena.Escrevi o meu nome e apareceu tambem uma letra :? Mas parece estar a andar. 😛 Uma letra? Isso é mais grave....que letra foi?
MSA Posted September 3, 2005 at 10:00 PM Report #4417 Posted September 3, 2005 at 10:00 PM Agora tive a testar outra vex e ja percebi. Escrevi a primeira letra do nome em Maiuscula. lol O programa so traduz minusculas.
deathseeker25 Posted September 3, 2005 at 10:01 PM Author Report #4418 Posted September 3, 2005 at 10:01 PM Agora tive a testar outra vex e ja percebi.Escrevi a primeira letra do nome em Maiuscula. lol O programa so traduz minusculas. Pois é mais uma correcção a fazer. Vou ter de criar uma forma para o código identificar as maiusculas para que depois o descodificador faça a distinção. Cumps e obrigado
QuickFire Posted September 3, 2005 at 10:17 PM Report #4421 Posted September 3, 2005 at 10:17 PM Tá porreiro sim senhor 😉 tive de compilar o code em linux mas correu na mesma 😉 qualquer dia aprendo c também lol 😛 tenho uma questão... ele ao codificar por exemplo 45455 (p) codifica para 45455 ou seja não toca nos números... não seria melhor também codificar isto ? porque pode vir a gerar má intrepretação do código a descodificar
deathseeker25 Posted September 3, 2005 at 10:20 PM Author Report #4422 Posted September 3, 2005 at 10:20 PM Peço desculpa mas não compreendi a duvida. Ao codificar o "p" codifica para 45455 e disseste que não tocava nos numeros? :roll:
vbmaster Posted September 3, 2005 at 10:36 PM Report #4423 Posted September 3, 2005 at 10:36 PM Citação Pois é mais uma correcção a fazer. Vou ter de criar uma forma para o código identificar as maiusculas para que depois o descodificador faça a distinção. Cumps e obrigado cof cof cof Eu avisei...😛 O que o quickfire quer dizer é se por acaso inserires um número por exemplo num texto que diga " a população de lisboa são 25040" pode dar buraco depois.....
QuickFire Posted September 3, 2005 at 10:38 PM Report #4425 Posted September 3, 2005 at 10:38 PM O que o quickfire quer dizer é se por acaso inserires um número por exemplo num texto que diga " a população de lisboa são 25040" pode dar buraco depois..... Menos confuso e simples 😛 era isto que queria dizer 😉
deathseeker25 Posted September 3, 2005 at 10:38 PM Author Report #4427 Posted September 3, 2005 at 10:38 PM Citação cof cof cof Eu avisei...😛 O que o quickfire quer dizer é se por acaso inserires um número por exemplo num texto que diga " a população de lisboa são 25040" pode dar buraco depois..... Hmmm já percebi...vamos ter de criar regras para todos os caracteres vbmaster. Assim não vamos precisar de resolver este tipo de problemas. Até agora só criamos regras para as 26 letras do alfabeto... Cumps P.S. Agora já dizes cof cof ne? 😉
vbmaster Posted September 3, 2005 at 10:43 PM Report #4429 Posted September 3, 2005 at 10:43 PM Pah mas num texto uma minuscula não tem grande diferença duma maiúscula. Eu no meu estava a transformar aquilo logo tudo em minusculas....mas pronto, eu ainda nem consegui transformar o meu codigo em light code, well apreciated by the teachers 😛 E a cena de não retornar espaços no meu codigo também me irrita 😉 O meu está feito em c++: Link quanto ao codigo fonte podem encontrar no thread enunciado pelo death no seu 1º post. Outra cena, num codificador nunca se dá info's nenhumas:P senão o sistema é quebrado facilmente. Além disso os grandes codificadores usam outras funções mais dificeis como eu já vi em vb, em que uma letra em determinada circunstância, por exmeplo junto a um 'a' pode dar um determinado valor, mas junto a um 'b' já dá outro completamente diferente. E não são grandes encriptadores mesmo assim. É um começo...😉
deathseeker25 Posted September 3, 2005 at 11:56 PM Author Report #4430 Posted September 3, 2005 at 11:56 PM Ya tudo isto é um começo para um projecto grande. A ver vamos....
deathseeker25 Posted September 4, 2005 at 10:55 AM Author Report #4435 Posted September 4, 2005 at 10:55 AM Boas, Já estão a ser corrigidos os bugs da versão anterior. Já foi corrigido o aspecto de só suportar tradução até 10 caracteres (passou a suportar tradução até 500 mil 😛 ), foi corrigido o problema dos numeros (cada numero passou a ser representado por um código tambem, excepto o numero 0 que não está a resultar não percebi porque ainda). Falta acertar esse pormenor do numero 0, criar as regras para as letras maiusculas, para mais caracteres e fazer uns acertos na disponibilização de memória do programa (alocação, libertação, etc), visto que durante certas operações na execução do programa existem certos riscos. A próxima versão deverá estar pronta em breve e peço-vos que a testem. Cumps
vbmaster Posted September 4, 2005 at 11:15 AM Report #4439 Posted September 4, 2005 at 11:15 AM essa de estragar um disco rígido ao executar um programa em c trancende-me :| Se pudesses explicar 😛
deathseeker25 Posted September 4, 2005 at 12:32 PM Author Report #4446 Posted September 4, 2005 at 12:32 PM essa de estragar um disco rígido ao executar um programa em c trancende-me :|Se pudesses explicar 😛 Posso explicar é claro. Eu li isto num blog de programação durante uma pesquisa no Google. A pessoa que usa o programa é a ultima pessoa em quem podes confiar a forma correcta de utilizar o programa. Pode ser uma pessoa estupida, preguiçosa ou com intenções maliciosas. Para complicar o problema, o teclado não produz valores total e prontamente úteis. Produz os chamados "keycodes". Os keycodes devem ser traduzidos e de facto são, na maioria dos casos. Ora, somente algumas dessas traduções representam realmente um valor numérico, que consequentemente, representa um caracter numérico que só depois é convertido. Nem sempre resultam a 100% estas conversões. Por isso é que ás vezes existem caracteres inválidos. Ou seja, ao encontrar caracteres inválidos temos aqui um grande problema. Quando utilizamos a função "gets" (como eu estava a utilizar no código anterior á versão final), apontamos a entrada num buffer e dizemos para recolher informação até que um sinal de finalização seja detectado. E qual o tamanho do buffer que criaste? É uma coisa que normalmente não sabes. Ou seja, o teu buffer pode ser suficiente grande para alojar as vítimas todas do 11 de Setrmbro ou os sobreviventes ao Katrina? Duvido. Agora ele pode muito bem ser gigantesco. Enquanto não for terminado o buffer é tipo tornado. Leva tudo á frente.Isto pode fazer com que o programa vá á vida. Sem um bom sistema operativo ou sem um bom gestor de memória, pode muito bem ser um adeus para o conteudo do disco rígido ou parte dele. Mas existem alternativas á utilização do "gets" por exemplo. Basta que o programador se habitue a verificar toda a sua documentação. Basta que o programador procure e estude todas as suas alternativas. Certezas que uma função vai ter sucesso ou que vai funcionar a 100%? Nenhumas. Nenhuma função garante sucesso completo. Mas podes-te livrar de muita chatice ao usar "fgets" em vez de "gets". Não me venham dizer que isto é utilizado só em FILE input. Aliás, se o disserem não perdem a razão. 😉 Mas então não estavamos a falar de entrada de dados pelo teclado? Sim é verdade. A entrada de dados pelo teclado é um Ficheiro. Em C, chamamos-lhe stdio. Aqui fica a definição do fgets: char *fgets (char *string, int n, FILE *stream );fgets use <stdio.h> ANSI, Win 95, Win NT Compatibility For additional compatibility information, see Compatibility in the Introduction. Libraries LIBC.LIB Single thread static library, retail version LIBCMT.LIB Multithread static library, retail version MSVCRT.LIB Import library for MSVCRT.DLL, retail version Return Value Each of these functions returns string. NULL is returned to indicate an error or an end-of-file condition. Use feof or ferror to determine whether an error occurred. Parameters: string -- Storage location for data n -- Maximum number of characters to read stream -- Pointer to FILE structure Remarks The fgets function reads a string from the input stream argument and stores it in string. fgets reads characters from the current stream position to and including the first newline character, to the end of the stream, or until the number of characters read is equal to n – 1, whichever comes first. The result stored in string is appended with a null character. The newline character, if read, is included in the string. Percebeste? Se não compreenderem façam as perguntas....
deathseeker25 Posted September 10, 2005 at 05:50 PM Author Report #4817 Posted September 10, 2005 at 05:50 PM Boas, Está disponível para download a versão 0.1.1 do Codificador em Linguagem Matemática. Aqui ficam os links para download do código-fonte e do executável: Código-fonte Executável Foram implementadas as seguintes melhorias no programa: ➔ Melhoria do código matemático com a inclusão de mais caracteres ➔ Possibilidade da leitura de maiusculas ➔ Possibilidade de leitura de um numero de palavras muito superior. Espero opiniões e sugestões para próxima versão e acerca desta mesma versão. Cumps
GpL Posted September 11, 2005 at 10:43 AM Report #4845 Posted September 11, 2005 at 10:43 AM Hum .. tá fixe .. após introduzir uma palavra podia ter a opção para introduzir mais em vez de sair logo.. Sair só quando for pressionada uma determinada tecla .. melhorar o aspecto.. mas isso já são coisas que não são indispensaveis mas que melhoram sempre um bocado o programa e tal .. tal como os meus professores de programação dizem,um simples utilizador olha sempre ao aspecto,tendo isso influencia as vezes na sua opinião à cerca do programa,por vezes errada.. etc ..
deathseeker25 Posted September 11, 2005 at 10:48 AM Author Report #4850 Posted September 11, 2005 at 10:48 AM Hum .. tá fixe .. após introduzir uma palavra podia ter a opção para introduzir mais em vez de sair logo.. Sair só quando for pressionada uma determinada tecla .. melhorar o aspecto.. mas isso já são coisas que não são indispensaveis mas que melhoram sempre um bocado o programa e tal .. tal como os meus professores de programação dizem,um simples utilizador olha sempre ao aspecto,tendo isso influencia as vezes na sua opinião à cerca do programa,por vezes errada.. etc .. Tens razão...o aspecto é claro que poderia ser melhorada (com uma interface gráfica amigável é uma boa oportunidade para mexer no ncurses e noutras bibliotecas gráficas 😄 ) e essa opção de introduzir novamente outra palavra antes de sair tambem me parece indispensavel. Agora, este programa de conversão pode ser aproveitado para muito mais coisas (ler caracteres de ficheiros de texto e convertê-los,etc.).. Por isso é que necessito de sugestões... 🙂 Cumps
Recommended Posts