سلام
میخواهم برای یادگیری و تمرین 2 تا عدد خیلی بزرگ بگیرم.به کمک آرایه روش 4 عمل اصلی انجام بدهم.
خودم میخواهم این کار رو انجام بدهم.فقط راهنمایی و طریقه کار را میخواهم با سپاس
سلام
میخواهم برای یادگیری و تمرین 2 تا عدد خیلی بزرگ بگیرم.به کمک آرایه روش 4 عمل اصلی انجام بدهم.
خودم میخواهم این کار رو انجام بدهم.فقط راهنمایی و طریقه کار را میخواهم با سپاس
سلام
براي اين كار بايد عدد رو به صورت كاراكتر از كاربر بگيري و ٤٨ تا ازش كم كني و توي آرايه قرارش بدي.
ادامه اش رو نخون و خودت فكر كن چون الگوريتم به طور كامل توضيح داده شده..
.
.
.
.
.
بعد از انتها عمل جمع يا ضرب يا تفريق رو دونه دونه اعمال كني و رقم نقلي و به بعدي اضاف مي كني.
نكته:يك شمارنده تعريف كن كه تعداد رقم هاي عدد رو بهت بده كه همون اندازه ي آرايه -١ هست.
نكته:از ركورد دوم آرايه شروع كن و اولي رو صفر قرار بده چون ممكنه رقم نقلي داشته باشي.
برا تقسيم ميتوني از ابتداي آرايه اين كا رو انجام بدي تنها كمي پيچيده تر.
اگه باز مشكلي بود بگو تا بيشتر توضيح بدم.
Mehrdad Sh.
من مبخوام با زبان c یه آنتی ویروس بسازم.که وقتی فلش رو میزنم به کامپیوتر فلش رو بخونه و ویروساشو بشناسه.کسی میتونه تو این زمینه کمک کنه؟یه کارایی کردم خودم.اگه کسی میتونه بگه تا از طریق پ.خ سوالامو بپرسم.
سلام.
تو برنامه visual studio 2010 پنجره ی memory کجا هست؟
برای دسترسی به آدرس متغیر ها و بایت ها.
قبلا تو view بود ولی الان نیست!
ممنون بابت جواب همه![]()
دوست من آنتی ویروس نویسی به این سادگی نیست. شما اول باید کاملا مسلط به سیستم عامل، رجیستری و برنامه نویسی سیستمی باشی. که خودش دنیایی هستش. باید بتونی به زبون c خالص برنامه بنویسی بعدش باید مدیریت حافظه مستقل از سیستم عامل رو یاد بگیری که اینم خودش دنیایی هستش. بعدش تازه شاید بتونی مطالعه کنی که آنتی ویروس ها چطور کار می کنن.
من برای چاپ تمام زیر مجموعه های یک مجموعه این کدو دارمولی این قسمتشو خوب متوجه نمیشم که دقیقا داره چیکار میکنه#include <iostream>
#include <stdlib.h>
#include <vector>
using namespace std;
void subset(char*);
int power(int , int);
char * D2B(int,char*);
int main()
{
cout<<"count :";
int count=3;
//cin>>count;
char set[3]={'a','b','c'};
for(int i=0 ; i < count ; i++);
subset(set);
system("pause");
return 0;
}
char *D2B(int n , char *b)
{
itoa(n,b,2);
return b;
}
void subset(char *r)
{
char buffer[100];
int k=1;
long limit=power(2,3);
for (int i=0 ; i < limit ; ++i)
{
cout<<endl<<k++<<" : ";
D2B(i,buffer);
char *p;
for(p=buffer ; *p ;++p);
{
--p;
cout<<"{";
for(int j = 0 ; p>=buffer; ++j,--p)
{
if(*p=='1')
cout<<r[j]<<"";
}
cout<<"}";
}
}
cout<<endl;
}
int power(int x, int n)
{
if(n==0)
return 1;
return x*power(x,n-1);
}
دوستان اگر می تونید یه توضیحی برام بدید ممنون میشمfor(p=buffer ; *p ;++p);
{
--p;
cout<<"{";
for(int j = 0 ; p>=buffer; ++j,--p)
{
if(*p=='1')
cout<<r[j]<<"";
}
cout<<"}";
}![]()
سلام بجه ها من میخواستم یه متغیری(CString) را تو یه فایل text ذخیره کنم ولی به جای مقدار ادرس متغیر ذخبره میشه کسی میتونه کمک کنه؟
مرسی
اینجوری که نمی شه دوست من. کدی که می زنی رو اینجا بذار تا بررسی کنیم چی نوشتی.
دوست عزيز دقت کنيد
اولا اينجا دوتا رشته وجود دارد يکي رشته abc که در متغير r ذخيره شده و ديگري رشته اي که بصورت دنباله اي از صفر و يک است که در متغير p ذخيره شده
رشته کاراکترها در ++c به صورت کاراکترهاي مورد نظر به اضافه يک صفر در انتهاي رشته ذخيره مي شود مثلا اگر رشته ما salam باشد ذخيره آن بصورت salam0 است
for(p=buffer ; *p ;++p);
در لوپ بالا اشاره گر به انتهاي رشته کاراکتر که هميشه null يا صفر است انتقال پيدا ميکند بنابراين p* غير از صفر است تا اينکه برسيم به انتهاي رشته که صفر است در اين حالت از لوپ خارج مي شويم فايده اين لوپ ذخيره شدن آدرس انتهاي رشته در p است دقت کنيد به علت وجود ; در انتهاي دستور for اين لوپ تمام مي شود
{
--p;
cout<<"{";
for(int j = 0 ; p>=buffer; ++j,--p)
{
if(*p=='1')
cout<<r[j]<<"";
}
در کد بالا يک بلاک شروع مي شود دقت کنيد اين بلاک مربوط به دستور for قبلي نيست
--p;
ابتدا اشاره گر از انتهاي رشته که همواره صفر است به يکي ماقبل آن مي رود
cout<<"{";
چاپ يک آکولاد
for(int j = 0 ; p>=buffer; ++j,--p)
{
if(*p=='1')
cout<<r[j]<<"";
}
در اين لوپ از انتهاي رشته p به ابتداي آن مي رويم و هر جا رشته برابر با 1 بود مقدار رشته r درهمان مکاني که p برابر 1 بود چاپ مي شود
Last edited by rahnema1; 29-09-2013 at 07:17.
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)