Struktogramm



  • http://www.bilder-hochladen.net/files/csny-2-jpg.html

    Das ganze müsste dnan so aussehn? Falls was fehlt oder falsch ist bitte sagen..



  • So wie ich wiki verstehe gehört das typedef da nicht rein. Außerdem "Eingabe des Durchmessers ...." auch nicht. Gleichheitszeichen bedeuten Gleichheit, nicht Zuweisung im Diagramm. Also musst du z:=8 schreiben statt z = 8. Dieses i=0; i<8; i++ funktioniert auch nicht. Das muss so hier aussehen: http://upload.wikimedia.org/wikipedia/commons/9/9d/Zaehlschleife.png
    Halte dich einfach an die Wikivorgaben ( http://de.wikipedia.org/wiki/Struktogramm ), dann sollte das schon passen.



  • Okay, kommt nur das typedef nicht rein oder auch die Tabelle mit den Werten?
    Und ist die break Anweisung so richtig gelöst?
    Und was kommt anstattdessen rein für "Eingabe des Durchmessers"?



  • Nur das typedef kommt weg, die Werte müssen stehen bleiben. Prinzipiell muss alles was C-spezifisch ist draußen bleiben und alles was in jeder Programmiersprache drin sein muss drin sein. Wahrscheinlich solltest du statt einer Tabelle Einzelvariablen hinschreiben.

    Das Beispiel bei wiki hat garnichts für die Eingabe. Vielleicht ist auch nur wiki falsch wer weiß. Hast du keine Referenz bekommen wie ein Struktogramm auszusehen hat?

    Bei deinem break scheint das Ziel zu fehlen. Also wohin gesprungen wird. Wahrscheinlich solltest du in die Box mit dem |< noch Ausgaben schreiben, damit klar ist, dass er nach Ausgaben springt.

    Wenn ihr eine andere Definition für Struktogramm als wiki habt ist das übrigens alles Quatsch was ich geschrieben habe.



  • Wir haben zwar eine kleine Referenz aber da steht rein garnichts drin.. nichtmal alle Teile eines Struktogramms..



  • So ich habe das ganze nochmal etwas umgebaut:

    http://www.bilder-hochladen.net/files/csny-3-jpg-nb.html

    Die Frage wäre allerdings weiterhin was mache ich mit den struct sachen - das steht nirgendwo erklärt..



  • checkner schrieb:

    Die Frage wäre allerdings weiterhin was mache ich mit den struct sachen - das steht nirgendwo erklärt..

    so wie's aussieht, einfach ein kästchen ganz oben drüber: http://upload.wikimedia.org/wikipedia/commons/d/d0/StruktErweitert.png
    🙂



  • Okay..

    Hab jetzt noch ne andere Frage udn zwar hab ich versucht ein "Programm beenden J/N" einzubauen, allerdings sagt er mir jetzt bei folgendem Programm das "exit" ein nichtdeklrarierter Bezeichner ist

    // Suchen in Tabelle DIN1449 (lang)
    // Datum: 26.12.2009
    
    #include<stdio.h>
    #include<ctype.h>
    
    void exitprog()
    {
      printf("Wollen Sie das Programm Beenden(J/N)? > ");
    
      if( tolower( getchar() ) == 'j' )
    	exit( 0 );
    
      return;
    }
    
    // Hauptprogramm
    void main()
    {
    
    	while( 1 )
    	{
    
    	/*Definition der verwendeten Variablen mit Datentyp*/
    	int i, d;
    	int z=0;
    
    	/*Deklaration des structs zeileDIN1449*/
    	typedef struct
    	{
    		int d1; // Variable für Durchmesser d1
    		int l1; // Variable für Länge l1
    		double nt; // Variable für Nuttiefe
    		char d2[4]; // Datenfeld für Innengewinde d2
    	} zeileDIN1449;
    
    	/*Definition und Initialisierung der tabelle DIN1449*/
    	zeileDIN1449 tabelleDIN1449[9]
    	={
    		{20, 36, 3.4, "m6"},
    		{25, 42, 4.1, "m8"},
    		{30, 58, 4.5,"m10"},
    		{40, 82, 7.1,"m12"},
    		{50, 82, 7.1,"m16"},
    		{60,105, 8.6,"m20"},
    		{70,105, 9.6,"m24"},
    		{80,130,10.8,"m30"},
    		{90,130,12.3,"m30"},
    	};
    
    	// Ausgabe der Programminformationen, Autor und Matrikelnummer
    	printf("\n\n**********************************************\n");
    	printf("*       Suche in Tabelle DIN1449 (lang)      *\n");
    	printf("**********************************************\n\n");
    
    	// Fußgesteuerte Schleife zur Eingabe des Durchmessers
    	do
    	{
    		printf("\n\nBitte geben Sie einen Durchmesser zwischen 20 und 90 ein!\n\n");
    
    		// Aufforderung zur Eingabe des Durchmessers
    		printf("Bitte Durchmesser eingeben: ");
    		// den eingegebenen Wert als Ganzzahl (Integer) in die Variable "d" schreiben
    		scanf("%i",&d);
    	}
    	// läuft solange d < 20 oder d > 90 ist
    	while(d < 20 || d > 90);
    
    	// Wenn d = 90 ist, dann ist z = 8
    	if (d==90)
    		z=8;
    
    	// Endlosschleife 
    	for(i=0; i<8; i++)
    	{
    
    		// Wenn diese Bedingung erfüllt ist..
    		if(tabelleDIN1449[i].d1 <= d && d < tabelleDIN1449[i+1].d1)
    		{
    			// ..wird i, z zugewiesen
    			z=i;
    			// Eintrag wurde gefunden, Schleife wird mit dem break-Befehl beendet
    			break;
    
    		} 
    	}
    
    	// Ausgabe des eingegebenen Durchmessers
    	printf("\nDie Daten fuer das Wellenende mit dem Durchmesser d1 = %i:\n\n",d);
    	// Ausgabe der passenden Werte, zu dem eingegebenen Durchmessers, aus der Tabelle
    	printf("Laenge l1 = %i \nNuttiefe = %.1f \nInnengewinde d2 = %s\n\n", tabelleDIN1449[z].l1, 
    				tabelleDIN1449[z].nt, tabelleDIN1449[z].d2);
    
    	exitprog();
    
    	}
    }
    // Programmende
    


  • exit ist in der stdlib deklariert, du musst ein #include <stdlib.h> einbauen.



  • ok danke funktioniert 🙂


Anmelden zum Antworten