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

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

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


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: نزدیکترین زبان برنامه نویسی به زبان علم؟  (دفعات بازدید: 26926 بار)

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

آفلاین کیان

  • High Hero Member
  • *
  • ارسال: 2338
  • جنسیت : پسر
ببخشید پاسکال چه زبانیه؟ نسبت به گزینه به C‌ و c++ ارزشی نداره که اسمی ازش نبردید؟ از پایتون و Go‌ هم صحبتی نشد.

این لینک رو برانداز کنید: http://en.wikipedia.org/wiki/List_of_programming_languages_by_category
باورم نمیشد اینقدر زبان داریم.

نقل‌قول
زبان های Functional نزدیک ترین منطق فکری رو به علوم ریاضایت دارن. یکی از اون ها رو یاد بگیر.
متیکا؟ http://amath.colorado.edu/computing/mmm/funcproc.html خیلی قیمتش بالاست  ](*,)
زبان J؟ http://www.cs.trinity.edu/~jhowland/math-talk/functional1/
فانکشنالها خیلی زیادن http://en.wikipedia.org/wiki/Category:Functional_languages کدوم یکی؟
ماکسیما به پای متمتیکا میرسه؟

اگر خواستی R کار کنی مطمن شو که تمام چیز های که در آینده لازم داری دارد.

اگر رشته آمار باشی که هیچ شکی نیست  R  همه نیازهاتو بر طرف می کند.
رشته ریاضی ام. تحلیلی بیشتر سروکار داریم تا عددی. قصد دارم برای ارشد برم گرایش جبر
(فعلا از صحبتهاتون به اینجا رسیدم که روی R و C کار کنم)

دوستان معمولا به این بی‌محلی میکنن:

http://www.sagemath.org
تو لینک زیر نه اسم sage هست نه اسم maxima نه octave ‌و نه scilab. ولی اسم matlab و mathematica‌ اومده ???
http://en.wikipedia.org/wiki/List_of_programming_languages
« آخرین ویرایش: 13 دی 1391، 12:41 ب‌ظ توسط کیان »

آفلاین alend

  • High Hero Member
  • *
  • ارسال: 1319
اگر خواستی R کار کنی مطمن شو که تمام چیز های که در آینده لازم داری دارد.

اگر رشته آمار باشی که هیچ شکی نیست  R  همه نیازهاتو بر طرف می کند.
رشته ریاضی ام. تحلیلی بیشتر سروکار داریم تا عددی

من از رشته ریاضی زیاد اطلاعی ندارم.

آفلاین مجتبی باغبان

  • Hero Member
  • *
  • ارسال: 780
  • جنسیت : پسر
من خودم ریاضی کاربردی می‌خونم یعنی می‌خوندم و اگه بخوام الگوریتم‌های
انالیز عددی یا تحقیق در عملیات رو پیاده‌سازی کنم این کار رو با c++ انجام میدم.
هر چند که الگوریتمی رو که واسه پایان نامم بود از اونجا که توش از الگوریتم یه مقاله دیگه هم استفاده شده بود که نویسنده مقاله اون رو با فرترن نوشته بود منم مجبور شدم  بقیه الگوریتم رو با فرترن بنویسم. ولی در حالت کلی برای پیاده‌سازی الگوریتم از ابتدا  C++ رو ترجیح میدم ولی در صورتی که بخوام از توابعی که از قبل پیاده‌سازی شده فقط استفاده کنم رو به اکتاو یا سایلب یا ماکسیما می‌آرم. با R هم تا حالا کار نکردم.

آفلاین مجتبی باغبان

  • Hero Member
  • *
  • ارسال: 780
  • جنسیت : پسر
نقل قول از سلمان‌العلما شیرازی:
نقل‌قول
برای اینکه ببینیم چه زبان بیشتر از همه کاربرد داره باید بریم ببینیم که نرم‌افزارهای بزرگ (تو هر زمینه) با چی نوشته شدن. موتور محاسباتی (analysis engine) تمام نرم‌افزارهای محاسباتی غول دنیا که بررسی کردم، یا سی بوده، یا سی++ یا فورترن.

آفلاین AmirrezaGhaderi

  • Jr. Member
  • *
  • ارسال: 90
  • جنسیت : پسر
    • حساب تویتر من
با چیزهایی که خودت داری میگی، من برداشتم از حرفات اینه:
- یه زبان می خوای که توی کار با اعداد خوب باشه ---> (همه ی زبان ها اینطوری هستن!)
- زبانت قراره تو درسای دانشگاهیت کمکت کنه، نه یه پروژه برای مراکز نظامی امریکا! ---> (پس هرچه ساده تر بهتر)
- زبانت باید آسون باشه که راحت یاد بگیریش چون خیلی وقت نداری. ---> (زبان های دینامیک)
- موقع کار با زبان بتونی به الگوریتم توجه کنی، نه به خود زبان. ---> (زبان های دینامیک... c و ++c و java و go و این ها رو بیخیال شو)
- زبانت باید اجتماع بزرگی داشته باشه که اگه سوالی چیزی داشتی لنگ جواب نمونی (PHP, RUBY, PYTHON)
- زبانت در حدی باشه که برای کارهای روزمره (به غیر ریاضی) هم به دردت بخوره. ---> (فقط از روی تجربه ی شخصی : Python)

واقعا می خواستی کار ریاضی با C انجام بدی؟ یه محاسبه ی ۴ خطی بخوای حل کنی شونصد جا باید با حافظه و پوینتر
ها سر و کله بزنی... اینجوری تقریبا ۹۹٪ باگ هات مربوط میشه به ساختارهای خود زبان، نه به غلط بودن احتمالی الگوریتمت.

یه زبان ساده مثل Python‌ رو یاد بگیر که بتونی روی الگوریتمت تمرکز کنی. توکه نمی خوای برای شرکت های بزرگ
برنامه بنویسی، برای کارهای شخصی خودت میخوای. Python‌ هم کلی برات زیادیه. تازه پایتون پکیج Numpy رو هم داره.
یه سرچ کوچیک بزنی میفهمی که این پکیج توی کارهای ریاضی حرف نداره (حتی بین زبان های دیگه).

کلا اینکه زیاد خودت رو خسته نکن، سعی کن اونی که از همه آسون تره رو یاد بگیری.

آفلاین alend

  • High Hero Member
  • *
  • ارسال: 1319
با چیزهایی که خودت داری میگی، من برداشتم از حرفات اینه:
- یه زبان می خوای که توی کار با اعداد خوب باشه ---> (همه ی زبان ها اینطوری هستن!)
- زبانت قراره تو درسای دانشگاهیت کمکت کنه، نه یه پروژه برای مراکز نظامی امریکا! ---> (پس هرچه ساده تر بهتر)
- زبانت باید آسون باشه که راحت یاد بگیریش چون خیلی وقت نداری. ---> (زبان های دینامیک)
- موقع کار با زبان بتونی به الگوریتم توجه کنی، نه به خود زبان. ---> (زبان های دینامیک... c و ++c و java و go و این ها رو بیخیال شو)
- زبانت باید اجتماع بزرگی داشته باشه که اگه سوالی چیزی داشتی لنگ جواب نمونی (PHP, RUBY, PYTHON)
- زبانت در حدی باشه که برای کارهای روزمره (به غیر ریاضی) هم به دردت بخوره. ---> (فقط از روی تجربه ی شخصی : Python)

واقعا می خواستی کار ریاضی با C انجام بدی؟ یه محاسبه ی ۴ خطی بخوای حل کنی شونصد جا باید با حافظه و پوینتر
ها سر و کله بزنی... اینجوری تقریبا ۹۹٪ باگ هات مربوط میشه به ساختارهای خود زبان، نه به غلط بودن احتمالی الگوریتمت.

یه زبان ساده مثل Python‌ رو یاد بگیر که بتونی روی الگوریتمت تمرکز کنی. توکه نمی خوای برای شرکت های بزرگ
برنامه بنویسی، برای کارهای شخصی خودت میخوای. Python‌ هم کلی برات زیادیه. تازه پایتون پکیج Numpy رو هم داره.
یه سرچ کوچیک بزنی میفهمی که این پکیج توی کارهای ریاضی حرف نداره (حتی بین زبان های دیگه).

کلا اینکه زیاد خودت رو خسته نکن، سعی کن اونی که از همه آسون تره رو یاد بگیری.


فقط یک مورد مهم است، آخرین محدودیت که با هر زبان برنامه نویسی با اون روبرو میشی سرعت انجام مخاسبات است. python زبان خوبی است در صورتی که سرعت محاسبات و حافظه مورد استفاده برات مهم نباشد.
من با basic شروع کردم بعد pascal، C#, perl و در نهایت C/C++ به علاوه R همه نیاز هامو برطرف کرد. اگر الگوریتمی قبلا نوشته شده باشد که خوب می شود ۱ یا ۲ خط R اگر الگوریتم نوشته نشده باشد یک    package برای R با C/C++ می نویسم. الیته یک محدودیت R برای داده های حجیم محدودیت حافظه است.
معمولا اول با اسکریپت BASH اول یک آنالیز اولیه انجام می دم بعد آنالیز نهایی را با R انجام می دهم.

حالا چرا اینها رو گفتم!
اگر من روز اول مسیر درست رو می دونستم وقتم صرف pascal، C#, perl نمی کردم.
من از رشته ریاضی اطلاع ندارم ولی شاید بهتر باشه از کسی اطلاعات کامل رو بگیری که این مسیر رو طی کرده و الان راضی است.
بسته به علاقت مقالاتی مرتبط با رشته ات رو که چاپ شده پیدا کن ببین که نرم افزارهایی که جهت آنالیز دادها و توسعه الکوریتم بیشتر استفاده شده چی هستند.
 
براساس تجربه شخصی اگر الگریتمی کند باشد و جدید انو بایک زبان مثل C یا fortran می نویسند. معمولا اول الگوریتم با یک زبان سطح بالا می نویسند و برسی می کنند که آیا جواب می دهد با نه اگر جواب داد انو را با یک زبان می نوسند که حداکثر سرعت اجرا را داشته باشد.
« آخرین ویرایش: 13 دی 1391، 06:39 ب‌ظ توسط alend »

آفلاین mrmrn

  • High Hero Member
  • *
  • ارسال: 1490
  • جنسیت : پسر
  • آقا مرتضی
با چیزهایی که خودت داری میگی، من برداشتم از حرفات اینه:
- یه زبان می خوای که توی کار با اعداد خوب باشه ---> (همه ی زبان ها اینطوری هستن!)
- زبانت قراره تو درسای دانشگاهیت کمکت کنه، نه یه پروژه برای مراکز نظامی امریکا! ---> (پس هرچه ساده تر بهتر)
- زبانت باید آسون باشه که راحت یاد بگیریش چون خیلی وقت نداری. ---> (زبان های دینامیک)
- موقع کار با زبان بتونی به الگوریتم توجه کنی، نه به خود زبان. ---> (زبان های دینامیک... c و ++c و java و go و این ها رو بیخیال شو)
- زبانت باید اجتماع بزرگی داشته باشه که اگه سوالی چیزی داشتی لنگ جواب نمونی (PHP, RUBY, PYTHON)
- زبانت در حدی باشه که برای کارهای روزمره (به غیر ریاضی) هم به دردت بخوره. ---> (فقط از روی تجربه ی شخصی : Python)

واقعا می خواستی کار ریاضی با C انجام بدی؟ یه محاسبه ی ۴ خطی بخوای حل کنی شونصد جا باید با حافظه و پوینتر
ها سر و کله بزنی... اینجوری تقریبا ۹۹٪ باگ هات مربوط میشه به ساختارهای خود زبان، نه به غلط بودن احتمالی الگوریتمت.

یه زبان ساده مثل Python‌ رو یاد بگیر که بتونی روی الگوریتمت تمرکز کنی. توکه نمی خوای برای شرکت های بزرگ
برنامه بنویسی، برای کارهای شخصی خودت میخوای. Python‌ هم کلی برات زیادیه. تازه پایتون پکیج Numpy رو هم داره.
یه سرچ کوچیک بزنی میفهمی که این پکیج توی کارهای ریاضی حرف نداره (حتی بین زبان های دیگه).

کلا اینکه زیاد خودت رو خسته نکن، سعی کن اونی که از همه آسون تره رو یاد بگیری.
بسیار عالی بود.+۱۰
حالا کدوم از همه راحت تره؟ پایتون؟
واینکه میشه در مورد اون numpy بیشتر بگین؟
--- کسی با sage کار نکرده؟شنیدم شبیه پایتونه.
پدرم به رحمت خدا رفتن. شادی روحش صلوات.

آفلاین AmirrezaGhaderi

  • Jr. Member
  • *
  • ارسال: 90
  • جنسیت : پسر
    • حساب تویتر من
واینکه میشه در مورد اون numpy بیشتر بگین؟

Numpy یکی از پکیج های معروف پایتونه، که شامل توابع ریاضی و امکاناتی هست که در محاسبات
عددی به درد می خورن. و چون کدهای اصلیش با C‌ نوشته شدن پکیج بسیار پر سرعتی هست. در واقع
نه تنها در پایتون معروفه، کلا بین بقیه زبان های برنامه نویسی هم اسم و رسم داره. مثل
Rails که با اینکه برای Ruby هست اما همه میشناسنش تو هر زبانی...

آفلاین doomhammer65ir

  • High Hero Member
  • *
  • ارسال: 1572
  • جنسیت : پسر
    • IRAN Backup
شما چند نمونه ساده از الگوریتم هایی که میخوای همانند سازی کنی رو بگو
دوستان هم میتونن نمونه کد بهت بدن
هم بگن کدوم زبون برای اینکار بهتره
هم میتونی ببینی چه شکلی تو هر زبون نوشته میشه

آفلاین mrmrn

  • High Hero Member
  • *
  • ارسال: 1490
  • جنسیت : پسر
  • آقا مرتضی
 من یه سری ماتریس میخوام قطری کنم.
این کار رو تو فرترن و در ویندزد یا با کتابخانه های IMSL که همراه با compaq visual fortran ارائه میشن انجام میدن یا با زیرروالهای آماده ای که تو numerical recipies هست!
از اولیش که نمیشه استفاده کرد.
دومیش رو هم با کمی ویرایش میشه تو لینوکس استفاده کرد.
حالا ما ازچی استفاده کنیم تو لینوکس برامون بهتره؟
من فرترن بلدم.البته sage و numpy رو تعریفشون رو شنیدم.
الان این numpy یجوری انگار با یه دستور میزنه قطری میکنه بی دردسر مثل همون compaq fortran دیگه؟آره؟
پدرم به رحمت خدا رفتن. شادی روحش صلوات.

آفلاین doomhammer65ir

  • High Hero Member
  • *
  • ارسال: 1572
  • جنسیت : پسر
    • IRAN Backup
حالا یکی برای ما بگه قطری کردن یعنی چی ؟

آفلاین کیان

  • High Hero Member
  • *
  • ارسال: 2338
  • جنسیت : پسر
حالا یکی برای ما بگه قطری کردن یعنی چی ؟
صفر کردن همه آرایه های ماتریس مربعی بجز قطر اصلی

آفلاین سید مسعود امامیان

  • Hero Member
  • *
  • ارسال: 951
حالا یکی برای ما بگه قطری کردن یعنی چی ؟
صفر کردن همه آرایه های ماتریس مربعی بجز قطر اصلی

باید تمام مقادیر رو کاربر وارد کنه بعدش به غیراز قطر اصلی همه رو صفر کنه یا کاربر فقط مقادیر روی
قطر اصلی رو باید وارد کنه ؟

ساده ترین کد کلی همین !‌ فقط باید با توجه به دستور (if(i==j که مقادیر رو روی قطر اصلی مشخص می کنن را بکار ببریم!

مثلا :

#include <iostream>

using namespace std;

int main()
{
    int a[5][5];

    cout << "Plz enter Nbr : \n" ;
    int n , d = 0;
    cin >> n ;

    for (int i = 1 ; i <= n ; i++)
    {
        for(int j=1 ; j<=n ; j++)

            cin >>a[i][j] ;
    }

    for(int i=1 ; i<=n ; i++)
    {
        for (int j = 1 ; j<=n ; j++ )
        {
            cout << a[i][j] << " " ;

        }
        cout << "\n" ;
    }
    cout << d ;
    cin.get();

    return 0;
}
به عمل کار برآید     به سخندانی نیست . . .

آفلاین doomhammer65ir

  • High Hero Member
  • *
  • ارسال: 1572
  • جنسیت : پسر
    • IRAN Backup
یا همین نمونه با سی پلاس
کاربر باید در پرونده ی input.txt در خط نخست اندازه ی ماتریس مربعی رو وارد کنه
سپس در خط های پس از اون هر رج ( سطر ) رو به ترتیب وارد کنه . هر درایه باید با tab از درایه ی پیشین جدا شه  . سطر ها با enter از سطر پیشین  جدا شه . برآیند ( خروجی ) در output.txt انبار خواهد شد .

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <vector>
#include <cctype>
using namespace std;

int main()
{
  fstream input_handle ;
  input_handle.open ("./input.txt",fstream::in);
 
  string temp_str;
 
  if(input_handle.is_open ())
    {
      getline(input_handle,temp_str);
    }
 
  int size_matrix;
  stringstream temp_ss(temp_str);
  temp_ss>>size_matrix;
 
  vector< vector <int> > matrix (size_matrix); // two_dimensional vector . vector is dynamic array ;
 
  for(int i=0;i<size_matrix;i++)
    {
      getline(input_handle,temp_str);
      istringstream iss(temp_str);
     
      for(int j=0  ;j<size_matrix && iss >> temp_str ;j++)
        {
          stringstream temp_ss(temp_str);
          int temp_int;
          temp_ss >> temp_int;
          matrix[i][j]=temp_int ;
        }
    }
 
  input_handle.close();
 
  for(int i=0;i<size_matrix;i++) // inja qotri mikoneh.
    {
      for(int j=0;j<size_matrix;j++)
        {
          if(i!=j)
            {
              matrix[i][j]=0;
            }
        }
    }
  fstream output_handle;
  output_handle.open ("./output.txt",fstream::out);
 
  output_handle <<"size of Matrix="<<size_matrix<<endl;
  for(int i=0;i<size_matrix;i++)
    {
      for (int j=0;j<size_matrix;j++)
        {
          output_handle <<matrix[i][j]<<"\t";
        }
      output_handle<<endl;
    }
  output_handle.close ();
  return 0;
}


تنها چیزی که در این کد کمی سخت هست کار با فایل ها و تبدیل یک خط خوانده شده به چند عدد جداگانه هستش . یکبار که این کار رو انجام بدید دستتون میاد .
کل کاری که میخواید رو اینجا انجام میده :
for(int i=0;i<size_matrix;i++) 
    {
      for(int j=0;j<size_matrix;j++)
        {
          if(i!=j)
            {
              matrix[i][j]=0;
            }
        }
    }
« آخرین ویرایش: 14 دی 1391، 03:31 ق‌ظ توسط doomhammer65ir »

آفلاین alend

  • High Hero Member
  • *
  • ارسال: 1319
این پست در پست های آتی ویرایش شد.
« آخرین ویرایش: 14 دی 1391، 10:34 ق‌ظ توسط alend »