Java Tutorial 15 - final

preview_player
Показать описание
Danke an Kurieita!

In diesem Video werden finale Variablen beigebracht.

Рекомендации по теме
Комментарии
Автор

Hab die Hausaufgabe zu dieser Folge genau andersherum gelöst. Auch wenn das im Nachhinein betrachtet umständlicher ist. Aber vielleicht hat das ja noch jemand so, deswegen lasse ich meine Lösung mal da.
Ich habe 3 integer verwendet: quer=0 (=ergebnis), zahl (kommt per Scanner) und x=1.000.000.000 (für die maximale Größe eines integers).
Dann innerhalb der Endlosschleife:
   quer = quer + zahl/x;
   if(x==1){break;}
   zahl = zahl%x;
   x = x/10;

Super Tutorial übrigens! Vielen Dank für die Mühe!
Für mich manchmal ein bissl zu kleinschrittig erklärt, aber so versteht es wenigstens jeder. Lieber so, als anders herum. ;-)

Ladyblanche
Автор

Auch wenn das video schon "etwas" älter ist, mich würde das mit dem rundungsfehler (4:00) doch interessieren

cermiosi
Автор

Echt tolle Videos !!!
Haben mir bis jetzt super in den Einstieg geholfen!
Machst du auch noch Videos in denen du erklärst, wie man ein Programm schreibt, dass sich in einem Fenster öffnet und z.B. Buttons etc. hat ?

P.S. Die idee mit den Hausaufgaben war gut.
Weiter so!
Daumen hoch!

Tridens
Автор

danke für die geniale hausaufgabe ^^ hat ganz gut geklappt und hilft wirklich unglaublich, sowas zu machen :3

KaaBockMehr
Автор

Dein Tutorial ist echt gut! Habe eine Alternativlösung für Zahlen bis 999:




import java.util.Scanner;


public class FirstTest {
public static void main(String args[]){
int zahl, ergebnis = 0;
Scanner scan = new Scanner(System.in);
zahl = scan.nextInt();
while(true){
if(zahl==0){
break;
}else if(zahl>=100){
ergebnis +=1;
zahl -=100;
}else if(zahl>=10){
ergebnis +=1;
zahl -=10;
}else if(zahl>=1){
ergebnis +=1;
zahl -=1;
}
}
System.out.println("Die Quersumme der eingegebenen Zahl ist " + ergebnis);
}
}

CallMeAvox
Автор

Erstmal SEHR GROßES LOB! :D
Deine Videos sind für mich eine mega große Hilfe und dafür möchte ich mich bedanken.
Ich denke ich werde diesen Kanal auch mal meinem Infolehrer vorstellen, sodass er den Schülern das Ganze hier zeigen kann - erspart viel ;)
Du scheinst ja Info zu studieren...
Vlt. könntest du ja, wenn du noch Lust haben solltest, eine Playlist über Computer (Funktionsweise, Hardware...) machen. Und/oder eine über Algorithmen :D

Pingynator
Автор

hallo Brotcrunsher. Dein Tutorial hilft mir sehr weiter! Danke dafür. Zu diesem Video wollte ich dir nur sagen, dass du PI nicht manuell eintragen musst, sondern auch
double PI = Math.PI;
verwenden kannst.

jorgmaurach
Автор

@Adversarius1000 Freut mich, dass dir meine Videos helfen können ;)
Ja, ich werde später noch Tutorials zum entwickeln eines GUIs machen. Allerdings muss man zuerst einmal die ganzen Basics lernen, sonst schreibt man ab aber versteht nicht was eigentlich passiert. Aber wie gesagt: kommt noch!
MFG

Brotcrunsher
Автор

Das Programm rechnet, wie du schon richtig erkannt hast, 419%10 wobei dabei 9 rauskommt und in ergebnis zwischengespeichert wird. Danach wird die Zahl neu berechnet und zwar ist die zahl nun zahl/10. Dabei würde normalerweiße in der Mathematik 41, 9 rauskommen. Allerdings werden beim umrechnen zu int die Nachkommazahlen abgeschnitten, wodurch 41 rauskommt. Das wird dann wieder %10 genommen wobei 1 rauskommt und auf die 9 addiert wird. Dann nochmal /10 -> 4 -> %10 -> 10+4 = 14
MfG

