انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: چند پرسش برنامه نویسی  (دفعات بازدید: 4801 بار)

0 کاربر و 7 مهمان درحال مشاهده موضوع.

آفلاین learner:~$

  • Hero Member
  • *
  • ارسال: 816
  • جنسیت : پسر
  • روزی روز گاری در گنو/لینوکس
پاسخ : چند پرسش برنامه نویسی
« پاسخ #30 : 24 شهریور 1402، 09:59 ب‌ظ »
زبان اسمبلی واقعا انعطاف پذیری خوبی داره
البته کمترین انعطاف رو توی زبان‌های برنامه‌نویسی، اسمبلی داره.

در کل، من یادگیری اسمبلی رو پیشنهاد می‌کنم، ولی کاربرد اسمبلی وقتیه که نیاز به دسترسی خاصی در سطح سخت‌افزار دارید که بقیهٔ زبان‌ها اون دسترسی رو بهتون نمیدن.

کدوم برنامه نویسان؟‌و اینکه چه جایگزینی پیشنهاد می دهند؟

اتفاقا وقتی بخواید یک برنامه درست و حسابی و سطح پایین بنویسید اسمبلی حرف اول رو میزنه!! و فکر کنم

منظورشون لینوس توروالدز بود که راستم میگه و شي گرایی واقعا چیزه مزخرفیه!!

آیا آینده برای زبان اسمبلی وجود داره ؟؟ مخصوصا با وجود IOT
لطفا تمام پیغام‌تون رو در یک پست بنویسید، نه سه پست مختلف پشت هم.
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین thmkhtry

  • Hero Member
  • *
  • ارسال: 975
  • جنسیت : پسر
  • Fedora Linux
پاسخ : چند پرسش برنامه نویسی
« پاسخ #31 : 27 شهریور 1402، 12:36 ق‌ظ »
به عنوان نظر شخصی باید بگم که یه ذره با سی میتونم ارتباط برقرار کنم ولی با اسمبلی اصلا.

آفلاین learner:~$

  • Hero Member
  • *
  • ارسال: 816
  • جنسیت : پسر
  • روزی روز گاری در گنو/لینوکس
پاسخ : چند پرسش برنامه نویسی
« پاسخ #32 : 27 شهریور 1402، 10:28 ق‌ظ »
این یک علاقه شخصیه! بر این مبنا نیست که من بگم من ار ربان پی اچ پی خوشم نمیاد و همه بگن آره منم خوشم نمیاد پس نمیریم سمتش :)

مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین learner:~$

  • Hero Member
  • *
  • ارسال: 816
  • جنسیت : پسر
  • روزی روز گاری در گنو/لینوکس
پاسخ : چند پرسش برنامه نویسی
« پاسخ #33 : 30 شهریور 1402، 11:06 ق‌ظ »
دوستان میشه منو در مورد این ارور راهنمایی کنید؟؟ تو سایت خوده گنو هم رفتم و توضیحی که داد در مورد گراف ها بود!
#include <stdio.h>
  #include <stdlib.h>
                                                                                                                                       
  int main(){
      int ran, my;
      char ans = 'y';
      ran = rand();
⚠     while(ans = 'y'){
      printf("gues my number!:");
      scanf("%d", &my);
      if(ran == my){
          printf("it is true\n");
          printf("my number was%d, and your number was%d", ran, my);
      }   
      else{
          printf("\n it's wrong!my rand was %d", ran);
      }   
⚠     printf("do you wanna continue??(y/n):");
      ans = getchar();
  }
      return 0;
      }   

خروجی:
h.c: In function ‘main’:
h.c:18:34: warning: trigraph ??( ignored, use -trigraphs to enable [-Wtrigraphs]
   18 |     printf("do you wanna continue??(y/n):");
      |                                   

مورد دیگه ایی هم که هست تابع  ()rand که یک عدد رندوم درست میکنه؛ برای من عدد تکراری درست میکنه!این طبیعه؟؟ انتظار خیلی بیشتری از این تابع داشتم  :P بقیه زبان های برنامه نویسی هم عدد تکراری درست میکند یا فقط زبان سی و یا یک مشکلی پیش اومده؟؟؟
-----
ادیت :
همین الان یه تغیر کوچیک تو برنامه دادم تا اون ارور رو رفع کنم!ولی خب همش عدد تکراری میده!!

gues my number!:23

 it's wrong!my rand was 1804289383do you wanna continuegues my number!:452

 it's wrong!my rand was 1804289383do you wanna continuegues my number!:1804289383
it is true
my number was1804289383, and your number was1804289383do you wanna continuegues my number!:


یک باگ تویه این برنامه هست!! من حتی وقتی y  رو میزنم برای من مینویسه عدد درسته !! نکته ایی هم که هست اینه که این برنامه باید با حلقه do while  نوشته میشد اما خودم خواستم با این حلقه نوشته بشه.
« آخرین ویرایش: 30 شهریور 1402، 11:12 ق‌ظ توسط learner:~$ »
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین 🇬🇧بریتانیای کبیر🇬🇧

  • High Hero Member
  • *
  • ارسال: 2658
  • جنسیت : پسر
  • GOD SAVE THE KING/QUEEN
پاسخ : چند پرسش برنامه نویسی
« پاسخ #34 : 30 شهریور 1402، 12:08 ب‌ظ »
من نمیدونم چجور عدد تصادفی هست که با هر بار تکرار یک ترتیب داره؟! به منم عدد تو رو داد.
کثیف تر هم میشه کد زد!
« آخرین ویرایش: 30 شهریور 1402، 12:16 ب‌ظ توسط 🇬🇧United Kingdom🇬🇧 »
🇬🇧🏴󠁧󠁢󠁥󠁮󠁧󠁿🏴󠁧󠁢󠁷󠁬󠁳󠁿🏴󠁧󠁢󠁳󠁣󠁴󠁿🇬🇧

آفلاین محمد رضا لامعی

  • Full Member
  • *
  • ارسال: 102
  • جنسیت : پسر
  • همیشه در حال یادگیری
    • سایت شخصی
پاسخ : چند پرسش برنامه نویسی
« پاسخ #35 : 30 شهریور 1402، 12:15 ب‌ظ »
به عنوان نظر شخصی باید بگم که یه ذره با سی میتونم ارتباط برقرار کنم ولی با اسمبلی اصلا.

هر ابزاری رو باید توی جای مناسب خودش استفاده کنی
اسمبلی برای ۹۹.۹۹٪ کار هایی که انجام میشه لازم نیست ولی یادگیریش برای کسی که میخاد یه درک عمیقی داشته باشه خیلی خوبه  :)
a Day Without Learning is a Lost Day

آفلاین learner:~$

  • Hero Member
  • *
  • ارسال: 816
  • جنسیت : پسر
  • روزی روز گاری در گنو/لینوکس
پاسخ : چند پرسش برنامه نویسی
« پاسخ #36 : 30 شهریور 1402، 12:45 ب‌ظ »
من نمیدونم چجور عدد تصادفی هست که با هر بار تکرار یک ترتیب داره؟! به منم عدد تو رو داد.
کثیف تر هم میشه کد زد!
  من خیلی راحت میتونستم کد هایی که تو کتاب هست رو کپی پیست کنم !!! اما اینکار رو نکردم!! حداقل از خلاقیت خودم استفاده کردم و تلاش کزدم   8)
نقل‌قول

هر ابزاری رو باید توی جای مناسب خودش استفاده کنی
اسمبلی برای ۹۹.۹۹٪ کار هایی که انجام میشه لازم نیست ولی یادگیریش برای کسی که میخاد یه درک عمیقی داشته باشه خیلی خوبه 
یادگیری اسمبلی خودش چند بخش داره من که دوست دام تو کامپیوتر و سیستم عامل خودم غرق بشم یا بهتره بگم تو کرنل! و اون سیستم کال ها زیبا رو با چشم های خودم ببینم.
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین َUxmlai-ad

  • Sr. Member
  • *
  • ارسال: 486
  • جنسیت : پسر
  • متنفر از گنو و FSF
پاسخ : چند پرسش برنامه نویسی
« پاسخ #37 : 30 شهریور 1402، 05:49 ب‌ظ »
خب اینکه عادی هست که این جوری بشه.
الان فکر کن چجوری باید یه عدد تصادفی تولید بشه؟ خب باید یه الگوریتم براش در نظر بگیری. فرقی نمی کنه که چی باشه به هر حال تصادفی بودنش اون جوری که فکر می کنی نیست. (به هر حال باید از یه جایی یه عدد جور کنه. به هر حال از هیچی نمی شه)
کامپیوتر برای تولید عدد تصادفی از یه منبع استفاده میکنه که موقع راه اندازی سامانه ایجاد میشه.

حالا اگه نیازه که عدد تولید شده توسط تابع rand تصادفی تر باشه (تصادفی نما تر) میتونی بذر تصادفی عوض کنی. برای این کار از تابع srand استفاده میشه. باید یه مقدار unsigned رو به عنوان آرگومان بهش بدی. (srand و rand هر دو تاشون توی stdlib.h هستن)
یه چیزی مثل زمان فعلی برای seed گزینه جالبی هست.
متنفر از گنو و FSF

آفلاین learner:~$

  • Hero Member
  • *
  • ارسال: 816
  • جنسیت : پسر
  • روزی روز گاری در گنو/لینوکس
پاسخ : چند پرسش برنامه نویسی
« پاسخ #38 : 30 شهریور 1402، 07:16 ب‌ظ »
خب اینکه عادی هست که این جوری بشه.
الان فکر کن چجوری باید یه عدد تصادفی تولید بشه؟ خب باید یه الگوریتم براش در نظر بگیری. فرقی نمی کنه که چی باشه به هر حال تصادفی بودنش اون جوری که فکر می کنی نیست. (به هر حال باید از یه جایی یه عدد جور کنه. به هر حال از هیچی نمی شه)
کامپیوتر برای تولید عدد تصادفی از یه منبع استفاده میکنه که موقع راه اندازی سامانه ایجاد میشه.

حالا اگه نیازه که عدد تولید شده توسط تابع rand تصادفی تر باشه (تصادفی نما تر) میتونی بذر تصادفی عوض کنی. برای این کار از تابع srand استفاده میشه. باید یه مقدار unsigned رو به عنوان آرگومان بهش بدی. (srand و rand هر دو تاشون توی stdlib.h هستن)
یه چیزی مثل زمان فعلی برای seed گزینه جالبی هست.
SEED  چی هست؟  من فکر کردم بعد از هربار اجرا عدد عوض میشه! باید تستتش کنم!!!ا
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین esmaeelE

  • ناظر انجمن
  • *
  • ارسال: 1270
  • جنسیت : پسر
پاسخ : چند پرسش برنامه نویسی
« پاسخ #39 : 31 شهریور 1402، 12:27 ق‌ظ »
SEED  چی هست؟  من فکر کردم بعد از هربار اجرا عدد عوض میشه! باید تستتش کنم!!!ا



آفلاین learner:~$

  • Hero Member
  • *
  • ارسال: 816
  • جنسیت : پسر
  • روزی روز گاری در گنو/لینوکس
پاسخ : چند پرسش برنامه نویسی
« پاسخ #40 : 31 شهریور 1402، 10:36 ق‌ظ »
SEED  چی هست؟  من فکر کردم بعد از هربار اجرا عدد عوض میشه! باید تستتش کنم!!!ا

آخ جون  :D الان میرم
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین learner:~$

  • Hero Member
  • *
  • ارسال: 816
  • جنسیت : پسر
  • روزی روز گاری در گنو/لینوکس
پاسخ : چند پرسش برنامه نویسی
« پاسخ #41 : 13 مهر 1402، 12:57 ب‌ظ »
خب یه ایراد اساسی!
چرا کد زیر کامپایل نمیشه !! من با مشکلاتی که در این برنامه هست کار ندارم ولی  جی سی سی به من ارور میده
کد من :
#include <stdio.h>
#include <math.h>

int main(){
                               
    int a, b, FLAG = 1;
    while(FLAG){
    printf("enter an integer:");
    scanf("%d",&a);
    if(a <= 1){
        printf("give me another number");

        FLAG = 0;                                                                                                                     
    }
    for(b =2; b<=sqrt(a);b++){
        if(a % b == 0)
            printf("not prime!\n");
        else
            printf("it's prime!\n");
    }
    }
    return 0;
}

خطای کامپایلر:
/usr/bin/ld: /tmp/ccw7HJgQ.o: in function `main':
a.c:(.text+0xd7): undefined reference to `sqrt'

با کامند های زیادی کامپایل کردم اما ارور میداد!! تویه stackowerflow  نوشته بود آخر کامندت یدونه  lm-  اضافه کن؛ متاسفانه اونم ارور داد!
خیلی جالبه این کتابخانه وجود داره در  /usr/include اما نمیتونم استفاده کنم!
حتی داکیومنت خود کتابخونه رو هم خوندم یه جاش نوشته بود سازگار با استاندارد ۹۹ و من هم با استاندارد ۹۹ کامپایل کردم که ارور داد!!!
چه کنم؟؟
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین 🇬🇧بریتانیای کبیر🇬🇧

  • High Hero Member
  • *
  • ارسال: 2658
  • جنسیت : پسر
  • GOD SAVE THE KING/QUEEN
پاسخ : چند پرسش برنامه نویسی
« پاسخ #42 : 13 مهر 1402، 02:04 ب‌ظ »
خطاش خطای الحاقگره و باید با lm- درست شه. تو چطور کامپایل کردی؟
برای FLAG هم از define استفاده کن.
gcc -lc -lm main.c
« آخرین ویرایش: 13 مهر 1402، 02:21 ب‌ظ توسط 🇬🇧United Kingdom🇬🇧 »
🇬🇧🏴󠁧󠁢󠁥󠁮󠁧󠁿🏴󠁧󠁢󠁷󠁬󠁳󠁿🏴󠁧󠁢󠁳󠁣󠁴󠁿🇬🇧

آفلاین learner:~$

  • Hero Member
  • *
  • ارسال: 816
  • جنسیت : پسر
  • روزی روز گاری در گنو/لینوکس
پاسخ : چند پرسش برنامه نویسی
« پاسخ #43 : 13 مهر 1402، 02:22 ب‌ظ »
خروجی کامندی که بهم دادی  البته به جای اون  main.c فایل خودم رو قرار دادم
/usr/bin/ld: /tmp/cc7eJct0.o: in function `main':
a.c:(.text+0xd7): undefined reference to `sqrt'
collect2: error: ld returned 1 exit status


هرجور که فکر کنی کامپایل کردم!! ممکنه من کتابخانه  libm  رو نداشته باشم؟؟
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین esmaeelE

  • ناظر انجمن
  • *
  • ارسال: 1270
  • جنسیت : پسر
پاسخ : چند پرسش برنامه نویسی
« پاسخ #44 : 13 مهر 1402، 04:07 ب‌ظ »
نسیه اطلاعات دادید اینطوری به پاسخ نمی‌رسید.
دستور کامپایل را قرار ندادید.
محتویات نشانی که گفتید اونجا math.h هست را ارسال نکردید.

جدا از اینا فکر می‌کنم دستور کامپایل را اشتباه وارد کردید.
gcc run.c -lm
برای من خروجی دستور زیر برای پیدا کردن کتابخانهٔ math اینه
$ find / -name "libm.*" 2>/dev/null
/usr/lib/i386-linux-gnu/libm.so.6
/usr/lib/x86_64-linux-gnu/libm.so.6
/usr/lib/x86_64-linux-gnu/libm.so
/usr/lib/x86_64-linux-gnu/libm.a

این دستور هم نشون می‌ده که کتابخانه‌ای که در سیستم پیدا کردیم gcc می‌تونه باهاش کارکنه

$ gcc -print-search-dirs | grep /usr/lib/x86_64-linux-gnu/ --color

اگه خروجی داشته باشه gcc می‌تونه با پرچم lm- کارکنه.

حالا اگه برای شما اینطوری نیست باید بیشتر بررسی کرد.