Float Integer String! Wat?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Abenteurer036

Betreff: Float Integer String! Wat?

BeitragSo, Okt 09, 2011 17:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

hab da mal ne Frage die mich seid Anfang an Quält und die ich mir nicht beantworten kann. Was bringt Float, Integer und co.? Und was ist was... ist "#" das ein String oder "%" ein Float? Bringt es was sie ans Ende einer Variable zu hängen oder ist das nur Zierde?

Wäre euch sehr verbunden wenn mir einer ne komplette Liste ziegt wo das alles aufgelistet ist mit funktion und allem. Weil ich blick da nich ganz durch =__=

MfG Abenteurer036
New Project [4%]
Schinken Maker [100%]

Xeres

Moderator

BeitragSo, Okt 09, 2011 17:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm... ernsthaft jetzt? Wie lang bist du jetzt am programmieren? Und was möchtest du wissen?
In jedem Fall Arrow Datentypen
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Abenteurer036

BeitragSo, Okt 09, 2011 17:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke!! Very Happy

Ich Programmiere schon ca 4 Jahre. Bis jetz zwar noch nix brauchbares aber meine Codes funktionierten auch immer ohne. Bringt es wirklich mehr oder wozu sind die gut?
New Project [4%]
Schinken Maker [100%]
 

CO2

ehemals "SirMO"

BeitragSo, Okt 09, 2011 17:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
Was meinst du mit liste? Ich kann dir nur sagen, das ein Integer eine Ganze Zahl ist, und im RAM normalerweise 4 Bytes belegt. Ein String ist im grunde genommen auch nur ein Integer, nur halt als Array (Auch wenn dies so nicht in BB oder BMax angezeigt wird). Nun eine String (Zeichen - kette) enthält die IDs aus dem ASCII Zeichencode.
Ein Float wird jedoch anders gespeichert, als ein integer (deshalb unterscheidet man beim programmieren eigentlich auch nur zwischen 2 Daten-Typen: Integer (Ganzzahl) oder Floating Point Number (Fließkommazahl)).

