Toon posts:

huiswerk => java een vraagje

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dit was de vraag: inlezen van gehele getallen afgesloten met een string (dus bv 5 enter 6 enter g enter)
dit in een lijst steken (ene zonder die g uiteraard)

dan een nieuwe lijst b maken waarbij elk element vervangen wordt door een gewogen som van elementen uit de rij a, volgens volgende formule:
b(i)=(1/4)*a(i-1)+2*a(i)+a(i+1)
en waarbij a(-1)=a(n)=0, met n het aantal elementen van lijst a
lijst b bevat dus reële getallen.

Dit heb ik gemaakt:
*****************************************
//bronbestand: GetallenRij.java

import java.io.*;
import java.util.*;
import javagently.*;

public class GetallenRij {
public static void main (String args[]) throws IOException {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader (isr);

Vector a=new Vector();
String reeks;
do{
Text.prompt("Geef een getal in (of typ een letterke om te stoppe): ");
System.out.flush();
reeks=Text.readString(in);
a.addElement(reeks);
}while (reeks.charAt(0)>='0' && reeks.charAt(0)<='9');
a.removeElementAt(a.size()-1);

Vector b=new Vector();
int r,q;
double element=0., element1=0., element2=0., element3=0.;
Double verpaktElement;
for (int d=0;d<a.size();d++){
r=d-1;
q=d+1;
if (r<0) element1 = 0.;
else element1 = ((Double)a.elementAt(r)).doubleValue();
if (q==a.size()) element2 = 0.;
else element2 = ((Double)a.elementAt(q)).doubleValue();
element3 = ((Double)a.elementAt(d)).doubleValue();

element = (1/4)*(element1+2*element3+element2);
verpaktElement = new Double(element);
b.addElement(verpaktElement);
}
System.out.println("Lijst 1: "+a);
System.out.println("Lijst 2: "+b);
}
}
**************************************

het probleem ontstaat niet bij het compileren maar bij het uitvoeren, er ontstaat dus een logische fout, hij komt nog in de for-lus trouwens maar vanaf daar moet er iets zijn dat niet klopt, ik heb al vanalles geprobeerd (al elke dag iets anders) maar ik krijg het maar niet in orde.

Kan iemand dit uitleggen a.u.b.????

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
tip: gebruik de code-tags en idents (inspringen) om je code leesbaarder te maken

maargoed... wat is precies het probleem?

  • joho
  • Registratie: Januari 2000
  • Laatst online: 02-09 11:14

joho

 

Duh. Je stopt String's in een Vector en probeert wat je eruit haalt te cast'en naar Double's. Boem.

Omdat ik een package mis, heb ik maar even wat invoer gecodeerd.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//bronbestand: GetallenRij.java

import java.io.*;
import java.util.*;

public class GetallenRij {
    public static void main(String args[]) throws IOException {

      Vector a = new Vector();
      a.addElement("5");
      a.addElement("9");

      Vector b = new Vector();
      int r, q;
      double element = 0., element1 = 0., element2 = 0., element3 = 0.;
      Double verpaktElement;
      for (int d = 0; d < a.size(); d++) {
        r = d - 1;
        q = d + 1;
        if (r < 0)
            element1 = 0.;
        else
            element1 = Double.parseDouble((String) a.elementAt(r));
        if (q == a.size())
            element2 = 0.;
        else
            element2 = Double.parseDouble((String) a.elementAt(q));
        element3 = Double.parseDouble((String) a.elementAt(d));

        element = (1 / 4) * (element1 + 2 * element3 + element2);
        verpaktElement = new Double(element);
        b.addElement(verpaktElement);
      }
      System.out.println("Lijst 1: " + a);
      System.out.println("Lijst 2: " + b);
    }
}

resultaat
code:
1
2
Lijst 1: [5, 9]
Lijst 2: [0.0, 0.0]

  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
Voor conversies van String --> int is er de Integer.parseInt(stringetje) methode. die returnt een int. Ik weet niet of iets dergelijx ook voor doubles bestaat, ik zou zeggen probeer het ;)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op donderdag 22 november 2001 20:10 schreef MisterData het volgende:
Ik weet niet of iets dergelijx ook voor doubles bestaat, ik zou zeggen probeer het ;)
Uiteraard, heet iets van Double.ParseDouble(String s)

Maar misschien is het een idee om de javadoc/javaAPI es te lezen?

voor de relevante delen iig.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
{edit)foutje, laat maar :o

  • AaroN
  • Registratie: Februari 2001
  • Laatst online: 16-08-2023

AaroN

JayGTeam (213177)

Op donderdag 22 november 2001 19:30 schreef pikachuf het volgende:

*****************************************
//bronbestand: GetallenRij.java

import java.io.*;
import java.util.*;
import javagently.*;

public class GetallenRij {
public static void main (String[] argv) throws IOException {

//String[] en argv ipv args is immers ArgumentenVector

InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader (isr);

Vector a=new Vector();
String reeks;
do{
Text.prompt("Geef een getal in (of typ een letterke om te stoppe): ");
System.out.flush();
reeks=Text.readString(in);
a.addElement(reeks);
}while (reeks.charAt(0)>='0' && reeks.charAt(0)<='9');
a.removeElementAt(a.size()-1);

Vector b=new Vector();
int r,q;
double element=0., element1=0., element2=0., element3=0.;
Double verpaktElement;
for (int d=0;d<a.size();d++){
r=d-1;
q=d+1;
if (r<0) element1 = 0.;
else element1 = ((Double)a.elementAt(r)).doubleValue();
if (q==a.size()) element2 = 0.;
else element2 = ((Double)a.elementAt(q)).doubleValue();
element3 = ((Double)a.elementAt(d)).doubleValue();

element = (1/4)*(element1+2*element3+element2);
verpaktElement = new Double(element);
b.addElement(verpaktElement);
}
System.out.println("Lijst 1: "+a);
System.out.println("Lijst 2: "+b);
}
}
**************************************

het probleem ontstaat niet bij het compileren maar bij het uitvoeren, er ontstaat dus een logische fout, hij komt nog in de for-lus trouwens maar vanaf daar moet er iets zijn dat niet klopt, ik heb al vanalles geprobeerd (al elke dag iets anders) maar ik krijg het maar niet in orde.

Kan iemand dit uitleggen a.u.b.????
Nou begin eens met commentaren en bijv methodes die bepaalde dingen voor je hoofd methode uitvoeren, zodat alles een beetje duidelijker is, ===> nu een zooitje ;(

Succes

JayGTeam (213177)


Verwijderd

Topicstarter
Bedankt iedereen, het programma werkt nu, Joho's bijdrage was het doorslaggevends in dit probleem.

Thanks!
Pagina: 1