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

  • شروع کننده موضوع شروع کننده موضوع max
  • تاریخ شروع تاریخ شروع
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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

به نقل از MajiiiiiD :
با کتابخونه algorithm آشنایی داری ؟
[/quote
سلام. نه اما شنیدم که تابع آماده اش هست. برای 1 تا n میشه نوشت اما این که 4 تا عدد مختلف یکم سخت تره--->تمامی حالات؟
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

توضیح نیاز داره ؟
http://paste.ubuntu.com/6618903/
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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

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

سلام. یه برنامه بازگشتی یه میخوام بنویسم که تو چهار تا خونه از یک آرایه اعداد 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++;
            }
        }
    }
}
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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

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

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

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

سلام. کوناه ترین راه برای محاسبه مجموع مقسوم علیه های عدد چیه؟ قراره 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;          
}
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

من این‌جوری حساب می‌کنم، کمتر از یک میلی ثانیه طول می‌کشه.
کد:
/*
 * 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));
}
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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

به نقل از 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
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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

به نقل از 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';
}
 
پاسخ : سئوال 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
 
پاسخ : سئوال 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
۲ بار تعریف داری میکنی خوب :دی
 
پاسخ : سئوال c++

می فهمم که یه هم چین منظوری داره اما نمی فهمم که دقیقا دارم چیو دو بار تعریف می کنم که خودم نمی دونم؟ اینجا ظاهرا همه چی یه بار تعریف شده
 
پاسخ : سئوال c++

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