سلام به همه دوستان من نیازشدیدبه کمک دوستی که به زبان سی واردباشه،دارم ورشته ام برقه وروی یک پروژه کارمیکنم ونیازبه دونستن کارچندتادستوراین زبان دارم لطفاکسایی که می تونندبهم کمک کننددریغ نکنند.وفرصت ام هم خیلی کمه وچیززیادی اززبان سی نمی دونم!
اطلاعیه
Collapse
No announcement yet.
برنامه نویسی c++
Collapse
X
-
پاسخ : برنامه نویسی c++
باسلام
قسمت اول پروژه:
این پروژه ای هستش که ترجمه اش برام مهمه والگوریتم اولیه اش دست ام است ولی چون به زبان سی واردنیستم نمی دونم تک تک سطرهاچه کاری می کنند من الگوریتم اولیه وکل کاری روکه این برنامه میخوادانجام بده روبراتون میفرستم. اگه تونستید درموردکاردستورها وتوابع اش توضیح کوچک بدیدممنون میشم. اگه واضح تربخوام توضیح بدم:درواقع ازم خواسته شده که همون الگوریتم اولیه رو درنرم افزارmatlabبنویسم یه دوستی برام به زبان سی نوشته ومن میخوام ازروی این برنامه رودرmatlabبنویسم.
الگوریتم اولیه وکاری که میخواهیم برنامه انجام دهد:
یک سری حروف انگلیسی که به هرکدام عددی(مابین صفرویک) اختصاص داده شده وجمع همه ی این اعدادکوچکتریامساوی یک است به برنامه داده می شود.تعدادحروف می توان هرمقداری باشد.
گام1:حروف برحسب اعداداختصاص داده شده بصورت نزولی مرتب می شوند.
گام2:حروف روبه 2گروه تسیم میکنیم طوری که جمع اعدادحروف هرگروه تقریبا مساوی یا حداقل اختلاف کمی با جمع اعداد حروف گروه دوم داشته باشد.و بعدازاینکاربه یکی ازگروه ها رقم0وبه اون یکی رقم 1 اختصاص می دهیم.
گام3:تکرارتقسیم بندی حروف به دوگرئه جدید درهرگروه وتخصیص صفرویک مشابه گام2
گام 4:گام3 راتااخرادامه می دهیم
گام 5:خواندن صفرویک های اختصاص داده شده ازچپ به راست
درواقع چیزی که ازبرنامه میخوایم بدست بیاریم برای هرحرف یک کد(که ازیک سری 0و1تشکیل شده)میباشد
بازاگرالگوریتم نوشته شده کمی گیج کننده است اگرتصمیم داریدکمک کنید میتونم یک نمونه حل شده دستی و روی کاغذ براتون بفرستم.
دیدگاه
-
پاسخ : برنامه نویسی c++
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include<iomanip.h>
typedef struct
{
float key;
char zhifu;
int mazhu;
}RECNODE;
const k=8;
void bublesort(RECNODE *r, int n)
{
int i, j;
RECNODE temp1;
char temp2;
for(i = 0; i < n; i++)
for(j = n - 2; j >= i; j--)
if(r[j + 1].key >r[j].key)
{
temp1 = r[j + 1];
temp2 = r[j + 1].zhifu;
r[j + 1] = r[j];
r[j + 1].zhifu = r[j].zhifu;
r[j] = temp1;
r[j].zhifu = temp2;
}
}
qiuk(RECNODE *r, int n)
{
int i, j;
float N1, N2;
float N[k];
N1=0;
N2=0;
for(i=1;i<n;i++)
{
for(j=0;j<i;j++)
N1=N1+r[j].key;
for(j=i;j<n;j++)
N2=N2+r[j].key;
N[i]=N1-N2;
if(N[i]<0)
N[i]=-N[i];
N1=0;
N2=0;
}
i=1;
for(j=2;j<n;j++)
{
if(N[i]>N[j])
i=j;
}
if(n == 1)
return i=0;
else
return i;
}
void main()
{
char a[]={"ABCDEFGH"};
RECNODE b[k];
RECNODE c[k];
RECNODE d[k];
int i;
int L;
int t;
int n;
for(t=0;t<k;t++)
{
cout<<"اëتنبë"<<a[t]<<"µو¸اآت£؛";
cin>>b[t].key;
b[t].zhifu=a[t];
cout<<endl;
}
bublesort(b,k);
for(t=0;t<k;t++)
{
c[t].key=b[t].key;
c[t].zhifu=b[t].zhifu;
}
for(t=0;t<k;t++)
cout<<setw(5)<<b[t].zhifu;
cout<<endl;
i=qiuk(b,k);
while(i != 0)
{
if(i != 0)
{
L=i;
if(L==1)
{
b[0].mazhu=0;
for(t=1;t<L;t++)
b[t].mazhu=1;
for(t=0;t<L;t++)
cout<<setw(5)<<b[t].mazhu;
}
else
{
for(t=0;t<L;t++)
{
b[t].mazhu=0;
c[t].key=b[t].key;
}
for(t=0;t<L;t++)
cout<<setw(5)<<b[t].mazhu;
for(t=L;t<k;t++)
b[t].mazhu=1;
for(t=L;t<k;t++)
cout<<setw(5)<<b[t].mazhu;
cout<<endl;
for(n=0;n<k-i;n++)
d[n].key=b[n].key;
}
if(b[k-2].mazhu == 0)
i=0;
}
else
cout<<setw(5)<<" ";
if(b[k-2].mazhu == 0)
i=0;
else
{
i=qiuk(c,i);
i=qiuk(d,n);
}
}
}
دیدگاه
دیدگاه