• اگر سمپادی هستی همین الان عضو شو :

    ثبت نام عضویت

مقدمات برنامه نویسی با ++C

  • شروع کننده موضوع شروع کننده موضوع hasangolab
  • تاریخ شروع تاریخ شروع
پاسخ : مقدمات برنامه نویسی با ++C

به نقل از Daneshvar :
میشه بگید از کدوم define ها و include ها در این برنامه استفاده شده است؟
فقط string و iostream
خو عزیز این یک سوال بدیهی بود :) ، ولی سوالای سخت تر که ایده های جالب تر دارن ، برا آسون تر شدنشون خیلی چیزا لازم میشه !
آدم همه اینا رو include میکنه که براش وقت گیر نشه در آینده اگه نیازش بود !
 
پاسخ : مقدمات برنامه نویسی با ++C

به نقل از vector :
فقط string و iostream
خو عزیز این یک سوال بدیهی بود :) ، ولی سوالای سخت تر که ایده های جالب تر دارن ، برا آسون تر شدنشون خیلی چیزا لازم میشه !
آدم همه اینا رو include میکنه که براش وقت گیر نشه در آینده اگه نیازش بود !

اوکی ممنون. بهره بردیم! :لایک
 
پاسخ : مقدمات برنامه نویسی با ++C

این برنامه قراره هرگاه قرینه ی یک عددی بعد از همان عدد آمده بود، اعلام کنه بله یا نه. قراره خط اول ورودی t باشه که قراره t بار تست کنه. اولین عدد هر خط میگه که چند تا عدد هستش. برای مثال به صورت زیر هستند و کنار هم وارد می شوند.
1 1 -2 1- 1 2 3 4 4- 1
به طور مثال باید برای مورد دوم بله اعلام کنه چون که 1- بعد از 1 اومده. در مورد دوم عدد 2 میگه که قراره دو تا عدد بعدش بیاد(1- 1)
اینم کدش. نمی دونم کجا اشکال داره. کسی میتونه راهنمایی کنه؟
کد:
#include<iostream>
#include<conio.h>
#include<fstream>

using namespace std;

ifstream fin("input.txt");
ofstream fout("output.txt");

int main()
{
    int t,x,n;
    fin>>t;
    
    for (int i=0;i<t;i++)
    {
        fin>>n;
        int a[n+1];
        
        for (int j=1;j<=n;j++)
        fin>>a[j];
        
        for (int k=1;k<=n;k++) 
        {
             if ( (a[k+1]-a[k] == a[k]-2*a[k]) )
             {
                 fout<<"BALE";
                 break;
             } 
             else
             {
              if (k==n)
              fout<<"NA";
             }
        } 
        
        fout<<endl;
    } 
    
     return 0;
}
 
پاسخ : مقدمات برنامه نویسی با ++C

به نقل از Daneshvar :
این برنامه قراره هرگاه قرینه ی یک عددی بعد از همان عدد آمده بود، اعلام کنه بله یا نه. قراره خط اول ورودی t باشه که قراره t بار تست کنه. اولین عدد هر خط میگه که چند تا عدد هستش. برای مثال به صورت زیر هستند و کنار هم وارد می شوند.
1 1 -2 1- 1 2 3 4 4- 1
به طور مثال باید برای مورد دوم بله اعلام کنه چون که 1- بعد از 1 اومده. در مورد دوم عدد 2 میگه که قراره دو تا عدد بعدش بیاد(1- 1)
اینم کدش. نمی دونم کجا اشکال داره. کسی میتونه راهنمایی کنه؟
کد:
#include<iostream>
#include<conio.h>
#include<fstream>

using namespace std;

ifstream fin("input.txt");
ofstream fout("output.txt");

int main()
{
    int t,x,n;
    fin>>t;
    
    for (int i=0;i<t;i++)
    {
        fin>>n;
        int a[n+1];
        
        for (int j=1;j<=n;j++)
        fin>>a[j];
        
        for (int k=1;k<=n;k++) 
        {
             if ( (a[k+1]-a[k] == a[k]-2*a[k]) )
             {
                 fout<<"BALE";
                 break;
             } 
             else
             {
              if (k==n)
              fout<<"NA";
             }
        } 
        
        fout<<endl;
    } 
    
     return 0;
}
سوال میپرسی واضح بگو ، با مثال توضیح نده که سوال رو
اگه سواله بیانه میتونی PDF سوال رو دانلود کنی. دانلود کن و آپلود کنه برام
 
پاسخ : مقدمات برنامه نویسی با ++C

نمیدونم چرا اینقدر سخت فکر می کنی !!

بیا این کدِ درستش :
کد:
#include<iostream>
#include<conio.h>
#include<fstream>

using namespace std;

ifstream fin("input.txt");
ofstream fout("output.txt");

int main()
{
    int t,x,n;
    fin>>t;
    
    for (int i=0;i<t;i++)
    {
        fin>>n;
        int a[n+1];
        
        for (int j=1;j<=n;j++)
        fin>>a[j];
        
        for (int k=1;k<n;k++) 
        {
             if ( (a[k]==a[k+1]*-1) ) // Inja kharab bood !!
             {
                 fout<<"BALE";
                 break;
             } 
             else
             {
              if (k==n-1)
              fout<<"NA";
             }
        } 
        
        fout<<endl;
    } 
    
     return 0;
}
اونجا که چک می کردی ، یه عدد با عدد بعدیش قرینه هست یا نه ، رو اشتباه گذاشته بودی !! توی کد توضیحات گذاشتم که کجا رو غلط نوشتی
 
پاسخ : مقدمات برنامه نویسی با ++C

به نقل از vector :
سوال میپرسی واضح بگو ، با مثال توضیح نده که سوال رو
اگه سواله بیانه میتونی PDF سوال رو دانلود کنی. دانلود کن و آپلود کنه برام

لینک PDF سوال:


http://www.mediafire.com/view/rf5hclrx2fzctxw/All_Problems.pdf


باید سوال نماد مرغوب رو بخونید
lممنون
 
پاسخ : مقدمات برنامه نویسی با ++C

به نقل از Dant3 :
نمیدونم چرا اینقدر سخت فکر می کنی !!

بیا این کدِ درستش :
کد:
#include<iostream>
#include<conio.h>
#include<fstream>

using namespace std;

ifstream fin("input.txt");
ofstream fout("output.txt");

int main()
{
    int t,x,n;
    fin>>t;
    
    for (int i=0;i<t;i++)
    {
        fin>>n;
        int a[n+1];
        
        for (int j=1;j<=n;j++)
        fin>>a[j];
        
        for (int k=1;k<n;k++) 
        {
             if ( (a[k]==a[k+1]*-1) ) // Inja kharab bood !!
             {
                 fout<<"BALE";
                 break;
             } 
             else
             {
              if (k==n-1)
              fout<<"NA";
             }
        } 
        
        fout<<endl;
    } 
    
     return 0;
}
اونجا که چک می کردی ، یه عدد با عدد بعدیش قرینه هست یا نه ، رو اشتباه گذاشته بودی !! توی کد توضیحات گذاشتم که کجا رو غلط نوشتی

عوضش کردم ولی هنوز درست کار نمی کنه. فکر کنم کلاً مشکل از الگوریتمه :-??
 
پاسخ : مقدمات برنامه نویسی با ++C

حاجی سوال رو اشتباه فهمیدی !! دوباره بخون. :|

میگه اگه یه عدد بیاد کنار قرینش ، این دو تا عدد با هم ناپدید میشن !! حالا بگید آخرش عددی میمونه یا نه .
 
پاسخ : مقدمات برنامه نویسی با ++C

مشکلت اینه اشتباه سوال رو میفهمی ! :)

برا توضیحی که دادی مثال نقض بیارم ؟ همین سومین Sample خودش مثال نقضی هست که گفتی :دی

کد:
#include <cstring>
#include <cstdio>
#include <cmath>
#include <cctype>
#include <algorithm>
#include <iomanip>
#include <sstream>
#include <iostream>
#include <vector>
#include <set>
#include <map>
#include <deque>
#include <stack>
#include <utility>

using namespace std;

#define FOR(i,a,b) for (int i = (a); i < (int)(b); ++i)
#define FOREACH(i,c) for (__typeof(c.begin()) i = c.begin(); i != c.end(); ++i)

typedef long long int64;

vector <int> v;
int a[55];

int main () {
	freopen ("in.txt", "r", stdin);
	freopen ("out.txt", "w", stdout);
	int T;
	for (cin >> T; T--;) {
		v.clear();
		int n;
		cin >> n;
		FOR (i, 0, n)
			cin >> a[i];
		v.push_back(a[0]);
		FOR (i, 1, n) {
			if (!v.empty()) {
				if (a[i] < 0 && (a[i] * -1) == v.back())
					v.pop_back();
				else
					v.push_back(a[i]);
			}
			else
				v.push_back(a[i]);
		}
		if (v.size() == 0)
			puts ("BALE");
		else
			puts ("NA");
	}
        return 0;
}
کد درستش اینه.
 
پاسخ : مقدمات برنامه نویسی با ++C

میشه یه کم درباره کدتون توضیح بدین یا یه کد ساده تر بنویسین؟ الان این چیزی که نویشتین چیکار می کنه؟
دارین هر وقت قرینه دیدین دو تا رو از آرایه حذف می کنید؟ برای حذفش از دستور []delete arrayname استفاده کرد؟ آیا باید include خاصی اون بالا نوشته بشه؟
 
Back
بالا