CodeBlocks
CodeBlocks
Hallo zusammen
Habe mich ein wenige durch das C Tutorial gearbeitet und bin jetzt bei den Funktionen. (Nicht dass ich den Rest schon beherrsche). Nun habe ich eine Frage zu einem Code und wollte ihn hier ins Forum stellen. Allerdings habe ich keine Ahnung wie ich den Code aus CodeBlocks kopieren kann. (geht wahrscheinlich ganz einfach aber ich schaffe es nicht)
Code::Blocks Version 13.12
windows 7
Vielleicht kann mir ja jemand behilflich sein.
ufor
Habe mich ein wenige durch das C Tutorial gearbeitet und bin jetzt bei den Funktionen. (Nicht dass ich den Rest schon beherrsche). Nun habe ich eine Frage zu einem Code und wollte ihn hier ins Forum stellen. Allerdings habe ich keine Ahnung wie ich den Code aus CodeBlocks kopieren kann. (geht wahrscheinlich ganz einfach aber ich schaffe es nicht)
Code::Blocks Version 13.12
windows 7
Vielleicht kann mir ja jemand behilflich sein.
ufor
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: CodeBlocks
Strg+C, Strg+V?Nun habe ich eine Frage zu einem Code und wollte ihn hier ins Forum stellen. Allerdings habe ich keine Ahnung wie ich den Code aus CodeBlocks kopieren kann
Text Markieren, Kopieren, Einfügen?
Oder verstehe ich gerade irgendwas falsch?
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
Re: CodeBlocks
Danke für die schnelle Antwort ähm CodeBlocks hat ein etwas umfangreicheres Kontextmenü, war damit überfordert.
Zu meiner Frage
Beides mal funktionier der Code und das Programm tut was ich erwarte.
Ist es nun besser die Variablen kfz, haus und geld wie im ersten Beispiel oder wie zweiten Beispiel zu setzen?
Ich habe mich anfänglich schwer getan die funktion richtig zu formulieren, deshalb habe ich die Variablen so wie im zweitem Beispiel gesetzt. Und was mache ich wenn ich fünf zehn oder mehr Variablen habe? Entschuldig nochmal solche einfachen Fragen.
danke
Code 1
Code 2
Zu meiner Frage
Beides mal funktionier der Code und das Programm tut was ich erwarte.
Ist es nun besser die Variablen kfz, haus und geld wie im ersten Beispiel oder wie zweiten Beispiel zu setzen?
Ich habe mich anfänglich schwer getan die funktion richtig zu formulieren, deshalb habe ich die Variablen so wie im zweitem Beispiel gesetzt. Und was mache ich wenn ich fünf zehn oder mehr Variablen habe? Entschuldig nochmal solche einfachen Fragen.
danke
Code 1
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
int kosten (int kfz, int haus, int geld);
int main()
{
int kfz = 3;
int haus = 2;
int geld = 40000;
int zaehler = 1;
for (zaehler = 1; zaehler <= 5; zaehler++)
{
if (geld <= 0)
{
printf("\nSie sind Pleite!!");
}
else
{
printf("\nRestvermoegen = %d", geld = kosten(kfz, haus, geld));
}
}
return 0;
}
int kosten (int kfz, int haus, int geld)
{
int kosten_kfz = 0;
int kosten_haus = 0;
kosten_kfz = kfz * 1000;
kosten_haus = haus * 1000;
return geld - kosten_kfz - kosten_haus;
}
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
int kfz = 3;
int haus = 2;
int geld = 40000;
int kosten ();
int main()
{
int zaehler = 1;
for (zaehler = 1; zaehler <= 5; zaehler++)
{
if (geld <= 0)
{
printf("\nSie sind Pleite!!");
}
else
{
printf("\nRestvermoegen = %d", geld = kosten());
}
}
return 0;
}
int kosten ()
{
int kosten_kfz = 0;
int kosten_haus = 0;
kosten_kfz = kfz * 1000;
kosten_haus = haus * 1000;
return geld - kosten_kfz - kosten_haus;
}
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: CodeBlocks
Du machst zwei unterschiedliche Dinge, die dramatische Unterschiede haben.Ist es nun besser die Variablen kfz, haus und geld wie im ersten Beispiel oder wie zweiten Beispiel zu setzen?
Das Thema Hierzu heißt "Scopes" oder Gültigkeitsbereiche:
http://www.proggen.org/doku.php?id=c:var:scopes
Variablen sind nur da Gültig, wo du sie definierst.
Im Beispiel 1 definierst du die Variablen in der Main Funktion, diese sind nur da Gültig.
Im zweiten Beispiel definierst du sie Global, sie sind in jeder Funktion in dieser Datei gültig. Das sollte man vermeiden.
Was du bei Funktionen erreichen willst, ist Kapselung.
Du hast einen in sich geschlossenen Code, der nur von den Eingangsvariablen abhängt.
Daher musst du die Namen auch Trennen. Die Bezeichner "kfz", "haus" oder "geld"
in
Code: Alles auswählen
int kosten (int kfz, int haus, int geld);
Innerhalb dieser Funktion "kosten" sind diese 3 Variablen unter dem Namen "kfz", "haus" und "geld" Verfügbar.
Diese Variablen sind Kopien von den Variablen, die du beim Funktionsaufruf übergibst.
Für den Funktionsaufruf ist es egal, wie die Variablen heißen, Hauptsache sie entsprechend dem Datentyp.
Ein folgender Aufruf:
Code: Alles auswählen
kosten(1000, 1, 1);
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
Re: CodeBlocks
Danke für die schnelle Antwort
Re: CodeBlocks
Ist es nun besser die Variablen kfz, haus und geld wie im ersten Beispiel oder wie zweiten Beispiel zu setzen?
Fadi
Re: CodeBlocks
Würde das erste nehmen. Außer es sind in Wirklichkeit globale Konstanten. Dann solltest du aber eher ein #define benutzen.
-
- Beiträge: 5
- Registriert: So Jun 14, 2015 11:27 am
Re: CodeBlocks
Das Erste ist volll gut.
Das Zweite ist voll schlecht.
Das Zweite ist voll schlecht.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: CodeBlocks
Die Frage ist, wo Du welche Variablen benötigst. Wenn Du eine Variable immer wieder benötigst, kann man sie als globale Variable setzen. Das ist heute aber in der Form ziemlich verpönt weil man sich gute Chancen auf Probleme einhandelt, sobald man eine Anwendung schreibt, die auf mehreren Prozessoren arbeitet.Andersan hat geschrieben:Ist es nun besser die Variablen kfz, haus und geld wie im ersten Beispiel oder wie zweiten Beispiel zu setzen?
Eine Funktion sollte immer die Argumente erhalten, die sie zum Berechnen benötigt. In diesem Fall ist die Variante 2 (globale Variablen) ganz klar No-Go. Die Variante 1 (Parameterübergabe) ist in jedem Fall zu bevorzugen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.