Forum: Java Programmering A hjälp!

Forum huvudsida -> Programmering -> Java Programmering A hjälp!

Sidor: 1

Till botten

noxy 15:12 - 13:e Februari 2009 | Post #1
Medlem
Inlägg: 6


Skicka PM
Hej!

Jag har just registrerat mig på detta forum och hoppas jag kan få hjälp!
Jag har ingen större erfarenhet av programmering, och jag har 4st program jag skulle vilja ha då och utgå ifrån för att lära mig. Ha något att gå tillbaks på och titta, så om ni känner att ni har tid så kan ni hjälpa mig om ni vill. Det skulle uppskattas.

Jag vet grunden:
public class test{
public static void main(String[] args){


Här nedan är det 4a programmen jag skulle vilja ha:
1

Vid ett lotteri med 500 lotter (numrerade 1-500) vinner lotter med alla siffror lika (exempelvis nr 444) 500 kronor. Alla lotter vars nummer är delbart med 50 vinner 100 kronor utom lott nr 500 som vinner 1000 kronor. Skriv ett program som presenterar alla vinstlotter och vinstvärden enligt nedanstående modell. En for-sats ska styra genomgången av alla nummer och en eventuell vinst kontrolleras med if-satser.

Nummer Vinst
50 100
100 100
111 500


2

En bil förväntas ha en värdeminskning på 15 % varje år. Skriv ett program som ger användaren två alternativ:

1.Mata in nyvärde och ålder
2.Mata in nyvärde och aktuellt värde.

Vid alternativ 1 ska programmet presentera det aktuella värdet på bilen och vid alternativ 2 ska programmet beräkna och presentera bilens ålder.

Tips: För varje år som går ska bilens värde multipliceras med 0,85. En switch-case-sats tillsammans med lämpliga repetitionssatser löser uppgiften.


3

I en simhoppstävling finns det fem domare. De värderar ett simhopp med maximalt 10 poäng. Simhoppet har också en svårighetsgrad som anges med ett tal. En beräkning av poängen för ett hopp går till så att man först plockar bort den högsta och lägsta poäng som utdelats av domarna. Därefter adderas de återstående tre poängtalen och resultatet av det multipliceras med hoppets svårighetsgrad. Om ett hopp har svårighetsgraden 2,8 och bedöms med siffrorna 8,5; 7,0; 8,0; 7,5 och 8,5 blir hoppoängen 2,8--(8,0+7,5+8,5) = 67,2.


4

Skriv ett program som låter användaren mata in ett hopps svårighetsgrad samt fem domarpoäng och som med hjälp av dessa uppgifter beräknar hoppets totalpoäng.



Tack
Noxy




Slash 15:40 - 13:e Februari 2009 | Post #2
Medlem
Inlägg: 141


Skicka PM
Hejsan noxy.

Ta en fråga i taget. Om vi börjar med ettan, hur långt har du kommit och var har du kört fast?

-------------------------
Ingen sigantur!



noxy 17:13 - 13:e Februari 2009 | Post #3
Medlem
Inlägg: 6


Skicka PM
Hej Slash!

Jo det är faktiskt så att jag redan kört fast vi den där for-satsen, vad jag har fattat ska den känna av alla nummer och sedan när den tagit ut alla "vinstnummer" så ska if-satsen rätta och se om det är vinst.

i en bok jag har står det så här:


Men då är det 500 låter och om jag ska skriva 500 uttryck blir det lite jobbigt så jag antar att det måste finnas någon lättare väg.Smiley

Så förstår jag väll inte hur man ska lägga upp det efter:
public static void main(String[] args){ så man får allt att passa ihop (for-satsen).

Edit:
Jag gjorde detta:

// test
public class test{
public static void main(String[] args){
for (int lotter = 0; lotter < 501; lotter++){
System.out.print(lotter + " ");
}
}
}

Då så kommer detta upp:

Men det vill jag ju inte. Hur får jag nu så att det ser ut som ex:


Måste man inte skriva in något för att få dom rätta "lotterna" (alla som är lika ex 444) som nr 1 säger?










Senast redigerad 17:39 - 13:e Februari 2009


Slash 18:53 - 13:e Februari 2009 | Post #4
Medlem
Inlägg: 141


Skicka PM
För att undersöka om ett tal x är jämnt delbart med ett tal n så kan man skriva:
  1. if (x % n == 0) {
  2. System.out.println(x + " är jämnt delbar med " + n);
  3. }


Utläses "om resten vid divisionen m x/n är lika med 0" som alltså betyder att x är jämnt delbar med n.

Så för att kolla om ett lottnummer är jämnt delbart med 50:
  1. if (lottnummer % 50 == 0) {
  2. // Japp!
  3. }


För att kolla om alla siffror i ett tal är lika kan det vara bra att veta att man kan göra om ett tal (int) till en sträng så här:
  1. int tal = 123;
  2. String digits = String.valueOf(tal); // = "123"
  3.  
  4. // Och lite strängfunktioner
  5. int antalSiffror = digits.length();
  6. int ental = digits.charAt(2); // = '3'. Fungerar bara om det finns tre eller fler siffror
  7. int tiotal = digits.charAt(1); // = '2'. Fungerar bara om det finns två eller fler siffror
  8. int hundratal = digits.charAt(0); // = '1'. Fungerar bara om det finns en eller fler siffror


EDIT
Kom på att du kanske ska lösa det med modulo (%-operatorn) eftersom du använde det i den första delen.

Isåfall:
  1. int tal = 123;
  2.  
  3. int ental = tal % 10;
  4. int tiotal = (tal / 10) % 10;
  5. int hundratal = (tal / 100) % 10;


Lite enklare kanske...

-------------------------
Ingen sigantur!

Senast redigerad 19:03 - 13:e Februari 2009


kode 19:08 - 13:e Februari 2009 | Post #5
Medlem
Inlägg: 45


Skicka PM
Modulo-operator är ett hett tips, ja:

  1. #! /usr/bin/ruby
  2. print "Nummer Vinst\n "
  3. (1..500).each { |x| puts ((x==500) ? " #{x} 1000" : x%111==0 ? " #{x} 500" : (x%50 == 0) ? " #{x} 100" : "") if ((x==500) ? " #{x} 1000" : x%111==0 ? " #{x} 500" : (x%50 == 0) ? " #{x} 100" : "" != "")}


Det framgick inte riktigt om 11, 22, 33, osv skulle ge 500, så jag gick efter exempelutskriften och struntade i det...




noxy 19:12 - 13:e Februari 2009 | Post #6
Medlem
Inlägg: 6


Skicka PM
Tack Slash!

Bra uppdelat!
Men det står dock att jag ska lösa det i for och if, vet inte om jag kan använda modulo då?

Nu kanse jag är helt ute och cycklarSmiley

Kode tack!
Men jag får inte med hela rad 3:(




kode 20:41 - 13:e Februari 2009 | Post #7
Medlem
Inlägg: 45


Skicka PM
Prova en vettig webbläsare isf...

och ja, givetvis kan du använda modulo i dina if-satser.




tobbez 21:45 - 13:e Februari 2009 | Post #8
Medlem
Inlägg: 364


Skicka PM
/me bidrar med en fin lösning i C på #1 Smiley

  1. #include <stdio.h>
  2. #include <malloc.h>
  3.  
  4. #define random int
  5. #define modnar char
  6. #define all 0
  7.  
  8. #define input_chars(gra,rag) printf("%i\t%i\n", rag, gra)
  9. #define input_ints(d, b) printf("%s\t%s\n", b, d)
  10.  
  11. int main(random argc, modnar **argv)
  12. {
  13. random *lust;
  14. random *durr;
  15. random hurr;
  16. hurr = 0;
  17.  
  18. lust = malloc(500 * sizeof(int));
  19.  
  20. for(durr = lust + 499; durr != lust - 1; durr--) *durr = ++hurr;
  21.  
  22. durr++;
  23. input_ints("Vinst", "Nummer");
  24. for(hurr = 499; hurr != -1; --hurr)
  25. hurr[durr] % 0x6F == 0 ? input_chars(500, durr[hurr]) :
  26. durr[hurr] % 0x1F4 == 0 ? input_chars(1000, hurr[durr]) :
  27. durr[hurr] % 0x32 == 0 ? input_chars(100, hurr[durr]) : all;
  28.  
  29. free(lust);
  30. return 0;
  31. }





noxy 16:52 - 15:e Februari 2009 | Post #9
Medlem
Inlägg: 6


Skicka PM
...h tack!

Underbart!

noxy

Edit
Skulle bara fråga om ni har något bra tips på något hjälpmedel så jag slipper sitta och skriva mina koder genom Anteckningar?




Senast redigerad 17:38 - 15:e Februari 2009


noxy 20:50 - 15:e Februari 2009 | Post #10
Medlem
Inlägg: 6


Skicka PM
Dock kom jag på att C inte hjälper migSmiley men jag börjar tappa humöret på detta dock.

Har läst alla kapitlet i boken men har inte kommit fram till någon av svaren och jag har suttit mer än 4a timmar varje dag sedan nästan en vecka tillbaks.

Jag har iaf lärt mig att veta vad ett program gör när jag har koden framför mig, men det hjälper ju inte mig när jag ska göra kodenSmiley

Men jag får tacka er så otrolgit mycket för er hjälp!

Tack
NOXY




kode 01:42 - 16:e Februari 2009 | Post #11
Medlem
Inlägg: 45


Skicka PM
Nå. Principen är ganska enkel, egentligen.

Du vill veta när ett lottnummer är jämnt delbart med vinstnumren. Om man använder heltalsdivision för att ta reda på det innebär det att resten blir 0. Operatorn för att få resten vid heltalsdivision är %. Lite pseudokod:

  1. för ( lottnumer är 1 till 500 ) gör {
  2. om lottnummer % 500 är lika med 0
  3. skriv ut: lottnummer, 1000 kronor
  4. annars om lottnummer % 111 är lika med 0
  5. skriv ut: lottnummer, 500 kronor
  6. annars om lottnummer % 50 är lika med 0
  7. skriv ut: lottnummer, 100 kronor
  8. annars
  9. gör ingenting
  10. }


ser man på, både for-loop och if-satser...




noxy 18:52 - 16:e Februari 2009 | Post #12
Medlem
Inlägg: 6


Skicka PM
TAck!


Nu är det ju denna jag inte kan fatta mig på:

En bil förväntas ha en värdeminskning på 15 % varje år. Skriv ett program som ger användaren två alternativ:

1.Mata in nyvärde och ålder
2.Mata in nyvärde och aktuellt värde.

Vid alternativ 1 ska programmet presentera det aktuella värdet på bilen och vid alternativ 2 ska programmet beräkna och presentera bilens ålder.

Tips: För varje år som går ska bilens värde multipliceras med 0,85. En switch-case-sats tillsammans med lämpliga repetitionssatser löser uppgiften.





Senast redigerad 18:59 - 16:e Februari 2009


michcio 22:45 - 27:e April 2009 | Post #13
Medlem
Inlägg: 1


Skicka PM
Hej!

Har löst alla uppgifterna lite snabbt : (OBS! klassen Keyboard.class behövs för att det ska vara möjligt att köra vissa uppgifter därför lägger ja först ut dennaSmiley):

  1. import java.io.*;
  2.  
  3. class Keyboard {
  4.  
  5. // Author: M. D. M., June 9, 1997
  6. // Primitive Keyboard input of integers, reals,
  7. // strings, and characters.
  8.  
  9. static boolean iseof = false;
  10. static char c;
  11. static int i;
  12. static double d;
  13. static String s;
  14.  
  15. /* WARNING: THE BUFFER VALUE IS SET TO 1 HERE TO OVERCOME
  16. ** A KNOWN BUG IN WIN95 (WITH JDK 1.1.3 ONWARDS)
  17. */
  18. static BufferedReader input
  19. = new BufferedReader (
  20. new InputStreamReader(System.in), 1);
  21.  
  22. public static int readInt () {
  23. if (iseof) return 0;
  24. System.out.flush();
  25. try {
  26. s = input.readLine();
  27. }
  28. catch (IOException e) {
  29. System.exit(-1);
  30. }
  31. if (s==null) {
  32. iseof=true;
  33. return 0;
  34. }
  35. i = new Integer(s.trim()).intValue();
  36. return i;
  37. }
  38.  
  39. public static char readChar () {
  40. if (iseof) return (char)0;
  41. System.out.flush();
  42. try {
  43. i = input.read();
  44. }
  45. catch (IOException e) {
  46. System.exit(-1);
  47. }
  48. if (i == -1) {
  49. iseof=true;
  50. return (char)0;
  51. }
  52. return (char)i;
  53. }
  54.  
  55. public static double readDouble () {
  56. if (iseof) return 0.0;
  57. System.out.flush();
  58. try {
  59. s = input.readLine();
  60. }
  61. catch (IOException e) {
  62. System.exit(-1);
  63. }
  64. if (s==null) {
  65. iseof=true;
  66. return 0.0;
  67. }
  68. d = new Double(s.trim()).doubleValue();
  69. return d;
  70. }
  71.  
  72. public static String readString () {
  73. if (iseof) return null;
  74. System.out.flush();
  75. try {
  76. s=input.readLine();
  77. }
  78. catch (IOException e) {
  79. System.exit(-1);
  80. }
  81. if (s==null) {
  82. iseof=true;
  83. return null;
  84. }
  85. return s;
  86. }
  87.  
  88. public static boolean eof () {
  89. return iseof;
  90. }
  91.  
  92. }



UPPGIFT 1 (lotteri):

  1. public class Main {
  2. public static void main(String[] args) {
  3. System.out.println("Nummer\tVinst (kr)");
  4. for(int i=1; i<=500; i++){
  5. if(i%50==0){
  6. if(i==500)
  7. System.out.println(i + "\t\t1000");
  8. else{
  9. System.out.println(i + "\t\t100");
  10. }
  11. }
  12. else if(i>99){
  13. int tmpI = i/10;
  14. int old = i%10;
  15. int neew = 0;
  16. boolean samma = true;
  17. for(int j=0; j<2; j++){
  18. neew = tmpI%10;
  19. if(neew!=old){
  20. samma = false;
  21. break;
  22. }
  23. tmpI /= 10;
  24. }
  25. if(samma){
  26. System.out.println(i + "\t\t500");
  27. }
  28. }
  29. }
  30.  
  31. }
  32. }


UPPGIFT 2 (bilar):

  1. public static void main(String[] args) {
  2. System.out.println("1.Mata in nyvärde och ålder\n2.Mata in nyvärde och aktuellt värde.\nVälj 1 eller 2?");
  3. int choise = Keyboard.readInt();
  4. System.out.println("Mata in bilens nyvärde (kr) :");
  5. double worth = Keyboard.readDouble();
  6. switch(choise){
  7. case 1:
  8. System.out.println("Skriv in bilens ålder (år) :");
  9. int age = Keyboard.readInt();
  10. System.out.println("Bilen är nu värd: " + worth * Math.pow(0.85 , age) + "kr");
  11. case 2:
  12. System.out.println("Skriv in bilens aktuella värde (kr) :");
  13. double worthNow = Keyboard.readInt();
  14. System.out.println("Bilen är nu : " + Math.log(worthNow/worth)/Math.log(0.85) + " år");
  15. }
  16. }


UPPGIFT 3 (simmning):

  1. public class Main {
  2. public static void main(String[] args) {
  3. System.out.print("Skriv in svårighetsgrad ?");
  4. double svar = Keyboard.readDouble();
  5. double[] po = new double[5];
  6. for(int i=0; i<5; i++){
  7. System.out.print("Domarpoäng nr. " + (i+1) + " ?");
  8. po[i] = Keyboard.readDouble();
  9. }
  10. double max = Double.MIN_VALUE;
  11. double min = Double.MAX_VALUE;
  12. int maxP = 0;
  13. int minP = 0;
  14. for(int i=0; i<5; i++){
  15. if(po[i]>max){
  16. max = po[i];
  17. maxP = i;
  18. }
  19. else if(po[i]<min){
  20. min = po[i];
  21. minP = i;
  22. }
  23. }
  24. double sum = 0;
  25. for(int i=0; i<5; i++){
  26. if(i!=maxP && i!=minP){
  27. sum += po[i];
  28. }
  29. }
  30. sum *= svar;
  31. System.out.println("Hoppoängen = " + sum);
  32. }
  33. }



mvh

michcio



Senast redigerad 23:24 - 27:e April 2009


Sidor: 1

Forum huvudsida -> Programmering -> Java Programmering A hjälp!
Atom feed

Du får inte posta i den här tråden | Till toppen