Duvida em trabalho de faculdade!

boas pessoal, acabei de me juntar a comunidade e entro ja com uma duvida, num trabalho para a faculdade na cadeira de programação em java surge-me o seguinte codigo:

import java.util.Scanner; public class QueNomeDeveTerEstePrograma { public static void main( String args[] ) { Scanner teclado = new Scanner(System.in); int n; int u=0, d=0, c=0, m=0; System.out.print("Indique um numero entre 1 e 9999"); n=teclado.nextInt(); if( n> 9999 ) System.out.println("Valor nao permitido"); else{ u = n % 10; n = n / 10; d = n % 10; n = n / 10; c = n % 10; n = n / 10; m = n % 10; System.out.println(u*1000 + d*100 + c*10 + m); } } }

Ao qual é dado o seguinte enunciado:

[quote]Edite, compile e execute o programa apresentado. Formule um possível
enunciado e altere o nome da classe, em conformidade com o objectivo a
cumprir pelo programa.[/quote]

A verdade é q eu comecei a pouco tempo com a programação, e olho para isso e nem sequer percebo muito bem o q o programa faz quanto mais dar-lhe uma utilidade :S será que me podiam ajudar?

esse programa acha a unidade, dezena, centena, e unidade de milhar de um número com no máximo 4 algarismos.

O que eu achei bobo é ele imprimir o numero que acabou de achar os algarismos no final, ficaria mais interessante se ele colocasse uma mensagem informando qual é o algarismo…
Mas fazer o que, faculdade…

a verdade é q eu ainda nao percebi muito bem, e q tipo de utilidade isto tem! se eu colocar por exemplo 25 ele imprime 5200, se colocar 1234 ele imprime 4321, se colocar 10 ele imprime 100 :S nao percebo muito bem!

É uma variação de programa de “palíndromos” que volta e meia aparecem como exercício.

Você percebeu que se você puser o número 1331 (por exemplo) o resultado desse programa também será 1331?

Esse programa vira um numero de trás p/ frente.

[quote]É uma variação de programa de “palíndromos” que volta e meia aparecem como exercício.

Você percebeu que se você puser o número 1331 (por exemplo) o resultado desse programa também será 1331?[/quote]

sim sim thingol, ja tinha reparado nisso, mas se meter o numero 1 ele vira 1000 e se meter 10 vira 100, e ele nao vira simplesmente, se for o 23 fica 3200, mas isso nem é o pior! o problema é q eu nao vejo em q tipo de coisas pode ser aplicado, o objectivo do trabalho é esse, dar-lhe uma aplicação!

public class ViraNumero
{
    public static void main(String[] args)
    {
        for (int i = 0; i < 10000; i++)
            System.out.println(i + " : " + fazAlgo(i));
    }

    private static int fazAlgo(int n)
    {
        int u, d, c, m;
        u = n % 10;
        n = n / 10;
        d = n % 10;
        n = n / 10;
        c = n % 10;
        n = n / 10;
        m = n % 10;
        return u * 1000 + d * 100 + c * 10 + m;
    }
}

Bem, o que estou vendo aqui é que o teu professor passou um programa p/ virar um numero de até quatro casas de trás p/ frente em outro numero de quatro casas.

O problema é que o programa tem um bug com números múltiplos de 10, que faz o programa imprimir um resultado não esperado.

Se esse efeito for de propósito, o programa deveria se chamar ImprimeNumerosDeTrasParaFrenteComQuatroCasasComExcecaoDeMultiplosDeDez :wink:

Realmente não dá para ver muita utilidade prática nesse programa, mas ele tem um cunho didático, é com esses pequenos programinhas que você aprenderá a programar.
Por exemplo, para que serve um programa que calcule a potência pot de um número num ? Oras, meramente didático, já que com o Java você poderia usar o método pow da classe Math, assim:

num = Math.pow(num,pot);

Mas se o professor pedir um algorítmo que calcule a potência, não vá usar o método pow da classe Math, pois ele dará zero. O programinha serve apenas para você aprender a programar e conhecer a sintaxe da linguagem, e isso ocorre também com esse seu programa aí, note que você aprendeu para que serve o símbolo de percentual em Java, ou seja, para se obter o resto da divisão de um número pelo outro, e por aí vai.

Espero ter ajudado. Qualquer dúvida, poste aí, a galera aqui é show de bola !!!

muito obrigado a todos vosses, ja nao ha muito mais a mexer neste programa! deixa la ver o q é q posso fazer disto xD!
obrigado a todos [[]]