BPS #19: Summe der Eingabe - Auswertung
Übersicht

![]() |
XeresModeratorBetreff: BPS #19: Summe der Eingabe - Auswertung |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mathematik! Was könnte man daran nicht mögen?
Das war die Aufgabe Postet hier eure Ergebnisse, Codes, Gedanken. Lernt von den anderen, seht euch deren Quelltext an und versucht euren eigenen zu verbessern. Diskussion Postet zu euren Codes stets eine kurze Erklärung mit euren Gedanken in denen ihr simpel gesagt die Frage "Wieso habe ich XY auf diese Art gelöst?" beantwortet. Beiträge, die nur den Code enthalten werden wir aus dem Thread entfernen. Nächste Aufgabe In einer Woche wird die Musterlösung nach editiert und in 2 die nächste Aufgabe eingestellt. Viel Spaß & viel Erfolg! Musterlösung: BlitzBasic: [AUSKLAPPEN] ; BPS: Holzchopf - Summe der Eingabe |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
- Zuletzt bearbeitet von Xeres am So, Mai 13, 2012 11:42, insgesamt einmal bearbeitet
![]() |
SpionAtomBetreff: Supergeile Lösung! |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann will ich mal:
Code: [AUSKLAPPEN] ;BPS #19
;Erstelle ein Programm, dass vom Benutzer Zahlen entgegen nimmt (beispielsweise via Input) ;und deren summe ausgibt, sobald der Benutzer eine leere eingabe tätigt. ; ;29.4.2o12 SpionAtom Local summe# = 0 Local eingabe$ ;Das Programm läuft in einer Schleife, da sich Eingabe und ;Verarbeitung (Prüfen der Eingabe und Aufsummieren) ständig wiederholen. ;Die Schleife wird verlassen, sobald eine leere Eingabe erfolgt Print "Leere Eingabe um fortzufahren" Repeat ;Eingabe entgegennehmen mittels Input Print "Bitte Zahl eingaben" eingabe$ = Input$() If eingabe$ = "" Then End If ;Prüfen, ob die Eingabe eine Zahl ist mittels der selbstgeschriebenen Funktion istZahl If istZahl(eingabe$) Then ;Summe um den Eingabewert erhöhen summe# = summe# + Float(eingabe$) Else ;Benutzer auf falsche Eingabe hinweisen Print "Keine gültige Zahl!" End If Until eingabe$ = "" ;Summe ausgeben und Programm beenden Print "Die Summe der eingegebenen Zahlen lautet:" Print summe# WaitKey End WaitKey End ;Prüft, ob der übergebene String eine Zahl ist ;( in den meisten Fällen würde es auch ausreichen, txt$ in einen Int oder Float zu casten, ) ;( und dann zu schauen, ob der Wert ungleich 0 ist. Die 0 würde dadurch aber nicht abgedeckt. ) Function istZahl(txt$) ;ist der String leer, wird gleich falsch zurückgegeben. ;Besteht der String nur aus einem Minuszeichen oder einem Punkt, ;so wird auch falsch zurückgegeben If txt$ = "" Or txt$ = "-" Or txt$ = "." Then Return False End If ;Gehe jedes Zeichen durch, und prüfe, ob es eine Ziffer ist ;Es gibt zwei Ausnahmen, die auch jeweils nur einmal vorkommen dürfen: ; Ein Minuszeichen am Anfang ; Ein Punkt Local position, zeichen$ For position = 1 To Len(txt$) ;Hole das nächste Zeichen aus txt$ zeichen$ = Mid(txt$, position, 1) ;Prüfe zunächst, ob das Zeichen keine Ziffer ist. ;Dies geht ganz gut mit Ascii Vergleichen, da die ;Ziffern 0-9 nacheinander in der Ascii-Tabelle vorkommen If Asc(zeichen$) < Asc("0") Or Asc(zeichen$) > Asc("9") Then ;ungültiges Zeichen in txt$ gefunden If zeichen$ <> "-" And zeichen <> "." Then Print "m" Return False End If ;Prüfe, ob Zeichen ein Minuszeichen ist nicht am Anfang steht If zeichen$ = "-" And position > 1 Then Return False End If ;Prüfe, ob Zeichen ein Punkt ist, und ob noch ein Punkt vorkommt If zeichen$ = "." And Instr(txt$, ".", position + 1) > 0 Then Return False End If End If Next ;ist die Schleife komplett durchgelaufen, so ist txt$ eine gültige Zahl Return True End Function |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
- Zuletzt bearbeitet von SpionAtom am So, Apr 29, 2012 23:08, insgesamt einmal bearbeitet
![]() |
EingeproggtBetreff: Superminimale Lösung |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab mir folgendes zu Herzen genommen:
Zitat: versuche trotzdem, nur das Nötigste einzubauen
BlitzBasic: [AUSKLAPPEN] Repeat Tja, äh... brauch ich ned viel sagen oder? War aber n bissi langweilig es so zu machen ![]() |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
Addi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mein Beitrag:
BlitzBasic: [AUSKLAPPEN]
|
||
BP/B3D/BMax : Lerne Java : Früher mal Lite-C : Gewinner BCC 62 |
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
meine version in einer zeile:
BlitzBasic: [AUSKLAPPEN] Repeat:a$=Input(""):b=b+Int(a):Until a="":Print b:WaitKey:End noch kürzer also bei Eingeproggt ![]() |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bytetechnisch magst du da Recht haben. Im Grunde sind eure Programme aber identisch. Du Verwendest lediglich andere Bezeichner und andere Formatierungen. Die Befehle sind genau dieselben und in derselben Reihenfolge.
Es ist aber lustig zu sehen, dass das Programm in eine Zeile passt. |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nunja, ansich geht jedes Programm in einer Zeile.
In den meisten Sprachen sowieso, und in Blitz ja mit ':' auch. Übrigens: BlitzBasic: [AUSKLAPPEN] Repeat:a$=Input():b=b+Int(a):Until a="":RuntimeError b Ich behaupte, weniger Zeichen gehen nicht. ![]() (es sei denn die Ausgabe muss nicht gesehen werden, oder "Print b:Stop" ist auch gültig) Erinnert mich daran, als wir neulich in der Uni ein Program schreiben und abgeben sollten, das auf eine Zahl eins dazu addiert und sie wieder ausgibt(praktisch um sicherzustellen, dass alle mit dem automatischen Korrektur-System umgehen können). Da ein einfaches ++ zu langweilig gewesen wäre, habe ich eine Lösung geschrieben die rekursiv und nur mit Bit-Operationen arbeitet. Mal schauen, vielleicht mach ich bei zukünftigen BPS' mal mit, und schaue ob ich ähnlich kreativ sein kann. |
||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group