Gå til innhold

adderer tallene fra 1 til n


Anbefalte innlegg

Skriv en metode som adderer tallene fra 1 til n (n ukjent) inntil summen er større eller lik en verdi oppgitt av brukeren. Når metoden kjøres skal brukeren bli spurt om å oppgi en maksimal verdi. Programmet skal så skrive ut setningen:

Summen av 1, 2, 3, …, <n> er <sum> som er større eller lik <maksverdi>.

Eksempel på utskrift:

Oppgi en verdi større enn 10:

11

Summen av 1, 2, 3,…, 5 er 15 som er større eller lik 11.

 

public static long adder (int n)

{

if( n < 0 )

throw new IllegalArgumentException();

long adder =0;

int maks=0;

String sum="";

for (int i=1; i<=n ; i++)

{

adder += i;

 

if (n >= maks)

sum = adder + "er større enn" +maks;

}

return adder;

}

 

Er det noen kan hjelpe meg ? hva er galt med denne metoden ,fungerer ikke som oppgaven sier

Lenke til kommentar
Videoannonse
Annonse

public static long adder (int n) //mulig du heller vil ha String her?

{

if( n < 0 )

throw new IllegalArgumentException();

long adder =0;

int maks=0;

String sum="";

for (int i=1; i<=n ; i++)

{

adder += i;

if (n >= maks)

sum = adder + "er større enn" +maks; // bruk en else også, slik at ikke alt blir lagt til.

// Dersom du skriv ut sum, ser du ;)

}

return adder; // returnere sum?

}

 

Har lagt inn noen kommentarer, så kan du rette den selv.

Lenke til kommentar
public static long adder (int n) //mulig du heller vil ha String her?

{

if( n < 0 )

  throw new IllegalArgumentException();

long adder =0;

int maks=0;

String sum="";

for (int i=1; i<=n ; i++)

{

  adder += i;

  if (n >= maks)

  sum = adder + "er større enn" +maks; // bruk en else også, slik at ikke alt blir lagt til.

          // Dersom du skriv ut sum, ser du ;)

}

return adder; // returnere sum?

}

 

Har lagt inn noen kommentarer, så kan du rette den selv.

8071620[/snapback]

 

Jeg får feil når jeg skriver return sum og skriver string helt øverst

Lenke til kommentar
Det gjør ikke eg. Har du stor bokstav i String

public static String adder (int n)

8071760[/snapback]

 

Takk , det gikk greit , men når jeg kjører metoden "Summen av 1, 2, 3, …, <n> er <sum> som er større eller lik <maksverdi>."

får jeg summen er større enn 0 , maks verdien kommer ikke ut

Lenke til kommentar
Det gjør ikke eg. Har du stor bokstav i String

public static String adder (int n)

8071760[/snapback]

 

Takk , det gikk greit , men når jeg kjører metoden "Summen av 1, 2, 3, …, <n> er <sum> som er større eller lik <maksverdi>."

får jeg summen er større enn 0 , maks verdien kommer ikke ut

8071859[/snapback]

 

 

Er dette en ny metode?

Lenke til kommentar
Det gjør ikke eg. Har du stor bokstav i String

public static String adder (int n)

8071760[/snapback]

 

Takk , det gikk greit , men når jeg kjører metoden "Summen av 1, 2, 3, …, <n> er <sum> som er større eller lik <maksverdi>."

får jeg summen er større enn 0 , maks verdien kommer ikke ut

8071859[/snapback]

 

 

Er dette en ny metode?

8071887[/snapback]

Nei samme metode

Lenke til kommentar

Nå til en ny metode :

 

Lag en metode som trekker et kort fra en kortstokk og skriver ut det kortet du trakk.Husk at du også må trekke fargen på kortet.

 

//metoden trekk kort

final int TYPE_COUNT = 4;

final int CARDS_IN_TYPE_COUNT = 13;

