سلام دوستان
ممنون میشم ببینین اشکال این چندتا برنامه چیه؟
کد:http://www.up.--------.com/images/6ua44cnd35gho6ctfof.rar
Printable View
سلام دوستان
ممنون میشم ببینین اشکال این چندتا برنامه چیه؟
کد:http://www.up.--------.com/images/6ua44cnd35gho6ctfof.rar
سلام
سال نوع مبارک
دوست عزیز قبل از هرچیز اینو بگم که کد ها به ترتیب اجرا می شوند
در فایل 10_Tafazole_Adad_Maghlub.CPPشما قبل از مقدار دهی متغیر A آن را در m کپی کرده اید که این عمل اگر هم خطا ندهد درست هم اجرا نخواهد شدکد:#include<iostream.h>
int main()
{
int a,varun=0,m=a,t=1,k=1,r;
cin>>a;
//------
while (a>9)
{t=t+1;k=k*10;a=a/10;}
a=m;
while (a>0)
{r=a%10;varun=r*k+varun;k=k/10;a=a/10;}
if (m>varun)
cout<<m-varun;
cout<<varun-m;
return 0;
}
برای تصحیح قسمت قرمز رنگ را حذف و در قسمت آبی رنگ کد زیر را بنویسید
در اینجا باز هم خطای قبلی اتفاق افتادهکد:int m=a;
رفع مشکلکد:#include<iostream.h>
int main()
{
int a,b,i=1,c=a;
cin>>a;
//---------
cin>>b;
while (i<b)
{a=a+c;i=i+1;}
cout<<a;
return 0;
}
سومی از نظر من مشکلی نداشتکد:int c=a;
چهارمی هم نداشتکد:#include<iostream.h>
int main()
{
int a,b,max,min,temp;
cin>>a>>b;
if (a==b)
cout<<a;
if (a>b)
{max=a;min=b;}
else
{max=b;min=a;}
max=max-min;
while (max>min)
max=max-min;
if (max==min)
cout<<min;
{temp=min;min=max;max=temp;}
return 0;
}
نداشتکد:#include<iostream.h>
int main()
{
int a;
cin>>a;
a=a/100;
cout<<a%10;
return 0;
}
همانند مشکل قبلیکد:#include<iostream.h>
int main()
{
int n,x,sum=1,i=0,s=x;
cin>>x>>n;
while (i!=n)
{sum=sum+s;s=s*x;i=i+1;}
cout<<sum;
return 0;
}
مشکل قبلیکد:#include<iostream.h>
int main()
{
int x,n,sum=1,i=0,s=x,f=1;
cin>>x>>n;
//----------
while (i!=n)
{sum=sum+s/f;cout<<"x^"<<i<<"/"<<i<<"!"<<"+";
s=s*x;i=i+1;f=f*(i+1);}
{cout<<"x^"<<i<<"/"<<i<<"!"<<"="<<sum;}
return 0;
}
نداردکد:#include<iostream.h>
int main()
{
int a,t=0,a1=a;
cin>>a;
//---------
while (a>0)
{a=a/10;t=t+1;}
if (t%2==0)
{cout<<"raghame_vasat_nadarad";return 0;}
else
{t=t/2;
while (t>0)
{a1=a1/10;t=t-1;}
cout<<a1%10;}
return 0;
}
و اینجا هم یک { اضافهکد:#include<iostream.h>
int main()
{
int a,b,t=0,a1,b1,max,min,temp,n,m;
cin>>a>>b;
a1=a/10;b1=b/10;
a1=a1%10;b1=b1%10;
if (a1>b1)
{max=a1;min=b1;m=a;n=b;}
else
{max=b1;min=a1;m=b;n=a;}
temp=min
while (min!=max)
{min=min+1;t=t+1;}
{n=t*10+n;m=m-t*10;}
cout<<n<<m;
return 0;
}
از نظر من که فکر کنم مشکلها فقط همین بود ولیکد:#include<iostream.h>
int main()
{
int a,b,max,min,m,n;
cin>>a>>b;
if (a>b)
{max=a;min=b;}
else
{max=b;min=a;}
while (min>0)
{n=min%10;min=min/10;m=max%10;max=max/10;}
while (m!=n)
{if (max>0)
{m=max%10;max=max/10;}
else
cout<<"kheyr";}}
cout<<"bale";
return 0;
}
کد ها را کامل گذاشتم که اگه مشکلی بود دوستان بگن
به قسمت قرمز رنگ نگاه کنیدشما SHR را تعریف کرده اید ولی مقدار دهی نکرده ایدکد:#include "stdafx.h"
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
#include <cmath>
#include <string>
#include <cstdlib>
using namespace std;
int PSR (char);
int main()
{
char a;
int b;
cin>>a;
b=PSR(a);
cout<<b<<endl;
system ("Pause");
return 0;
}
int PSR (char n){
char SHR;
if (n==SHR)
return 16;
else
return -1;
}
و آن را با متغیر مقدار دهی شده در خط بعد مقایسه می کنید
خیلی ممنونم محبوبه جان؛ :11:
مثل اینکه یه مشکل داشتم و توی 5 تاش تکرار کردم!
=
هنوز توی 4 تای باقی مونده مشکل دارم.
توی این یکی:
کد:#include<iostream.h>
int main()
{
int a,b,max,min,temp;
cin>>a>>b;
if (a==b)
cout<<a;
if (a>b)
{max=a;min=b;}
else
{max=b;min=a;}
max=max-min;
while (max>min)
max=max-min;
if (max==min)
cout<<min;
{temp=min;min=max;max=temp;}
return 0;
}
میخوام ب م م دو عدد رو چاپ کنه. وقتی دوتا عدد میدم که یکی بر دیگری بخش پذیره، درست چاپ میکنه. اما مشکلم توی حالتهای دیگه س.
میدونم که توی قسمت while هام مشکل دارم. اون قسمتی که قرمز کردم میخوام باز تکرار بشه اما نمیدونم کجا و چطوری بذارمش.
===========
توی این یکی:
میخوام صدگان عدد رو چاپ کنه. وقتی عدد سه رقمی بهش میدم درست کار میکنه، اما وقتی تعداد رقم میره بالا، خراب میکنه.کد:
#include<iostream.h>
int main()
{
int a;
cin>>a;
a=a/100;
cout<<a%10;
return 0;
}
نمیدونم مشکل کجاس؟
=======
این یکی:
میخوام دهگان دو عدد رو جابجا کنه.کد:#include<iostream.h>
int main()
{
int a,b,t=0,a1,b1,max,min,temp,n,m;
cin>>a>>b;
a1=a/10;b1=b/10;
a1=a1%10;b1=b1%10;
if (a1>b1)
{max=a1;min=b1;m=a;n=b;}
else
{max=b1;min=a1;m=b;n=a;}
temp=min
while (min!=max)
{min=min+1;t=t+1;}
{n=t*10+n;m=m-t*10;}
cout<<n<<m;
return 0;
}
توی قسمتی که قرمز کردم ارور میده که: Statement Is Missing
نمیدونم چرا؟
========
و توی این یکی هم:
میخوام دو عدد بگیره و ببینه اونی که رقم کمتر داره عینا توی اون یکی پیدا میشه یا نه؟کد:#include<iostream.h>
int main()
{
int a,b,max,min,m,n;
cin>>a>>b;
if (a>b)
{max=a;min=b;}
else
{max=b;min=a;}
while (min>0)
{n=min%10;min=min/10;m=max%10;max=max/10;}
while (m!=n)
{if (max>0)
{m=max%10;max=max/10;}
else
cout<<"kheyr";}}
cout<<"bale";
return 0;
}
اما هر مثالی میدم یه چیز میگه! یه بار دست جواب میده، یه بار یه عالمه خیر پشت هم میده و اکثرا هم اشتباه میکنه.
اینم نمیدونم مشکلش کجاس.
ممنون [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
برنامه اوتون رو يه ذره تغيير دادم شد اين فكر كنم خيلي راحت بشه اين رو فهميد
نقل قول:
#include<iostream.h>
#include<conio.h>
int main(){
int a,b,max,min,temp;
cin>>a>>b;
if(a>b){
max=a;
min=b;
}
else{
max=b;
min=a;
}
while(min!=0){
temp=max%min;
max=min;
min=temp;
}
cout<<max;
getch();
return 0;
}
برنامه دوم مشكلي نداشت من امتحن كردم
در برنامه سوم
هر وقت اين خطا رو ديديد بدونيد انتهاي خط قبلي ; نگذاشتيد
برنامه چهارم هم يه راه حل ساده تر داره اما الان ساعت شش صبحه و من بيداره خوابم
در قسمت اول ارور بخاطر } ابتدایی و { انتهایی می باشد که نیازی به آن نیست ولی شما
استفاده کردید ( کلا پیشنهاد می کنم این خط (خط قرمز رنگ) را حذف کنید
دومی :اگر در قسمت آبی رنگ کد زیر را بنویسید مشکلیان حل می شودکد:#include<iostream.h>
int main()
{
int a;
cin>>a;
//-------
a=a/100;
cout<<a%10;
return 0;
}
در قسمت سوم همکد:a%=1000;
اگر } ابتدایی و { انتهایی را حذف کنید مشکل حل می شودکد:#include<iostream.h>
int main()
{
int a,b,t=0,a1,b1,max,min,temp,n,m;
cin>>a>>b;
a1=a/10;b1=b/10;
a1=a1%10;b1=b1%10;
if (a1>b1)
{max=a1;min=b1;m=a;n=b;}
else
{max=b1;min=a1;m=b;n=a;}
temp=min
while (min!=max)
{min=min+1;t=t+1;}
{n=t*10+n;m=m-t*10;}
cout<<n<<m;
return 0;
}
در قسمت آخر همبله عبارت kheyr می تواند صفر 1،2،... بار به صورت تکراری چاپ شود و آن هم بخاطر این است که در حلقه واقع شده است و هرگاه شرطکد:#include<iostream.h>
int main()
{
int a,b,max,min,m,n;
cin>>a>>b;
if (a>b)
{max=a;min=b;}
else
{max=b;min=a;}
while (min>0)
{n=min%10;min=min/10;m=max%10;max=max/10;}
while (m!=n)
{if (max>0)
{m=max%10;max=max/10;}
else
cout<<"kheyr";}}
cout<<"bale";
return 0;
}
قرمز رنگ برقرار نباشد یک بار این عبارت چاپ می شود
(در خط سبز رنگ حتما باید یکی از { حذف شود )
موفق باشید
خیلی ممنونم از اینکه وقت گذاشتین :11:
این علامت %= رو نخوندم، چه معنی میده؟نقل قول:
اگر در قسمت آبی رنگ کد زیر را بنویسید مشکلیان حل می شود
کد:
a%=1000;
این کارو هم کردم و حل نشد.نقل قول:
بله عبارت kheyr می تواند صفر 1،2،... بار به صورت تکراری چاپ شود و آن هم بخاطر این است که در حلقه واقع شده است و هرگاه شرط
قرمز رنگ برقرار نباشد یک بار این عبارت چاپ می شود
(در خط سبز رنگ حتما باید یکی از { حذف شود )
موفق باشید
راه دیگه ای داره؟
به نام خدا
سلام
من یه بار این سوال رو پرسیدم
اگه این بار هم جواب نگرفتم دیگه اصرار نمیکنم
لطفاً لینککامپایلر ++c اپن سورس رو از سایت سورس فورج یا سایتی دیگه بدین ممنونم میشم
عبارتنقل قول:
خیلی ممنونم از اینکه وقت گذاشتین
نقل قول:اگر در قسمت آبی رنگ کد زیر را بنویسید مشکلیان حل می شود
کد:
a%=1000;
این علامت %= رو نخوندم، چه معنی میده؟
همان کدکد:a%=100;
استکد:a=a%1000;
اینجا من گفتم که یک { اضافه گذاشته اید که باعث خطا می شودنقل قول:
نقل قول:بله عبارت kheyr می تواند صفر 1،2،... بار به صورت تکراری چاپ شود و آن هم بخاطر این است که در حلقه واقع شده است و هرگاه شرط
قرمز رنگ برقرار نباشد یک بار این عبارت چاپ می شود
(در خط سبز رنگ حتما باید یکی از { حذف شود )
موفق باشید
این کارو هم کردم و حل نشد.
راه دیگه ای داره؟
اما عبارت keyr همچنان تکرار خواهد شد چون درون حلقه می باشد
اگه پیدا کردی یه ندا هم به ما بدهنقل قول:
من یه بار این سوال رو پرسیدم
اگه این بار هم جواب نگرفتم دیگه اصرار نمیکنم
لطفاً لینککامپایلر ++c اپن سورس رو از سایت سورس فورج یا سایتی دیگه بدین ممنونم میشم
مرسی
کجا قرارش بدم تا درست کار کنه؟نقل قول:
اما عبارت keyr همچنان تکرار خواهد شد چون درون حلقه می باشد
:11:
دقیقا نمیدونم این کد چکار میکنه حوصله فکر کردن روش رو هم ندارم ولی فکر کنم
اگر به جای کلمه مشخص شده ( while ) کلمه if را قرار بدهید همه چیز درست شودکد:int main()
{
int a,b,max,min,m,n;
cin>>a>>b;
if (a>b)
{
max=a;
min=b;
}
else
{
max=b;
min=a;
}
while (min>0)
{
n=min%10;
min=min/10;
m=max%10;
max=max/10;
}
while (m!=n)
{
if (max>0)
{
m=max%10;
max=max/10;
}
else
cout<<"kheyr";
}
cout<<"bale";
return 0;
}
لطفا امتحان کنید و خبر دهید
موفق باشید
تا اونجايي كه من ميدونم كامپايلر سي اپن سورس نداريمنقل قول:
سلام، این برنامه 5 تا عدد رو تو یک آرایه می گیره و به یک تابع دیگر منی فرسته و قراره اون تابع مکس رو چاپ کنه !
اشکالش کجاست؟
کد:#include <iostream>
using namespace std;
int max(int a[])
{
int maxi=a[0];
for(int i=0; i<5; i++)
{
if (a[i]>=a[i+1])
maxi=a[i];
else
maxi=a[i+1];
}
cout<<"The Max is: "<< maxi<<endl;
return 0;
}
int main()
{
int a[5],sum=0;
for(int i=0; i<5; i++)
cin>>a[i];
max (a);
}
از تكنيك flag استفاده كنيدنقل قول:
مثلا يك متغير flag تعريف كنيد و مقدار يك رو بهش بديد
بعد موقعي كه جواب خير هست
دستور چاپ رو پاك كنيد و مقدار فلگ رو صفر كنيد
بعد با يك شرط چك كنيد اگه فلگ صفر بود جواب بده خير ولي اگه يك بود جواب بده بله
به نام خدانقل قول:
سلام دوست عزیز
راستش چند ماه پیش که نمایشگاه رسانههای دیجیتال بود و کارگاه های اموزش مختلفی برگزار میشد
تو کارگاه اپن سورس از نرم افزارهای اپن سورس و سیستم عاملهای اپن سورس صحبت شد و تو این میون یه کامپایلر زبان سی اپن سورس هم معرفی کردند اما من یادم رفت اسمشو
ولی فکر کنم گفت تو سایت سورس فورج میشه پیداش کرد
دقیقا یادم نیست آرایه ها را آنطور که شما به تابع ارسال می کنید صحیح است یا خیر
ولی می توانید از اشاره گر ها استفاده کنید
تا بع max را اینگونه تعریف کنید
کد:int max(int* a)
{
int maxi=*a
for(int i=1; i<5; i++)
if(*(a+i)>maxi)
maxi=*(a+i);
cout<<"The Max is: "<< maxi<<endl;
return 0;
}
مرسی؛نقل قول:
اگر به جای کلمه مشخص شده ( while ) کلمه if را قرار بدهید همه چیز درست شود
لطفا امتحان کنید و خبر دهید
موفق باشید
اما اگه برش دارم کلا خرابکاری میشه.
ببینین فلوچارتش اینه:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
نقل قول:
اين كد تصحيح شده استضمن اينكه در كد شما وقتي برنامه به خونه آخر ميرسه اگه else اجرا بشهنقل قول:
#include <iostream.h>
#include <conio.h>
int max(int a[])
{
int maxi=a[0];
for(int i=0; i<5; i++)
{
if (a[i]>=maxi)
maxi=a[i];
}
cout<<"The Max is: "<< maxi<<endl;
return 0;
}
int main()
{
int a[5],sum=0;
for(int i=0; i<5; i++)
cin>>a[i];
max (a);
getch();
return 0;
}
خونه ششم a رو مقدارشو در maxi قرار ميده كه اين مقدار برابر با مقداري هست كه قبلا در اين خونه بوده
نقل قول:زير دستور چاپ خير كافيه همونجا مقدار رو برگردونيد تا برنامه تموم بشهنقل قول:
#include <iostream.h>
#include <conio.h>
int main()
{
int a,b,max,min,m,n;
cin>>a>>b;
if (a>b)
{
max=a;
min=b;
}
else
{
max=b;
min=a;
}
while (min>0)
{
n=min%10;
min=min/10;
m=max%10;
max=max/10;
}
while (m!=n)
{
if (max>0)
{
m=max%10;
max=max/10;
}
else{
cout<<"kheyr";
getch();
return 0;
}
}
cout<<"bale";
getch();
return 0;
}
از دستور break هم ميشد استفاده كرد اما مشكل دستور بله هم بود چون بله هم چاپ ميشد
از روش flag هم ميشد استفاده كرد
البته اين بهترين راه بود
---------- Post added at 11:50 PM ---------- Previous post was at 11:48 PM ----------
تنها منبع بازي از سي كامپايلر كه تونستم تو نت پيدا كنم small device بودنقل قول:
اميدوارم اين لينكش مفيد باشه
نقل قول:
کد:http://sourceforge.net/projects/sdcc/
سلام
سال نو مبارک:46:
اول بگم من هیچ چی از برنامه نویسی بلد نیستم:41:
من یه اندیکاتور دارم که توی برنامه amibroker که مخصوص تحلیل داده های بورس هست اجرا میشه و به خوبی عمل میکنه اما وقتی به برنامه meta terader که اون هم مخصوص تحلیل هست ( البته برای فارکس) انتقال میدم کار نمیکنه
حالا یه نمونه از اندیکاتو متاتریدر رو گذاشتم و نمونه اصلی اندیکاتور آمی بروکر میخام یه لطفی بکنید و ببینید اینها چه فرقی با هم دارن و یه جوری تغییرشون بدین که توی متا اجرا بشه
البته من ادیتور برنامه متا رو هم میزارم شاید لازم باشه
اندیکاتورها
متا ادیتورکد:http://izip.ir/download.php?id=5E6062A31
کد:http://izip.ir/download.php?id=3B92CFB21
سلام دوستان من تازه شروع به یادگیری زبان ++C کرده ام .و برای یادگیری بهتر و عملی نرم افزار visual studio 2010 رو نصب کردم و به قسمت ++C رفتم و یه برنامه ساده رو وارد کردم اما پیغام خطا داد . لطفا نحوه ی شروع کار بااین نرم افزار رو اگه کسی میدونه به ما هم یاد بدید ممنون میشم . ضمنا این برنامه ای که تست کردم ایرادی از لحاظ منطقی یا دستوری نداشت اما من موفق به اجرای دست اون نشدم.. لطفا اگه مقدور هست نسبت به معرفی آیکون ها یا کلید های مختلف این نرم افزار هم کمک کنید .بازم ممنون
دوست عزیز اینجا دوستان بیشتر سوالی بپرسین جواب میدن، فکر نمیکنم درس بهتون بدن.
اگه میتونین از برنامه تون یه تصویر بذارید اینجا تا جواب بگیرید
سلام،
توی ++C؛ الگوریتم جمع دو عدد در مبنای 2 چجوریه؟!
و همینطور الگوریتم تبدیل مبنای 2 به 10؟ و 2 به 16:20:؟
این یه مثلا از مبنای 10 به 2:نقل قول:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اینم یکی از 2 به 10:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سلام شما سوال من رو خوب خوندین؟ درس چیه ؟نقل قول:
ضمنا شما مربوط به قسمت فیلم هستید ظاهرا اینجا چه میکنید؟:8:
ممنون به هر حال.
دوست عزیز کاش یه شکلکی مثل این میزدی پای مطلبت: ":11:"نقل قول:
اگه آدم حواسش نباشه، با لحن بدی میخونه.:11:
و همینطور اینکه کسی مدیر یا ناظر یا... هستش دلیل بر این نمیشه که به جز اون جای دیگه فعالیت نکنه یا چیز دیگه ای بلد نباشه!
شماخودتون اینجا گفتید بهتون آموزش بدن:
آموزش دادن همون درس دادن هست دیگه!!کد:لطفا نحوه ی شروع کار بااین نرم افزار رو اگه کسی میدونه به ما هم یاد بدید ممنون میشم .
برادران وشاید خواهران بزرگوار:31:نقل قول:
یه مرحمتی هم به سوال ما داشته باشید
خداوند جزای خیر بهتون بده:11:
ببين عزيزنقل قول:
واسه اينكار لازم نيست برنامه نويسي يا كدنويسي بلد باشي
فقط يه كم مهارت ميخواد
و يه كم بيشتر يه كم وقت
شما بايد چندتا انديكاتور با هر برنامه بنويسي بعد بياي ببيني چياش با هم تفاوت داره تو هر دو برنامه
موقع انتقال به برنامه ديگه اون قسمت رو دستكاري كني
به شرطي كار خواهد كرد كه ساختار برنامه نويسي هر دوشون تقريبا يكي باشه
اگه با اين كارا درست نشد
بايد واسش يه كد جدا نوشت
و هر بار يه سري داده رو جايگزين كرد كه اين كار خيلي سخته
و اينكارا رو نرم افزارهاي كانورت ميكنن
در ضمن متا اديتور كامپايل نداشت
آخه بدون كامپايل هم مگه ميشه؟
سلام
سال نو مبارک
می خواستم بدونم این API ویندوز کلا چی هست ؟
آیا هسته این سیستم عامل هست یا خیر ؟
آیا لینوکس هم API دارد ؟
پیشا پیش ممنون
سلام
آقا من میخام یه دستور بنویسم که قیمت های زیر 100 تومن رو برنامه برام پیدا کنه چی باید بنویسم
الگوریتم 2 به 16 چطوریه؟؟ چون باید از ABCD استفاده کرد.
از اون مهمتر جمع دو عدد در مبنای 2 چطوریه؟:19:
منتظر این عکس العمل نبودم.من فقط خواستم بدونن بله اینجا دقیقا جایی ست برای یاد گیری و نباید با اون لحن (اگه نوشته حاوی لحن بتونه باشه) میگفتن اینجا به کسی درس نمیدیم .نقل قول:
و ضمنا مخاطب من شما نبودین و اون دوستمون اگه لازم میدیدن خودشون عکس العمل نشون میدادن ..به هر حال شما کاش جای این ابراز لطف به دوستتون حداقل جوابی به سوال من میدادین بیشتر ممنون میشدم.
من نمیدونم و بلد نیستم وگرنه حتما هر کمکی میتونستم میکردم:11:نقل قول:
[PHP]if(cost<100)نقل قول:
سلام
آقا من میخام یه دستور بنویسم که قیمت های زیر 100 تومن رو برنامه برام پیدا کنه چی باید بنویسم
{return cost;}[/PHP]
سلام
من دیدم دوستمون جوابو دادن، فقط زیرش تشکر زدم که اسپم هم نداده باشم :20:نقل قول:
در هر حال، امیدوارم سوء تفاهم برطرف شده باشه. :11:
ببخشید من این دستور رو بلد نیستم، ممنون میشم بگین return cost; چه کاری انجام میده؟نقل قول:
سلام.این دستور مقادیر cost رو برمی گردونه.هر مقداری که کمتر از 100 باشه رو برمی گردونه.
سلام دوستان یه کمکی کنید لطفا .
برنامه ای که لینک لیستی با 10 گره ایجاد کرده و امکان حذف و اضافه کردن به آن وجود داشته باشد.
کتاب ندارم. تا اختصاص حافظه به رو میدونم چجوریه اما حذف و اضافشو نه. یکی یکیش رو بلدم اما 2 تاش رو با هم نمیدونم چجوری باید به کار برد تو برنامه- مرسی
امروز نمیدونم چی شده شاید مشکل از منه حرف همه برام نامفهومه
به چه زبانی می خواهید باشد ( c یا c++ یا c#) ؟
یه خورده واضح تر اگه توضیح بدبد ممنون میشم
سوال من که مربوط میشه به c++ واسه ایجاد گره یا nod که از دستور زیر استفاده میشه. اخرین خطشم که مربوط میشه به اختصاص حافظه رم به متغیر x (نود).
struct node
{
int info
int *next
}x;
x=(node *) malloc (size of (struct node))
میمونه حذف و اضافه کردن بهش !!!
اینا شاید به دردتون بخوره
گره را به این صورت تعریف می کنیم
شما یک گره ریشه دارید به نام x که به صورت زیر تعریف شدهکد:struct nod
{
int info;
nod* next;
};
این اشارگر شما برای اینکه به گره ای اشاره کند باید آدرسی را بگیردکد:nod* x;
برای اضافه کردن یک گره بین دو گره چه کار باید کرد؟
اولین کار این است که یک گره تعریف کنیم برای این کار ابتدا کد زیر را می نویسیم
کد ها دقیقا یادم نیست امیدوارم بنده را ببخشید ولی احتمالا بتونید درستش کنیدکد:nod* p = new nod;
حالا برای اینکه بین دو گره A و B قرار بگیرد چه باید کرد ( فرض می کنیم A به B اشاره می کند) کد زیر این کار را انجام می دهدبرای اینکه گرهی را حذف کنیم چه باید بکنیم؟ ( فرض می کنیم که a,p,b سه گره ما هستند که a به p و p به b اشاره می کندکد:(*p).next=a.next;
a.next=p;
( هدف حذف گره p می باشد ) کد زیر این کار را انجام می دهد
حدس می زنم چی زی نفهمیده باشید ( آنچه گفتید به اینها ربط داشت ؟)کد:nod *k=&p;
a.next =p.next;
delete(k);