اطلاعیه

Collapse
No announcement yet.

سوال در خصوص ارور در کدویژن

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    سوال در خصوص ارور در کدویژن

    سلام
    من برنامه ای را با کدویژن نوشته ام که در ان تابع delayاستفاده شده است ولی هنگام کامپایل کردن برنامه با ارور زیر مواجه می شوم لطفاًمن را راهنمایی کنید؟
    Linker error: the program has no 'main' function
    وهم چنین چگونه تابع delay ودیگر توابع را به برنامه بشناسانم؟

    #2
    پاسخ : سوال در خصوص ارور در کدویژن

    می فرمایند تابع main رو ننوشتی :biggrin:
    برنامه رو بزار تا تصحیح کنیم.
    برای دسترسی به توابع باید ابتدا هدر رو اضافه کنید!
    پیشنهاد می کنم ابتدا به یه کتاب برنامه نویسی سی رجوع کنید.
    موفق باشید
    چرا ناراحتی پاتریک!
    + امروز ی بچه دیدم سرچهارراه گل میفروخت
    - از دیدنش ناراحت شدی؟
    + نه
    پس چی ناراحتت کرده
    + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
    ------------------------------------------------------------------------------------------------------
    تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
    ------------------------------------------------------------------------------------------------------
    محصولات

    دیدگاه


      #3
      پاسخ : سوال در خصوص ارور در کدویژن

      سلام
      بعضی از نسخه های کرک شده کدویژن مشکل دارن و علیرغم اینکه تابع main وجود داره این پیغام داده میشه.
      There is nothing so practical as a good theory. — Kurt Lewin, 1951

      دیدگاه


        #4
        پاسخ : سوال در خصوص ارور در کدویژن

        [center[/center]
        برنامه:ماشین حساب ساده با lcd کاراکتری
        while (1)
        include<mega32.h>
        #include <delay.h>

        #include <stdlib.h>
        #include <math.h>

        #asm
        .equ __lcd_port=0x18
        #endasm
        //#############################################
        int key(void);
        float _Main(void);

        void Mohasebe(void);
        void Alamat(int);
        float Emoji(int);
        //#############################################
        float a = 0 , b = 0 , c = 0 , q , t;
        int i ;
        char y=0 , lcd[25] , z ;
        //#############################################

        while (1){
        _Main();
        }
        }
        //################################################## ###########
        float _Main(void){
        lcd_puts)"id student&quot
        int Loop = 1 ;
        y = key();
        if( y == 15 ){a = 0 ;b = 0 ;c = 0 ;lcd_clear();return 0 ;}
        if( y < 10 ){
        a = (a*10)+y ;
        itoa(y , lcd);
        lcd_puts(lcd);
        delay_ms(50);
        }



        if( y > 9 && y < 16 ){
        if( y == 15 ){a = 0 ;b = 0 ;c = 0 ;lcd_clear();return 0 ;}
        z = y ;
        Alamat(y);
        while(Loop){
        y = key();
        if( y == 15 ){a = 0 ;b = 0 ;c = 0 ;lcd_clear();return 0 ;}
        if( y < 10 ){
        b = (b*10)+y ;
        itoa(y , lcd);
        lcd_puts(lcd);
        delay_ms(50);
        }else if(y == 14){
        lcd_putchar('='
        Mohasebe();
        y = 0 ;
        Loop = 0 ;
        }
        }
        }

        //################################################## ########
        void Mohasebe(void){
        if(z == 10)c = a / b ;
        if(z == 11)c = a * b ;
        if(z == 12)c = a - b ;
        if(z == 13)c = a + b ;
        ftoa(c , 3 , lcd);
        lcd_puts(lcd);
        delay_ms(100);
        }
        //################################################## #######
        float Emoji(int rr){
        q=1;
        for(i=0;i<rr;i++)q = q * 2.71728 ;
        return q;
        }
        //################################################## #######

        //################################################## #######
        void Alamat(int Moji){
        if(Halat == 1){
        if(Moji == 10)lcd_putchar('/&#039 ;
        if(Moji == 11)lcd_putchar('*&#039 ;
        if(Moji == 12)lcd_putchar('-&#039 ;
        if(Moji == 13)lcd_putchar('+&#039 ;
        delay_ms(100);
        }

        }
        //################################################## #######
        int key(void){
        char KEY = 1 ;
        while(KEY){

        PORTD.0 = 1 ;
        PORTD.1 = 0 ;
        PORTD.2 = 0 ;
        PORTD.3 = 0 ;
        if(PIND.4 == 1){return 7 ; KEY = 0;delay_ms(50);}
        if(PIND.5 == 1){return 8 ; KEY = 0;delay_ms(50);}
        if(PIND.6 == 1){return 9 ; KEY = 0;delay_ms(50);}
        if(PIND.7 == 1){return 10; KEY = 0;delay_ms(50);}
        //==========================================
        PORTD.0 = 0 ;
        PORTD.1 = 1 ;
        PORTD.2 = 0 ;
        PORTD.3 = 0 ;
        if(PIND.4 == 1){return 4 ; KEY = 0;}
        if(PIND.5 == 1){return 5 ; KEY = 0;}
        if(PIND.6 == 1){return 6 ; KEY = 0;}
        if(PIND.7 == 1){return 11; KEY = 0;}
        //==========================================
        PORTD.0 = 0 ;
        PORTD.1 = 0 ;
        PORTD.2 = 1 ;
        PORTD.3 = 0 ;
        if(PIND.4 == 1){return 1 ; KEY = 0;}
        if(PIND.5 == 1){return 2 ; KEY = 0;}
        if(PIND.6 == 1){return 3 ; KEY = 0;}
        if(PIND.7 == 1){return 12; KEY = 0;}
        //==========================================
        PORTD.0 = 0 ;
        PORTD.1 = 0 ;
        PORTD.2 = 0 ;
        PORTD.3 = 1 ;
        if(PIND.4 == 1){return 15; KEY = 0;}
        if(PIND.5 == 1){return 0 ; KEY = 0;}
        if(PIND.6 == 1){return 14; KEY = 0;}
        if(PIND.7 == 1){return 13; KEY = 0;}

        //================================================== ===========================

        KEY = 1 ;
        }
        }
        //################################################## ##########


        // Place your code here

        }
        }
        من تابع main را نوشته ام با این حال ارور می گیرد
        هم چنین ار تمام توابع delayای که استفاده کرده ام خطا می گیرد
        چگونه هدر توابع را به برنامه اضافه کنیم؟

        دیدگاه


          #5
          پاسخ : سوال در خصوص ارور در کدویژن

          اوس محمود میشه بگی به چه زبونی نوشتی؟؟؟؟!!!!! :eek:

          ببین عزیز main رو اینجوری نمینویسن "float _Main(void)" .
          بلکه به این شکل هست :
          void main()

          زبان C به کوچیک و بزرگی حروف حساسه . main رو باید با حروف کوچیک و بدون _ بنویسی.

          نکته بعدی اون while(1) اول و
          while (1){
          _Main();
          }
          }

          چیه دیگه ؟؟؟ هیچ برنامه ای نباید خارج از بدنه تابع وجود داشته باشه.

          پیشنهاد میکنم قبل از شروع کمی C رو تو ی کامپیوتر کار کن.

          دیدگاه


            #6
            پاسخ : سوال در خصوص ارور در کدویژن

            سلام
            مطمئنی به زبان c هست؟! oo: oo: oo:
            به هر حال، سعی میکنم بعضی خطاهای دستوری ات رو بگم:
            1- قبل از include اولی علامت شارپ نیست!
            2- عهد از (1)while علامت ها } و در آخر { نذاشتی.
            3- یه تابع به نام key تعریف کردی که خروجی int داره ولی هیچ برنامه ای براش ننوشتی!
            4- زبان سی Case sensitive هست، یعنی به بزرگ و کوچک بودن حروف حساسه. یعنی نوشتن Main غلطه، در ضمن، مین در حالت عادی ()void main هست، یعنی نه خروجی میگیره نه ورودی، حالا اگه شما میخوای براش خروجی float تعریف کنی، باید بنویسی ()float main !
            5- همه ی دستوراتی که میخوای اجرا بشن باید داخل یه main باشن! نه اینکه شما 10 مین اونم تو جاهای مختلف برنامه تعریف کنی!
            6- همه ی هدر ها باید در ابتدای برنامه و قبل از مین تعریف بشن!

            در کل فکر کنم کامپایلر کدویژن بیشتر از این یه دونه اروری که شما میگی ارور داده! شایدم بیچاره هنگ کرده!
            به نظرم یه سر به این تاپیک بزن: http://www.eca.ir/forum2/index.php?topic=44175.0

            دیدگاه


              #7
              پاسخ : سوال در خصوص ارور در کدویژن

              با سپاس وتشکر از شما
              من تغییراتی را که گفته بودید در برنامه انجام دادم وباز هم همین ارور را داد
              برنامه من اکنون به این شکل است
              در صورتی که شما راهنمایی در خصوص نوشتن برنامه ماشین حساب ساده دارید من را رراهنمایی کنید
              #include<mega32.h>
              #include <delay.h
              #include <stdlib.h>
              #include <math.h>

              #asm
              .equ __lcd_port=0x18
              #endasm
              //#############################################
              int key(void);


              void Mohasebe(void);
              void Alamat(int);
              float Emoji(int);
              //#############################################
              float a = 0 , b = 0 , c = 0 , q , t;
              int i ;
              char y=0 , lcd[25] , z ;
              //#############################################


              //################################################## ###########
              void main(){
              Loop = 1 ;
              y = key();
              if( y == 15 ){a = 0 ;b = 0 ;c = 0 ;lcd_clear();return 0 ;}
              if( y < 10 ){
              a = (a*10)+y ;
              itoa(y , lcd);
              lcd_puts(lcd);
              delay_ms(50);
              }



              if( y > 9 && y < 16 ){
              if( y == 15 ){a = 0 ;b = 0 ;c = 0 ;lcd_clear();return 0 ;}
              z = y ;
              Alamat(y);
              while(Loop){
              y = key();
              if( y == 15 ){a = 0 ;b = 0 ;c = 0 ;lcd_clear();return 0 ;}
              if( y < 10 ){
              b = (b*10)+y ;
              itoa(y , lcd);
              lcd_puts(lcd);
              delay_ms(50);
              }else if(y == 14){
              lcd_putchar('='
              Mohasebe();
              y = 0 ;
              Loop = 0 ;
              }
              }
              }

              //################################################## ########
              void Mohasebe(void){
              if(z == 10)c = a / b ;
              if(z == 11)c = a * b ;
              if(z == 12)c = a - b ;
              if(z == 13)c = a + b ;
              ftoa(c , 3 , lcd);
              lcd_puts(lcd);
              delay_ms(100);
              }
              //################################################## #######
              float Emoji(int rr){
              q=1;
              for(i=0;i<rr;i++)q = q * 2.71728 ;
              return q;
              }
              //################################################## #######

              //################################################## #######
              void Alamat(int Moji){
              if(Halat == 1){
              if(Moji == 10)lcd_putchar('/&#039 ;
              if(Moji == 11)lcd_putchar('*&#039 ;
              if(Moji == 12)lcd_putchar('-&#039 ;
              if(Moji == 13)lcd_putchar('+&#039 ;
              delay_ms(100);
              }

              }
              //################################################## #######
              int key(void){
              char KEY = 1 ;
              while(KEY){

              PORTD.0 = 1 ;
              PORTD.1 = 0 ;
              PORTD.2 = 0 ;
              PORTD.3 = 0 ;
              if(PIND.4 == 1){return 7 ; KEY = 0;delay_ms(50);}
              if(PIND.5 == 1){return 8 ; KEY = 0;delay_ms(50);}
              if(PIND.6 == 1){return 9 ; KEY = 0;delay_ms(50);}
              if(PIND.7 == 1){return 10; KEY = 0;delay_ms(50);}
              //==========================================
              PORTD.0 = 0 ;
              PORTD.1 = 1 ;
              PORTD.2 = 0 ;
              PORTD.3 = 0 ;
              if(PIND.4 == 1){return 4 ; KEY = 0;}
              if(PIND.5 == 1){return 5 ; KEY = 0;}
              if(PIND.6 == 1){return 6 ; KEY = 0;}
              if(PIND.7 == 1){return 11; KEY = 0;}
              //==========================================
              PORTD.0 = 0 ;
              PORTD.1 = 0 ;
              PORTD.2 = 1 ;
              PORTD.3 = 0 ;
              if(PIND.4 == 1){return 1 ; KEY = 0;}
              if(PIND.5 == 1){return 2 ; KEY = 0;}
              if(PIND.6 == 1){return 3 ; KEY = 0;}
              if(PIND.7 == 1){return 12; KEY = 0;}
              //==========================================
              PORTD.0 = 0 ;
              PORTD.1 = 0 ;
              PORTD.2 = 0 ;
              PORTD.3 = 1 ;
              if(PIND.4 == 1){return 15; KEY = 0;}
              if(PIND.5 == 1){return 0 ; KEY = 0;}
              if(PIND.6 == 1){return 14; KEY = 0;}
              if(PIND.7 == 1){return 13; KEY = 0;}

              //================================================== ===========================

              KEY = 1 ;
              }
              }
              //################################################## ##########


              // Place your code here

              }
              }

              دیدگاه


                #8
                پاسخ : سوال در خصوص ارور در کدویژن

                لطفا چپ چین بزار - البته بهتره خود سورس رو پ کن

                if( y == 15 ){a = 0 ;b = 0 ;c = 0 ;lcd_clear();return 0 ;
                دوست عزیز return 0 اضافه هستش (توی همشون-منظورم آخرشرط هاس)

                اصلا بهینه نیس - خیلی سنگین نوشتی میتونست ساده تر باشه
                در ضمن سعی کن در هر سطر یک دستور بنویسی چون کدویژن شعورش کمه و تو کامپایل گاهی اشتباه میکنه

                تو اینترنت زیاد هستش چرا دوس داری چرخ رو دوباره اختراع کنی
                گذشت خصلت مردان است

                دیدگاه

                لطفا صبر کنید...
                X