String[][] array = new String[TYPE_COUNT][CARDS_IN_TYPE_COUNT];

 

for(int i = 0; i < TYPE_COUNT; i++) {

for(int j = 0; j < CARDS_IN_TYPE_COUNT; j++) {

String insert = null;

 

if(i == 0) insert = "Spar ";

else if(i == 1) insert = "Hjerter ";

else if(i == 2) insert = "Ruter ";

else insert = "Kløver ";

 

int temp = j + 1;

if(temp == 1) insert += "Ess";

else if(temp == 11) insert += "Knekt";

else if(temp == 12) insert += "Dame";

else if(temp == 13) insert += "Konge";

else insert += Integer.toString(temp);

 

array[j] = insert;

int insert = (int)(13.0 * Math.random());

}

}

 

hva er galt med denne metoden ?

Lenke til kommentar
Nå til en ny metode :

 

Lag en metode som trekker et kort fra en kortstokk og skriver ut det kortet du trakk.Husk at du også må trekke fargen på kortet.

 

//metoden trekk kort

final int TYPE_COUNT = 4;

final int CARDS_IN_TYPE_COUNT = 13;

String[][] array = new String[TYPE_COUNT][CARDS_IN_TYPE_COUNT];

 

for(int i = 0; i < TYPE_COUNT; i++) {

    for(int j = 0; j < CARDS_IN_TYPE_COUNT; j++) {

        String insert = null;

 

        if(i == 0) insert = "Spar ";

        else if(i == 1) insert = "Hjerter ";

        else if(i == 2) insert = "Ruter ";

        else insert = "Kløver ";

 

        int temp = j + 1;

        if(temp == 1) insert += "Ess";

        else if(temp == 11) insert += "Knekt";

        else if(temp == 12) insert += "Dame";

        else if(temp == 13) insert += "Konge";

        else insert += Integer.toString(temp);

 

        array[j] = insert;

  int insert = (int)(13.0 * Math.random());

    }

}

 

hva er galt med denne metoden ?

8071967[/snapback]

 

Dersom metoden din skal trekke et kort må den hvertfall returnere kortet.

Men du trenger ikke lage hele kortstokken inne i metoden, siden den forsvinn når du går ut av metoden. Dersom du skal lage en kortstokk så lag den utenfor og send den inn som innput til metoden.

Har ikke hele oppgaven din, men tror ikke du treng mer en noe slik:

 

(int)(4.0 * Math.random()); //hjerter, ruter osv

(int)(13.0 * Math.random()); numer på kortet.

 

Trøtt nå.

Lenke til kommentar
Nå til en ny metode :

 

Lag en metode som trekker et kort fra en kortstokk og skriver ut det kortet du trakk.Husk at du også må trekke fargen på kortet.

 

//metoden trekk kort

final int TYPE_COUNT = 4;

final int CARDS_IN_TYPE_COUNT = 13;

String[][] array = new String[TYPE_COUNT][CARDS_IN_TYPE_COUNT];

 

for(int i = 0; i < TYPE_COUNT; i++) {

     for(int j = 0; j < CARDS_IN_TYPE_COUNT; j++) {

         String insert = null;

 

         if(i == 0) insert = "Spar ";

         else if(i == 1) insert = "Hjerter ";

         else if(i == 2) insert = "Ruter ";

         else insert = "Kløver ";

 

         int temp = j + 1;

         if(temp == 1) insert += "Ess";

         else if(temp == 11) insert += "Knekt";

         else if(temp == 12) insert += "Dame";

         else if(temp == 13) insert += "Konge";

         else insert += Integer.toString(temp);

 

         array[j] = insert;

   int insert = (int)(13.0 * Math.random());

     }

}

 

hva er galt med denne metoden ?

8071967[/snapback]

 

Dersom metoden din skal trekke et kort må den hvertfall returnere kortet.

Men du trenger ikke lage hele kortstokken inne i metoden, siden den forsvinn når du går ut av metoden. Dersom du skal lage en kortstokk så lag den utenfor og send den inn som innput til metoden.

Har ikke hele oppgaven din, men tror ikke du treng mer en noe slik:

 

(int)(4.0 * Math.random()); //hjerter, ruter osv

(int)(13.0 * Math.random()); numer på kortet.

 

Trøtt nå.

8072065[/snapback]

Takk før du legger deg ,hjelp meg med det , her er hele oppgaven :

 

Lag en metode som trekker et kort fra en kortstokk og skriver ut det kortet du trakk.

En kortstokk har 52 kort: 13 kort (2, 3, 4, 5, 6, 7, 8, 9, 10, Kn, D, K, A) i hver av de fire fargene (ruter, hjerter, kløver og spar) .

Tips: For å trekke et tilfeldig kort bruk random-generatorene i java. Et kall på metoden Math.random() vil returnere et flyttall x slik at 0 ≤ x < 1. For å beregne verdien til kortet kan dette tallet så multipliseres med 13, bruk kommandoen:

int n = (int)(13.0 * Math.random());

Du får da et tall i mengden {0, 1, 2, …, 12}. Husk at du også må trekke fargen på kortet.

Lenke til kommentar
public static string tilfeldigKort(){

String ut = "Kortet er ";

randInt1=((int)(4.0 * Math.random()))+1; //hjerter, ruter osv
randInt2=((int)(13.0 * Math.random()))+1; numer på kortet.   

switch (randInt1){
  case 1: ut+="hjerter "; break;
  case 2: ut+="spar "; break;
  case 3: ut+="kløver "; break;
  case 4: ut+="ruter "; break; 
}

select (randInt2){
  case 13: ut+="konge"; break;
  case 12: ut+="dronning"; break;
  case 11: ut+="knekt"; break;
  default: ut+=randInt2;
}

return ut;
}

Lenke til kommentar
public static string tilfeldigKort(){

String ut = "Kortet er ";

randInt1=((int)(4.0 * Math.random()))+1; //hjerter, ruter osv
randInt2=((int)(13.0 * Math.random()))+1; numer på kortet.   

switch (randInt1){
  case 1: ut+="hjerter "; break;
  case 2: ut+="spar "; break;
  case 3: ut+="kløver "; break;
  case 4: ut+="ruter "; break; 
}

select (randInt2){
  case 13: ut+="konge"; break;
  case 12: ut+="dronning"; break;
  case 11: ut+="knekt"; break;
  default: ut+=randInt2;
}

return ut;
}

8072189[/snapback]

takk for det

Lenke til kommentar
public static string tilfeldigKort(){

String ut = "Kortet er ";

randInt1=((int)(4.0 * Math.random()))+1; //hjerter, ruter osv
randInt2=((int)(13.0 * Math.random()))+1; numer på kortet.   

switch (randInt1){
  case 1: ut+="hjerter "; break;
  case 2: ut+="spar "; break;
  case 3: ut+="kløver "; break;
  case 4: ut+="ruter "; break; 
}

select (randInt2){
  case 13: ut+="konge"; break;
  case 12: ut+="dronning"; break;
  case 11: ut+="knekt"; break;
  default: ut+=randInt2;
}

return ut;
}

8072189[/snapback]

