Evizienter programmieren



  • void rahmen();   //Deklaration
    
    int main()
    {
     //code
     rahmen();  //Aufruf
    }
    
    void rahmen()   //funktion
    {
     //code
    }
    


  • Lyrix schrieb:

    void rahmen();   //Deklaration
    
    int main()
    {
     //code
     rahmen();  //Aufruf
    }
    
    void rahmen()   //funktion
    {
     //code
    }
    

    Ich versteh es irgendwie nicht 😕
    Muss man nicht Variablen ganz am Anfang deklarieren? Und wie ist das genau gemeint(das andere)? Bitte mit etas mehr Kommentar posten. Danke schon mal im Vorraus!



  • Das steht alles, aber auch wirklich ALLES in nem Tutorial....

    also nochmal.

    Zunächst musst du deine Funktionen Deklarieren, das macht man so:

    void funtionsname();
    

    Dann kommt deine Main-Funktion:

    void main()
    {
    //Variablen
    //Quellcode
    
    }
    

    Die Variablen, die du in der Main Funktion deklarierst, sind auch nur in der Main Funktion verwendbar.

    Zum Schluss kommt noch deine Funktion:

    void Funktionsname()
    {
     //Variablen
     //Code
    }
    

    Auch hier handelt es sich um lokale Variablen, die wiederrum nur in der Funktion "Funktionname" verwendet werden koennen....

    Aber les es doch bitte in nem Tut oder Buch nach



  • In der FAQ steht aber, das es verboten ist eine void main zu machen. darf man das jetzt doch? 😕 (Gib mal nen Link zu einen guten Tutorial)





  • c.rackwitz schrieb:

    http://www.pronix.de/pronix-4.html

    funzt nicht...



  • unfug, hat doch grad noch....
    und jetzt immernoch!

    und nein, eine void main() ist nicht gern gesehen und vom standard her verboten.



  • dann mach halt

    int main()
    {
     return 0;
    }
    

    Aber das hat ja nun nicht so ganz was mit dem thema zu tun 😉



  • Kann mal schnell wer meinen Quellcode so editieren das es funzt?



  • verschieb deine rahmenfunktion einfach vor die main() und nicht in die main.



  • void Rahmen(); 
    
    int main()
    {
        int w = 1;
        char x, y;
     //Rand-Zeichen
        float a, b, Ergebniss,ZErgebniss,ZErgebniss2;
        double c, d;
    
        while(w != 0)
        {
    
        Rahmen();   
    
        clrscr();
        textbackground(CYAN);
        textcolor(RED);
        }
    }
    
    void Rahmen()
    {
        int Rahmen;
        char r1=201,r2=205,r3=187,r4=186,r5=200,r6=188,r7=175,r8=174,r9=204,r10=185;
            clrscr();
        gotoxy(25,1);
        cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",r1,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r3);
        gotoxy(25,2);
          for (Rahmen = 2; Rahmen <= 4; Rahmen++)
          {
               gotoxy(25, Rahmen);
               cprintf("%c", r4);
          }
        gotoxy(25,5);
        cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",r9,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r10);
          for (Rahmen = 6; Rahmen <= 24; Rahmen++)
          {
               gotoxy(25, Rahmen);
               cprintf("%c", r4);
          }  
        gotoxy(25,25);
        cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%cSteveKempe%c%c%c",r5,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r7,r8,r2,r6);
          gotoxy(25,2);
          for (Rahmen = 2; Rahmen <= 4; Rahmen++)
            {
                gotoxy(54, Rahmen);
                cprintf("%c", r4);
            }
          for (Rahmen = 6; Rahmen <= 24; Rahmen++)
           {
               gotoxy(54, Rahmen);
               cprintf("%c", r4);
           }
    }
    

    Denke so müsste es nun gehn...



  • Mal kurz Off-Topic:
    Muss man sich bei der Tutorial-Seite registrieren um dort Infos zu bekommen?

    Der Quellcode funzt nicht: Es kommt Call zo Nonfunction!



  • Hast du die Funktionsdeklaration oben auch kopiert?

    Wenn ja kannste mal den genauen Fehler nieder schreiben...



  • Wegen OT:

    www.robsite.de

    Da sind auch viele Tutorials.

    WEnn du lieber nen Buch lesen willst, empfehle ich dir:

    - C von A bis Z
    und/oder
    - Jetzt lerne ich C



  • Gut, danke! Die Seite ist echt stark! Jetzt bräuchte ich nur noch Infos zur OnTopic 😃



  • DSD-Steve schrieb:

    Der Quellcode funzt nicht: Es kommt Call zo Nonfunction!

    Dann hast du wohl falsch abgeschrieben, bei mir geht's.

    Du wirst uns wohl zeigen müssen, was du da produziert hast.



  • void Rahmen(); 
    
    int main() 
    { 
        int w = 1; 
        char x, y; 
     //Rand-Zeichen 
        float a, b, Ergebniss,ZErgebniss,ZErgebniss2; 
        double c, d; 
    
        while(w != 0) 
        { 
    
        Rahmen();   
    
        clrscr(); 
        textbackground(CYAN); 
        textcolor(RED); 
        } 
    } 
    
    void Rahmen() 
    { 
        int Rahmen; 
        char r1=201,r2=205,r3=187,r4=186,r5=200,r6=188,r7=175,r8=174,r9=204,r10=185; 
            clrscr(); 
        gotoxy(25,1); 
        cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",r1,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r3); 
        gotoxy(25,2); 
          for (Rahmen = 2; Rahmen <= 4; Rahmen++) 
          { 
               gotoxy(25, Rahmen); 
               cprintf("%c", r4); 
          } 
        gotoxy(25,5); 
        cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",r9,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r10); 
          for (Rahmen = 6; Rahmen <= 24; Rahmen++) 
          { 
               gotoxy(25, Rahmen); 
               cprintf("%c", r4); 
          }   
        gotoxy(25,25); 
        cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%cSteveKempe%c%c%c",r5,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r2,r7,r8,r2,r6); 
          gotoxy(25,2); 
          for (Rahmen = 2; Rahmen <= 4; Rahmen++) 
            { 
                gotoxy(54, Rahmen); 
                cprintf("%c", r4); 
            } 
          for (Rahmen = 6; Rahmen <= 24; Rahmen++) 
           { 
               gotoxy(54, Rahmen); 
               cprintf("%c", r4); 
           } 
    } 
    
    	int w = 1,Rahmen;
    	char x, y;
    	char r1=201,r2=205,r3=187,r4=186,r5=200,r6=188,r7=175,r8=174,r9=204,r10=185; //Rand-Zeichen
    	float a, b, Ergebniss,ZErgebniss,ZErgebniss2;
    	double c, d;	
    
    	while(w != 0)
    	{
    
    	Rahmen();	
    
    	clrscr();
    	textbackground(CYAN);
    	textcolor(RED);
    	gotoxy(33,1);
    	cputs("\n\nTaschenrechner");
    	gotoxy(33,6);
    	cputs("Grundrechenarten\n");
    	gotoxy(33,7);
    	cputs("(a)Addition\n");
    	gotoxy(33,8);
    	cputs("(s)Subtraktion\n");
    	gotoxy(33,9);
    	cputs("(m)Multiplikation\n");
    	gotoxy(33,10);
    	cputs("(d)Division\n");
    	gotoxy(29,11);
    	cputs("Erweiterte Rechenarten\n");
    	gotoxy(33,12);
    	cputs("(q)Quadratberechnung\n");
    	gotoxy(33,13);
    	cputs("(w)Wurzelberechnung\n");
    	gotoxy(33,14);
    	cputs("(p)Potenzierung\n");
    	gotoxy(33,15);
    	//printf("(pw)potenzwurzelberechnung\n");
    	gotoxy(30,16);
    	cputs("Spezielle Berechnungen\n");
    	gotoxy(33,17);
    	cputs("(1)Sinusberechnung\n");/*
    	gotoxy(33,18);
    	cputs("(2)Cosinusberechnung\n");
    	gotoxy(33,19);
    	cputs("(3)Tangensberechnung\n"); */
    	gotoxy(36,20);
    	cputs("Sonstiges\n");
    	gotoxy(33,21);
    	cputs("(i)Informationen\n");
    	gotoxy(33,22);
    	cputs("(b)Beenden\n");
    	scanf("%c", &x);
    	clrscr();
    


  • Du machst wieder den gleichen Fehler wie oben...

    Jede Funktion muss alleine stehen. So wie du das gemacht hast, haste wieder Code geschrieben, der in keiner Funktion steht...

    Der ganze Quellcode, der unterhalb der Rahmen Funktion steht, muss in die Main Funktion.

    Was du mit den unteren Initialisierungen und Deklaratipnen meinst weiss ich nich... 🙄



  • Ich verzweifle, tu mir BITTE,BITTE,BITTE doch einfach den gefallen und schreibe den Quellcode in meinen Beispiel so wie er sein muss.. BITTE! 😞 😞



  • oO

    Nen bisschen anstrengen solltest du dich schon...


Anmelden zum Antworten