Alla inlägg under november 2012
Exempel:
///////////////////////////////////////////////////
//Skriv ett program som låter användaren mata
//in tio värden och som sorterar dessa i fallande
//ordning. Programmet avslutas med en utskrift
///////////////////////////////////////////////////
public
class uppgift31 {
public static void main(String[] args) {
//initering
double tal[] = new double[10];
int antal = 0;
//imatning av tal
System.
out.print("Mata in ett tal: ");
double temp = Keyboard.readDouble();
tal[antal++] = temp;
//imatning av tal upp till tio st
while (antal < 10){
System.
out.print("Mata in ett tal: ");
temp = Keyboard.readDouble();
tal[antal++] = temp;
}
//sortering
UppgSort.sort(tal);
//Utmatning
for (int n = 0; n < antal; n++){
System.
out.print(tal[n] + " ");
}
}
}
____________________________
/////////////////////////////////////////////
//Utöka programmet från föregående uppgift
//så att användaren tillfrågas om materialet
//ska sorteras stigande eller fallande.
//Därefter vidtar sorteringen.
/////////////////////////////////////////////
public
class uppgift32 {
public static void main(String[] args) {
//initering
double tal[] = new double[10];
int antal = 0;
//imatning av tal
System.
out.print("Mata in ett tal: ");
double temp = Keyboard.readDouble();
tal[antal++] = temp;
//imatning av tal upp till tio st
while (antal < 10){
System.
out.print("Mata in ett tal: ");
temp = Keyboard.readDouble();
tal[antal++] = temp;
}
//val av sorteingsordning
System.
out.print("Vill du att talen ska sorteras fallande (f) eller stigande (s)");
char svar = Keyboard.readChar();
if (svar == 'f'){
//sortering i fallande ordning
UppgSort.sort(tal);
//Utmatning
for (int n = 0; n < antal; n++){
System.
out.print(tal[n] + " ");
}
}
else if (svar == 's'){
UppgSort.sort2(tal);
//Utmatning
for (int n = 0; n < antal; n++){
System.
out.print(tal[n] + " ");
}
}
else {
System.
out.print("Det går inte");
}
}
}
____________________________
///////////////////////////////////////////////////
//Skriv ett program som låter användaren
//mata in ett antal positiva tal. Inmatningen
//avbryts med ett negativt tal. Därefter ska
//en statistisk redovisning av materialet ske.
//Den ska innehålla största värde, minsta värde,
//medelvärde samt median. Observera att antalet
//värden antingen kan vara jämnt eller udda,
//vilket är viktigt vid medianberäkningen.
//////////////////////////////////////////////////
public class uppgift33 {
public static void main(String[] args) {
//initering
double tal[] = new double[1000];
int antal = 0;
//Inmatning av tal
System.
out.print("Mata in positiva tal. Avsluta med ett negativt. ");
double temp = Keyboard.readDouble();
tal[antal] = temp;
//inatning av tal tills användaren matar in ett negativt tal
while (temp > 0){
tal[antal++] = temp;
System.
out.print("Mata in tal: ");
temp = Keyboard.readDouble();
}
//while
//Uträkningar
double storst = UppgSort.storst(tal, antal);
double minst = UppgSort.minst(tal, antal);
double medel = UppgSort.medel(tal, antal);
//Utmatning
System.
out.print("Störst: " + storst +
"\nMinst: " + minst +
"\nMedel: " + medel);
}
}
____________________________
public class UppgSort {
public static void sort(double data[]){
for (int m = 0; m < data.length-1; m++){
for (int n = m+1; n < data.length; n++){
if (data[m] < data[n]){
double temp = data[m];
data[m] = data[n];
data[n] = temp;
}
}
}
}
//sort
public static void sort2(double data[]){
for (int m = 0; m < data.length-1; m++){
for (int n = m+1; n < data.length; n++){
if (data[m] > data[n]){
double temp = data[m];
data[m] = data[n];
data[n] = temp;
}
}
}
}
//sort2
public static void sort3(int data[]){
for (int m = 0; m < data.length-1; m++){
for (int n = m+1; n < data.length; n++){
if (data[m] > data[n]){
int temp = data[m];
data[m] = data[n];
data[n] = temp;
}
}
}
}
//sort3
public static double storst(double data[], int antal){
double storst = data[0];
for (int i = 1; i < antal; i++){
if (data > storst){
storst = data;
}
//if
}
//for
return storst;
}
//storst
public static double minst(double data[], int antal){
double minst = data[0];
for (int i = 1; i < antal; i++){
if (data < minst){
minst = data;
}
//if
}
//for
return minst;
}
//minst
public static double medel(double[] data, int antal){
double totalt = data[0];
for (int i = 1; i < antal; i++){
totalt += data;
}
//for
double medel = totalt / antal;
return medel;
}
//medel
public static double median(double[] data, int antal){
double median = 0;
//sortering
for (int m = 0; m < data.length-1; m++){
for (int n = m+1; n < data.length; n++){
if (data[m] < data[n]){
double temp = data[m];
data[m] = data[n];
data[n] = temp;
}
}
}
//uträkning
if (antal%2 != 0){
int halv = antal/2;
median = data[halv++];
}
//if
else if (antal%2 == 0){
int halv = antal/2;
median = data[halv] + data[halv++] / 2;
}
//else if
return median;
}
//median
public static int delbar(int data[]){
int delbara = 0;
for (int i = 0; i < 10; i++){
if (data % 3 == 0){
delbara++;
}
//if
}
//for
return delbara;
}
//delbar
}
//UppgSort
Exempel:
////////////////////////////////////////////////////////////////////////
//Använd en lämplig standardmetod för att söka efter ett ord i en text.
//Låt programmet redovisa resltatet av sökningen på ett lämpligt sätt.
////////////////////////////////////////////////////////////////////////
public
class uppgift14_2 {
publicstaticvoid main(String[] args) {
//Pers variant
System.out.println("Skriv en text.");
String text = Keyboard.readString();
System.out.print("Skriv ett ord: ");
String ord = Keyboard.readString();
int position = text.indexOf(ord);
if (position != -1){
System.out.println("Ordet " + ord + " finns.");
}
else{
System.out.println("Ordet " + ord + " saknas.");
}
}
}
Sorterings- och sökalgoritmer:
Bubbelsortering --> Varje värde flyttar ett steg åt gången genm att byta plats med efterföljande värde till dess att ett annat värde ska bubbla vidare.
public static void sort(double data[]){
for (int m = 0; m < data.length-1; m++){
for (int n = m+1; n < data.length; n++){
if (data[m] < data[n]){
double temp = data[m];
data[m] = data[n];
data[n] = temp;
}
}
}
}
//sort
public static void sort2(double data[]){
for (int m = 0; m < data.length-1; m++){
for (int n = m+1; n < data.length; n++){
if (data[m] > data[n]){
double temp = data[m];
data[m] = data[n];
data[n] = temp;
}
}
}
}
//sort2
________________________
Infogande sortering --> Ett nytt värde infogas på lämplig plats i en redan sorterad delmängd.
public static void infSort(double data[], int antal){
for (int m=1; m < antal; m++){
int position = m;
double temp = data[m];
while (position > 0 && data[position-1] > temp){
data[position] = data[position-1];
position--;
}
data[position] = temp;
}
}
public static void infSort2(double data[], int antal){
for (int m=1; m < antal; m++){
int position = m;
double temp = data[m];
while (position > 0 && data[position-1] < temp){
data[position] = data[position-1];
position--;
}
data[position] = temp;
}
}
Klasser och objekt:
public class Klassnamn{
typ datamedlem1;
typ datamedlem2;
metoder
} --> En klass inleds med orden pubic class följt av klassens namn. Två klamrar inramar klassen. Mellan dessa skrivs dess datamedlemmar samt de metoder som krävs för att hantera dessa.
Klassnamn namn = new Klassnamn(); --> Klassobjektet namn skapas oftast med parametrar för att kunna ge datamedlemmar värden. I uttrycket till vänster finns dock inga parametrar.
namn.metod() --> Datamedlemmar hos objektet namn nås vanligtvis genom att använda namnet, punktperatorn och en ämplig metod eventuellt med parametrar.
Klassnamn[] namn = new Klassnamn[antal]; --> Ett fält med plats för antal objekt skapas. Objekten finns dock ännu inte.
Fält och strängar:
typ[] namn = new typ[storlek]
Keyboard.metod() --> används för att läsa data från tangentbordet. Metod välj efter vilket typ av data som ska läsas.
s.charAt(pos) --> används för att läsa ett tecken i position pos i strängen s.
s.length() --> Ger antalet tecken i strängen s.
s1.concat(s2) --> Strängen s2 läggs till i slutet av s1.
s = s1 + s2 --> Innehållet i två strängar kan slås ihop med +-operatorn.
s1.compareTo(s2) --> Returnerar 0 om strängarna är identiska, ett negativt tal om s1 kommer före s2 i alfabetiskt ordning och ett positivt tal om s2 kommer först. Alla versaler kommer före gemener.
s1.compareToIgnoreCase(s2) --> samma som inom men ignorerar om det är versaler eller gemener.
s1.equals(s2) --> Returnerar true om strängarna s1 och s2 är identiska, annars false.
s.indexOf(tecken, start) --> Returnerar positionen för tecknet tecken i s. Sökningen börjar i start. Om tecknet inte hittas blir returvärdet -1. Utan startvärde börar sökningen i första positionen.
s.substring(start, slut) --> Tar ut en delsträng med början i position start och med slutet i position slut-1.
s.indexOf(sträng, start) --> Returnerar positionen för strängen sträng i s. Sökningen börjar i start. Om tecknet inte hittas blir returvärdet -1. Utan startvärde börar sökningen i första positionen.
////////////////////////////////////////////////////
//Skriv ett program spm håller reda på dina vänners
//telefonnummer. Namn och telefonnummer ska matas in
//från tangentbordet. Hela namn- och ummerlistan ska
//sedan skrivas ut till skärmen. Programmet ska kunna
//hantera ett valfritt antal vänner och inmatningen
//kan avbrytas genom att t.ex namnet får värdet #.
//////////////////////////////////////////////////////
public
class uppgift22 {
publicstaticvoid main(String[] args) {
//Initering av variabler som används senare fler gånger
namntelefon[] lista = new namntelefon[1000];
int antal = 0;
boolean fortsätt = true;
int i = 0;
System.out.println("Mata in dina vänner. Avsluta med ordet \"stopp\"");
//Användaren matar in sina vänner
do{
System.out.print("Namn: ");
String namn = Keyboard.readString();
//Om använder skriver stopp så slutar loopen
String slut = "stopp";
if (slut.equals(namn)){
fortsätt = false;
}
else {
System.out.print("Telefonnummer: ");
int nummer = Keyboard.readInt();
//Lägger in värdena i listan
lista = new namntelefon(namn, nummer);
//Lägger till i räkningen
i++;
antal++;
}
}
while (fortsätt);
System.
out.println("Dina vänner: ");
for (int n = 0; n < antal; n++){
lista[n].skriver();
}
}
}
public class namntelefon {
private String namn;
private int nummer;
//konstruktor
public namntelefon (String n, int t){
namn = n;
nummer = t;
}
public void skriver (){
System.
out.println("Namn: " + namn + "\nNummer: " + nummer);
}
}
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hej \nVill du prova några gamla funktioner och se om jag kommer ihåg något (j/n)");
char vill = Keyboard.readChar();
while (vill == 'j'){
System.out.print("\nVilken funktion vill du prova? \n1.Inmatning av tal och uträkning" +
"\n2.Inmatning av namn och hälsning \n3.Val \n4.Fält med omplacering");
int val = Keyboard.readInt();
switch (val){
case 1:
// inmatning av tal och uträkning
System.
out.print("Mata in tal1: ");
int tal1 = Keyboard.readInt();
System.out.print("Mata in tal2: ");
int tal2 = Keyboard.readInt();
int tal3 = tal1 + tal2;
System.out.println("Talen plus varandra blir " + tal3);
int tal4 = tal1 - tal2;
System.out.println("Tal1 minus tal2 blir " + tal4);
int tal5 = tal1 * tal2;
System.out.println("Talen gånger varandra blir " + tal5);
break;
case 2:
//inmatning av namn och hälsning
System.
out.print("Vad heter du? ");
String namn = Keyboard.readString();
System.out.println("Hej " + namn);
break;
case 3:
//if-else sats
System.out.print("Två piller. Ett val. Rött (r) eller blått (b)?");
char svar = Keyboard.readChar();
if (svar == 'r'){
System.out.print("Du tog det röda pillret. Du överlevde!");
}
else if (svar == 'b'){
System.out.print("Du tog det blåa pilret. Du dog!");
}
else {
System.
out.print("Du får inte fuska!");
}
break;
case 4:
int [] siffra = new int [3];
System.out.print("Mata in ett tal: ");
int siffra1 = Keyboard.readInt();
System.out.print("Mata in ett tal: ");
int siffra2 = Keyboard.readInt();
System.out.print("Mata in ett tal: ");
int siffra3 = Keyboard.readInt();
int [] Siffra = {siffra1, siffra2, siffra3};
System.out.println("Talen är " + Siffra[0] + " " + Siffra[1] + " " + Siffra[2]);
int temp = Siffra[0];
Siffra[0] = Siffra[2];
Siffra[2] = temp;
System.out.print("Talen är nu " + Siffra[0] + " " + Siffra[1] + " " + Siffra[2]);
break;
default:
System.out.print("Nu blev det lite fel. Försök igen.");
}
//switch
System.out.print("\nVill du göra det igen? (j/n)");
vill = Keyboard.readChar();
}
//while
}
//main
}
//class
Metoder:
Skapa en metod:
static returtyp namn(typ p1, typ p2...){
Satser;
return namn2;
}
Metodanrop:
namn(v1, v2, ...)
Må | Ti | On | To | Fr | Lö | Sö | |||
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 |
|||||
|