maiden Posted June 5, 2006 at 07:47 PM Report Share #31345 Posted June 5, 2006 at 07:47 PM Boas, Com o aparecimento do tópico "Caça às Capicuas" verifiquei que algum pessoal ainda não percebeu o que é uma capicua. Deixo aqui um aplicativo que não tem utilidade para além da verificação se um numero é capicua ou não (e a aprendizagem claro). Program Capicuas; Uses crt; Var i,ilen,inum:integer; snum:string; capicua:boolean; Begin clrscr; write('Introduza um numero: '); readln(inum); str(inum,snum); ilen:=length(snum); for i:=1 to ilen div 2 do begin if snum[i] = snum[ilen-i+1] then capicua:=True else capicua:=False; end; if capicua = True then writeln('O numero e capicua') else writeln('O numero nao e capicua'); readln; End. Abaixo fica um ficheiro comprimido com o código e o executável. Espero que seja útil. Cumps, Link to comment Share on other sites More sharing options...
David Pintassilgo Posted June 5, 2006 at 08:48 PM Report Share #31350 Posted June 5, 2006 at 08:48 PM Tá fixe sim senhor! 😁 cool stuffs to check. http://blog.zxcoders.com// Link to comment Share on other sites More sharing options...
saramgsilva Posted June 5, 2006 at 10:53 PM Report Share #31369 Posted June 5, 2006 at 10:53 PM Muito bem 😁 Para complementar o estudo sobre capicuas: e acabo por aprender que uma capicua também é um Número Palíndromo 😛 www.saramgsilva.com As minhas apps no WP7 Marketplace Youtube : Galinho - Windows Phone 7.5 Link to comment Share on other sites More sharing options...
Ridelight Posted June 5, 2006 at 10:58 PM Report Share #31372 Posted June 5, 2006 at 10:58 PM Está interessante, mas encontrei 2 bugs. Acho que 3226 não é uma capicua. Se introduzires 3225 fecha o programa automaticamente nem dá feedback! EDIT# com o 2226 fecha a aplicação também e o 2225 diz que é capicua ! Regras do FÓRUM Link to comment Share on other sites More sharing options...
maiden Posted June 6, 2006 at 11:10 AM Author Report Share #31410 Posted June 6, 2006 at 11:10 AM Em 05/06/2006 às 23:58, ®idelight disse: Está interessante, mas encontrei 2 bugs. Acho que 3226 não é uma capicua. Se introduzires 3225 fecha o programa automaticamente nem dá feedback! EDIT# com o 2226 fecha a aplicação também e o 2225 diz que é capicua ! :x Um bug a verificar com mais tempo. Se alguém souber uma solução não se acanhe. :shame: Link to comment Share on other sites More sharing options...
Ridelight Posted June 6, 2006 at 11:57 AM Report Share #31425 Posted June 6, 2006 at 11:57 AM Tenta assim ! PROGRAM Capicuas(INPUT,OUTPUT); VAR n,potencias,i,num,auxnum,totalnumcont,quoc,resto,numerocont:WORD; BEGIN WRITE('Quantos d¡gitos compõe o número? '); READLN(n); potencias:=1; FOR i:=1 TO n-1 DO BEGIN potencias:=potencias*10 END; WRITE('Digite o número-> '); READLN(num); auxnum:=num; totalnumcont:=0; REPEAT quoc:=num DIV 10; resto:=num MOD 10; numerocont:=resto*potencias; totalnumcont:=totalnumcont+numerocont; potencias:=potencias DIV 10; num:=quoc; UNTIL quoc=0; IF totalnumcont=auxnum THEN WRITELN('O número inserido é palindrómico') ELSE WRITELN('O número inserido não é palindrómico'); END. Regras do FÓRUM Link to comment Share on other sites More sharing options...
Triton Posted June 6, 2006 at 12:45 PM Report Share #31435 Posted June 6, 2006 at 12:45 PM Já agora: 😁😛 def isPal(n): numero = str(n) if numero == numero[::-1]: return 1 else: return 0 if isPal(input('Insira um numero: ')): print 'O numero e palindromico.' else: print 'O numero nao e palindromico.' <3 life Link to comment Share on other sites More sharing options...
Knitter Posted June 6, 2006 at 01:49 PM Report Share #31452 Posted June 6, 2006 at 01:49 PM Há muito que não brincava com C e aproveitando a deixa.... #include <stdio.h> #include <conio.h> #include <string.h> char *noBufferOverflowReading(char *, int); int main(int argc, char *argv[]) { char buffer[101], *value, *secondString; int z, x, max; value = noBufferOverflowReading(buffer, 100); secondString = (char *) malloc((sizeof(char) * strlen(value)) + 1); max = strlen(value); for(z = 0, x = max-1; z < max; z++, x--) secondString[z] = value[x]; if(!strcmp(value, secondString)) printf("Capicua!\n"); else printf("Nao Capicua!\n"); printf("Prima qualquer tecla para terminar...."); getch(); return 0; } char *noBufferOverflowReading(char *buffer, int count) { /*Codigo criada ha' alguns anos atrás! Alteracoes minimas. Notar que nao e' tido em conta a ocorrencia de sinais, logo este codigo nao devera' ser usado em ambientes unix sem as devidas correccoes!*/ char *result = buffer, *np; if ((buffer == NULL) || (count < 1)) result = NULL; else if (count == 1) *result = '\0'; else if ((result = fgets(buffer, count, stdin)) != NULL) if (np = strchr(buffer, '\n')) *np = '\0'; return result; } Único problema, se introduzirem "olo" o programa indicará uma capicua, mas não creio que será um problema 😁. Segue código fonte... http://www.student.estg.ipleiria.pt/~ei10635/downloads/just4fun/capicua.c Link to comment Share on other sites More sharing options...
Ridelight Posted June 6, 2006 at 05:08 PM Report Share #31474 Posted June 6, 2006 at 05:08 PM Aqui fica uma versão do capicuas. Espero que o MAiDEN_DuDE não se importe de estar a postar aqui. Se alguém souber uma solução não se acanhe. :shame: Regras do FÓRUM Link to comment Share on other sites More sharing options...
AriOps Posted June 6, 2006 at 05:11 PM Report Share #31477 Posted June 6, 2006 at 05:11 PM e o programa só detecta capicuas até 4 dígitos, eu pus 123321 e ele disse k não era...😁 Cumps Daniel Correia Link to comment Share on other sites More sharing options...
Ridelight Posted June 6, 2006 at 05:13 PM Report Share #31479 Posted June 6, 2006 at 05:13 PM e o programa só detecta capicuas até 4 dígitos, eu pus 123321 e ele disse k não era...😁 Cumps Detecta até 5 , o jogo aqui no fórum é só até 4 ! 😛 Regras do FÓRUM Link to comment Share on other sites More sharing options...
UnKnowN Posted June 6, 2006 at 05:36 PM Report Share #31485 Posted June 6, 2006 at 05:36 PM Detecta até 5 , o jogo aqui no fórum é só até 4 ! 😛 Não é até 4 mas sim apartir de 4 Link to comment Share on other sites More sharing options...
Ridelight Posted June 6, 2006 at 05:37 PM Report Share #31487 Posted June 6, 2006 at 05:37 PM Não é até 4 mas sim apartir de 4 ? Eu sei, exprimi-me mal.E dá até 5 mas mais de 4 são raras. Regras do FÓRUM Link to comment Share on other sites More sharing options...
UnKnowN Posted June 6, 2006 at 05:38 PM Report Share #31489 Posted June 6, 2006 at 05:38 PM ? Eu sei, exprimi-me mal. E dá até 5 mas mais de 4 são raras. Eheh na boa 😄 Link to comment Share on other sites More sharing options...
GoncaloMendes Posted June 22, 2009 at 01:10 AM Report Share #274026 Posted June 22, 2009 at 01:10 AM Aqui está um excerto dum programa meu antigo, que calcula se qualquer número de qualquer tamanho (va va nao exageremos) é capicua, a função recebe valores em formato texto para permitir uma maior extensão (e principalmente porque o programa original era direccionado para valores binários). function palindromic(str: string): boolean; var tamanho: byte; auxchar: char; palok: boolean; map: array[1..maxmap] of char; map2: array[1..maxmap] of char; begin for cont1:=1 to last do map[cont1]:='%'; palok:=true; Cortei esta parte para poupar espaço, devolvia o tamanho da string, deve haver uma funçao imbutida para fazer o mesmo, esta é outra coisa que não sabia fazer quando este programa foi feito lol if tamanho>1 then begin assign(ficheiro,'temp'); reset(ficheiro); for cont1:=1 to trunc(tamanho/2) do read(ficheiro,map[cont1]); if tamanho mod 2<>0 then read(ficheiro,auxchar); for cont1:=1 to trunc(tamanho/2) do begin read(ficheiro,map2[cont1]); if map[trunc(tamanho/2)+1-cont1]<>map2[cont1] then palok:=false; end; close(ficheiro); end; palindromic:=palok; last:=tamanho+1; end; Como se pode ver conhecendo Pascal, o código perde tempo ao retirar chars do meio da string, porque quando este programa foi feito não sabia outra maneira 😕 não pensem menos de mim por isso ? Link to comment Share on other sites More sharing options...
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