Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Webdesign neben C++ machen
- Ersteller 1337hAx'
- Erstellt am
- Registriert
- Juli 2012
- Beiträge
- 338
Kurz nochmal JS
Wo ist der Fehler? -.-
Code:
var isEven = function(number)
{
if (isNaN(number) === false);
{
if ((number % 2) === 0)
{
return(true);
}
else
{
return(false);
}
}
else if (isNaN(number) === true);
{
return("Keine Zahl!");
}
};
isEven("x");
Wo ist der Fehler? -.-
ice-breaker
Commodore
- Registriert
- Nov. 2008
- Beiträge
- 4.132
If-Bedingungen haben kein Semikolon 
palace4d
Lt. Commander
- Registriert
- Okt. 2007
- Beiträge
- 1.179
Ich würde dir JSHint empfehlen, um solche Fehler zu vermeiden. Diverse Editoren bieten per Plugin eine direkte Validerung an. Als Online Version ist http://jsbin.com/ einen Blick Wert.
C
carom
Gast
Von allem abgesehen ist die Funktion unnötig aufgeblasen, was du du hast ist verkürzt zunächst mal nichts anderes als
Desweiteren ist das mit isNaN zwar gut gemeint, funktioniert aber leider nur teilweise so, wie du dir das vorstellst. Für die Zahl 5 beispielsweise liefert isNaN zwar false, genau so sieht es aber auch aus für 5.55, "5", "5.55", true, false, null und "" (leerer String). Wenn dir unter diesen Umständen ein simples var isEven = number % 2 == 0 nicht ausreicht und du wirklich auf eine Ganzzahl prüfen willst, dann musst du das irgendwie anders sicherstellen, evt. so:
auch nicht perfekt, aber dabei werden wenigstens true, false, null, nicht-ganze Zahlen und "" aussortiert. Wenn du Nummern in Strings ausschließen möchtest, ist ein "===" von Nöten beim parseInt-Aufruf.
Code:
var isEven = function(number)
{
if (!isNaN(number))
{
return number % 2 == 0;
}
else
{
return ... // was auch immer
}
}
Desweiteren ist das mit isNaN zwar gut gemeint, funktioniert aber leider nur teilweise so, wie du dir das vorstellst. Für die Zahl 5 beispielsweise liefert isNaN zwar false, genau so sieht es aber auch aus für 5.55, "5", "5.55", true, false, null und "" (leerer String). Wenn dir unter diesen Umständen ein simples var isEven = number % 2 == 0 nicht ausreicht und du wirklich auf eine Ganzzahl prüfen willst, dann musst du das irgendwie anders sicherstellen, evt. so:
Code:
function isEven(number)
{
return (number == parseInt(number)) && (number % 2 == 0);
}
auch nicht perfekt, aber dabei werden wenigstens true, false, null, nicht-ganze Zahlen und "" aussortiert. Wenn du Nummern in Strings ausschließen möchtest, ist ein "===" von Nöten beim parseInt-Aufruf.
Zuletzt bearbeitet:
- Registriert
- Juli 2012
- Beiträge
- 338
Liest das hier eig. noch jemand?
Kurzes Update:
HTML, CSS und JS laufen super.
C++ kratzt ab.
Nach dem Buch zu arbeiten, ist unglaublich öde und es gibt viel zu wenige Aufgaben am Ende der Kapitel.
Das ganze Buch ist einfach übertrieben akademisch geschrieben. Ziemlich unvollständig, und eher was für Leute, die darüber eine Arbeit schreiben und es im Detail erklären müssen.
Der Frustfaktor ist unglaublich hoch und ich komme einfach nicht mehr voran. Kontrollstrukturen etc... habe ich mir alle in JS beibringen lassen, auf C++ lassen diese sich zwar fast 1 zu 1 übertragen, aber ohne JS wäre ich aufgeschmissen. Da ist deutlich mehr Wiederholung, einfachere Formulierung (trotz englisch!) und einfach motivierender.
Einziges Problem bei der Sache ist (warum ich noch nicht abgesprungen bin!!), dass ich die Programmiersprache für mein Praktikum brauche.
Kurzes Update:
HTML, CSS und JS laufen super.
C++ kratzt ab.
Nach dem Buch zu arbeiten, ist unglaublich öde und es gibt viel zu wenige Aufgaben am Ende der Kapitel.
Das ganze Buch ist einfach übertrieben akademisch geschrieben. Ziemlich unvollständig, und eher was für Leute, die darüber eine Arbeit schreiben und es im Detail erklären müssen.
Der Frustfaktor ist unglaublich hoch und ich komme einfach nicht mehr voran. Kontrollstrukturen etc... habe ich mir alle in JS beibringen lassen, auf C++ lassen diese sich zwar fast 1 zu 1 übertragen, aber ohne JS wäre ich aufgeschmissen. Da ist deutlich mehr Wiederholung, einfachere Formulierung (trotz englisch!) und einfach motivierender.
Einziges Problem bei der Sache ist (warum ich noch nicht abgesprungen bin!!), dass ich die Programmiersprache für mein Praktikum brauche.
Trocken geschriebene Lektüre gibt es immer. Da kommt man nie drumherum. Aber sei doch froh, dass du ein Buch hast, das auch in die Tiefe geht.
Programmieren bedeutet ja nicht, dass man einfach irgendwas hinschreibt und sagt: "Passt schon!"
Programmieren bedeutet, dass man
a) effizient ein Programm schreibt,
b) die Eigenheiten (die meist nicht ohne Grund so existieren) der Programmiersprache ausnutzt und
c) möglichst optimale Algorithmen entwickelt und verwendet (= dass das Programm effizient arbeitet).
Der Punkt c) ist übrigens das Kernthema der Informatik.
Ich habe schon viel Programmcode gesehen, bei dem man sich fragt, ob sich der Entwickler überhaupt etwas dabei gedacht hat. Da werden naive Such- und Sortieralgorithmen umgesetzt, obwohl schon hochoptimierte im Framework vorhanden sind. Statt Listen werden Arrays verwendet, die bei Größenänderung neu erstellt und die Inhalte kopiert werden müssen. Usw. Die Leute sind dann immer erstaunt, wenn man dann zwei Seiten Quelltext durch drei Zeilen ersetzt, die zudem noch schneller und fehlertoleranter sind und mehr Möglichkeiten für besondere Anwendungen bieten.
Programmieren bedeutet ja nicht, dass man einfach irgendwas hinschreibt und sagt: "Passt schon!"
Programmieren bedeutet, dass man
a) effizient ein Programm schreibt,
b) die Eigenheiten (die meist nicht ohne Grund so existieren) der Programmiersprache ausnutzt und
c) möglichst optimale Algorithmen entwickelt und verwendet (= dass das Programm effizient arbeitet).
Der Punkt c) ist übrigens das Kernthema der Informatik.
Ich habe schon viel Programmcode gesehen, bei dem man sich fragt, ob sich der Entwickler überhaupt etwas dabei gedacht hat. Da werden naive Such- und Sortieralgorithmen umgesetzt, obwohl schon hochoptimierte im Framework vorhanden sind. Statt Listen werden Arrays verwendet, die bei Größenänderung neu erstellt und die Inhalte kopiert werden müssen. Usw. Die Leute sind dann immer erstaunt, wenn man dann zwei Seiten Quelltext durch drei Zeilen ersetzt, die zudem noch schneller und fehlertoleranter sind und mehr Möglichkeiten für besondere Anwendungen bieten.
Zuletzt bearbeitet:
- Registriert
- Juli 2012
- Beiträge
- 338
Mal ein paar kurze Fragen:
1. Muss ich alle Escape-Sequenzen kennen?
2. Kann mir einer nochmal kurz die Formatierung mit <iomanip> erklären?
3. Wie funktioniert dieses z.B. string (75, '-')
cout << "bla bla" ... gedöns?
1. Muss ich alle Escape-Sequenzen kennen?
2. Kann mir einer nochmal kurz die Formatierung mit <iomanip> erklären?
3. Wie funktioniert dieses z.B. string (75, '-')
cout << "bla bla" ... gedöns?
asdfman
Commander
- Registriert
- März 2008
- Beiträge
- 2.315
Du musst immer das kennen, was du gerade brauchst. Ist doch klar oder?1337hAx' schrieb:Mal ein paar kurze Fragen:
1. Muss ich alle Escape-Sequenzen kennen?
Verstehe die Frage nicht, aber die iostreams sind eine furchtbare Sache. Benutze lieber andere Mechanismen zur Ein- und Ausgabe.3. Wie funktioniert dieses z.B. string (75, '-')
cout << "bla bla" ... gedöns?
antred
Lt. Commander
- Registriert
- Juni 2010
- Beiträge
- 1.288
asdfman schrieb:Verstehe die Frage nicht, aber die iostreams sind eine furchtbare Sache. Benutze lieber andere Mechanismen zur Ein- und Ausgabe.
iostreams sind vielleicht nicht ideal, aber "furchtbar"?? Auf jeden Fall sind sie zweifelsfrei tausend mal besser als printf & co, allein schon wegen der automatischen Tysicherheit.
Zuletzt bearbeitet:
Teils Teils, hängt davon ab, was du machst.
Wenn du ein Programm für das Linux Terminal scheibst, ist eine gute Formatierung immer gut, wenn du ne GUI haben willst, ist das nicht wichtig...
Aber: Normalerweise ist die Ausgabe in der Konsole/GUI das kleinste Problem und sollte dich nicht arg kümmern.
Wenn du ein Programm für das Linux Terminal scheibst, ist eine gute Formatierung immer gut, wenn du ne GUI haben willst, ist das nicht wichtig...
Aber: Normalerweise ist die Ausgabe in der Konsole/GUI das kleinste Problem und sollte dich nicht arg kümmern.
- Registriert
- Juli 2012
- Beiträge
- 338
Wie verhält sich eig. JS zu C++? Wieviel einfacher/schwerer ist es im Vergleich? Weil bisher lerne ich programmieren in Js und das versuche ich dann auf Cpp zu übertragen :/ Das Buch lese ich mir zwar durch, aber es sagt mir nicht zu.. viel zu viel Erklärungen am Anfang, ich versteh nur Bahnhof....
JavaScript ist nicht leichter oder schwerer als C++, es ist einfach nur anders. Direkt vergleichen kann man die Sprachen nicht. Die eine ist eine Skript- und Websprache, die andere wird kompiliert und für alles andere verwendet.
Was aber der Fall ist: C++ ist mächtig. Damit meine ich, dass man in dieser Sprache Konzepte umsetzen kann, die so einige andere C-artige Sprachen nicht können. Einerseits ist das eine gute Sache, immerhin schränkt einen die Sprache dann weniger ein, lässt einen also viele Dinge auf einfache und elegante Weise tun. Andererseits muss man dann mehr aufpassen, was man da schreibt.
Und wenn du nur Bahnhof verstehst, dann gehe einen Schritt zurück. Schau dir die Grundlagen noch mal an. Machen wir alle auch.
Was aber der Fall ist: C++ ist mächtig. Damit meine ich, dass man in dieser Sprache Konzepte umsetzen kann, die so einige andere C-artige Sprachen nicht können. Einerseits ist das eine gute Sache, immerhin schränkt einen die Sprache dann weniger ein, lässt einen also viele Dinge auf einfache und elegante Weise tun. Andererseits muss man dann mehr aufpassen, was man da schreibt.
Und wenn du nur Bahnhof verstehst, dann gehe einen Schritt zurück. Schau dir die Grundlagen noch mal an. Machen wir alle auch.
Die größten Unterschiede liegen wirklich in dem, wofür es praktisch verwendet wird. Natürlich muss man z.B. immer daran denken, dass JS nur schwach typisiert ist, aber das ist eher ne Sache der Gewöhnung. Außerdem gibt es natürlich deutliche Performance-Unterschiede.
Aber spätestens, wenn man sich aus der reinen Dekoration&Interaktion von Webseiten löst und z.B. Richtung Node.JS guckt, kann JS ähnlich komplexe Probleme angehen, wie man es sonst von den "üblichen" Sprachen kennt.
Aber spätestens, wenn man sich aus der reinen Dekoration&Interaktion von Webseiten löst und z.B. Richtung Node.JS guckt, kann JS ähnlich komplexe Probleme angehen, wie man es sonst von den "üblichen" Sprachen kennt.
G
geisterfahrer
Gast
e-Laurin schrieb:JavaScript ist nicht leichter oder schwerer als C++, es ist einfach nur anders. [...]
Was aber der Fall ist: C++ ist mächtig.
Ich würde aufgrund der zweiten Aussage die erste zu "C++ ist schwieriger" korrigieren. Die Lernkurve ist nicht umbedingt steiler aber sehr viel länger. Wo sonst hat man schon das Vergnügen, Variablen per Wert, L-Referenz, R-Referenz und Pointer, optional in Kombination mit const zu übergeben? ;-) Ich würde schon sagen, C++ ist schwieriger aufgrund seines ernormen Umfangs.
Ansonsten: Was nicht so relevant erscheint, flott drüber hinweglesen! Wissen wo es steht, reicht erstmal. Auf gar keinen Fall sowas versuchen auswendig zu lernen, wenn man später mal was formatiert auf der Konsole ausgeben will, dann lieber auf einer Referenzseite wie http://en.cppreference.com/ nachschauen. Du musst nur wissen, das es sowas wie iomanip gibt, dann navigierst du auf die Seite und klickst dich da durch und landest dann auf http://en.cppreference.com/w/cpp/io/manip, wo man dann eine entsprechende Auflistung findet.
Ähnliche Themen
- Antworten
- 5
- Aufrufe
- 1.675
- Antworten
- 13
- Aufrufe
- 1.950
- Antworten
- 4
- Aufrufe
- 1.087
- Antworten
- 6
- Aufrufe
- 1.418