Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zahl Qquadrieren über Konsole mit MessageBox (https://www.delphipraxis.net/101271-zahl-qquadrieren-ueber-konsole-mit-messagebox.html)

Shaddar 10. Okt 2007 18:31


Zahl Qquadrieren über Konsole mit MessageBox
 
Hallo...

Ich bin neu hier, genauso wie in der Delphiumgebung und bräuchte gleich mal ein wenig bzw vllt auch bissl mehr Hilfe :)
Hab gerade mit dem Studium begonnen und von programmieren noch nich so die Ahnung. Wir sollen zu in Delphi ein Programm schreiben das eine Zahl quadriert.

Dies soll in einer Konsolen-Anwendung geschehen und das Ergebnis soll in einer MessageBox erscheinen.
Also ein Feld zum eingeben der Zahl, dann auf nen Button klicken und dann spuckt er mir das Ergebnis in ner MessageBox aus.

Sitz hier schon ewig dran aber hab irgendwie kein Plan wie ich das nu anstell.

Kann mir da vllt jemand weiterhelfen?

Matze 10. Okt 2007 18:35

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Hallo, herzlich Willkommen.

Suche mal hier nach Hier im Forum suchenMessageBox, da findest du Beispiele zur Verwendung dieser.

Die Quadrieren-Operation kann man auch als Multiplikation schreiben. Wie, weißt du hoffentlich selbst. Möchtest du eine fertige Funktion dafür nutzen, könntest du die Unit Math einbinden und Delphi-Referenz durchsuchenPower verwenden. Doch für deine Aufgabenstellung wäre das übertrieben.

Falls du mit diesen Infos nicht weiterkommst (irgendwelche Grundlagen musst du ja haben), zeige uns bitte, wie seit zu selbst kommst und was genau deine Probleme sind. Poste also in diesem Fall deinen bisherigen Code, nachdem du versucht hast, meine Tipps umzusetzen.

Grüße


Edit (nach Lesen des Folgebeitrags): Auf SQR hätte ich auch kommen müssen. *g*

Astartes 10. Okt 2007 18:39

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Hi,

In der Delphihilfe müsste auch ein Beispiel zur MessagBox sein!


Delphi-Quellcode:
SQR(Variable); Quadieren
SQRT(Variable); Wurzel
Mfg Astartes