Zu den Zeichen:
in BB ist es üblich, seine Variablen nicht mit voransetzen des Datentyps zu deklarieren, Bsp.: in C: "int variable = 3;" ) ist eine variable vom typ Integer, sondern der Variablentyp wird durch das anhängen der zeichen (%, #, $) bestimmt. Eine variable, die mit einem % gekennzeichnet ist, ist ein Integer. Eine # kennzeichnet eine Floating Point Number und ein $ kennzeichnet einen String.

ich hoffe ich konnte helfen,
mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

BaseTH

BeitragSo, Okt 09, 2011 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Abenteurer036

Was hast du denn bisher so programmiert wenn du diese Grundlagen nicht kennst?

Die Datentypen lernt man doch als erstes mit.

Gruß,
BaseTH

Abenteurer036

BeitragSo, Okt 09, 2011 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Davon stand nichts in meinem Buch... "Programmieren für Kids"

Also bringt es was das "#,$,%" hinten anzuhängen oder nicht?
New Project [4%]
Schinken Maker [100%]

Xeres

Moderator

BeitragSo, Okt 09, 2011 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du nie Text oder Kommazahlen brauchst... nein, dann brauchst du die nie. Rolling Eyes
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Abenteurer036

BeitragSo, Okt 09, 2011 17:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok Danke nochmals...

das war schon alles was ich wissen wollte. Smile
New Project [4%]
Schinken Maker [100%]

BaseTH

BeitragSo, Okt 09, 2011 17:57
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Abenteurer036

Ich habe das Buch "Programmieren für Kids" auch.

Deine Frage wird in dem Buch behandelt und beantwortet. Habe es mir gerade aus meinem Schrank geholt.

Auf Seite 52/53 und 79 so mal als kleines Beispiel.

Gruß,
BaseTH

Abenteurer036

BeitragSo, Okt 09, 2011 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Habs auch noch nicht ganz durchgelesen. Ich blick bei dem Buch nicht durch, hab mir das meiste dank der BP Hilfe selbst beigebracht.
New Project [4%]
Schinken Maker [100%]

BaseTH

BeitragSo, Okt 09, 2011 18:09
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Abenteurer036

Wo ist denn das Problem bei dem Buch.

Dieses ist doch sehr einfach, halt für Kinder, geschrieben.

Wenn Fragen sind kannst du hier gerne im Forum fragen. Wir helfen so gut wir es können. Smile

Gruß,
BaseTH

Abenteurer036

BeitragSo, Okt 09, 2011 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Joah... ich bin nichtmal mehr im besitz des Buches^^

Habs vor 4 Jahren geschenkt bekommen und seid 2 Jahren verschollen. Laughing macht nix, ich hab ja euch und die BP Hilfe! Wink
New Project [4%]
Schinken Maker [100%]

ToeB

BeitragSo, Okt 09, 2011 18:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich frag mich grad echt wie man es schaffen kann, ohne die wesentlichen Grundkenntnisse überhaupt durchzublicken !?

Also als Anfänger war das eins der ersten Fragen die ich hatte - Nicht jetzt, nach 4 Jahren oO


Zu deiner Frage: die "% $ #" Zeichen sind in manchen Fällen sogar sehr viel Wert. Da es sich bei einem "Integer" (Ganzzahl) um den Standart-Datentyp handelt, kann in diesem Fall das % weggelassen werden. Trotzdem wird die Variable als Integer deklariert. Möchtest du allerdings Kommerzahlen speichern (Bspw. 0.01), dann würde dir Blitz in eine Integer Variable nur den Wert "0" reinschreiben, weil das die nächste Ganzzahl von 0.01 ist (Auf oder Abgerundet). Deswegen bräuchtest du für diesen Fall eine Float-Variable (Fließkommer). Damit Blitz allerdings weiß, das du jetzt eine Variable von dem Typ "Float" benutzen willst, musst du beim ersten Aufruf der Variable im Chronologischen Ablauf des Programms ein "#" dahinter schreiben, oder, am besten Alle Variable vorher mit Local oder Global am Anfang deklarieren (mit den Entsprechenden Zeichen). Willst du jetzt einen Text speichern, z.B. einen Namen, so kann das weder in einer Integer, noch in einer Float-Variable gepeichert werden. Deswegen gibt es den Datentypen "String" (Zeichenkette), in der eine beliebig lange Aneinanderreihung von Zeichen (Einzelnen Buchstaben/Zahlen/Sonderzeichen) gespeichert werden kann. Dazu müsstest du dann ein "$" anhängen, sonst ist es auch wieder ein Integer.

Nochwas: Sobald Blitz weiß, von welchem Datentyp eine Variable sein soll (Also das weiß Blitz ab dem ersten Aufruf), so kann der Datentyp im kompletten Verlauf des Programms weggelassen werden. Allerdings rate ich dazu, trotzdem den Datentyp immer mit anzugeben, um einfach nicht immer nachgucken zu müssen wie die Variable jetzt deklariert wurde Wink

mfg ToeB

PS.: Bevor noch weitere solche Fragen deinerseits hier auftauchen, arbeite das Buch nochmal Schritt für Schritt durch, dann sollten sich deine Fragen meinstens von alleine Lösen.
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!
 

PhillipK

BeitragSo, Okt 09, 2011 18:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine kleine zusammenfassung, was mir grade so einfällt. Um dich mehr zu verwirren Wink

Long ist ein ganzzahlen typ, er belegt 8 byte.
Integer ist der Standarttyp. Ein Integer hat 4 Byte.
Short ist ein weiterer Ganzzahlen typ. Er belegt nur 2 Byte
Byte ist ein dritter Ganzzahlen typ. Er belegt 1 byte Wink
Ein byte hat ausserdem 8 bit.
Ein Float ist eine Flieskommazahl, welche 4 byte belegt.
Double ist eine weitere Flieskommazahl, welche allerdings 8 Byte belegt.

Ich nehme mal an, das du mit Bit nun ebenfalls wenig anfangen kannst. Anhand der belegten Bit kannst du errechnen, welche maximale Zahl du speichern kannst. Ein byte - die kleine einheit, kann 256 zahlen speichern. Errechnet: Ein bit hat einen zustand (1 oder 0, an oder aus, tod oder leben, wahrheit oder lüge, was du willst - 2 zustände eben). dadurch ergibt sich bei 8 bit (ein byte): 2^8 == 256. Sprich, von 0 bis 255, oder von -127 bis 128.

Ein String hingegen ist - normalerweise - eine aneinanderreihung von Bytes, ähnlich einem Array. Er wird nur anders interpriert, als Ascii-codes. Eine normale Asciiliste hat 256 zeichen - jedes Byte steht für ein weiteres Zeichen. Es gibt noch eine Short variante, ka wie das hieß - unicode?
In Blitzmax wird ein String allerdings wie ein Objekt behandelt, wie das in BB aussieht, kann ich dir leider nicht sagen.

% Kennzeichnet einen Integer, @ ein Double, # ein float, $ einen String.
Wie man long, short oder Byte kennzeichnet, weiß ich leider nicht. In blitzmax reicht es, Variablen_name:Typ - also zb iCount:Int zu schreiben.

Solltest du eine berechnung haben, die den maximal möglich darstellbaren bereich eines Types sprengt, so wird deine zahl im negativen bereich "wieder raus kommen".
Beispiel: Ein normaler Byte in BB kann 0 bis 255 speichern, addierst du nun auf einen Byte mit der Zahl 255 eine 1, so wird deine Zahl im endeffekt 0.

Es gibt in den meisten Programmiersprachen noch die unterscheidung zwischen Unsigned und Signed daten-typen. Das steht fürs vorzeichen Smile Hast du eine Signed variable, so wird ein Bit für das vorzeichen "verschwendet" und es ist dir möglich, von - 2^(bit_zahl-1) bis + 2^(bit_zahl-1) einen wert zu speichern. Ansonsten gilt von 0 bis 2^(bit_zahl)-1.
-1 deswegen, da die 0 auch eine darstellungsform benötigt.

Mit den Bits einer Flieskommazahl kann man allerdings nicht soviel berechnen, da diese anders "aufgeteilt" sind. Meines wissens nach werden ein paar bit für die ganzzahl und die restlichen für eine berechnung benötigt.
Wie genau das aufgebaut ist, kannst du zb in Wikipedia nachlesen - ich weiß es nicht ^^

Grundsätzlich kann es dir für lokale variablen egal sein, welchen typ du brauchst. Wichtiger wirds, bei größeren Arrays, da 256x256x256 Byte's weniger speicher wegnehmen, als zb 256x256x256 Long's.
Dh für kleinere anwednungen und lokale variablen solltest du hauptsächlich zwischen Strings, dh Zeichenketten, und Integer (ganzzahl, normal Signed) und Float (flieskommazahl) unterscheiden.

Wichtig ist ausserdem zb folgendes:
Local iCount:int = 100 / 1000.0

1000.0 enthält ein punkt, sie wird automatisch als Float interpretiert. Dadurch das du aber explizit eine Integervariable festgelegt hast, wird du am ende 0 rausbekommen.
Das ergebnis, 0.1, kann mit einem Integer nicht dargestellt werden und wird standartmäßig "zur null" gerundet. Dh 0.0 -> 0.
Local fCount:float = 100 / 1000 hingegen würde korrekt die 0.1 halten. (Oder auch 0.099999123123 irgendwas - 100% genau sind fließkommazahlen nie! mehr dazu: Wikipedia)


soo ich hab dann mal ein wenig gegrübelt. vielleicht hilfts ja, vielleicht verwirrts nochmehr Wink

Xeres

Moderator

BeitragSo, Okt 09, 2011 18:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Nett gemeint, aber BlitzBasic <> BlitzMax und falsch ist es auch noch (@ steht für :Byte in BlitzMax).
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

BladeRunner

Moderator

BeitragSo, Okt 09, 2011 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
BB wandelt die Typen oftmals automatisch um, dennoch solltest Du sie verwenden. Zumindest wenn Du sichergehen willst dass deine Programme auch das tun was sie sollen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Abenteurer036

BeitragMo, Okt 10, 2011 18:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Alles klar, jetz weis ich ja bescheid Smile
New Project [4%]
Schinken Maker [100%]

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group