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.????
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.????