Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Elessar

Aran Gondor

  • »Elessar« ist männlich
  • »Elessar« ist der Autor dieses Themas

Beiträge: 105

Wohnort: Köln

Beruf: Schüler...

  • Nachricht senden

1

19.09.2006, 16:21

C-Code geschrieben aber nicht verstanden ^^

Hallo!

Ich habe angefangen C zu lernen und habe mir auch ein Buch besorgt ("Programmieren lernen mit C"). Dor ist zum Thema "Algorithmen und Kontrollstrukturen" folgender Code drin:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* tabelle.c */

#include <stdio.h>

int main(void)

{
 int a, b;

printf("\n  I");
for (b = 1 ; b <= 10; b++)
printf("%3i ", b);

printf("\n");
for (b = 1 ; b <= 11; b++)
printf("----+");
printf("\n");

for (a = 1 ; a <= 10 ; a++) {
printf ("%2i I", a);
for (b = 1 ; b <= 10 ; b++ )
printf ("%3i ",a*b);
printf("\n\n");
}
return 0;
} 


So, ich habe den abgeschrieben und da kam Einmal-Eins Tabelle raus von 1*1 bis 10*10. Aber ich habe eine Frage, wie kommt z.B. diese Tabellenstruktur zustande? Es tut mir leid, wenn die Frage vll. scheiße klingt, aber ich kapier das irgendwie nicht...


Gruß

Philipp

2

19.09.2006, 16:26

RE: C-Code geschrieben aber nicht verstanden ^^

/* tabelle.c */

#include <stdio.h>

int main(void)

{
int a, b;

printf("\n I");
for (b = 1 ; b <= 10; b++)
printf("%3i ", b);

printf("\n");
for (b = 1 ; b <= 11; b++)
printf("----+");
printf("\n");


for (a = 1 ; a <= 10 ; a++) {
printf ("%2i I", a);
for (b = 1 ; b <= 10 ; b++ )
printf ("%3i ",a*b);
printf("\n\n");
}
return 0;
}

Wird in dem Buch nicht erklärt, was da vor sich geht?
Just because an OS holds 90% of the market doesn`t mean it`s superior.
Remember 90% of all animals are insects.

Wer sucht der findet..

Elessar

Aran Gondor

  • »Elessar« ist männlich
  • »Elessar« ist der Autor dieses Themas

Beiträge: 105

Wohnort: Köln

Beruf: Schüler...

  • Nachricht senden

3

19.09.2006, 17:11

Ne, da wurde nichts davon erklärt, der steht da nur drin....

4

19.09.2006, 19:19

also:

printf("\n I"); // neue Zeile und ein 'I' ausgeben
for (b = 1 ; b <= 10; b++)
printf("%3i ", b); // die Zahlen von 1 bis 10 hintereinander ausgeben
// b (der Zähler) läuft von 1 bis 10 (anfangswert 1, schleife läuft, solange b
kleiner/gleich 10 ist
// an der Stelle %3i wird der Wert von b eingesetzt, die 3 bedeutet, dass die
Mindestlänge des für %i ausgegebenen Strings 3 Zeichen umfasst, die
// notfalls mit Leerzeichen ergänzt werden (hier immer wegen dem Abstand
// zur nächsten Zahl)

printf("\n"); // neue Zeile
for (b = 1 ; b <= 11; b++)
printf("----+"); // wie die erste Schleife, nur dass jetzt statt dem Wert des Zähers bei jedem
// Schleifendurchlauf ein "----+" ausgegeben wird
printf("\n"); // neue Zeile

for (a = 1 ; a <= 10 ; a++)
{ // 10 Mal:
printf ("%2i I", a); // 1. Wert des Zählers (a), Mindestlänge 2 Zeichen und ein " I" ausgeben

for (b = 1 ; b <= 10 ; b++ )
printf ("%3i ",a*b); // 2. den Zähler (a) jeweils mit jeder Zahl von 1 bis 10 multiplizieren(a*b) und
// ausgeben (Mindestlänge 3 Zeichen) (alle in einer Zeile)

printf("\n\n"); // 3. 2 Mal neue Zeile (eine Zeile freilassen)
}

durch die vorgegebenen mindestlängen der Ausgaben der Werte ist der Abstand geregelt und die Tabellenform kommt zustande.

btw: b++ ... das ++ ist C++ oder nicht? in C müsste das b = b + 1 sein

mfg,
julian

Imhotep

followed the white rabbit

Beiträge: 1 530

Wohnort: Leipzig

Beruf: Informatiker

  • Nachricht senden

5

19.09.2006, 20:20

Zitat

Original von -=Freaky=-
btw: b++ ... das ++ ist C++ oder nicht? in C müsste das b = b + 1 sein

nein, das ist schon C, es handelt sind dabei um "inkrementieren", was schneller ist als plus 1 zu rechnen. Obwohl ein guter Compiler würde b + 1 sicher zu b++ optmieren
localhost,
sweet localhost

Elessar

Aran Gondor

  • »Elessar« ist männlich
  • »Elessar« ist der Autor dieses Themas

Beiträge: 105

Wohnort: Köln

Beruf: Schüler...

  • Nachricht senden

6

19.09.2006, 21:27

Ah ok, danke, der Nebel lichtet sich so langsam ^^

Also mit

Quellcode

1
2
for (b = 1 ; b <= 11; b++) 
printf("----+");


wir ja 11 mal hintereinander "----+" ausgegeben, d.h. man kann bei so einer Schleife alles Mögliche einsetzen, also alles, was man will?

Gruß

Philipp

Imhotep

followed the white rabbit

Beiträge: 1 530

Wohnort: Leipzig

Beruf: Informatiker

  • Nachricht senden

7

19.09.2006, 21:42

Du kannst mit einem Programm alles machen, was du willst =D
Dem Computer ist doch egal, ob er dir einen Text ausgibt oder den Sinus berechnet.
localhost,
sweet localhost

Elessar

Aran Gondor

  • »Elessar« ist männlich
  • »Elessar« ist der Autor dieses Themas

Beiträge: 105

Wohnort: Köln

Beruf: Schüler...

  • Nachricht senden

8

19.09.2006, 22:11

lol ^^, ok

und ich dachte immer, man wäre da ziemlich in den Möglichkeiten beschränkt. ^^

Aber eine Frage habe ich noch: Bei welcher Art von Programmen würde C wirklich an seine Grenzen stoßen?

Gruß

Philipp

Imhotep

followed the white rabbit

Beiträge: 1 530

Wohnort: Leipzig

Beruf: Informatiker

  • Nachricht senden

9

19.09.2006, 22:32

Du musst dir klar machen, dass C dreißig Jahre alt ist, als es entwicklet wurde, hatten die Rechner weniger Leistung/Speicher/..... als dein Handy.
C ist schnell und direkt, darum wird es zu hardwarenahen Sachen benutzt, wo um jede Millisekunde geht.
Für komplexe Sachen, wie Grafische Oberflächenprogramme, sind andere Programmiersprachen besser, angenehmer und vorallem leichter damit zu handieren.
Wenn du wirklich Programmierambitionen hast, solltest du dir ein Buch zu Java zulegen und dir das Konzept von Objektorientierter Programmierung verinnerlichen, das ist zwar am Anfang schwer zu verstehen, aber wenn man es kann geht vieles leichter.
in C kannst du viel Grundlagen kennenlernen.
localhost,
sweet localhost

Elessar

Aran Gondor

  • »Elessar« ist männlich
  • »Elessar« ist der Autor dieses Themas

Beiträge: 105

Wohnort: Köln

Beruf: Schüler...

  • Nachricht senden

10

19.09.2006, 22:50

OK, ähm meinst du mit den Grundlagen zum Beispiel, wie If-Anweisungen funktionieren, oder while-schleifen? Oder was Variablen sind?

Also, dass kenn ich schon durch PHP. Also meinst du, wenn ich objektorientierte Programmierung machen will, kann ich dann direkt C++ machen, ohne C "komplett" zu lernen?

Imhotep

followed the white rabbit

Beiträge: 1 530

Wohnort: Leipzig

Beruf: Informatiker

  • Nachricht senden

11

19.09.2006, 23:08

Das meinte ich mit Grundlagen, C besteht aus diesen ganzen Sachen (wie andere Programmiersprachen auch), aber für C muss man kein großes Vorwissen aus der Objektorientierten Programmierung mitbringen. Wenn du mit C++ weiter machen willst, kannst du ja trotzdem, das C-Buch weiterdurcharbeiten, schaden wirds dir nicht. C ist in C++ noch geblieben, wurde nur erweitert.
localhost,
sweet localhost

12

20.09.2006, 01:00

Zitat

Original von Elessar
Also, dass kenn ich schon durch PHP.

Und dann fragst Du solche Sachen.. *SCNR*
Just because an OS holds 90% of the market doesn`t mean it`s superior.
Remember 90% of all animals are insects.

Wer sucht der findet..

Elessar

Aran Gondor

  • »Elessar« ist männlich
  • »Elessar« ist der Autor dieses Themas

Beiträge: 105

Wohnort: Köln

Beruf: Schüler...

  • Nachricht senden

13

20.09.2006, 07:12

Zitat

Original von chieps

Zitat

Original von Elessar
Also, dass kenn ich schon durch PHP.

Und dann fragst Du solche Sachen.. *SCNR*


lol, soll ich das jetzt persönlich nehmen? :()

Ich hab vorher halt immer nur Zahlen ausgeben lassen, irgendwie bracuhte ich nie ne Textausgabe...


und danke für die Antworten, ich werd mir auch mal C++ angucken.

Gruß Philipp

14

20.09.2006, 14:12

Zitat

Original von Imhotep

Zitat


Original von -=Freaky=-
btw: b++ ... das ++ ist C++ oder nicht? in C müsste das b = b + 1 sein


nein, das ist schon C, es handelt sind dabei um "inkrementieren", was schneller ist als plus 1 zu rechnen. Obwohl ein guter Compiler würde b + 1 sicher zu b++ optmieren


... ich weiß, was in-/dekrementieren ist, ich dachte nur, dass der ++ /-- -operator erst mit C++ eingeführt wurde.

@Elsassar: du solltest auf jeden fall erstmal C "komplett" lernen, wie Imhotep schon sagte, es ist komplett in C++ integriert. außerdem hast du mit C schon sehr gute Grundlagen, denn C++ ist nicht viel anders als C, bis auf die objekt orientierte programmierung mit klassen etc. von der syntax her ähneln sich C und C++ doch sehr stark.

mfg, julian

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »-=Freaky=-« (20.09.2006, 14:14)


Elessar

Aran Gondor

  • »Elessar« ist männlich
  • »Elessar« ist der Autor dieses Themas

Beiträge: 105

Wohnort: Köln

Beruf: Schüler...

  • Nachricht senden

15

20.09.2006, 15:48

OK, danke, werd ich machen...

Gruß

Philipp

Thema bewerten