پرسش و پاسخ پیرامون برنامه‌نویسی

  • شروع کننده موضوع max
  • تاریخ شروع
ارسال‌ها
210
امتیاز
395
نام مرکز سمپاد
حلی ۲ #شوش
شهر
تهران
سال فارغ التحصیلی
95
دانشگاه
یک ترم تهران جنوب :)
رشته دانشگاه
نرم افزار
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از daneshvar.amr :
سلام. یه تابع می خوام 4 تا عدد بگیره تمام جایگشت هاش رو چاپ کنه. مثلا 4 1 7 8
بنویسه: 4 1 7 8 4 1 8 7 ...
با کتابخونه algorithm آشنایی داری ؟
 

daneshvar.amrollahi

کاربر حرفه‌ای
ارسال‌ها
327
امتیاز
130
نام مرکز سمپاد
راهنمایی حلی۲/دبیرستان حلی۱۰/دبیرستان علامه طباطبایی
شهر
تهران
سال فارغ التحصیلی
1397
مدال المپیاد
کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از MajiiiiiD :
با کتابخونه algorithm آشنایی داری ؟
[/quote
سلام. نه اما شنیدم که تابع آماده اش هست. برای 1 تا n میشه نوشت اما این که 4 تا عدد مختلف یکم سخت تره--->تمامی حالات؟
 
ارسال‌ها
210
امتیاز
395
نام مرکز سمپاد
حلی ۲ #شوش
شهر
تهران
سال فارغ التحصیلی
95
دانشگاه
یک ترم تهران جنوب :)
رشته دانشگاه
نرم افزار
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

توضیح نیاز داره ؟
http://paste.ubuntu.com/6618903/
 
ارسال‌ها
210
امتیاز
395
نام مرکز سمپاد
حلی ۲ #شوش
شهر
تهران
سال فارغ التحصیلی
95
دانشگاه
یک ترم تهران جنوب :)
رشته دانشگاه
نرم افزار
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

حالا که شد :D
نه error داد نه warning
تا حالا تو 4 تا acm اینکار رو کردم
+ sgu و codeforce و usaco
همشون هم اکسپت کردن کدی رو که این توش بود ( ینی از این قسمت ایرادی نگرفتن ) !!
 

مهسا.ق

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,098
امتیاز
3,216
نام مرکز سمپاد
دبیرستان فرزانگان 1
شهر
تهران
مدال المپیاد
برنز کامپیوتر ۱۳۹۳
دانشگاه
دانشگاه تهران
رشته دانشگاه
نرم افزار
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

اگه آرایه ای که تعریف می کنی local باشه و قیل از تعریف، n رو ورودی بگیری این تعریف درسته(فک کنم چن ساله که این پذیرفته می شه )
اما اگه آرایه رو global تعریف کنی ، نمی شه از چنین چیزی استفاده کرد و این جور مواقع ماکسیمم n رو می خوای!
 
  • لایک
امتیازات: MajiX

daneshvar.amrollahi

کاربر حرفه‌ای
ارسال‌ها
327
امتیاز
130
نام مرکز سمپاد
راهنمایی حلی۲/دبیرستان حلی۱۰/دبیرستان علامه طباطبایی
شهر
تهران
سال فارغ التحصیلی
1397
مدال المپیاد
کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

سلام. یه برنامه بازگشتی یه میخوام بنویسم که تو چهار تا خونه از یک آرایه اعداد 1 تا 9 رو بچینه. که میشه 4^9 تا حالت. غیر بازگشتیش رو میدونم. به ازای یک حالت کلی هم نمیخوام. همین حالتی که گفتم. چهار تا خانه. 1 تا 9. میخوام تو یه آرایه دو بعدی دخیره کنم. این غیر بازگشتیش:
http://codepad.org/XJkXHspY
کد:
int x = 1,p[7000][4]
for (int i=1;i<10;i++)
{
    for (int j=1;j<10;j++)
    {
        for (int k=1;k<10;k++)
        {
            for (int l=1;l<10;l++)
            {
                p[x,1] = i;
                p[x,2] = j;
                p[x,3] = k;
                p[x,4] = l;
                x++;
            }
        }
    }
}
 
ارسال‌ها
237
امتیاز
9,720
نام مرکز سمپاد
فرزانگان امین
شهر
اصفهان
سال فارغ التحصیلی
90
دانشگاه
دانشگاه تهران
رشته دانشگاه
عمران-مدیریت منابع آب
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

بچه ها، یه سوال فنی!!! ممکنه برنامه ای که نوشتیم روی سیستم عامل کامپیوتر مشکل ایجاد کنه؟!!! من یه برنامه دارم مینویسم، از وقتی که یه قسمتی از برنامه رو نوشتم و اجرا میکنم هم محیط visual studio قاطی می کنه هم بعدش تا چند مرتبه که لپ تاپ رو روشن می کنم، ویندوز بالا نمیاد!!! ویندوزم هم 8 هست! بعد دقیقا این قسمت برنامه رو که پاک می کنم خوب میشه دوباره!!!
 

rezaezio

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,167
امتیاز
1,956
نام مرکز سمپاد
حلّیِ 2
شهر
تهران
مدال المپیاد
برنز و طلای کامپیوتر !
دانشگاه
شریف
رشته دانشگاه
نرم افزار
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از daneshvar.amr :
سلام. یه برنامه بازگشتی یه میخوام بنویسم که تو چهار تا خونه از یک آرایه اعداد 1 تا 9 رو بچینه. که میشه 4^9 تا حالت. غیر بازگشتیش رو میدونم. به ازای یک حالت کلی هم نمیخوام. همین حالتی که گفتم. چهار تا خانه. 1 تا 9. میخوام تو یه آرایه دو بعدی دخیره کنم.
http://paste.ubuntu.com/6673191
 

JB

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,447
امتیاز
4,766
نام مرکز سمپاد
هاشمی‌نژاد ۲ مشهد
دانشگاه
شهید بهشتی تهران
رشته دانشگاه
ریاضی و علوم کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از puzzle :
بچه ها، یه سوال فنی!!! ممکنه برنامه ای که نوشتیم روی سیستم عامل کامپیوتر مشکل ایجاد کنه؟!!! من یه برنامه دارم مینویسم، از وقتی که یه قسمتی از برنامه رو نوشتم و اجرا میکنم هم محیط visual studio قاطی می کنه هم بعدش تا چند مرتبه که لپ تاپ رو روشن می کنم، ویندوز بالا نمیاد!!! ویندوزم هم 8 هست! بعد دقیقا این قسمت برنامه رو که پاک می کنم خوب میشه دوباره!!!
لوپ بی‌نهایت، دستور اشتباه دادن به تابع system و ... می‌تونه مشکل ایجاد کنه. برنامه‌ت رو بزار ببینیم چیه.
 

zahra.s

کاربر نیمه‌حرفه‌ای
ارسال‌ها
208
امتیاز
1,519
نام مرکز سمپاد
فرزانگان
شهر
کاشان
دانشگاه
صنعتی اصفهان
رشته دانشگاه
کامپیوتر-نرم افزار
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

یه سوال در مورد directory ها داشتم.برای move کردن از یه فولدر به یه فولدر دیگه از چه دستوری باید استفاده کرد؟دستور cd رو براش خطا میگیره حالا نمیدونم دستور اشتباهه یا باید یه کتابخونه دیگه واسش تعریف کنم؟کتابخونه ی direct.h رو تعریفش کردم..
 

daneshvar.amrollahi

کاربر حرفه‌ای
ارسال‌ها
327
امتیاز
130
نام مرکز سمپاد
راهنمایی حلی۲/دبیرستان حلی۱۰/دبیرستان علامه طباطبایی
شهر
تهران
سال فارغ التحصیلی
1397
مدال المپیاد
کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

سلام. کوناه ترین راه برای محاسبه مجموع مقسوم علیه های عدد چیه؟ قراره t تا عدد بین محدوده 1 تا 500000 بگیره و این جمع رو چاپ کنه. کدی که خودم نوشتم بیشتر از 5 ثانیه زمان میگیره. باید زیر 5 ثانیه جواب بده:
کد:
#include<iostream>
#include<math.h>
using namespace std;

bool pcheck(unsigned long int x)
{
     for (int i=2;i<=sqrt(x);i++)   
         if (x%i==0)
            return false;
     return true;
}

int main()
{
    int t;
    cin>>t;
    unsigned long int n;
    while(t>0)
    {
        cin>>n;
        unsigned long int x=n;
        unsigned int b=2;
        double sum=1;
        unsigned int power;
        while (n!=1)
        {
              while ( ((pcheck(b)==false) || (n%b!=0)) && (b<=sqrt(n) ) ) 
                    b++;
              
              power = 0;
                 while (n%b==0)
                 {
                       power++;
                       n/=b;
                 }
              
              sum*=(pow(b,power+1)-1)/(b-1);
              b++;
        }
        sum-=x;
        cout<<sum<<endl;
    t--;
    }
    
    return 0;          
}
 

JB

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,447
امتیاز
4,766
نام مرکز سمپاد
هاشمی‌نژاد ۲ مشهد
دانشگاه
شهید بهشتی تهران
رشته دانشگاه
ریاضی و علوم کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

من این‌جوری حساب می‌کنم، کمتر از یک میلی ثانیه طول می‌کشه.
کد:
/*
 * SumOfDivisors.cpp
 * 
 * Copyright 2014 Javad Bahoosh <javad@javad-HP-620>
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * 
 */
#include <stdio.h>
#include <time.h>
#include <math.h>
int SumOfDivisors(int num)
{
	int sum=0;
	int r=floor(sqrt((double)num));
	if(r*r==num) //case that n is a perfect square
	{
		sum += r;
		r -= 1;
	}
	if( num%2 != 0 ) //number is odd
		for(int i=1; i<=r; i+=2)
		{
			if(num%i==0)
				sum += i + num/i ;
		}
	else //number is even
		for(int i=1; i<=r; i+=1)
		{
			if(num%i==0)
				sum += i + num/i ;
		}
	return sum;
}
int main()
{
clock_t start,end;
int ans=0;
start = clock();
ans = SumOfDivisors(97132312);
end = clock();
printf("%d\n%d msec\n",ans,(end-start));
}
 

daneshvar.amrollahi

کاربر حرفه‌ای
ارسال‌ها
327
امتیاز
130
نام مرکز سمپاد
راهنمایی حلی۲/دبیرستان حلی۱۰/دبیرستان علامه طباطبایی
شهر
تهران
سال فارغ التحصیلی
1397
مدال المپیاد
کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

سلام. میخوام نسبت c به n رو که هردوشون int هستند رو به صورت درصد با دقت 3 رقم اعشار بنویسم. کد زیر غلطه و خروجی درست نمیده
کد:
double res = c/n*100     
        cout<<"%"<<fixed << std::setprecision(3)<<res<<endl;
نمیدونم چرا. میشه بگید؟
 

kia.celever

کاربر حرفه‌ای
ارسال‌ها
338
امتیاز
1,367
نام مرکز سمپاد
دبیرستان علامه حلی ۳
شهر
تهران
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از daneshvar.amr :
سلام. میخوام نسبت c به n رو که هردوشون int هستند رو به صورت درصد با دقت 3 رقم اعشار بنویسم. کد زیر غلطه و خروجی درست نمیده
کد:
double res = c/n*100     
        cout<<"%"<<fixed << std::setprecision(3)<<res<<endl;
نمیدونم چرا. میشه بگید؟

خروجی اپراتور تقسیم int به int یه int ـه که برابر کف مقدار واقعی کسره. یعنی اگه مثلاً c=10 و n = 4 باشه، double x = c/n می‌شه 2.
برای این که خروجی تقسیم double باشه یکی از متغیّرها رو cast کن به double. چون خروجی اپراتور تقسیم با ورودی‌های int و double یه double می‌شه. این کد باید جواب بده:
کد:
double res = (double) c/n*100
 
  • لایک
امتیازات: JB

innocent

کاربر فوق‌فعال
ارسال‌ها
140
امتیاز
345
نام مرکز سمپاد
فرزانگان (1)
شهر
اهواز
سال فارغ التحصیلی
92
مدال المپیاد
مطالعه (!!!) برای مرحله دوم المپیاد ادبی...که البته قبول نشــدم:دی
رشته دانشگاه
دانشگاه شهید چمران هواز - دانشگاه شیراز
تلگرام
اینستاگرام
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

من یه سوال دارم فکر میکنم جاش اینجا باشه
واسه پروژه م که کتابداریه تو یه استرکچر تو زبان c++ یه سری اطلاعات تعریف کردم.(از جمله مثلا Name )
حالا فرضا کاربر یه سری اطلاعات اضافه کرده و تو فایل هستن.
میخوام به ترتیب حروف الفبا نمایششون بدم.
یه تابعی به اسم sort پیدا کردم اما اون هر کلمه رو واسم صعودی مینوشت. من میخوام مثل فرهنگ لغت اسم اعضا یا کتاب ها یا .... رو به ترتیب الفبا بچینه؟
میشه لطفا راهنماییم کنید؟
همه پروژه م تموم شده فقط همینش مونده!
اگه اطلاعات بیشتری هم از برنامه م لازمه تا بگم؟
 

