mikrocontroller.net

Forum: PC-Programmierung Array-Wert auslesen


Autor: Freak (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi.

Kann mir einer von euch sagen, was für eine Zahl im int Array steht wenn 
man da eine Double-Zahl reinschreibt?

sprich
int array[2];

void array_int()
{
array[0]=3,14159;
array[1]=3,1459*1000;
}

Steht nun 3 im array[0] weil der PC rundet?
Und was steht im array[1]? Steht da eher 3000 oder 3141 oder 3142(wegen 
Rundung?)

Bin für jede Hilfe dankbar!

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du es mal probiert?

Autor: Freak (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein ich hab keine Software dafür

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fragst du das, weil du C lernen willst?
Und du hast keinen Rechner, um es zu probieren?

Naja, ein beiden Fällen steht 3 drin.
Gegenfrage: Warum?
Tip: im C-Buch nach Kommaoperator suchen!

Autor: Freak (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sozusagen :)
danke für deine Hilfe

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich will ja deinen Ehrgeiz wirklich nicht bremsen, aber
ohne C-Compiler wird das auf Dauer nichts.

Notfalls kann ich dir einen Zugang auf einem Rechner einrichten,
wo du dich über Konsole mit C austoben kannst.
Ein Entwicklungssystem auf dem eigenen Rechner wäre natürlich
deutlich komfortabler.

Autor: Freak (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich installier gerade Visual Studio von Microsoft, hoffe damit komm ich 
weiter.

Mich würde allerdings interessieren, wie ich die 3,141 * 1000, spricht 
3141 ins int array bekomme. Ist sowas möglich?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Freak schrieb:
> Mich würde allerdings interessieren, wie ich die 3,141 * 1000, spricht
> 3141 ins int array bekomme. Ist sowas möglich?

Schon. Informiere Dich mal, wie in C Floatingpoint-Konstanten 
geschrieben werden.

Klaus hat da schon das Stichwort Kommaoperator verwendet.

Ohne C-Buch wird das nichts.

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Freak schrieb:
> Mich würde allerdings interessieren, wie ich die 3,141 * 1000, spricht
> 3141 ins int array bekomme. Ist sowas möglich?
Du hast da noch einen Fehler drin.:-)
Klaus Wachtler schrieb:
> Tip: im C-Buch nach Kommaoperator suchen!

Autor: Freak (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay den Operator schau ich mir an!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Freak schrieb:
> Okay den Operator schau ich mir an!

Aber nur soweit, dass du diesen Operator nicht mehr irrtümlich 
verwendest. Ansonsten machst du einen großen Bogen darum und verwendest 
ihn die nächsten 2 Jahre nicht mehr.

Daher: Lass den Operator gleich Operator sein und sieh lieber nach, wie 
Gleitkommawerte in praktisch allen Programmiersprachen (ausser in 
deutschen, also auch im deutschen Excel) geschrieben werden. Das was du 
geschrieben hast ist ein Kommaoperator, den du dort nicht haben willst. 
Du hast ihn irrtümlich verwendet, weil du die richtige Schreibweise für 
Gleitkommezahlen nicht kennst.

Autor: Spielverderber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls du das Komma durch einen Punkt ersetzt, steht im 1. Beispiel 3 im 
Feld und im 2. Beispiel 3145 (bzw. 3141 wenn du den die 1 nicht 
vergisst).
Nachkommastellen werden beim Typecast weggeschnitten.

Autor: Spielverderber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder ums mal genau zu zeigen:
#include <stdio.h>

int main()
{
 int array_a[2];
 int array_b[2];

 array_a[0]=3,14159;
 array_a[1]=3,14159*1000;

 array_b[0]=3.14159;
 array_b[1]=3.14159*1000;

 printf("array_a[0]: %d\n", array_a[0]);
 printf("array_a[1]: %d\n", array_a[1]);

 printf("array_b[0]: %d\n", array_b[0]);
 printf("array_b[1]: %d\n", array_b[1]);
  
 return 0;
}

produziert als Ausgabe:

array_a[0]: 3
array_a[1]: 3
array_b[0]: 3
array_b[1]: 3141



Und nochwas, als Anfänger ist der Dev-C++ (GPL) eher zu empfehlen als 
Visual Irgendwas.

Autor: schlitten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist manchmal auch ganz nützlich:
http://codepad.org/

Autor: Freak (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin echt positiv überrascht von dem Forum. Ihr habt mir sehr 
geholfen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.