(\\\_-) پرسش و پاسخ : Pascal و ++C -> مخصوص دروس دانشگاهی (-_///)

CooL i3oY

عضو جدید
امیدوارم که سرحال و سرزنده باشید!
من قصد دارم تو این تاپیک به سوالات دوستان دانشجوی عزیز خودم در مورد دو درس Pascal و ++C که از جمله دروس اصلی دانشجویان IT (و اکثر رشته های دانشگاهی)هست پاسخ بدم!
شما میتونید تو هر زمینه ای که نیاز دارید سوالات خودتونو مطرح کنید!
1- سوال از متن کتب درسی (از کتاب های پیام نور ، کتاب های مهندس جعفرنژاد قمی و ...)
2- سوال در مورد یک مفهوم (مثل شئ گرایی ، اشاره گرها و ...)
3- پرسیدن سوال های امتحانی (میتونید یه برگه سوال رو به من بدید، حالا با لینک یا از طریق دیگر، من تمام سوالارو جواب میدم)
4- سوال در مورد انجام پروژه های دانشجویی و یا دیگر پروژه ها (سوال از منطق برنامه، پیچیدگی کد، راحت ترین روش حل و ...)
5- و هرگونه سوال دیگه

چون توی دانشگاه از این دست سوال ها خیلی از من پرسیده میشه،و این مواردی که ذکر کردم خیلی شایع هست، گفتم ممکن بتونم قدمی هرچند کوچک بردارم و اندک کمکی به دانشجوهای این مرز و بوم بکنم!
 

CooL i3oY

عضو جدید
می دونم ترم جدید تازه شروع شده و هنوز وقت پرسیدن سوال که وسط ترم به بعد هستش، نرسیده!
ولی من مشتاقانه منتظر سوالات دوستان گلم هستم!
 

zeost

عضو جدید
می دونم ترم جدید تازه شروع شده و هنوز وقت پرسیدن سوال که وسط ترم به بعد هستش، نرسیده!
ولی من مشتاقانه منتظر سوالات دوستان گلم هستم!
سلام به هم رشته ای عزیز.
این تاپیک رو تا حالا ندیده بودم .اگه دیده بودم انقدر ازتون سوال می پرسیدم که درخواست حذفش رو بکنید.
اولین سوالم اینه (البته امیدوارم خودتون بعد از سه هفته اینجا رو فراموش نکرده باشین:whistle:):
1.برنامه ای(c++) بنویسید تا با حداقل مقایسه max1 و max2 یک لیست n تایی را بیابد.
2.استاد طراحیمون چهار تا کاشی به شکل زیر رو داده و گفته "با این کاشی ها صفحه ای با چه ابعادی رو می توان به طور کامل پر کرد؟ثانیا الگوریتمی برای پر کردن آن صفحه بر اساس روش تقسیم و حل ارایه کنید.

cool i3oy عزیز می خوام خودم حل کنم تا یکم سی رو یادم بیاد .میتونی راهنماییم کنی.؟اگه نتونستم دوباره مزاحمت میشم.
ممنون
 

پیوست ها

  • dfg.bmp
    44 کیلوبایت · بازدیدها: 0

CooL i3oY

عضو جدید
سلام به هم رشته ای عزیز.
این تاپیک رو تا حالا ندیده بودم .اگه دیده بودم انقدر ازتون سوال می پرسیدم که درخواست حذفش رو بکنید.
اولین سوالم اینه (البته امیدوارم خودتون بعد از سه هفته اینجا رو فراموش نکرده باشین:whistle:):
1.برنامه ای(c++) بنویسید تا با حداقل مقایسه max1 و max2 یک لیست n تایی را بیابد.
2.استاد طراحیمون چهار تا کاشی به شکل زیر رو داده و گفته "با این کاشی ها صفحه ای با چه ابعادی رو می توان به طور کامل پر کرد؟ثانیا الگوریتمی برای پر کردن آن صفحه بر اساس روش تقسیم و حل ارایه کنید.

cool i3oy عزیز می خوام خودم حل کنم تا یکم سی رو یادم بیاد .میتونی راهنماییم کنی.؟اگه نتونستم دوباره مزاحمت میشم.
ممنون


سوال اولتون رو بیشتر توضیح بدید، max1 و max2 چه متغیرهایی هستن؟ مقدارشون از کجا اومده؟ یه لیست nتایی رو از کجا پیدا کنه؟ از داخل یک لیست؟ سوالتون مفهوم نیست...:surprised:

اما سوال دومتون، قسمت اولش بیشتر به سوال هوش شبیه بود! ولی جالب بود مرسی:
با اون کاشی ها میشه حداقل یک صفحه ی 16 خونه ای 4x4 رو کامل پر کرد، اینطوری:
________
|_|_|_|_|
|_|_|__||
|_|_|_|_|
|_|_|_|_|
و میشه صفحه هایی رو که به تعداد مضربی از 16 کاشی دارند و حداقل طول و ارتفاعشون 4 هستش رو کامل با این شکلی که استادتون دادن، کاشی کرد.
چون دوست دارید خودتون جواب رو بنویسید باشه من کدشو نمیگم ولی شما با روش تقسیم و حل با یک تابع بازگشتی میتونید مسئلرو حل کنید!
بازم اگه توضیح خواستید بگید!
 

zeost

عضو جدید
سوال اولتون رو بیشتر توضیح بدید، max1 و max2 چه متغیرهایی هستن؟ مقدارشون از کجا اومده؟ یه لیست nتایی رو از کجا پیدا کنه؟ از داخل یک لیست؟ سوالتون مفهوم نیست...:surprised:

اما سوال دومتون، قسمت اولش بیشتر به سوال هوش شبیه بود! ولی جالب بود مرسی:
با اون کاشی ها میشه حداقل یک صفحه ی 16 خونه ای 4x4 رو کامل پر کرد، اینطوری:
________
|_|_|_|_|
|_|_|__||
|_|_|_|_|
|_|_|_|_|
و میشه صفحه هایی رو که به تعداد مضربی از 16 کاشی دارند و حداقل طول و ارتفاعشون 4 هستش رو کامل با این شکلی که استادتون دادن، کاشی کرد.
چون دوست دارید خودتون جواب رو بنویسید باشه من کدشو نمیگم ولی شما با روش تقسیم و حل با یک تابع بازگشتی میتونید مسئلرو حل کنید!
بازم اگه توضیح خواستید بگید!
سلام.خوشحالم تاپیکتون رو فراموش نکردین.
سوال اول :یک لیست nتایی نامرتب به ما دادن و از ما می خوان کدی بنویسیم که با کمترین order بزرگترین عددهای لیست رو پیدا کنیم.مثلا لیست ما به شکل زیر هست:
12و3و7و2و33و19
حالا ما باید کدی بنویسیم که دو عدد 33 و 19 رو به ما بده.راستی کد کامل لازم نیست ،شبه کدش هم کفایت میکنه.
ممنون دوست من.
 

کربلایی

مدیر بازنشسته
سلام.خوشحالم تاپیکتون رو فراموش نکردین.
سوال اول :یک لیست nتایی نامرتب به ما دادن و از ما می خوان کدی بنویسیم که با کمترین order بزرگترین عددهای لیست رو پیدا کنیم.مثلا لیست ما به شکل زیر هست:
12و3و7و2و33و19
حالا ما باید کدی بنویسیم که دو عدد 33 و 19 رو به ما بده.راستی کد کامل لازم نیست ،شبه کدش هم کفایت میکنه.
ممنون دوست من.
سلام
دو راه داری
یا با دو تا حلقه for بصورت ترتیبی دنبال بزرگترین اعداد میگردی
یا اینکه پس از مرتب کردن لیست، از روش حبابی استفاده میکنی
اگه لازم بود بگید تا کد مثال بزارم
موفق باشید
 

CooL i3oY

عضو جدید
سلام
دو راه داری
یا با دو تا حلقه for بصورت ترتیبی دنبال بزرگترین اعداد میگردی
یا اینکه پس از مرتب کردن لیست، از روش حبابی استفاده میکنی
اگه لازم بود بگید تا کد مثال بزارم
موفق باشید

بله دوست خوبمونم که اینجا پاسخ دادن مابقی سوالتونم ایشون پاسخ میدن!
موفق باشید!

(-_-)
 

zeost

عضو جدید
سلام
دو راه داری
یا با دو تا حلقه for بصورت ترتیبی دنبال بزرگترین اعداد میگردی
یا اینکه پس از مرتب کردن لیست، از روش حبابی استفاده میکنی
اگه لازم بود بگید تا کد مثال بزارم
موفق باشید
مرتب سازی نه.چون order بزرگ میشه.
از روش تقسیم و حل .یعنی لیست رو به دو قسمت تقسیم کنیم و در لیست سمت چپ max1 , max2 رو پیدا و در لیست سمت راست هم max1 , max2رو پیدا کنیم.
بعد مقایسه ای بین max1 های دو لیست انجام میدهیم.مقایسه بین max1 که کوچکتر بود و max2 لیست دوم انجام می دیم.
با فرض اینکه n توانی از از 2 هست order برابر است با :n-2+log n
مرسی

 

کربلایی

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

(-_-)

:surprised:

مرتب سازی نه.چون order بزرگ میشه.
از روش تقسیم و حل .یعنی لیست رو به دو قسمت تقسیم کنیم و در لیست سمت چپ max1 , max2 رو پیدا و در لیست سمت راست هم max1 , max2رو پیدا کنیم.
بعد مقایسه ای بین max1 های دو لیست انجام میدهیم.مقایسه بین max1 که کوچکتر بود و max2 لیست دوم انجام می دیم.​

با فرض اینکه n توانی از از 2 هست order برابر است با :n-2+log n​


مرسی​



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

zeost

عضو جدید
خب اگه لیست مرتب نباشه روشی که گفتید کارایی نخواهد داشت
آره میشه.فرض کنیم لیست 17و15و8و5و3و20و10و7 باشد.لیست رو میشکنیم :17و15و8و5 --3و20و10و7 .باز دوباره لیست ها رو می شکنیم تا به لیست های دوتایی(یا یکی)برسیم.
17و15--8و5 --3و20--10و7 .حالا مکس1و مکس2 رو توی این لیست های دوتایی پیدا میکنیم.به صورت بازگشتی برمی گردیم.بین دو لیست دوتایی مکس یک ها را مقایسه کرده و مکس1 اصلی را به دست می آوریم.بعد اون مکس1 کوچکتر رو با مکس2 لیستی که مکس یکش بزرگ بود مقایسه و در نهایت مکس2 را به دست می آوریم.
مثلا:مقایسه بین 7,10 max1=10 and max2=7
مقایسه بین 20,3 max1=20 and max2=3
حالا مقایسه بین max1 ها ،یعنی بین دو عدد 20 و10: max1=20
مقایسه بین max1 کوچکتر و max2 بزرگتر،یعنی مقایسه بین دو عدد 10 و 3 : max2=10
و الی آخر ...
کد این روش رو نمی تونم بنویسم.اگه بلدین لطف کنید و جواب رو بذارین.
 

CooL i3oY

عضو جدید
جواب تمرین

جواب تمرین

آره میشه.فرض کنیم لیست 17و15و8و5و3و20و10و7 باشد.لیست رو میشکنیم :17و15و8و5 --3و20و10و7 .باز دوباره لیست ها رو می شکنیم تا به لیست های دوتایی(یا یکی)برسیم.
17و15--8و5 --3و20--10و7 .حالا مکس1و مکس2 رو توی این لیست های دوتایی پیدا میکنیم.به صورت بازگشتی برمی گردیم.بین دو لیست دوتایی مکس یک ها را مقایسه کرده و مکس1 اصلی را به دست می آوریم.بعد اون مکس1 کوچکتر رو با مکس2 لیستی که مکس یکش بزرگ بود مقایسه و در نهایت مکس2 را به دست می آوریم.
مثلا:مقایسه بین 7,10 max1=10 and max2=7
مقایسه بین 20,3 max1=20 and max2=3
حالا مقایسه بین max1 ها ،یعنی بین دو عدد 20 و10: max1=20
مقایسه بین max1 کوچکتر و max2 بزرگتر،یعنی مقایسه بین دو عدد 10 و 3 : max2=10
و الی آخر ...
کد این روش رو نمی تونم بنویسم.اگه بلدین لطف کنید و جواب رو بذارین.


اینم به خاطر گل روی دوست خوبم zeost
البته ببخشید من سر کار هستم، وقت نکردم ظاهرشو قشنگ کنم و براش ورود اطلاعات بزارم، این قسمتاش به عهده ی خودتون!
هرجاشو که خواستید بگید براتون توضیح بدم!
تحت ویژوال نوشتمش، فکر کنم خودتون بتونید تحت TC رو بنویسید!
کد:
#include "stdafx.h"
#include "iostream"
#include "conio.h"

using namespace std;

void Max12(int[],int,int,int&,int&);

int _tmain(int argc, _TCHAR* argv[])
{
    int Ar[8] = {7,10,20,3,5,8,15,17};
    int n = 8;
    
    cout<< "Araye = " << Ar[0];
    for (int i=1 ; i<n ; i++)
    {
        cout<<" , "<<Ar[i];
    }
    cout<<endl;

    int M1 , M2;
    Max12(Ar,0,n-1,M1,M2);

    cout <<"bozorgtare aval = "<<M1 <<endl;
    cout <<"bozorgtare 2vom = "<<M2 <<endl;

    _getch();
    return 0;
}

void Max12(int Ar[],int low,int high,int& max1, int& max2)
{
    int LeftLow = low;
    int LeftHigh =(low+high)/2;
    int RightLow = (low+high)/2+1;
    int RightHigh = high;

    if (high == (low+1))
    {
        if(Ar[high] >= Ar[low])
        {
            max1 = Ar[high];
            max2 = Ar[low];
        }
        else
        {
            max2 = Ar[high];
            max1 = Ar[low];
        }
    }
    else
    {
        int mx1,mx2;

        Max12(Ar,LeftLow,LeftHigh,max1,max2);
        mx1 = max1;
        mx2 = max2;

        Max12(Ar,RightLow,RightHigh,max1,max2);

        if(mx1 >= max1)
        {
            if(max1 >= mx2)
            {
                max2 = max1;
            }
            else
            {
                max2 = mx2;
            }
            max1 = mx1;
        }
        else
        {
            if(mx1 >= max2)
            {
                max2 = mx1;
            }
        }
    }

    return;
}
 

zeost

عضو جدید
اینم به خاطر گل روی دوست خوبم zeost
البته ببخشید من سر کار هستم، وقت نکردم ظاهرشو قشنگ کنم و براش ورود اطلاعات بزارم، این قسمتاش به عهده ی خودتون!
هرجاشو که خواستید بگید براتون توضیح بدم!
تحت ویژوال نوشتمش، فکر کنم خودتون بتونید تحت TC رو بنویسید!
[/code]
مرسی. اگه شبه کدش رو هم می نوشتید کافی بود.لازم نبود خیلی وقت بذارید. :redface: شما زحمت کشیدین و با مثال حل کردین و من الان میرم و همین کد رو برای حالت کلی تغییر میدمش.مرسی:gol:
ببخشید دوست ندارم پستم فقط برای تشکر باشه، پس توی همین پست یه سوال دیگه هم می پرسم.
ستاره ی مشهور:همه اون رو می شناسند ولی اون کسی ور نمی شناسه!
الگوریتم ستاره مشهور رو با استفاده از استقرا نوشتم:
پایه استقرا رو 2 در نظر گرفتم.
حکم:ما از بین n نفر، n-1 نفری که ستاره مشهور نیستند رو پیدا میکنیم.
از دو نفر می پرسیم (x , y) که طرف مقابل رو می شناسند؟از x در مورد y میپرسیم، که y را می شناسه یا نه؟اگه بگه نه،x رو خارج می کنیم وگرنهy رو خارج می کنیم.بعد یک نفر دیگه رو می یاریم و ازش در مورد شخصی که خارج نشد می پرسیم و... تعداد حالت n-1

حالا اگه بدترین حالت رو در نظر بگیریم ،که یکی از این ها ستاره ی مشهور باشه،باید از اون در مورد n-1 نفر دیگه بپرسیم که آیا آنها را می شناسه یا نه؟(نباید بشناسه) تعداد حالت (n-1)+(n-1)

و از n-1 نفر دیگه در باره ی ستاره ی مشهور می پرسیم (باید اون رو بشناسن) تعداد حالت (n-1)+(n-1)+(n-1)
من کدش رو نتونستم بنویسم.:confused:
 

zeost

عضو جدید
سلام.این تمرین واقعا سخته.میشه توی حلش به من کمک کنید.اگه این تمرین رو به استاد تحویل ندم خیلی بد میشه!
 

پیوست ها

  • Doc1.rar
    104.1 کیلوبایت · بازدیدها: 0

ملودی ومهسا

عضو جدید
سلام

سلام

سلام .من ترم اولی هستم برنمه نویسی هنوز خوب برام جا نیفتاده .این ترم یه پروزه دارم با پاسکل .که برنامه رو نوشتم اما ارور میده من دلیل ارورها رو نمی دونم .برنامه ی ذخیره و حذف و جستجوی دانشجو. شما میتونی یا سورسو به من بدی یا اشکالاتمو برطرف کنی؟؟؟؟
 

CooL i3oY

عضو جدید
سلام .من ترم اولی هستم برنمه نویسی هنوز خوب برام جا نیفتاده .این ترم یه پروزه دارم با پاسکل .که برنامه رو نوشتم اما ارور میده من دلیل ارورها رو نمی دونم .برنامه ی ذخیره و حذف و جستجوی دانشجو. شما میتونی یا سورسو به من بدی یا اشکالاتمو برطرف کنی؟؟؟؟

دوست من برنامتونو بدید من error هاش رو برطرف میکنم و بهتون توضیح میدم مشکل چی بوده!
 

roma88

عضو جدید
لطفا منو راهنمايي کنين که چطوري برنامه اي تو c بنويسم که معکوس ماتريس رو حساب کنه؟
 

tam

عضو جدید
را که بصورت زیر اعلان می شود نوشته و ازمایش کنید swap_digit ( ) تابع​


int swap_digit(int,int,int)

ام d2 ام d1
این تابع یک عدد صحیح 6 رقمی را دریافت کرده جای ارقام و را عوض کرده عدد حاصل را در خروجی چاپ کند


swap _digit(n,d1,d2)
| n=123456
n= 1 5 3 4 2 6 < ---------| d1=1
| d2=4


باید خروجی در مین چاپ شود
از آرایه نباید استفاده شود
 

CooL i3oY

عضو جدید
swap_digit

swap_digit

را که بصورت زیر اعلان می شود نوشته و ازمایش کنید swap_digit ( ) تابع
A
int swap_digit(int,int,int)
A

ام d2 ام d1
این تابع یک عدد صحیح 6 رقمی را دریافت کرده جای ارقام و را عوض کرده عدد حاصل را در خروجی چاپ کند

swap _digit(n,d1,d2)
| n=123456
n= 1 5 3 4 2 6 < ---------| d1=1
| d2=4


باید خروجی در مین چاپ شود
از آرایه نباید استفاده شود

کد:
int swap_digit (int n,int d1,int d2)
{
    int n1 = n;
    int n2 = n;
    int pow1 = 1;
    int pow2 = 1;
    int i,j;

    for (i = 1 ; i<(6-d1) ; i++)    //آوردن محل رقم اول به جایگاه یکان
    {
        n1 /= 10;    //حذف کردن یک رقم از جلوی n1
        pow1 *= 10;    //بدست آوردن محل(دهگان، صدگان یا...) رقم اول
    }
    n1 %= 10;    //بدست آوردن مقدار یک رقمی رقم اول
    n -= (n1 * pow1);    //جای رقم اول 0 میشود
   
    for (j = 1 ; j<(6-d2) ; j++)    //آوردن محل رقم دوم به جایگاه یکان
    {
        n2 /= 10;    //حذف کردن یک رقم از جلوی n2
        pow2 *= 10;    //بدست آوردن محل(دهگان، صدگان یا...) رقم دوم
    }
    n2 %= 10;    //بدست آوردن مقدار یک رقمی رقم دوم
    n -= (n2 * pow2);    //جای رقم دوم 0 میشود

    n1 *= pow2;    //رقم اول با تعداد صفرهای رقم دوم
    n2 *= pow1;    //رقم دوم با تعداد صفرهای رقم اول

    n += n1;    //جا گزاری رقم اول در مکان رقم دوم
    n += n2;    //جا گزاری رقم دوم در مکان رقم اول

    return n;

    //Create By Cool i3oy (C)
}
 
آخرین ویرایش:

Gholche

عضو جدید
سلام
نميدونيد چقدر گشتم تا اين تاپيكو دوباره پيدا كردم :cry:
من يه سوال راجع به پاسكال دارم ، چطور ميتونم قطر فرعي يه ماتريسو جمع كنم مثلا قطر اصلي ميگم i=j اما قطر فرعي رو توش موندم .:crying2:
ماتريسم هم 5*5 است.
اگر راهنمايي كنيد خيلي ممنون ميشم.
 

CooL i3oY

عضو جدید
پیمایش قطر اصلی و فرعی ماتریس در پاسکال

پیمایش قطر اصلی و فرعی ماتریس در پاسکال

ميشه يكي منو ببينه:w20:

سلام دوست من به جمع ما خوش آمدی

پیمایش قطر اصلی:
کد:
for i:=1 to 5 do
    write(matrix[i,i]);

پیمایش قطر فرعی:
کد:
for i:=1 to 5 do
begin
    j:=6-i;
    write(matrix[i,j]);
end
 

CooL i3oY

عضو جدید
مسئله nوزیر

مسئله nوزیر

:redface:سلام من برنامه 8وزيرو به زبان پاسكال lيخوام.خيلي مهمه.تا 3بهمن بايد تحويل بدم :cry:اگه ميشه به ايميلم بفرستيد helena_mirzabeigi@yahoo.com

منظورتون مسئله n وزیر هستش؟ که باید در یک جدول nxn قرار بگیرن و هیچ کدوم اون یکیرو تحدید نکنه؟
می تونید بگید دقیقا چی می خواید!
می خواید فقط حالت 8وزیر باشه یا nوزیر
 

helen1

عضو جدید
منظورتون مسئله n وزیر هستش؟ که باید در یک جدول nxn قرار بگیرن و هیچ کدوم اون یکیرو تحدید نکنه؟
می تونید بگید دقیقا چی می خواید!
می خواید فقط حالت 8وزیر باشه یا nوزیر

سلام.حتما بايد 8وزير باشه حتما هم به زبان پاسكال ممنون
 

juno

عضو جدید
راهنمای ساخته یک بازی در C#‎
سلام من میخواستم یه سوالی بکنم
من یه برنامه ای میخوام که تو فضای C#‎ باشه یه بازیه تسته حافظه تقریبا مثله بازیهminesweeperهست اما مین نداره بازیش اینجوریه که یه خونه از جدولو با یه خونه ی دیگه باز میکنن اگه مثله هم باشن که هر دوتا خونه روشن شه در غیره این صورت یکیش روشن میمونهو بقیش مثله قبله
بازیش تو یه جدوله
خواهش میکنم خیلی مهمهو حیاتیو فوریه

ممنونم
 
بالا