Brotcrunsher
Автор

mit %10 bekommst du die ganz rechte Stelle, also die einerstelle. Diese Addierst du auf die Quersumme. Danach habe ich wiederum die ganz rechte Stelle "Zerstört" und zwar mit /10. Dadurch kann ich dann im nächsten schleifendurchlauf mit %10 die Zehner als Zahl bekommen und auf die Quersumme packen. Das ganze geht durch jede Stelle durch und addiert die Zahlen zusammen wodurch die Quersumme errechnet wird.

MfG

Brotcrunsher
Автор

@roubenrehm Dazu wird auch noch später ein Tutorial kommen, allerdings in einer neuen Serie die nicht mehr nur um Java geht sondern um "Theoretische Informatik". Zuerst ist aber Java dran.
Kurze Zusammenfassung warum es da einen Rundungsfehler gibt: Der Computer kann nur "0" und "1" speichern. Dies nennt man Binäres Zahlensystem. In diesem Binären Zahlensystem kann man z.b. "0, 1" (dezimal) nicht ohne Probleme darstellen. Ähnlich wie 1/3 im Dezimalen Zahlenbereich (0, 3333...).
MFG

Brotcrunsher
Автор

Mich interessiert es brennend! Wieso ist das ein RUndungsfehler??? Ich kann nicht schlafen bevor du ein Tutorial machst :O

javadevise
Автор

ich denk da irgendwas mit stringmanipulation...aber einfach Modulo -.-

timgreller
Автор

Kannst uns bitte aufklären warum der Code denn bei 10 nicht funktionieren sollte?

kirillborodkin
Автор

@MagicianDP Hui, gute Frage. Weiß ich garnicht, sorry und nach googeln hab ich auch nichts gefunden. Es gibt allerdings einen unterschied (ähnlich zu diesem) zwischen z.B. i++ und ++i.
Bei i++ wird erst nach dem aktuellen aufruf erhöht, bei ++i davor. Beispiel:
int i = 0;
if(++i==1){
System.out.println("A");
}

A wird ausgegeben, aber bei

int i = 0;
if(i++==1){
System.out.println("A");
}

wiederrum nicht.

Sorry, dass ich diese Frage nicht beantworten konnte.
MfG

Brotcrunsher
Автор

@Brotcrunsher Hm, wenn ich das unterschiedlich geschrieben hab, ist etwas anderes rausgekommen. Könnte sein, dass es so wie bei i++ und ++i ist, jedoch funktioniert /= nicht. Ich denke es ist mit vor- und nachgestelltem ++ zu vergleichen, weil ich es in einer Schleife verwendet habe.
Danke für die Antwort ;D

MagicianDP
Автор

achja, mich würde noch interessieren wie man in java dinge so speichert, dass man sie immer wieder beim programmieren benutzen kann. zum beispiel das mit der quersumme.. ich würde da lieber eine kurze buchstebenkombi schreiben und einen wert in die darauffolgende klammer, als immer wieder neu den quellcode für die berechnung zu schreiben.

KaaBockMehr
Автор

Ich finde deine Videos echt super. Jetzt habe ich das erste mal, dass ich etwas nicht verstehe: Bei der Hausaufgabe warum löst man es nicht einfach so?        while(ein>0)
        {
            aus = aus + ein % 10;
            ein = ein / 10; //ein /= 10;
        }
        System.out.println(aus);
Wozu brauche ich die while(true) Schleife mit dem break?
hat das irgenwelche vorteile?

sheldoncooper
Автор

@MagicianDP
a+=5 zählt 5 auf a drauf.
BSP.:
int a = 2
a+=5 auf a werden 5 draufgepackt.

bei a=+5 wird a der Wert +5 zugewiesen. hier zählt das + nicht als Rechenoperation sondern als vorzeichen.

manumeyer
Автор

kannst du bitte ein Video darüber machen

jonasruchti