Kreisberechnungen
@bgmann: Ich habe das mal vom Thema „An alle Schüler und Studenten mit Informatikproblemen” abgetrennt. Und Du solltest zumindest die ersten Beiträge von dem Thema mal lesen. Das ist nicht das Thema in dem Schüler ihre Informatikprobleme posten, sondern was sie vorher lesen sollten um zu wissen wie sie ihre Frage stellen und welche Hilfe sie erwarten können.
Ohne ein wenig Eigenleistung in der Regel eher wenig. Es wird erwartet, dass Du Dich mit Python und der Fragestellung auseinander setzt. Das heisst sich in ein Python-Tutorial einarbeiten und dann die eigene Lösung zeigen, beziehungsweise Teillösung oder zumindest Lösungsansatz.
Die Aufgabe ist in der Tat ganz einfach und die sollte man eigentlich nach vier Tagen Python lernen lösen können. Wo genau sind denn die Schwierigkeiten? Es steht doch fast alles dort was man machen muss. Nicht einmal die Formel muss man sich selber suchen.
Ohne ein wenig Eigenleistung in der Regel eher wenig. Es wird erwartet, dass Du Dich mit Python und der Fragestellung auseinander setzt. Das heisst sich in ein Python-Tutorial einarbeiten und dann die eigene Lösung zeigen, beziehungsweise Teillösung oder zumindest Lösungsansatz.
Die Aufgabe ist in der Tat ganz einfach und die sollte man eigentlich nach vier Tagen Python lernen lösen können. Wo genau sind denn die Schwierigkeiten? Es steht doch fast alles dort was man machen muss. Nicht einmal die Formel muss man sich selber suchen.
- StefanLawl
- User
- Beiträge: 92
- Registriert: Donnerstag 7. Juni 2012, 20:23
Hört sich stark nach translate.google.de an.Hallo, ich bin angefangen bevor 4 Tage Python zu lernen und noch die erste Aufgabe kann nicht lösen. Kann mir jemand eventuell helfen? Werde dankbar. Das soll nicht schwer sein, aber für mich es ist, weil ich nur seit 4 Tage es lerne.
math modul
raw_input
PythonWin
Viel Glück
Man sagt uns wir sollen der Idee gedenken und nicht des Mannes. Denn ein Mensch kann versagen. Er kann gefangen werden. Er kann getötet und vergessen werden. Aber 400 Jahre später kann eine Idee immer noch die Welt verändern.
-V
-V
Ich kann es nicht lösen trotz alles, was ich gesucht und gelesen habe. Meine variante ist diese, aber ich weiß, dass es falsch ist. Für "try" habe ich keine ahnung was da stehen soll? Wo muss die Formel stehen? Es ist nicht, dass ich nichts versucht habe!
import math
x=math.pi
print x
userVariable=raw_input("Geben Sie bitte Durchmesser ein:")
numBerechnung=float(userVariable)
print numBerechnung
try:
except:
print "Fehler aufgetreten"
raw_input("Press return to close this window...")
import math
x=math.pi
print x
userVariable=raw_input("Geben Sie bitte Durchmesser ein:")
numBerechnung=float(userVariable)
print numBerechnung
try:
except:
print "Fehler aufgetreten"
raw_input("Press return to close this window...")
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
Ohne jetzt besonders viel zu verändern. So könntest du deinen Aufgabe weiter bearbeiten:
Tipp: Führ deinen Code in der Konsole aus, damit du Fehlermeldungen lesen kannst, dann kannst du dir "raw_input("Press return to close this window...")" sparen
*edit* Ich habe doch noch das except zu einem ValueError gemacht, um nur Fehler der Umwandlung von string to float abzufangen.bgmann hat geschrieben:Code: Alles auswählen
from math import pi print pi userVariable = raw_input("Geben Sie bitte Durchmesser ein:") try: #diese Umwandlung kann fehlschlagen, wenn Eingabe keine Zahl, deshalb try / except numBerechnung=float(userVariable) print "Durchmesser: ", numBerechnung print "Pi: ", pi print "Durchmesser^2: ", numBerechnung**2 # hier muss jetzt die Flaeche berechnet werden except ValueError: print "Eingabe war keine Zahl." raw_input("Press return to close this window...")
Tipp: Führ deinen Code in der Konsole aus, damit du Fehlermeldungen lesen kannst, dann kannst du dir "raw_input("Press return to close this window...")" sparen
Danke! Bei except steht wieder nix, soll es so sein? Ich weiß nicht, was ich ändern soll, es siecht gut aus.
Ahso, du hast schon bei Except etwas dazu geschrieben. Darf ich diese beide nacheinander schreiben?
print "Fehler aufgetreten"
print "Eingabe war keine Zahl."
Muss man nach "Zahl" "." - Punkt haben?
Ahso, du hast schon bei Except etwas dazu geschrieben. Darf ich diese beide nacheinander schreiben?
print "Fehler aufgetreten"
print "Eingabe war keine Zahl."
Muss man nach "Zahl" "." - Punkt haben?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Probier es doch aus, dann siehst du ja was geht und was nicht. Das ist ja der Vorteil am Programmieren gegenüber etwa mathematischen Beweisen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Eine Lösung in CoffeeScript:
Code: Alles auswählen
#!/usr/bin/env coffee
readline = require "readline"
Number :: squared = () -> this * this
interface = readline.createInterface process.stdin, process.stdout
interface.question "Bitte Durchmesser eingeben: ",
(answer) ->
d = parseFloat answer
if isNaN d
console.log "Fehler: Eingabe war keine Zahl!"
else
console.log "Die Fläche beträgt", Math.PI * d.squared() / 4
interface.close()
process.stdin.destroy()
@Leonidas: Einige? Ich habe doch schon fast alle weg gelassen. Die Leeren bei ``Number :: squared`` können weg. Das war's dann aber auch schon.
Haskell
Code: Alles auswählen
import Data.Maybe (listToMaybe)
import System.IO (hSetBuffering, BufferMode(NoBuffering), stdout)
import Network.CGI.Protocol (maybeRead)
area :: Double -> Double
area diameter = pi * diameter ^ 2 / 4
ask question = fmap maybeRead (putStr question >> getLine)
main :: IO ()
main = do
hSetBuffering stdout NoBuffering
maybeAnswer <- ask "Bitte Durchmesser eingeben: "
putStrLn $ maybe ("Fehler: Eingabe war keine Zahl!")
(("Die Fläche beträgt " ++) . show . area)
maybeAnswer
Mal eine eher langweilige Sprache: Pascal. Damit es nicht ganz so langweilig wird die Berechnung in Assembler (x86 FPU, AT&T syntax):
Code: Alles auswählen
Program CircleArea;
Const
four: Word = 4;
Var A, d: Real;
Begin
Write('Bitte Durchmesser eingeben: ');
ReadLn(d);
Asm
fninit
fld d
fmul %st,%st
fldpi
fmulp
fidiv four
fstp A
End;
WriteLn('Die Fläche beträgt ', A:0:3);
End.
May the Forth be with you:
Code: Alles auswählen
: main ( -- )
." Bitte Durchmesser eingeben: " pad 80 accept cr
pad swap >float
if
fdup f* pi f* 4e f/
." Die Fläche beträgt " f.
else
." Eingabe war keine Zahl."
then cr ;
main bye
Oder wenn's Java sein darf:
Code: Alles auswählen
import java.util.Scanner;
public class Durchmesserberechner {
public static void main(String[] args) {
System.out.print("Bitte Durchmesser eingeben: ");
String eingabe = new Scanner(System.in).nextLine();
try {
double durchmesser = new Double(eingabe);
System.out.format("Die Fläche beträgt %.1f",
Math.PI * Math.pow(durchmesser, 2) / 4);
} catch (NumberFormatException e) {
System.err.println("Fehler: Eingabe war keine Zahl!");
}
}
}
Hm, die Python-Lösung hat mich noch nicht überzeugt. Der try-except-Block ist sinnlos, da der Fehler gar nicht behandelt wird, sondern nur die Fehlermeldung, die sowieso erscheinen würde, ausgegeben wird.
Edit: Code entfernt.
Edit: Code entfernt.
Zuletzt geändert von nomnom am Sonntag 28. Oktober 2012, 13:53, insgesamt 1-mal geändert.
Darii's inspiration von Lösungen in „grafischen” Programmiersprachen folgend eine Lösung in Scratch zusammen geklickt:
@nomnom: Juhuu, wenigstens einer der die Hausaufgabe für den OP in abgebbarer Form gelöst hat.
Was meinst Du mit „dank PEP8”? Genau *die* Zeile hält sich da nicht dran, denn da fehlen Leerzeichen um die Operatoren. Ich hoffe Du hast da nicht die Leerzeichen um die Zuweisung von Default- und Schlüsselwortargumenten einfach auf Operatoren übertragen.
@nomnom: Juhuu, wenigstens einer der die Hausaufgabe für den OP in abgebbarer Form gelöst hat.
Was meinst Du mit „dank PEP8”? Genau *die* Zeile hält sich da nicht dran, denn da fehlen Leerzeichen um die Operatoren. Ich hoffe Du hast da nicht die Leerzeichen um die Zuweisung von Default- und Schlüsselwortargumenten einfach auf Operatoren übertragen.
Das mit der Hausaufgabe habe ich gar nicht bedacht.BlackJack hat geschrieben:@nomnom: Juhuu, wenigstens einer der die Hausaufgabe für den OP in abgebbarer Form gelöst hat.
Was meinst Du mit „dank PEP8”? Genau *die* Zeile hält sich da nicht dran, denn da fehlen Leerzeichen um die Operatoren. Ich hoffe Du hast da nicht die Leerzeichen um die Zuweisung von Default- und Schlüsselwortargumenten einfach auf Operatoren übertragen.
Irgendwo, meine ich, habe ich mal gelesen, dass da Leerzeichen hingehören. In PEP8 habe ich es nicht mehr gefunden ...
@nomnom: Ist jetzt etwas ungünstig über nicht mehr vorhandenen Quelltext zu diskutieren.
In PEP8 steht: Leerzeichen vor und nach Operatoren. Und die hattest Du nicht gesetzt, Dich aber im Kommentar darauf bezogen, dass das wegen PEP8 so aussieht.
In PEP8 steht: Leerzeichen vor und nach Operatoren. Und die hattest Du nicht gesetzt, Dich aber im Kommentar darauf bezogen, dass das wegen PEP8 so aussieht.
Früher war alles viel einfacher — da hätte es so auf meinem Bildschirm (== Fernseher) ausgesehen (ohne die farbige Hervorhebung der Syntax allerdings):
Code: Alles auswählen
LIST
10 INPUT"DURCHMESSER";D
20 PRINT"FLAECHE:";π*D↑2/4
READY.
RUN
DURCHMESSER? 10
FLAECHE: 78.5398164
READY.