Shaddar 10. Okt 2007 18:42

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Naja ich weiß schon wie man das mit multiplikation macht - einfach a*a=b.
aber hab kein Plan wie ich mit dem Quelltext anfange bzw was da überhaupt nu alles reinkommt. :(

Astartes 10. Okt 2007 18:46

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Such mal in der Delphi Hilfe nach Integer-Typen und Float Typ zum Verständnis erstmal!

Konsolenanwendung für Anfänger

(Zwar nicht das schönste Beispiel dürfte aber erstmal helfen)

Mfg Tom

Matze 10. Okt 2007 18:51

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Hallo, schau dir mal dieses Tutorial an (2 Sekunden gegoogelt, also zukünftig bitte selbst so "viel" Zeit investieren): Delphi - Konsolenanwendung für Anfänger.

Wenn ihr in der Uni/FH/BA etwas programmieren müsst, dann müssten euch die nötigen Grundlagen beigebracht worden sein oder zumindest ein Skript, das dies erklärt. Ich verstehe das nicht so ganz. :gruebel:

Edit: Och Tom, editieren ist unfair. :mrgreen:

Shaddar 10. Okt 2007 19:07

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
hmm das Tutorial is ja ganz nett aber hilft mir nich weiter...is ja nix mit Messagebox leider...

DeddyH 10. Okt 2007 19:09

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Was ist an einer MessageBox denn schwierig?
Delphi-Quellcode:
MessageBox(0,'Ich bin eine MessageBox','Zur Info',MB_OK or MB_ICONINFORMATION);
Das geht auch in einer Konsolenanwendung.

Shaddar 10. Okt 2007 19:18

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Man wenn man kein Plan hat denn is das halt alles nich so einfach :(

DeddyH 10. Okt 2007 19:20

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Aber wenn man schon weiß, dass der Befehl MessageBox heißt, schaut man doch mal kurz in die Hilfe (OK, ich weiß nicht, welche Delphi-Version Du einsetzt, mit den neueren Hilfen isses ja IMHO nicht so weit her).

[edit] Rechtschreibfehler [/edit]

Astartes 10. Okt 2007 19:21

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Hi,

Delphi-Quellcode:
uses SysUtils,Windows;
einbinden! Darauf kommst du über die Hilfe!

Mfg Tom

Shaddar 10. Okt 2007 19:25

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
So ich krieg jetzt schon ma ne messagebox. die kommt jetzt.
hab da aber nur nen text.

bräuchte das so, dass man ne Zahl eingibt und denn auf enter drückt und die messagebox mit dem ergebnis kommt.

mein bisheriger quelltext...

program Versuch1;

{$APPTYPE CONSOLE}

uses
SysUtils,windows;
var
x:integer;
begin
{ TODO -oUser -cConsole Main : Hier Code einfügen }
writeLn('hallo');
readLn;
MessageBox(0,'Ich bin eine MessageBox','Ergebnis',MB_OK or MB_ICONINFORMATION);
end.

Astartes 10. Okt 2007 19:33

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Hi,

Ich weiß nicht, ob die MessageBox das kann! Die alternative ist die InputBox !

In der Delphihilfe steht dazu was!

Mfg Tom

Oh hab die Aufgabe nicht richtig gelesen!

brechi 10. Okt 2007 20:26

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Shaddar hör am besten auf zu studieren, wenn du sowas nicht selbst erlernen kannst. Das bringts nicht, als Student muss man sich vieles eben beibruingen und mal den Arsch aufreißen.
Zumal es sicher etwas im Bereich Informatik ist, wo man schon ein paar Grundlagen beherrschen sollte (zu mindest eine andere Programmiersprache)

Shaddar 10. Okt 2007 20:37

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Hallo gehts noch? Ich lass mir doch nich sowat sagen! Wollt hier nur bissl Hilfe, mehr nich....

Also erst Gehirn einschalten, Denken und erst dann anfangen zu Sprechen!!!!!

WordsBG 10. Okt 2007 20:37

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Zitat:

Zitat von Shaddar
Delphi-Quellcode:
program Versuch1;

{$APPTYPE CONSOLE}

uses
  SysUtils,windows;

var
  x:integer;
begin
  { TODO -oUser -cConsole Main : Hier Code einfügen }
  writeLn('hallo');
  readLn;
  MessageBox(0,'Ich bin eine MessageBox','Ergebnis',MB_OK or MB_ICONINFORMATION);
end.

bitte delphi-tags nutzen. Ok, also zuerst einmal ReadLn hat einen optinalen Parameter zu einer Variable in die dann das Ergebnis geschrieben wird. Also in deinem Fall wäre es ReadLn(x);.
Dannach kannst du die Berechnung durchführen. Beispielsweiße X := X * X;
Dann würest du logischerweiße das Ergebnis ausgeben wollen. Da MessageBox allerdings gerne einen String hätte wird hier eine Umwandlung (Integer zu String) nötig. Die Funktion hierfür heißt IntToStr(). Mit einem Paramter.
Wenn du das dann so aptipst bleibt noch ein kleines Problem. MessageBox wird von Delphi an Windows-DLLs weitergereicht. Diese sind in C/C++ geschrieben und können mit Delphi Strings nichts anfangen sondern brauchen ein array of char. In Delphi heißt dieser String-Typ PChar. Eine Umwandlung Delphi String -> PChar geht mit der gleichnamigen Funktion "PChar".
Der komplette Code wäre hier:
Delphi-Quellcode:
program Versuch1;

{$APPTYPE CONSOLE}

uses
  SysUtils,windows;

var
  x: Integer;

begin
  ReadLn(X);
  X := X * X;
  MessageBox(0,PChar('Das Ergenis lautet ' + IntToStr(X) + '!'),
               'Ergebnis',MB_OK or MB_ICONINFORMATION);
end.
Lass dich nicht fertigmachen. Wenn man sich erstmal eingearbeitet hat ist Delphi viel verständlicher.

DeddyH 10. Okt 2007 20:40

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Meine Version ist etwas ausführlicher:
Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Windows;

var Zahl: string;
    Wert: integer;
    Err: integer;
begin
  { TODO -oUser -cConsole Main : Hier Code einfügen }
  writeln('Bitte eine Zahl eingeben.');
  readln(Zahl);
  {$R-}
  Val(Zahl,Wert,Err);
  {$R+}   
  if Err > 0 then
    MessageBox(0,'Eine Zahl, Du Hirni!','Knallkopp',MB_OK or MB_ICONERROR)
  else
    begin
      Wert := Wert * Wert;
      MessageBox(0,PChar(Format('Das Quadrat ist %d.',[Wert])),'Information',MB_OK or MB_ICONINFORMATION);
    end;
end.

marabu 10. Okt 2007 21:02

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Hallo Shaddar,

wer um Hilfe bittet, der bekommt die hier auch. Manchmal bekommst du sogar mehr Hilfe als du vertragen kannst. Betrachte den Beitrag von brechi einfach als Lebenshilfe, er wollte dich bestimmt nicht anmachen.

Bitte überprüfe deine Aufgabenstellung nochmal: Konsolenanwendung und MessageBox passen nicht so richtig zueinander, schon gar nicht wenn es sich um die erste Übung handelt. Darf ich fragen, was du wo mit welchem Ziel studierst?

ReadLn() ist übrigens auch in der Lage Zahlen direkt einzulesen, es muss nicht unbedingt ein String sein.

Freundliche Grüße vom marabu

Shaddar 11. Okt 2007 08:23

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Danke schön....

Is einfach nur so, dass man auh am Anfang des Studium kein Plan davon haben kann. Ich tudiers ja nich weil ichs kann, sondern weil ichs lernen will!

Achja ich studier Multimediatechnik!

Hab auch schon in der Schule mit Delphi gearbeitet aber da hatten wir ne absolut unfähige Lehrerin und es is nix hängen geblieben, is auch shon urst lange her!

Wenn ich demnächst mit Delphi mehr macche, dann wirds auh sicherlich schnell leichter aber da hab ich halt einfach Hilfe gebraucht und versteh nich warum denn so ne Aussage kommt.

Naja egal, danke an alle die mir geholfen haben! :)

calculon 11. Okt 2007 08:35

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Zitat:

Zitat von DeddyH
Delphi-Quellcode:
MessageBox(0,'Eine Zahl, Du Hirni!','Knallkopp',MB_OK or MB_ICONERROR)

[OT]
http://www.krazz.net/smil/rofl[1].gif
Ich liebe Programme, die den User auch mal beleidigen! http://www.krazz.net/smil/korrekt[1].gif
[/OT]

Gruß

Calculon
--

xZise 11. Okt 2007 08:43

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
[quote="Shaddar"]Is einfach nur so, dass man auh am Anfang des Studium kein Plan davon haben kann. Ich tudiers ja nich weil ichs kann, sondern weil ichs lernen will![/qoute]

Allerdings sollte man schon grundwissen haben. Und selbst wir haben im ersten Jahr (wovon nur ein halbes Jahr mit Delphi gearbeitet wurde!) alle nötigen Grundlagen. Nagut nicht über Konsole, aber das ist nicht so schwer.
Wir konnten ein Editfeld positionieren, Strings umwandeln und Ausgaben tätigen (Showmessage).

Auch wenn die Lehrerin "unfähig" war, sollte man ein bisschen sich damit auseinandersetzen.


MfG
xZise

QuickAndDirty 11. Okt 2007 08:59

Re: Zahl Qquadrieren über Konsole mit MessageBox
 
Ähm, über das Problem hätte ich mich sogar im 4. Schuljahr kaputtgelacht,
wenn gleich ich es damals nur mit Amiga Basic hätte lösen können.

Und du must Dir follgendes erarbeiten:
Delphi Buch kaufen!!! Oder aus der Unibibliothek ausleihen(in der Regel sind die anderen immer schneller...studieren kost eben Geld)
Im Script oder in der Delphi Hilfe(?->Hilfe->Index) folgende Anweisungen nachschlagen und verstehen.

WriteLn (System.Readln) Schreibt eine Zeile in STDOUT (Konsolenausgabe)
ReadLn (System.ReadLn) Liest eine Zeile aus STDIN (Konsoleneingabe)
ShowMessage (Dialogs.Showmesssage) zur Ausgabe
val (System.val) wandelt eine Zeichenkette in eine Zahl um, ohne das eine Exception aufkommt wird (Fehlercode überprüfen)
StrToInt Kapselt Val und wirft mit Exceptions um sich wenn val einen Fehler feststellt. (Exceptions sind nervig aber in der Informatik absolut angesagt)

var (danach folgt ein Deklarationsblock) Variblen werden "angemeldet" Name:Typ;
Du brauchst eine vom TYP "Integer". Gib das in die delphi hilfe ein.
Und einer vom Typ String (Zeichenkette) zum einlesen des Wertes


Arithmetik der "*" ohne Anführungszeichen ist ein in Infixnotation zu gebrauchender Multiplikationsoperator.
":=" ohne Anführungszeichen ist eine Wertzuweisung halt wie das := in der Mathematik.
"=" ist ein Vergleichsoperator der ein boolsches Ergebnis zurrück liefert.

Beispiel:
Delphi-Quellcode:
//a,c sind integer Variablen
a := 5;
c := a*a;
// enthält jetzt das Quadrat von a


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz