نمایش نتایج 1 تا 14 از 14

نام تاپیک: الگوریتم های موازی باmulti pascal

  1. #1

    Question الگوریتم های موازی باmulti pascal

    سلام دوستان
    من اینجا جستجو هم کردم ولی چیزی پیدا نکردم
    من باید الگوریتم های آرایشگر خواننده نویسنده و تولید کننده مصرف کننده رو با multi pascal بنویسم برای درس همروند
    یه کم multi pascal بلدم ولی اصلا نمی فهمم این الگوریتم ها رو توی این زبان چه جوری پیاده کنم
    اگه کسی نمونه ای داره یا بتونه راهنمایی کنه ممنون می شم.

  2. #2
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    شاید بتوانید از این تاپیک ایده بگیرید
    موفق باشید
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  3. #3
    دوست عزیز راهنمایی دوستمان می تواند راهگشای شما باشد ولی اگر کد این سوال را دقیقا با مالتی پاسکال می خواهید با ایمیل من تماس بگیرید تا خدمتتون عرض کنم که چه کارهایی می توانید بکنید و اگر وقت داشتم و لازم شد در همین تاپیک در باره ی این موضوع صحبت می کنم.
    یه سوال هم از مدیر این بخش دارم:
    ایجاد چنین تاپیکی مورد نداره؟ آخه موضوع پروژه ی دانشجویی در میان است. هر چند می توان مساله را آموزش نرم زبان قدیمی و صرفا آموزشی مالتی پاسکال دانست!!!
    ------------------------------------------
    ایمیل
    e.mollaahmadi@yahoo.co.uk

    بلاگ :
    نوشته های قبل از کنکور ارشد

  4. #4
    دوست عزیز این تاپیک رو قبلا دیدم
    ولی اینا دقیقا همون الگوریتم های کتابه که یه کم syntaxاونا عوض شده
    فکر کنم با multi pascal تفاوت داشته باشه.
    به هر حال ممنون

  5. #5
    آقای employ
    من براتون ایمیل زدم.لطف کنید اگه می تونید زودتر راهنماییم کنید
    آخه من سه شنبه امتحان دارم

  6. #6
    دوست عزیز کامپایلری که استفاده می کنی همینه دیگه؟

    کامپایلر

  7. #7
    یه سری برنامه به زبان مالتی پاسکال هم همراه کامپایلر هست شاید به درد بخوره!

    اگر کامپایلرتون جدید تره قرار بده تا همه استفاده کنند هر چند بعید می دونم.

    اگر تونستی خودت کد را بنویسی که هیچ (آسونه ) اگه نشد مشکلاتت را بپرس.

  8. #8
    بله کامپایلرم همینه ولی من تحت ویندوزش رو استفاده می کنم.راحت تره.
    من برای تولید کننده مصرف کننده با بافر نامحدود یه چیزی نوشتم.البته از لحاظsyntax چکش نکردم هنوز.

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



    Program Producer_Concumer;

    type
    semaphor:channel of integer;

    var
    s,delay:semaphor;

    procedure wait(var sem:semaphor)
    var in:integer;
    begin
    in:= sem;
    end;
    procedure signal(var sem:semaphor)
    begin
    sem:=1;
    end;
    proceure producer;
    begin
    while 1 do
    begin
    product x;
    wait(s);
    n:=n+1;
    buffer[n]:=x;
    if n=1 then signal(delay);
    signal(s);
    end;
    end;

    proceure consumer;
    var m:integer;
    begin
    wait(delay)
    while 1 do
    begin
    wait(s);
    x:= buffer[n];
    n:=n-1;
    m:=n;
    signal(s);
    consume x;
    if m=0 then wait(delay);
    end;
    end;
    begin
    s:=1;
    n:=0;
    fork producer;
    fork concumer;
    end.

  9. #9
    دوست عزیز اگر ممکنه همون کامپایلری را که استفاده می کنید قرار دهید.

  10. #10
    من این برنامه رو هنوز توی محیط ننوشتم.
    فعلا دستی نوشتم.
    تا همین حدش رو ببینید کجاش اشکال داره
    ممنون میشم.

  11. #11
    این چیزی که شما نوشته اید شبه کد هست پیشنهاد می کنم از آنجایی که این برنامه بزرگ نیست مستقیما کد برای آن بنویسید و البته آن را کامپایل کنید واین که اصرار دارم که کامپایلرتون را قرار دهید به این خاطر است که احتمالا کامپایلر سمافور داره و نیاز نیست اون را پیاده کنید( البته ممکن هم هست که نداشته باشه) من کدی را که به زبان C++‎ نوشته شده قرار می دم تا از اون ایده بگیرید ولی باز هم تاکید می کنم که حتما کامپایلرتون را قرار دهید تا بقیه اون را استفاده کنند.
    این کد در لینوکس نوشته شده و کامپایل هم شده و مشکلی نداشته است.

    5)	#ifdef HAVE_CONFIG_H
    6) #include <config.h>
    7) #endif
    8)
    9) #include <iostream>
    10) #include <cstdlib>
    11) #include <pthread.h>
    12) #include <stdio.h>
    13) #include <malloc.h>
    14) #include <pthread.h>
    15) #include <semaphore.h>
    16)
    17)
    18) using namespace std;
    19)
    20)
    21) int counter;
    22) #define MaxSize 200
    23) int count_thread;
    24)
    25) char arr[MaxSize] ;
    26) sem_t empty , full;
    27) pthread_mutex_t l = PTHREAD_MUTEX_INITIALIZER;
    28)
    29) int random_range(unsigned const low, unsigned const high)
    30) {
    31) unsigned const range = high - low + 1;
    32) return low + (int)(((double)range)*rand() / (RAND_MAX + 1.0));
    33) }
    34)
    35) void* produce (void* unused)
    36) {
    37) //srand(time(NULL));
    38) pthread_mutex_lock (&l);
    39)
    40) int r = random_range(0, 25) + 'a';
    41) cout << "I produce character: '" << (char)r << "'\n";
    42) arr[counter]=(char)r;
    43) counter++;
    44)
    45) pthread_mutex_unlock (&l);
    46)
    47) return NULL;
    48) }
    49)
    50) void* consume (void* unused)
    51) {
    52) counter--;
    53) cout << "I consume character: '" << arr[counter] << "'\n";
    54)
    55) return NULL;
    56) }
    57)
    58) int main ()
    59) {
    60) int type[MaxSize];
    61)
    62) pthread_t threads[MaxSize];
    63) counter =0;
    64) int count;
    65) cout <<" size of buffer:";
    66) cin >> count;
    67) sem_init (&empty, MaxSize, MaxSize);
    68) sem_init (&full, MaxSize, 0);
    69)
    70) cout << "number of threads:";
    71) cin >> count_thread;
    72)
    73) cout << "Give type of threads('1' for producer and '0' for consumer):\n";
    74) for (int i=0; i<count_thread; i++)
    75) cin >> type[i];
    76) int sw;
    77) for (int i =0 ; i < count_thread ; i++)
    78) {
    79) if(type[i] == 0)
    80) {
    81) // consumer
    82) sem_wait (&full);
    83) pthread_create (&(threads[i]), NULL, consume, NULL);
    84) pthread_join(threads[i],NULL);
    85) sem_post (&empty);
    86) }
    87) else
    88) {
    89) sem_wait (&empty);
    90) pthread_create (&(threads[i]), NULL, produce, NULL);
    91) pthread_join(threads[i],NULL);
    92) sem_post (&full);
    93) }
    94)
    95) }//end of for
    96)
    97)
    98)
    99) return 0;
    100) }

  12. #12
    این زبان multi pascal مشکلش اینه که اصلا سمافور نداره.
    یه چند تا امکان استفاده از کانال و دستورات lock ,unlock و ... داره.
    کسی می تونه تو پیاده سازی سمافورا توی این محیط کمک کنه؟

  13. #13
    خوب خودت براش درست کن!

    من با C++‎ برات می نویسم :(شبه کد هست) ن تبدیل کردن به مالتی پاسکال و اجراش با خودت اگر مشکلت هم حل شد کد قابل اجرا را بزار تا بقیه استفاده کنند اگر هم نشد بگو .

    struct semaphore
    {
    int count;
    PQ Queue;
    };

    void Wait(semaphore s)
    {
    if (s.count > 0)
    s .count =s.count -1;
    else
    s.PQ.insert();//block this process
    }

    void Signal(semaphore s)
    {
    if (s.PQ.empty())
    s.count = s.count+1;
    else
    s.PQ.remove();
    }


    البته اونجاهایی که می خواهی count را تغییر بدی باید lock کنی.

  14. #14

    نقل قول: الگوریتم های موازی باmulti pascal

    سلام
    کسی میتونه درمورد نوشتن الگوریتمbuket sort با مالتی پاسکال به من کمک کنه؟؟؟
    لطفا

تاپیک های مشابه

  1. pascal
    نوشته شده توسط yas1213 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 1
    آخرین پست: یک شنبه 09 دی 1386, 22:30 عصر
  2. pascal
    نوشته شده توسط yas1213 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 1
    آخرین پست: یک شنبه 09 دی 1386, 00:55 صبح
  3. pascal?
    نوشته شده توسط yalda909 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 2
    آخرین پست: جمعه 07 دی 1386, 00:15 صبح
  4. تبدیل برنامه نوشته شده به زبان Pascal به زبان c
    نوشته شده توسط mah-bah در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 2
    آخرین پست: یک شنبه 27 فروردین 1385, 21:04 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •