[Playlisten] [Impressum und Datenschutzerklärung]

14C.1 Beispiele zum Finden von logischen Programmierfehlern


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

eine alte Klausuraufgabeund zwar eine Funktion mit drei Fehlernfertigen sie die erst mal nicht ab diese Funktionoder war zumindest kein Melkähm dass sie das ohne Compiler Unterstützung mal sehen was sind die drei Fehler in dieser Funktion eine Funktion die feststellensollob eine übergebene Zahl eine Primzahl ist okay ich Sach ?? Nova sicherte PerformanzseinsundXlosPunktin dem vorstehendXProzentdiegleich einsWallsPunkthier haben wir einSpuren des Komfortsund ruft vor dem Wort natürlich hier auf jeden Fallins ?? in CloudStandardwohl soin dem Ding hier sind drei Fehler drinnen versuchen Sie mal ohne Hilfe des Compilers zu finden diese Funktion soll feststellenob die übergebene Zahleine Primzahlist und das auch zurückmeldenob das eine Primzahl ist als eine Zahl die nur durch sie selbst ein Style weist einst ein Primzahl zwei ist die erste Primzahlzwei drei fünf siebenelf Zifferso?? diese Funktion sei natürlich offensichtlich eine Botschaftan Bundeswehr zurück liefern Return Fortschritte und rudern kann davon nicht Volt stehen davon muss Buhl stehenuns gibt's was auf die Fingervom Compiler hier will ich keinen Vergleich habensondern die soll auf zwei gesetzt werdengleich zwei das war der zweite Fehlerhier prüfe ich die TeilbarkeitX Modul und diebleibt beim Teilen von Xdurch I einen Restmöchte ich wissen oder geht es auf mehr Platz anreiste möchte offensichtlich mit null vergleichen mich mit eins vergleichenist der Rest gleich Nullgeht es auf ist X durch I teilbar wenn X durch I teilbar ist okay das ist keine Primzahl wettern fortso sieht das aus Rücken und Aufrufer machen umIdee zu kriegen ob es auch so ungefährdas tut was es soll wohl B ist gleichSpam von zweiundvierzigundUBS-Bahn von dreizehnKomma probiert natürlich grundsätzlich auchdie schrägen Wandfälle ist beim von einsund es beim Fang von zweiauch das will ich wissen natürlich unnatürlich nicht immer VodafoneWege zur schonsoalle mal sehenwas es ist jetzt kein richtigerTest ob es funktioniert aber sagt das ob zumindestganz grober Fehler schon noch drin ist ich hoffe nichtwie du diesen Lokalswill ich habenso zweiundvierzigWasser dazu zweiundvierzigsein vierzig Sache ist keine Primzahl soweit gut dreizehnsachte ist ?? Primzahleinswird ?? oderist mit Primzahl das es nicht schön und was ?? dazu zweiist empfindsam besser bei Einsatzes ist ?? Primzahl ist natürlich überhaupt nicht schönfindensind wie das kommt wenn ich ?? mit der Eins reingehenwird die for-Schleifegar nicht betretenkann also auch gar nichts retten sie war sowas retten würde ?? sie kann noch gar nichts retten und ich gehe mit Drew zurück das heißt ?? funktioniert ist nicht korrekt wenn ich mit X gleich ein eins reingehendashabe ich aber in die Aufgabe dann geschrieben ?? die Aufgabe schon angucken der steht drin X ab zwei aufwärtsvorsichtig diese Funktionfunktioniert nicht wenn sie gleich eins einsetzenfür X größer gleich zwei schreibe ichso noch ?? Funktionzum Fehler findenund eine Funktion die andie die Quersumme bestimmen soll??nennen die wilde QuersummePunkt nicht Quersumme sondern Quersummealsbei unsin Xbasierte Stelle nicht Einbau sind irgendwelche fertig wardas etliche Schlüsselwörter zum auf diese Faltweise falsch geschrieben sind das ist natürlich plötzlich das sind die sofort etwas falsch geschrieben?? solche Fehler habe ich nicht könnenanSeinsinQund dann kommt eine while-SchleifeXund dain der ??while-SchleifeBeistrich QplusXziehenXgleichziehenund hier einen virtuellenCoup fanden sich normale ?? sagen was die Quersumme istkommt nicht so häufig vor?? ist auch im allgemeinen gespannt?? mit der Quersumme des double-Zahl durch drei oder neun teilbar ist das jetzt nicht was ein wenig aufgebautalso Quersumme eins zweivier fünfsieben oder sowas die Quersumme davon die Quersumme von zwölf tausend vier hundert sieben fünfzigist eins plus zwei plus vier plus fünfplus siebendie einzelnen Ziffern auf summiertIndien die Ziffern dezimaleiner ZahlQuersumme hängt offensichtlich davon ab welche System ich rechne ihr Dezimalsystemdie Ziffern der Zahl auf summiert das soll die Quersumme seinund hier sind drei Fehler drin bei der Berechnung der Quersummeder Gedanke ist also offensichtlich das in Q nach ?? die Quersumme stehtwas sich hier ?? diese zu Qmüssen also hunderter Zehner einer sein die einzelnenStellenmeiner Zeit X die ich übergeben habe die müssen hier kommendie einzelnen Stellen es aber nicht X durchziehen und so weiter dasganz offensichtlichseindannder Trick der hier angewendet ist ich Teile fortlaufend durchziehenund dann werde ich die letzte Stelle nehmen das zeitlich normal ich nehme von meiner Zahl immer die letzte Stellealsodiese Zahl wird eilig fortlaufend durchziehen ich fange an mit zwölf tausend vier hundert von mir siebenundfünfzigTeile durch zehn ganz sachlicherhabe tausend zwei hundertfünfundvierzigTeil durch zehn Ganzzahl ich habe hundert vierundzwanzignoch mal durch zehn zwölf einsund jetzt bin ich mir die letzte Stelle die einer Stelle rausdas der Gedankeist damit die einer stellen zusammenund die einer stellte ich mit Modulo zehnalso fortlaufend durch zehn teilenund die einer Stelle mit Modulo zehnzusammen sammeln nicht mit durchziehendas dein Rechtsinhaber ja welche Muster ein Modul und stehen damit ich die einer Stelle habejetzt auch die Abbruchbedingungklar so lange wie meine Zahl noch größer als null istmache ich dasirgendwann muss ich ja aufhörenwenn sie dann die einzig zehn Tagen haben sie null können Sie aufund es ist noch ein Fehler drin ich würde die Funktion in Aktion vor?? siehtdass das Blödsinn wirddieser Band sein Kind genommen damit die Zahlen größer werden dürfenetwas größer werden dürfen?? Personal zwei drei vierProzent anderäußeren Quersummeverschwand nicht die Quersumme aus tausend zwei hundert vierunddreißig ist ein dreißig tausend ?? das wird jetzt nicht gewesen seines ist noch einer Faullinienoch mal angucken das es noch was faulgenau das ist der Ärger mit C und C plus plusdass der Compiler uns das durchgehen lässtUni zu Uni stilisierte Variablen die steht am Anfang auf dem Damm Blödsinn zwei zwar nicht auf null ich muss sie zu Fuß auch nur dessen Nachfahrenaber sicher und so weiter wird es erzwungendas auf irgendwas gesetzlich muss sowas hinschreiben sonstgibt's Ärgerin C müssen sie keine Installierung hinschreibenauf eigenes Risikound besitzen gerneSonntag also jetzt maleine Mail bei mirzu sehen ob das auchhalbwegs brauchbar ist was malrückwärtsodereine Stellebis an den Rand des möglichenund sein Team ginge ja bissechzig tausend noch was Probleme tatsächlich mal sechs fünf vier drei zweimal sehenzur Quersumme aus tausend zwo hundert vierunddreißigzehnEinsatzes weisen drei plus drei sindsechs plus wir sind zehn gutder nächste Quersumme aus sechs hundert vierunddreißigsollte werdensechs Busreisen neuntes vierten dreizehndreizehn Personals drei sollte durch drei seinauch gutund das hier sollte werden ohne Biochemie sechs plus fünf sind elf plusvier sind fünfzehn zwanzigglaub ich alsodie Funktionscheint halbwegs zu funktionierenmanchmal ist man überrascht