JB

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,447
امتیاز
4,766
نام مرکز سمپاد
هاشمی‌نژاد ۲ مشهد
دانشگاه
شهید بهشتی تهران
رشته دانشگاه
ریاضی و علوم کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از innocent :
من یه سوال دارم فکر میکنم جاش اینجا باشه
واسه پروژه م که کتابداریه تو یه استرکچر تو زبان c++ یه سری اطلاعات تعریف کردم.(از جمله مثلا Name )
حالا فرضا کاربر یه سری اطلاعات اضافه کرده و تو فایل هستن.
میخوام به ترتیب حروف الفبا نمایششون بدم.
یه تابعی به اسم sort پیدا کردم اما اون هر کلمه رو واسم صعودی مینوشت. من میخوام مثل فرهنگ لغت اسم اعضا یا کتاب ها یا .... رو به ترتیب الفبا بچینه؟
میشه لطفا راهنماییم کنید؟
همه پروژه م تموم شده فقط همینش مونده!
اگه اطلاعات بیشتری هم از برنامه م لازمه تا بگم؟
یه سری کلمه داری توی یه فایل که قراره به ترتیب الفبا مرتب بشن؟ من اینکار رو می‌کنم:
کد:
/*
 * Sort.cpp
 * 
 * Copyright 2014 Javad Bahoosh <javad@javad-HP-620>
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * 
 */
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <fstream>
using namespace std;
int main() {
    // Empty vector holding all names from file
    vector<string> names;
    // Read names from file test.text
    ifstream in("test.text");
    if(!in.is_open())
        cout << "Unable to open file\n";
    string word;
    while(getline(in, word))
            names.push_back(word);
    sort(names.begin(), names.end());
    // Loop to print names
    for (size_t i = 0; i < names.size(); i++)
        cout << names[i] << '\n';
}
 

Fateme :)

کاربر فوق‌فعال
ارسال‌ها
93
امتیاز
315
نام مرکز سمپاد
فرزانگان 3
شهر
تهران
سال فارغ التحصیلی
94
دانشگاه
بهشتی
رشته دانشگاه
سخت افزار
پاسخ : سئوال c++

سلام. من ویندوز 8 دارم و با dev C++ کار می کنم! احتمالا می دونین که نسخه های قدیمی dev با 8 جور نبود ولی نسخه های جدیدش جورن! حالا مشکل اینجاس که تو برنامه های گرافیکی موقع کامپایل کردن برنامه ارور می ده و graphics.h رو باز و خط 302 رو مشخص می کنه :
int left=0, int right=0, int right=INT_MAX, int bottom=INT_MAX,
الان اشکالش چیه؟ من هیچی از منظورشو نمی فهمم! تو compile میگه : 'int right' previously declared here
 

The Smith

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,061
امتیاز
3,545
نام مرکز سمپاد
سلام ایران‌زمین
پاسخ : سئوال c++

به نقل از madrid 4 life :
سلام. من ویندوز 8 دارم و با dev C++ کار می کنم! احتمالا می دونین که نسخه های قدیمی dev با 8 جور نبود ولی نسخه های جدیدش جورن! حالا مشکل اینجاس که تو برنامه های گرافیکی موقع کامپایل کردن برنامه ارور می ده و graphics.h رو باز و خط 302 رو مشخص می کنه :
int left=0, int right=0, int right=INT_MAX, int bottom=INT_MAX,
الان اشکالش چیه؟ من هیچی از منظورشو نمی فهمم! تو compile میگه : 'int right' previously declared here
۲ بار تعریف داری میکنی خوب :D
 

Fateme :)

کاربر فوق‌فعال
ارسال‌ها
93
امتیاز
315
نام مرکز سمپاد
فرزانگان 3
شهر
تهران
سال فارغ التحصیلی
94
دانشگاه
بهشتی
رشته دانشگاه
سخت افزار
پاسخ : سئوال c++

می فهمم که یه هم چین منظوری داره اما نمی فهمم که دقیقا دارم چیو دو بار تعریف می کنم که خودم نمی دونم؟ اینجا ظاهرا همه چی یه بار تعریف شده
 

alie.a

کاربر فعال
ارسال‌ها
28
امتیاز
77
نام مرکز سمپاد
دبيرستان فرزانگان 1 مشهد
شهر
مشهد
پاسخ : سئوال c++

به نقل از madrid 4 life :
می فهمم که یه هم چین منظوری داره اما نمی فهمم که دقیقا دارم چیو دو بار تعریف می کنم که خودم نمی دونم؟ اینجا ظاهرا همه چی یه بار تعریف شده
کدتونو بدین من یه نگاهی بندازم.
 
بالا