Ir ao conteúdo
  • Cadastre-se

algoritmo (pascal)


obesobr

Posts recomendados

ai gente por favor km consegui fazer esse algoritmo ou me da uma dica me passa ele é o utimo da lista de exercicio q meu prof passo e n to conseguindo resolver

faca um algoritmo para ler um numero inteiro e inverter sua ordem

exemplo: leia:1234

resp:4321

:confused:valeu pela ajuda flws:confused:

Link para o comentário
Compartilhar em outros sites

ai gente por favor km consegui fazer esse algoritmo ou me da uma dica me passa ele é o utimo da lista de exercicio q meu prof passo e n to conseguindo resolver

faca um algoritmo para ler um numero inteiro e inverter sua ordem

exemplo: leia:1234

resp:4321

:confused:valeu pela ajuda flws:confused:

Bom dia caro colega.

Para que melhor possamos auxiliá-lo, sem termos que fazer o seu trabalho/exercício, seria interessante você postar algum esboço, e nele ressaltar quais as suas duvidas ou erros, para que assim possamos dar alguma solução parcial e não a solução definitiva.

Alguns tópicos que podem te ajudar a aprender e entender a lógica solicitada:

http://forum.clubedohardware.com.br/links-sites-programacao/63761

http://forum.clubedohardware.com.br/livros/73884

Link para o comentário
Compartilhar em outros sites

Bom dia caro colega.

Para que melhor possamos auxiliá-lo, sem termos que fazer o seu trabalho/exercício, seria interessante você postar algum esboço, e nele ressaltar quais as suas duvidas ou erros, para que assim possamos dar alguma solução parcial e não a solução definitiva.

Alguns tópicos que podem te ajudar a aprender e entender a lógica solicitada:

http://forum.clubedohardware.com.br/links-sites-programacao/63761

http://forum.clubedohardware.com.br/livros/73884

bem eu estou tentando fazer ainda.. valeu pelos links ms ja tenho um bom material de referencia em maos.

no momento eu acho q consegui a solucao matematica para resolve esse algoritmo q é assim

exemplo:

12345 mod 10 =5

12345 div 10 =1234

e assim vai...

o meu unico problema neste algoritmo agora é como vou cloca a condiçao nele..

bem isso foi o que eu consegui se aluem puder me ajuda ficarei grato valeu...

ps: eu entendo que você kr q eu aprenda (eu tb =p) mas é q esse algoritmo em particula pediria uma colinha mesmo porque preciso pra hj a tarde :/ (sem ele meu prof n considera nenhum exercicio que eu fiz.....valeu pela ajuda e compreensão flws..)

Link para o comentário
Compartilhar em outros sites

Se ele pediu em pascal é melhor fazer do jeito que ele pediu.

Existem outras linguagens como o Matlab que trabalha de forma matricial, tudo que você cria, ele joga em matrizes, para inverter um número 1234, é só inverter seus indices matriciais.

Em pascal eu to muito enferrujado, vou pensar num algoritmo e se conseguir alguma coisa eu posto aqui.

Link para o comentário
Compartilhar em outros sites

Leia o número como uma string.

Conte quantos elementos a string tem, e faça um contador reverso, inicializado com o número de elementos, e vá decrementando até chegar em zero. A cada passada do laço, copie o elemento mais a direita da string, em uma outra string, a partir da posição zero. Isso sem usar funções prontas. Com funções prontas, fica bem mais fácil.

Por exemplo:

Leia um número; //o número é esse seu: 12345

n = 0;

enquanto não encontrar o terminador da string, incremente n;

x = 0;

para indice = n; índice diferente de zero; decremente índice;

string_aux [ x ] = numero_lido [ indice ];

incremente x;

É mais ou menos isso daí. Sou péssimo em algoritmos! :lol:

Prefiro fazer, ou fluxograma, ou então codificar direto, mesmo!

Espero que ajude.

[]'s

Link para o comentário
Compartilhar em outros sites

O que você tem que fazer é dividir o número até que a parte inteira seja zero, logo:

enquanto numero > 0 faça

Isso com a condição de o número ser um inteiro positivo e zeros a esquerda (óbvio!) não contarem, por exemplo:

-1234; 00536(nesse caso usa-se: 536)

Terá de usar estruturas condicionais no caso de querer inverter números negativos; trabalhando com o valor absoluto e atribuindo-lhe o sinal ao final do cálculo.

É interessante que você use variáveis do tipo longint.

falou! :cool:

Link para o comentário
Compartilhar em outros sites

Galera estou tambem com problemas em pascal rs.

preciso criar um program aque receba uma frase e um palavra,caso essa frase digitada tenha a palavra escola deve substituir a palavra escola pela palavra digitada pelo usuario.depois preciso imprimir isso.

Obs Meu professor e uma $#!$#$@#R pra ensinar.

Conto com a colaboração de vocês.

Valeu galera.:confused::confused::confused:

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

Como não sabia fazer, pedi para meu amigo MAFS, pois eu tambem tava curioso de como fazer isso em pascal... como sempre ele tava meio sem tempo, por isso pedi para ele fazer um código bem tosco e simples para que epudesse entender, segue ai (ao colar verifique se está colocando as aspas corretamente, e segundo ele este código foi testado em pascal versão para DOS, por isso se você for fazer em pascal para windows, terá que trocar onde diz "uses CRT", por "uses WINCRT").


program invert;
uses crt;
var
texto: string;
cont: integer;
begin
clrscr;
writeln('<<==MESTRE ANDREI FELIPE 2008 - CODE TOSCUS==>>');
write('Digite uma frase: ');
readln(texto);
writeln;
for cont:= length(texto) downto 1 do
begin
write(copy(texto,cont,1));
end;
writeln(' Tecle algo para sair...');
readkey;
end.

Obs.: eu testei e este codigo funcionou perfeitamente.

GLEISON_NINJA, esta eu mesmo tirei do help do pascal, este codigo serve para substituir os zeros da string, mas é só fazer umas adaptaçõeszinhas e ele servira para substituir a palavra "escola".


PROGRAM TROCASTRING;
{Sample code for the Pos function.}
var S: String;
begin
S := ' 123.5';
{ Convert spaces to zeroes }
while Pos(' ', S) > 0 do
S[Pos(' ', S)] := '0';
end.

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois...
  • 3 semanas depois...
  • Membro VIP
program invert;
uses crt;
var
texto: string;
cont: integer;
begin
clrscr;
writeln('<<==MESTRE ANDREI FELIPE 2008 - CODE TOSCUS==>>');
write('Digite uma frase: ');
readln(texto);
writeln;
for cont:= length(texto) downto 1 do
begin
write(copy(texto,cont,1));
end;
writeln(' Tecle algo para sair...');
readkey;
end.

Olá,

Só complementando:

No Pascal as "strings" são tratadas como um "array de char", ou seja, tem as mesmas propriedades de um "array".

Veja

String = array [1..255] of char;

Logo para este algoritmo:

Em vez de

write(copy(texto,cont,1));

pode-se usar também

write(texto[cont]);

PS: Quando o for só tem uma linha, não precisa usar o begin e

Veja

for cont:= length(texto) downto 1 do
write(texto[cont]);

Abraços

EstilingueAtomico

Link para o comentário
Compartilhar em outros sites

O de inverter os números ta aí....

você precisa transformar o número do tipo dele (real ou inteiro... usei inteiro) para string, calcular a quantidade de caracteres (length) e depois ir escrevendo de um por um em outra variável...


Program Inverter ;
var
numero,i,tam:integer;
strnumero,contrario:string;
Begin
write ('Informe um numero ');
read (numero);
str(numero,strnumero);
tam:=length(strnumero);
for i:=tam+1 downto 1 do
begin
contrario:=contrario+strnumero[i];
end;
write ('O número ',numero,' ao contrário é ',contrario);
End.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...