![]() |
|
|
#91 | |
|
Registered User
|
Quote:
سهراب جان شما هم خوب می نویسی با یکم تمرین بهتر هم می شه
__________________
|
|
|
|
|
|
|
#92 |
|
Registered User
Join Date: May 2006
Posts: 86
|
دوباره سلام
یه سوال داشتم. تو همون برنامه ای که نوشته بودم برای نگه داشتن حاصل عبارت از long int استفاده کرده بودم. حالا میخوام یک کلاس درست بکنم به نام var که بتونه اعداد تا مثلا 50 رقم رو هم نگه داره و با استفاده از تعریف مجدد عملگرها بتونم اونها رو باهم جمع و تفریق و ضرب و تقسیم بکنم. راستش هر چی فکر کردم راه درست حسابی به ذهنم نرسید. خیلی ممنون اگه یه راهنمایی بکنید. ![]()
__________________
www.best-circuits.com این سایت شامل مدارهای الکترونیکی، مطالب و ebook های مربوط به الکترونیک و نرم افزارهای الکترونیک میباشد email: bc@best-circuits.com
|
|
|
|
|
|
#93 |
|
Registered User
|
کالاس جالبی همیشه دوست داشتم یه کلاس برای اینکار بنویسم
برای اینکار می تونید اعاد به صورت رقم به رقم در مبنای 10 نگه داری کنیدجمع و تفریق و ضرب و تقسیم رو انجام بدید برای اینکار می تونید از یه آرایه استفاده کنید که ارقام رو ذخیره کنه اگه خیلی نمی خواد پیچده بشه می تونید از یه ارایه ساده استفاده کنید ولی اگه می خوایید کلاستون بتونه تا هر رقمی رو نگه داری کنه باید از کلاس string یا vector استفاده کنید |
|
|
|
|
|
#94 |
|
Registered User
Join Date: Nov 2006
Posts: 14
|
بابا بد قول ....
|
|
|
|
|
|
#95 | |
|
Registered User
Join Date: May 2006
Posts: 86
|
Quote:
مثلا برای ضرب دوتا عدد 10 رقمی باید 10*10 بار عمل ضرب انجام بشه (رقم به رقم) و بعدا حداقل حداقل 10 بار هم عمل جمع. اگر عدد نقلی هم داشته باشیم که چندین بار دیگه هم عمل جمع باید تکرار بشه. راستش اول یه همچین فکری (تو همین مایه ها) به ذهنم رسید ولی پیش خودم گفتم باید یک راه بهتر و سریعتر هم باشه. من برنامه نویسی اسمبلی برای میکروکنترلر(8051) رو هم کار کردم. برای اون یه همچین برنامه ای نوشتم. مثلا برای جمع، دوتا بایت اول رو باهم جمع میکنیم بعد دوتا بایت بعدی و بیت پرچم نقلی رو هم باهم جمع میکنیم. و این کار رو تا آخر ادامه میدیم. توی عمل تفریق هم همینطور ولی باز سر عمل ضرب و تقسیمش موندم! حالا به نظر شما راه بهتری هست؟ با تشکر...شهاب. |
|
|
|
|
|
|
#96 |
|
Registered User
|
راه بهتری هم هست البته پیدا سازیش سختره اینکه شما درست مثل کامپایلر عمل کنید می تونید عدد تون رو توی مثلا 16 بایت به صورت دو دویی ذخیره کنید که چهار تا چهار بایت یا هشت تا دو بایت هست بعد اعمال ریاضی رو به صورت کلمه به کلمه انجام بدید و نتایج کری ها رو هم در محاسبات دخیل کنید اگه اسمبلی برای ماشین های 8086 کار کرده باشید برای ضرب 32 بیت در 32 از این روش استفاده می شه
|
|
|
|
|
|
#97 |
|
Registered User
Join Date: Nov 2006
Posts: 14
|
آرش کجايي؟
آرش پس برنامه ما چي شد؟
تو که گفتي کاري نداره بابا عجب بد قولي هستي هااااااااااااا ![]() |
|
|
|
|
|
#98 |
|
Registered User
|
Code:
/**
Autor: arash_j13
Dec 17, 2006
**/
#include <iostream>
#include <cstdlib>
using namespace std;
#define N 8
bool put(int);
void print(bool=true);
bool check(int,int);
int board [N][N]={0};
int y=0;
int main()
{
put(0);
print(false);
cout<<y<<endl;
system("pause");
return 0;
}
bool put(int row)
{
if (row==N)
{
print();
y++;
return false;
}
for(int col=0 ; col<N; ++col)
if(check(row,col))
{
board[row][col]=1;
if(put(row+1))
return true;
board[row][col]=0;
}
return false;
}
bool check(int row,int col)
{
for(int i=0 ; i < N ; ++i)
if(board[i][col])
return false;
for(int i=row-1,j=col-1; i > -1 && j > -1 ; --j , --i)
if(board[i][j])
return false;
for(int i=row-1,j=col+1; i > -1 && j < N ; ++j , --i)
if(board[i][j])
return false;
for(int i=row+1,j=col-1; i < N && j > -1 ; --j , ++i)
if(board[i][j])
return false;
for(int i=row+1,j=col+1; i < N && j < N ; ++j , ++i)
if(board[i][j])
return false;
return true;
}
void print(bool useBuffer)
{
static int count=0;
static int buffer [4][N][N];
if(useBuffer)
{
for(int i=0 ; i < N ;++i)
for(int j=0 ; j < N ;++j)
buffer[count][i][j]=board[i][j];
++count;
}
if(count==4||( !useBuffer && count>0))
{
cout<<endl<<endl;
for(int i=0 ; i < N ; ++i,cout<<endl)
for(int k=0 ; k < count ; ++k,cout<<" ")
for(int j=0 ; j < N ; ++j)
cout<<buffer[k][i][j]<<" ";
count=0;
}
}
|
|
|
|
|
|
#99 |
|
Registered User
Join Date: May 2006
Posts: 86
|
آقا آرش دستتون درد نکنه.
حالا میشه خواهشا یه سوال دیگه مطرح کنید (خیلی سخت نباشه ها )با تشکر، شهاب ![]() Last edited by shahab_sh; 12-22-2006 at 01:39 PM.. |
|
|
|
|
|
#100 |
|
Registered User
|
این سوال میان ترم برنامه سازی پیشرفته ما بوده
ما یه الگوریتم رمز نگاری داریم که با کمک یه ماتریس پنچ در پنچ عبارات رو رمز می کنه و برای رمز کردن از یه کلمه کلید استفاده می کنه روش کار به این صورت که مان این ماتریس رو به روشی که می گم با 25 حرف الفبا پر می کنیم و یه حرف باقی می مونه(فرض کنید کلمه و عبارتی که قرار است رمز شود اصلا شامل حروف بزرگ نیست و تمام حروف کوچک است) ما برای رمز کردن علاوه بر عبارت یه سری از اعداد رو می گیریم سپس اولین کاکتر عبارت رو درون جدول پیدا می کنیم اگر توی جدول وجود داشت به تعداد اولین عدد در ماتریس به سمت راست حرکت می کنیم و به تعداد دومین عدد به سمت بالا کاکتر به دست اومده رو جایگزین کارکتر اصلی می کنیم و می ریم سراغ کاکتر دوم و به اندازه سومین کارکتر به راست و به اندازه چهارمین کاکتر به بالا حرکت می کنیم و همین طور ادامه می دیم هر کاکتری که توی ماتریس نبود مثل فاصله یا اون حرف خاص که باقی مونده رو بدون تغییر در رشته اصلی باقی می گزاریم توجه کنید که موقع حرکت در ماتریس اگه از یه سمت بیرون بیفتیم از سمت دیگه اخل می شیم مثلا اگه حرف روی ستون 3 باشه و قراه 2 تا به سمت راست حرکت کنیم به ستون شماره 0 می رسم و در مورد ارایه اعداد هم همین طور مثلا اگه پنج تا عدد داریم بار اول عدد اول و دوم بار دوم عدد سوم و چهارم بار سوم عدد پنج و اول و به همین ترتیب روش پر کردن ماتریس کاکترهای با این ترتیب قرار می گیرن اول کلید و سپس حروف الفبا به ترتیب توجه کنید کاکتر تکراری توی ماتریس قرار نمی گیره و برای پر کردن اول ستون اصلی بعد ستون فرعی و بعد هم از اول به صورتی سطری از چپ به راست ماتریس رو پر می کنیم مثلا اگه کلید کلمه mykey باشه جدول به این صورت پر می شه m g h i b j y l c n o p k q r s d t e u f v w x a و با اعداد زیر رشته arash_j13 اینطوری رمز می شه oqtwk_v13 1,2,-1,0,-2 Last edited by Arash_j13; 12-22-2006 at 07:55 PM.. |
|
|
|
|
|
#101 |
|
کاربر فعال برنامه نویسی
Join Date: Jan 2006
Posts: 60
|
سلام
ببخشيد كه من خيلي دير سر مي زنم . الان ديگه ترم آخرم و هزار گرفتاري!!! اين برنامه هشت وزير رو خيلي وقت پيش نوشته بودم. فرصت توضيح نوشتن ندارم شايد بعدا . فعلا خود برنامه رو گشتم پيدا كردم: Code:
#include<stdio.h>
#include<conio.h>
void shat3(int x,int y,int nx,int ny,int tnx,int tny,int cse,int csi);
void main()
{
int y[8]={0},i,j,k,l,s=0,x;
char ch;
textbackground(1);
clrscr();
textcolor(1);
do
{
x=l=0;
y[0]++;
while(y[x]>7&&x!=7)
{
y[x]=0;
x++;
y[x]++;
}
for(i=0;i<7;i++)
{
for(j=i+1;j<8;j++)
if(y[i]==y[j] || y[i]+i-j==y[j] || y[i]-i+j==y[j])
{
l=1;
break;
}
if(l==1)break;
}
if(l==0)
{
s++;
shat3(10,1,8,3,8,8,0,7);
for(k=0;k<8;k++)
{
gotoxy(13+8*y[k],(k+1)*3-1);
if((y[k]+k)%2==0)
textattr(4);
else
textattr(7<<4^4);
cprintf("XX");
}
if(y[7]%2==0)
textcolor(7);
else
textcolor(0);
ch=getch();
if(ch=='q')break;
}
}while(y[7]<8);
textbackground(1);
clrscr();
textcolor(2);
gotoxy(35,13);
cprintf("%d",s);
getch();
}
void shat3(int x,int y,int nx,int ny,int tnx,int tny,int cse,int csi)
{
int i,j,k,l,m=0;
gotoxy(x,y);
for(i=0;i<tny;i++)
for(j=0;j<ny;j++)
{
m++;
for(k=0;k<tnx;k++)
{
if((i+k)%2==0)
textbackground(cse);
else
textbackground(csi);
for(l=0;l<nx;l++)
cprintf(" ");
}
gotoxy(x,y+m);
}
}
متغيير s تعداد حالت هاي صحيحي كه پيدا شده است را مي شمارد. هر بار كه يك حالت رو پيدا مي كنه اون رو نمايش مي دهد و يك دكمه مي گيرد (قسمت آبي) كه اگر بخواهيد سريع تر اجرا شود مي تونيد اين خطهاي آبي رو حذف كنيد.
__________________
Last edited by mohammad_110; 12-25-2006 at 08:01 PM.. |
|
|
|
|
|
#102 |
|
کاربر فعال ورزش
Join Date: Jun 2005
Posts: 1,450
|
تاپیک خوابید!!!
Last edited by raxtastar; 01-15-2007 at 02:40 AM.. |
|
|
|
|
|
#103 |
|
Registered User
Join Date: May 2006
Posts: 86
|
متاسفانه مثل اینکه همینطوره
تاپیک خوابش برده ![]() |
|
|
|
|
|
#104 |
|
Registered User
|
سوال هر چقدر بخواید می زارم کسی باشه جواب بده سوال بزارید هم جواب می دم ولی اینجا من تنها باید برای خودم تمرین بزارم بعد هم خودم حل کنم اونو که دیگه تو فروم نمی زارن
حالا برای اینکه بدون مسئله نباشید مسئله کلاسیک Maze رو حل کنید یه هزار تو داریم که یه خروجی و ورودی داره یه موش قراره از ورودی این هزارتو که گوشه بالا سمت چپ هست وارد بشه و از خروجی که پایین سمت راست هست خارج بشه برنامه بنویسید که مسیر حرکت موش برای رسید به خورجی رو پیدا کنه |
|
|
|
|
|
#105 |
|
Registered User
Join Date: Jan 2006
Posts: 180
|
اگه کسی یه پروژه باحال و کاربردی بلده با سی بگه :
یه پروژه ابتکاری و پولساز که سی رو خوب یاد بگیریم. |
|
|
|
![]() |
| امکانات بيشتر | |
|
|