select (randInt2){

denne gir feilmelding :";' expected at line 52 (52:21)"

Lenke til kommentar

Du ser sikkert at jeg har blandet to språk der. Select/case er hva som blir brukt i visual basic (om jeg husker rett) mens de fleste andre språk, inkludert java, bruker Switch/case som jeg bruker syv linjer opp. Bare endre "select" til "switch" så blir det nok rett.

Lenke til kommentar
Du ser sikkert at jeg har blandet to språk der. Select/case er hva som blir brukt i visual basic (om jeg husker rett) mens de fleste andre språk, inkludert java, bruker Switch/case som jeg bruker syv linjer opp. Bare endre "select" til "switch" så blir det nok rett.

8072374[/snapback]

ja

stemmer nok , måtte ha int for randInt1 og 2 også ,takk for hjelpen

Lenke til kommentar
Jeg kom akkurat på at du også må ta en

 

case = 1: ut+=ess; break;

 

en plass i siste switch over "default".

8073643[/snapback]

 

Hei takk for det , ja det manglet der , men bare lurte på en annen ting , Jeg sliter med den ,vet ikke hvordan skal løse den ,håper du kan hjelpe :

 

Lag en metode som spiller Black Jack. Metoden blackJack skal kalle på metoden tilfeldigKort(). Black Jack er et pokerspill hvor hver spiller får utdelt to kort, deretter kan spilleren trekke så mange kort han vil, men summen av kortenes verdi må ikke overstige 21. Den spilleren med sum nærmest 21 har vunnet. Verdien til kortene er:

• Tallkortene (2, 3, 4, 5, 6, 7, 8, 9) har verdi som tallet viser.

• Bildekortene (Kn, D, K) har verdi 10.

• Ess (A) har verdien 10. (Som regel spilles spillet slik at et ess kan ha verdien 1 eller 10, og at spiller selv kan bestemme hvilken verdi som skal gjelde. Vi forenkler spillet litt og sier at ess alltid har verdien 10).

Du kan anta at vi spiller med uendelig mange kortstokker, slik at samme kort kan trekkes flere ganger.

Etter å ha delt ut to kort til spilleren, oppgitt disse to kortene og summen av dem, skal blackJack metoden spørre om spilleren vil trekke enda et kort. Hvis han svarer ja, skal programmet trekke et nytt kort. Deretter skal det oppgi hvilket kort som ble trukket og summen av kortene som er trukket hittil. Programmet sjekker så om spilleren har tapt (det vil si at summen har overskredet 21), og rapporterer eventuelt tap.

Programmet skal gjenta spørsmålet om nytt kort og etterfølgende behandling helt til spilleren ikke vil ha flere kort eller til han har tapt. Hvis spilleren har tapt, skal programmet gi beskjed om dette. Hvis trekkingen stoppet fordi han ikke ville ha flere kort, skal programmet skrive ut summene av de trukne kortene.

Lenke til kommentar

Uff, metoden jeg skrev tidligere er langt fra optimalt for dette, så den bør omskrives. Slik den er nå må du ta en kort.substring(kort.length()-1, kort.length())

[altså lese ut siste tegn metoden returnerer] og så sjekke om den er et integer, noe som er litt for innviklet.

 

Omskrives den første til å returnere tallverdien på en litt kjekkere måte som dette sparer du mye kode:

 

public static String[] tilfeldigKort(){

String [] ut = new String [2];

randInt1=((int)(4.0 * Math.random()))+1; //hjerter, ruter osv
randInt2=((int)(13.0 * Math.random()))+1; numer på kortet.   

switch (randInt1){
    case 1: ut[0] = "hjerter "; break;
    case 2: ut[0] = "spar "; break;
    case 3: ut[0] = "kløver "; break;
    case 4: ut[0] = "ruter "; break; 
}

ut[1] = ""+ rantInt2;

select (randInt2){
    case 13: ut[0] += "konge"; break;
    case 12: ut[0] += "dronning"; break;
    case 11: ut[0] += "knekt"; break;
    default: ut[0] += randInt2;
}

return ut;
}

 

Den siste oppgaven vil da se ut som dette:

 

public static string blackJack(){

Boolean f0rste=true;
Boolean igjen=true;
int sum =0;
int verdi=0;

do{
 String[] kort = tilfeldigKort();

 try{ verdi = Integer.parseint(kort[1]) } catch(NumberFormatException e){}

 switch (verdi){
 	case 13:
 	case 12:
 	case 11:
 	case 1:
 	case 10: sum+=10; break;
 	default: sum+=verdi;
 }

 if (f0rste){
 f0rste=false;
 }

 else{
 	if (JOptionPane.showConfirmDialog(null, "Deal again?", "Deal again?", JOptionPane.YES_NO_OPTION) == 0){
 	igjen=false;
 	}
 }
}
while (igjen);

String ut="Du endte pA " + sum;
if (sum >21){
ut+=" Bust!";
}

JOptionPane.showInternalMessageDialog(null, "Score", ut, JOptionPane.INFORMATION_MESSAGE);
}

 

... Men du bør se over koden da jeg hverken har et IDE eller har skrevet java på en stund.

EDIT: Den showConfirmDialog-tingen har jeg ingen peiling hvordan virker. :) Eneste jeg vet er at den returnerer en int, så jeg antar at 0=no og 1=yes, men for alt jeg vet er det 1 og 2.

Lenke til kommentar
... Men du bør se over koden da jeg hverken har et IDE eller har skrevet java på en stund.

EDIT: Den showConfirmDialog-tingen har jeg ingen peiling hvordan virker. :) Eneste jeg vet er at den returnerer en int, så jeg antar at 0=no og 1=yes, men for alt jeg vet er det 1 og 2.

8074671[/snapback]

 

hei takk jeg ordnet det .

Jeg har bare siste metoden , jeg lagde det men den fungerer ikke helt :

 

 

 

public static String DNA ()

{

String input = JOptionPane.showInputDialog("Skriv inn sens sekvensen " );

 

char[] sens = { 'A', 'T', 'C', 'G'};

 

String output = "sensen i innlest tekst:\n";

 

for ( int i = 0; i < input.length(); i++ )

{

char tegn = input.charAt( i );

 

for ( int j = 0; j <sens.length; j++ )

{

if ( tegn == sens[ j ] )

{

 

output += tegn + " ";

 

}

}

}

}

 

 

 

 

DNA opptrer i naturen som en dobbel helix, hvor den ene strengen i helixen er bestemt av den andre. De to strengene kalles sense og anti-sense strenger. Som regel får man kun oppgitt sekvensen til sense strengen, sekvensen til anti-sense strengen må man finne selv. I denne oppgaven skal du lage et program som finner sekvensen til anti-sense strengen når sekvensen til sense strengen er gitt. DNA sekvenser består av fire forskjellige nukleotider (symbolene A, T, C og G), bindinger mellom sense og anti-sense sekvensene er slik at A binder seg med T, T binder seg med A, C binder seg med G og G binder seg med C. Hvis sekvensen på sense strengen er AAAAATGGGACCC kan vi skrive opp denne med sekvensen til anti-sense strengen under slik:

5’ AAAAATGGGACCC 3’

3’ TTTTTTACCCTGGG 5’

DNA sekvenser leses alltid fra 5 merket enden til 3 merket enden. Dermed vil sekvensen på anti-sense strengen leses motsatt vei av sense strengen. Sekvensen av nukleotidene vi er ute etter er i dette eksemplet er altså: 5’ GGGTCCCATTTTT 3’.

Du skal lage en metode som kan brukes til å skrive inn sekvensen til sense strengen og få ut sekvensen til anti-sense strengen. Metoden skal gi feilmelding hvis andre bokstaver enn A, T, G eller C skrives inn. Metoden skal skrive ut sekvensen til den tilhørende anti-sense strengen.

Eksempel på utskrift når metoden kjøres:

Skriv inn DNA-sekvensen til sense strengen:

AAAGAAC

DNA sekvensen til anti-sense strengen er: GTTCTTT.

Eksempel med feil i inndata:

Skriv inn DNA-sekvensen til sense strengen:

AACGGH

Du har skrevet bokstaven H, H er ikke en av de fire nukleotidene A, T, C eller G.

Skriv inn DNA-sekvensen til sense strengen:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...