Avatar billede Slettet bruger
16. maj 2002 - 13:37 Der er 3 kommentarer og
1 løsning

spare tid..

Jeg har lavet et lille program hvor man indtaster et telefonnummer som computeren så finder frem til ved hjælp af Math.random metoden. Desværre tager det dage hvis ikke uger før computeren finder netop det telefonnummer jeg har indtastet. Derfor vil jeg gerne ændre i det, så det f.eks. først søgte efter det første tal og derefter gik videre til det næste tal o.s.v, så man langsomt ville kunne se telefonnummeret blive fundet.

et tillægsspørgsmål er så om man kan gøre det samme med bogstaver(og hvordan)??(evt kombineret tal og bogstaver)
Og om man kan begrænse hvor mange tal og bogstaver computeren skal søge efter..

Programmet står nedenunder. På forhånd tak for hjælpen.

import java.io.*;
import java.util.*;
import java.util.Random;
public class nr
{
    public static void main(String[] args) throws Exception
    {
   
    int x, n;
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Indtast et telefonnr som  computeren skal finde: ");
    x = Integer.parseInt(br.readLine());
    n=(int)(Math.random()*99999999);           
   
   
   
    while (n <=99999999)
    {
   
    System.out.println("nummeret er " + n );
    n=(int)(Math.random()*99999999);
    if (n==x) break;
           
            }
    System.out.println("Det fundne nummeret er " + x);
        }
    }
Avatar billede soreno Praktikant
16. maj 2002 - 13:50 #1
er det sådan du tænker:
public class Main
{
    public static void main(String args[])
    {
        String telefon = "85857474";
        String guess = "";
       
        int antalNumre = 8;
        for(int i=0;i<antalNumre;i++)
        {
            for(int j=0;j<10;j++)
            {               
                if(telefon.substring(i, i+1).equals(""+j))
                {
                    System.out.println(j+1+" nummer er: " + j);
                    guess = guess + j;
                    break;
                }
                else
                {
                    System.out.println("Gæt på: " + j);
                }
            }
        }
        System.out.println("Telefonnummer er: " + guess);
    }
}

eller skal det gøres med Math.random() ??
Avatar billede Slettet bruger
16. maj 2002 - 14:15 #2
Nej hvor kedeligt*G* Du skulle ikke skrive programmet, bare gøre mig opmærksom på hvilke metoder jeg skulle bruge..

Programmet er okay. Dog ville jeg ønske at telefonnummeret ikke var fastlagt, men at man selv skulle indtaste det i begyndelsen af programmet så computeren skulle finde det bagefter.

Kan man ikke få det til at stå på samme linie, så man ikke ser "gæt på", men at hvert enelt cifre dukker op et efter et?

Kan jeg gøre det samme med f.eks. ord? (Skriv nu for guds skyld ikke programmet!!!)
Avatar billede soreno Praktikant
16. maj 2002 - 14:22 #3
så kan du ikke bruge System.out.println, da denne skifter til ny linie hver gang. Jeg tror det nemmeste er at lave en GUI der viser hvad der sker. Problemet er bare at det går så hurtigt at du ikke når at opdage hvad der sker (i værste fald (telefonnummer 99999999) køres loopet igennem 80 gange).

hvis du vil gætte på tegn skal du bare ændre lidt på det andet for loop, det skal ikke teste fra 0 til 9 men istedet fra eks. a til Z (en char). Jeg har jo lagt telefonnummeret over i en string så det skulle være forholdsvis nemt at ændre..

For at gøre programmet dynamisk skal du bare genbruge noget af den kode du har skrevet i dit egen program:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Indtast et telefonnr som  computeren skal finde: ");
String nummer = br.readLine();
Avatar billede soreno Praktikant
16. maj 2002 - 14:27 #4
evt. kunne du bruge System.out.print og så kun skifte linie når det rigtig resultat er nået:
012345678
012345
012345678
012345
01234567
...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester