به اولین سایت تخصصی هواداران بارسلونا در ایران خوش آمدید. برای استفاده از تمامی امکانات سایت، ثبت نام کنید و یا با نام کاربری خود وارد شوید!

شناسه کاربری:
کلمه عبور:
ورود خودکار

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

پیشنهاد می‌کنیم که قبل از هر چیز، با مراجعه به انجمن قوانین و شرح وظایف ضمن مطالعه قوانین سایت، با نحوه اداره و گروه‌های فعال در سایت و همچنین شرح وظایف و اختیارات آنها آشنا شوید. به علاوه دوستان عزیز بهتر است قبل از آغاز فعالیت در انجمن‌ها، ابتدا خود را در تاپیک برای آشنایی (معرفی اعضاء) معرفی نمایند تا عزیزان حاضر در انجمن بیشتر با یکدیگر آشنا شوند.

همچنین در صورتی که تمایل دارید در یکی از گروه‌های کاربری جهت مشارکت در فعالیت‌های سایت عضو شوید و ما را در تهیه مطالب مورد نیاز سایت یاری نمایید، به تاپیک اعلام آمادگی برای مشارکت در فعالیت‌های سایت مراجعه نموده و علائق و توانایی های خود را مطرح نمایید.
تاپیک‌های مهم انجمن
ارسال گزارش یک مورد قابل بررسی در مورد پیام زیر در تالار گفتمان
متن گزارش:*
 

پاسخ به: به دانش بود نیک فرجام تو ... به مینو دهد چرخ آرام تو
نویسنده: یا لثارات الحسن
سه‌شنبه، ۱۰ آذر ۱۳۹۴ (۱۸:۴۱)
نقل قول
MahSa نوشته:

دوتا سوال برنامه نويسيه 😕😑

1- برنامه ای بنویسید که تعدادی عدد صحیح و مثبت که تعداد آنها در آغاز داده شده است را از ورودی خوانده و برای هر عدد, اولین عدد اول بزرگتر از آنرا محاسبه و چاپ نماید.

2- برنامه ای بنویسید که متناوبا چهار عدد صحیح و مثبت را از ورودی بخواند و بزرگترین مقسوم علیه مشترک بین چهار عدد را یافته و همراه با آنها در یک سطر با توضیحات مناسب چاپ کند. (برای نوشتن این برنامه تابعی جهت محاسبه بزرگترین مقسوم علیه مشترک بنویسید و با احضارهای مکرر تابع محاسبه بزرگترین مقسوم علیه مشترک در برنامه اصلی خود, بزرگترین مقسوم علیه مشترک چهار عدد را محاسبه نمایید.)

من می تونم به زبون PHP مثل آب خوردن بنویسم. البته اساس PHP بر C و C++ هست ولی خب توابعش رو احتمالا باید جایگزین کنی.

بذار الان اولی رو می نویسم ببین می تونی تبدیلش کنی. گرچه اینا که خیلی ساده ن، درستون رو بخونید خب.

function my_prime_checker ($number) {
    
    for (
$i=2;$i<=round(sqrt($number));$i++)
        if (
$number $i == 0)
            return 
false;
            
    return 
true;
    
}

function 
my_first_next_prime_detector ($number) {
    
    while (
my_prime_checker ($number)==false)
        
$number++;
        
    return 
$number;
    
}

$input_numbers = array();
$output_prime_numbers = array();

for (
$i=0$i<count($input_numbers);$i++)
    
$output_prime_numbers[$i] = my_first_next_prime_detector ($input_numbers[$i]);

توضیح:

تابع my_prime_checker عدد رو می گیره و چک می کنه که آیا عدد اول هست یا نه. اگر باشه مقدار true و اگر نباشه مقدار false رو بر می گردونه.

نحوه کارش اینطوریه که شروع می کنه از عدد 2 تا مجذور عدد ورودی رو در نظر می گیره، نگاه می کنه آیا عدد ورودی به این عددا بخش پذیره یا نه (به این شکل که آیا باقیمانده تقسیمش بر این عددا صفر میشه، اون تیکه: number % $i == 0) به محض اینکه اولین عددی رو پیدا کرد که بخش پذیر بود، مقدار false رو می فرسته یعنی ورودی عدد اول نیست و تابع بسته میشه. اگر تا آخر بره و به هیچ مقداری بخش پذیر نباشه، تابع مقدار true رو بر می گردونه یعنی عدد ورودی عدد اوله.

تابع my_first_next_prime_detector عدد ورودی رو می گیره و اولین عدد اولی که بزرگتر از اونه رو محاسبه می کنه.

به این شکل که اول خود عدد رو به تابع محاسبه اول بودن می فرسته، و مادامی که جواب تابع false باشه، یعنی عدد اول نیست، عدد ورودی رو یکی یکی اضافه می کنه. جایی که به عدد اول رسید، دیگه اضافه نمی کنه و اون عدد رو به عنوان خروجی بر می گردونه که میشه اولین عدد اولی که بزرگتر از عدد ورودیه.

حالا اگر فرض کنیم اعداد ورودی تو یه آرایه به نام input_numbers داده شدن و ما یه آرایه خروجی میدیم به نام output_prime_numbers، خیلی راحت کافیه از اولین عدد آرایه ورودی (کد 0) تا آخرینش (کد یکی کمتر از تعداد اعداد درون آرایه ورودی) بدیم به تابع محاسبه عدد اول و ببینیم چی بر می گردونه و تو آرایه خروجیمون ذخیره ش کنیم.

در نهایت به این شکل در میاد که عدد k ام که در آرایه input_numbers به ما داده شده، معادلش عدد k ام در آرایه output_prime_numbers اولین عدد اولیه که بزرگتر یا مساوی اون عدده.

البته این باید به زبون C کمی ویرایش بشه. مثلا متغیرها تو PHP با $ شروع میشن و من یادم نیست تو خود C با چی شروع می شدن. یا مثلا اگر اشتباه نکنم برای خوندن و نوشتن باید از توابع cin و cout استفاده بشه که من دقیق کاربردش یادم نیست. اما الگوریتم یکسانه و مهمترین کار نوشتن این دو تا تابعه و تبدیلش به C منطقا نباید کار سختی باشه.

الان گیج شدی؟
فعالترین کاربران ماه انجمن
فعالیترین کاربران سایت
اعضای جدید سایت
جدیدترین اعضای فعال
تعداد کل اعضای سایت
اعضای فعال
۱۷,۹۴۳
اعضای غیر فعال
۱۴,۳۶۳
تعداد کل اعضاء
۳۲,۳۰۶
پیام‌های جدید
بحث آزاد در مورد بارسا
انجمن عاشقان آب‍ی و اناری
۵۸,۲۰۵ پاسخ
۸,۴۱۸,۵۵۷ بازدید
۱ روز قبل
Salehm
بحث در مورد تاپیک های بخش سرگرمی
انجمن سرگرمی
۴,۶۶۵ پاسخ
۵۴۹,۳۳۲ بازدید
۱ روز قبل
ali
هرچه می خواهد دل تنگت بگو...
انجمن مباحث آزاد
۷۶,۴۹۴ پاسخ
۱۱,۶۷۹,۹۴۸ بازدید
۲ روز قبل
یا لثارات الحسن
برای آشنایی خودتون رو معرفی کنید!
انجمن مباحث آزاد
۷,۶۴۳ پاسخ
۱,۲۴۴,۷۷۱ بازدید
۳ روز قبل
Activated PC
آموزش و ترفندهای فتوشاپ
انجمن علمی و کاربردی
۱۳۵ پاسخ
۴۴,۹۷۳ بازدید
۳ روز قبل
RealSoftPC
جام جهانی ۲۰۲۲
انجمن فوتبال ملی
۲۳ پاسخ
۲,۰۸۸ بازدید
۴ روز قبل
Crack Hints
موسیقی
انجمن هنر و ادبیات
۵,۱۰۱ پاسخ
۱,۰۲۳,۰۳۵ بازدید
۵ روز قبل
Activated soft
علمی/تلفن هوشمند/تبلت/فناوری
انجمن علمی و کاربردی
۲,۴۱۹ پاسخ
۴۳۸,۱۰۹ بازدید
۱۱ روز قبل
javibarca
مباحث علمی و پزشکی
انجمن علمی و کاربردی
۱,۵۴۷ پاسخ
۷۴۹,۵۱۷ بازدید
۱ ماه قبل
رویا
مســابــقـه جــــذاب ۲۰ ســــوالـــــــــــــــــــی
انجمن سرگرمی
۲۳,۶۵۸ پاسخ
۲,۲۱۰,۹۶۶ بازدید
۱ ماه قبل
رویا
اسطوره های بارسا
انجمن بازیکنان
۳۴۳ پاسخ
۸۶,۴۶۹ بازدید
۶ ماه قبل
jalebamooz
تغییرات سایت
انجمن اتاق گفتگوی اعضاء و ناظران
۱,۵۵۷ پاسخ
۲۷۷,۹۳۲ بازدید
۱۱ ماه قبل
یا لثارات الحسن
حاضرین در سایت
۱۹۰ کاربر آنلاین است. (۱۱۴ کاربر در حال مشاهده تالار گفتمان)

عضو: ۰
مهمان: ۱۹۰

ادامه...
هرگونه کپی برداری از مطالب این سایت، تنها با ذکر نام «اف سی بارسلونا دات آی آر» مجاز است!