اینم n جمله اول فیبوناچی رو حساب میکنه !
#include <iostream.h>
#include <conio.h >
main(){
int x=1;
int y=1,z=0;
int n;
cout <<"\n enter number:";
cin >>n;
cout<<x;
cout <<y;
for (int i=2;i<n;i++){
z=x+y;
x=y;
y=z;
cout<<z;
}
getch();
}
Printable View
اینم n جمله اول فیبوناچی رو حساب میکنه !
#include <iostream.h>
#include <conio.h >
main(){
int x=1;
int y=1,z=0;
int n;
cout <<"\n enter number:";
cin >>n;
cout<<x;
cout <<y;
for (int i=2;i<n;i++){
z=x+y;
x=y;
y=z;
cout<<z;
}
getch();
}
تعداد فاصله هایی که تو رشته هست رو میده!
#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
int i=1;char ch;
while((ch=cin.get())!='\n')
{
if(ch==' ')
i++;
}
cout<<i;
getch();
}
خروجی این برنامه بصورت :
*
**
***
****
*****
*n
#include<iostream.h>
#include<conio.h>
void star(int n)
{
if(n!=0)
{star (n-1);
for (int i=1 ; i<=n ; i++)
cout<<"*";
cout <<"\n";
}
}
void main ()
{
clrscr();
int n;
cout <<"enter a number :" ;
cin >> n;
star(n);
getch();
}
اینم یه برنامه برای برج هانوی که البته بدون گرافیکه فعلا!!
#include <stacks.h>
#include <iostream.h>
TStack <int> s[3];
void transfer(int n,int from ,int to, int temp){
if(n>0){
// move n-1 disks from origin to temporary
transfer(n-1, from,temp,to);
// move n th disk from origin to destination
s[to].Push(s[from].Pop());
//move n-1 disks from temporary to destination
transfer(n-1, temp,to,from);
}
}
void PrintStacks(){
for (int i=0;i<3;i++){
cout << "\n<";
while (!s[i].IsEmpty()){
cout << s[i].Pop()<<',';
}
cout <<']';
}
}
main(){
int n;
cout<<"n:";cin>>n;
for (int i=n;i>0;i--)s[0].Push(i);
transfer(n,0,1,2);
PrintStacks();
}
این برنامه هم برای محاسبه تابع sin هست که تا اجرا نکنی نمی دونی چیه!
#include<iostream.h>
#include<conio.h>
int pow(int a, int b);
int fact(int a);
double sin(int(*p)(int a,int b),int(*q)(int b),int x);
void main(){
int x;
clrscr();
cout<<"Please Enter Number : ";
cin>>x;
cout<<fact(x)<<endl<<pow(x,x);
//cout<<sin(pow,fact,x);
getch();
}
int pow(int a,int b){
int pow=1;
for (int i=1;i<=b;i++)
pow*=a;
return pow;
}
int fact(int a){
int fact=1;
for(int i=1;i<=a;i++)
fact*=i;
return fact;
}
double sin(int(*p)(int a,int b),int(*q)(int b),int x){
double sum=0;
int b=1;
for(int i=1;i<=15;i+=2){
sum+=(pow)(x,i)/(fact)(i)*b;
b=-b;
}
return sum;}
اینم یه تابع برای محاسبه انتگرال معین یه تابع :
double integral(double (*f)(double),double a,double b,int n)
{
double s=0,dx=fabs((b-a)/n);
for(double i=0;i<n;i++)
s+=(f(a+i*dx)+f(a+(i+1)*dx));
return dx*s/2;
}
اینم یه برنامه برای محاسبه ریشه n ام یک عدد:
double root(double n,double a)
{
double x1=1,x0;
do
{
x0=x1;
x1=(n-1)/n*x0+a/(n*pow(x0,n-1));
}while(fabs(x1-x0)>1e-6);
return x1;
}
برنامه زیر بدون استفاده از هیچ یک از توابع گرافیکی ، نمودار آماری یکسری داده ها (بین 1 تا 20)
رو رسم میکنه ، (نوشته شده در Borland 5.02) ، میتونه برای کاربردهای متفاوتی استفاده
بشه :
http://salarcpp.persiangig.com/Image%201/graph.PNG
* در ابتدا تعداد داده ها و بعد خود داده ها بین 20 - 1 را وارد می کنید .
من هم از این فرصت استفاده می کنم و سه برنامه (تشخیص زوج وفرد،رابطه فیثاغورس و تشخیص بزرگترین عدد)رو آپ می کنم امیدوارم خوشتان بیاد
سلام ،
اگه توجه کرده باشید به منظور اینکه بعضی از عملیاتی رو که انجام میدید ممکنه نیاز داشته باشید که به صورت Automate انجام بشن ممکنه نیاز پیدا کنید دسته ای از فایلها رو در یک Directory خاص بخواهید پاک کنید .
این قطعه کد اجازه بهتون میده که با تعیین مسیر Directory کلیه فایلهای موجود در یک دایرکتوری رو پاک کنید .
البته حواستون جمع باشه که یه زمانی برای تست روی یک دایرکتوری حساس این کارو انجام ندین ;)
سلام .
برنامه مثلث خیام ؛ پاسکال با بیانی بسیار ساده
اینم اولین پست من! برنامهای که تعداد یکهای یک عدد (چه مثبت و چه منفی) در مبنای ۲ رو میشماره مثلاً اگه ۵ وارد کنید خروجی میشه ۲:
#include <iostream>
using namespace std;
int main()
{
int n, cnt;
cin >> n;
for (cnt = 0; n; n &= n - 1, cnt++);
cout << cnt << endl;
return 0;
}
نقطه زین اسبی مختصات عنصری در ماتریس است که در آن سطر کمترین مقدار و در آن ستون بیشترین مقدار را دارد.
یک رشته و یک کاراکتر را دریافت کرده و در طول رشته هر جا که آن کاراکتر باشد را پاک میکند.
محل شروع یک رشته را در رشته دیگر پیدا میکند .
حذف یک رشته از رشته دیگر.
شطرنج به زبان C
بصورت کاملا گرافیکی و کامل.
یک عدد را از یک مبنا به مبنای دیگر میبرد.
معادله درجه 2 را حل می کند.
برنامه ماشین حساب که در این برنامه کار با لیست پیوندی را به راحتی یاد میگیرید زیرا این برنامه تماما بصورت لیست پیوندی میباشد و برای نوشتن آن تو زمان خودش کلی وقت گذاشتم.
سلام به تمام پلاس پلاسی ها ی عزیز !
چند وقتی بود که اینجا سر نزده بودم. خوشبختانه این تاپیک خوب را افتاده ( به لطف کلیه دوستان )
در این پست یه سری لینک گذاشتم که توشون پره از انواع نمونه برنامه های C و C++
امیدوارم مفید واقع بشه. فعلا بای
http://www.functionx.com/cpp/examples/index.htm
http://www.cplusplus.com/src/
http://www.josuttis.com/libbook/examples.html
http://www.cs.indiana.edu/~sabry/teaching/intro/fa96/code/index.html
http://www.cplusplus.happycodings.com/Algorithms/index.html
http://www.brpreiss.com/books/opus4/programs/index.html
http://www.kralidis.ca/gis/cPlusPlus/sampleCode/
http://people.sc.fsu.edu/~burkardt/cpp_src/cpp_src.html
http://www.thefreecountry.com/sourcecode/cpp.shtml
سلام این یه ماشین حساب ساده داخل سی
برای خروج هم بعد از محاسبه کلید e را بزنید
یه منوی ساده:
#include<conio.h>
#include<dos.h>
#include<string.h>
int get_menu(char*,char[]="",int=1,int=15,int=11,int=12,int=1,int=14);
void main(){
int rtn;
do{
clrscr();
rtn=get_menu("Yes,No","Do you exit?",2);
}while(rtn!=1);
}
int get_menu(char *str,char *title,int cho_def,int effect_time,int text_color,int title_color,int border_color,int choice_color){
if(*str=='\0')
return 0;
int j,rtn=1,val_line=0,x_start,y_start,x_size,y_size,y _lines[100];
char ch_key;
struct text_info screen_info;
choice_color+=128;
gettextinfo(&screen_info);
x_start=screen_info.curx;
y_start=screen_info.cury;
x_size=screen_info.curx;
y_size=screen_info.cury;
_setcursortype(_NOCURSOR);
//print text of menu:
textcolor(text_color);
if(*title)
cprintf("\n\n\n");
else
cprintf("\n");
while(*str){
delay(effect_time);
if(val_line==0){
gotoxy(x_start+4,wherey());
val_line++;
y_lines[val_line-1]=wherey();
}
if((*str==',')){
if(*(str+1)==','){
cprintf(",");
str+=2;
}
else{
gotoxy(x_start+4,wherey()+2);
val_line++;
y_lines[val_line-1]=wherey();
str++;
}
}
else{
putch(*str);
str++;
}
x_size=wherex()>x_size ? wherex() : x_size;
}
y_size=wherey()>y_size ? wherey() : y_size;
x_size-=x_start;
y_size-=y_start;
y_size++;
textcolor(title_color);
if(*title){
x_size=strlen(title)+5>x_size ? strlen(title)+5 : x_size;
gotoxy(((x_size+2)-strlen(title)+1)/2,y_start+1);
cprintf("%s",title);
}
//Draw border:
textcolor(border_color);
gotoxy(x_start,y_start);
putch(201);
gotoxy(x_start+x_size,y_start);
putch(187);
for(j=y_start+1;j<y_start+y_size;j++){
delay(effect_time);
if((j==y_start+2)&&(*title!='\0')){
gotoxy(x_start,j);
putch(199);
gotoxy(x_start+x_size,j);
putch(182);
}
else{
gotoxy(x_start,j);
putch(186);
gotoxy(x_start+x_size,j);
putch(186);
}
}
gotoxy(x_start,y_start+y_size);
putch(200);
gotoxy(x_start+x_size,y_start+y_size);
putch(188);
for(j=x_start+1;j<x_start+x_size;j++){
delay(effect_time);
gotoxy(j,y_start);
putch(205);
if(*title!='\0'){
gotoxy(j,y_start+2);
putch(196);
}
gotoxy(j,y_start+y_size);
putch(205);
}
textcolor(choice_color);
if(cho_def>val_line)
rtn=val_line;
else if(cho_def<1)
rtn=1;
else
rtn=cho_def;
do{
gotoxy(x_start+2,y_lines[rtn-1]);
putch(16);
ch_key=getch();
if(ch_key==0)
ch_key=getch();
if((ch_key==72)&&(rtn>1)){
gotoxy(x_start+2,y_lines[rtn-1]);
putch(' ');
rtn--;
gotoxy(x_start+2,y_lines[rtn-1]);
putch(16);
}
else if((ch_key==80)&&(rtn<val_line)){
gotoxy(x_start+2,y_lines[rtn-1]);
putch(' ');
rtn++;
gotoxy(x_start+2,y_lines[rtn-1]);
putch(16);
}
}while(ch_key!=13);
textcolor(choice_color-128);
gotoxy(x_start+2,y_lines[rtn-1]);
putch(4);
gotoxy(x_start,y_start+y_size+1);
normvideo();
_setcursortype(_NORMALCURSOR);
return rtn;
}
اینم یه برنامه ساده برای پیدا کردن controlrol و keycode کلید های روی صفحه کلید با ++C
https://barnamenevis.org/showth...900#post971900
سرچ درجی
<!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman","serif"; mso-fareast-font-family:"Times New Roman";} p.MsoPlainText, li.MsoPlainText, div.MsoPlainText {mso-style-unhide:no; mso-style-link:"Plain Text Char"; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Courier New"; mso-fareast-font-family:"Times New Roman";} span.PlainTextChar {mso-style-name:"Plain Text Char"; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:"Plain Text"; font-family:"Courier New"; mso-ascii-font-family:"Courier New"; mso-hansi-font-family:"Courier New"; mso-bidi-font-family:"Courier New";} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:10.0pt; mso-ansi-font-size:10.0pt; mso-bidi-font-size:10.0pt;} @page Section1 {size:8.5in 11.0in; margin:1.0in 65.95pt 1.0in 65.95pt; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} --> insertion_sort ( int arr[ ] , int n )
{
register int i , j , t ;
for ( i = 1 ; i < n ; i++ )
{
t = arr[ i ] ;
for ( j = i ; j > 0 && arr[ j - 1 ] >= t ; j-- )
arr[ j ] = arr[ j - 1 ] ;
arr[ i ] = t ;
}
}
#include<iostream>
using namespace std;
void swap1(int &a,int &b) //commonly used
{
int temp;
temp=a;
a=b;
b=temp;
}
void swap2(int &a,int &b) //doesnt involve the use of a temporary variable
{
a=a+b;
b=a-b;
a=a-b;
}
int main()
{
int a,b;
cout<<"enter two numbers :";
cin>>a>>b;
swap1(a,b);
cout<<a<<" "<<b;
swap2(a,b);
cout<<a<<" "<<b;
system("pause");
return 0;
}
pop double stack
#include <stdio.h>
#define MAXSIZE 100
int sp = 0;
double stack[MAXSIZE];
void push(double f)
{
if (sp < MAXSIZE)
stack[sp++] = f;
else
printf("error: stack is full\n");
}
double pop()
{
if (sp > 0)
return stack[--sp];
else
{
printf("error: stack is empty\n");
return 0;
}
}
واقعا من خودم این برنامه رو دوست دارم چون تقسیم رو با باقی مانده جواب میده
#include<conio.h>
#include<iostream.h>
#define Max 20
class Poly;
class PolyNode
{
friend Poly;
float Coef;
int Pow;
};
class Poly
{
int n;
PolyNode Data[Max];
public:
void Poly::SortPoly(void);
void ReadPoly(void);
void WritePoly(void);
void AddPoly(Poly a,Poly b);
void SubtractPoly(Poly a,Poly b);
void MulPoly(Poly a,Poly b);
void Poly::ItemPoly(float Coef,int Pow,Poly b);
void Poly::TaghsimPoly(int k,Poly a,Poly b);
};
void Poly::SortPoly(void)
{
int i,j;
PolyNode item;
for(i=n-1;i>0;i--)
for(j=0;j<i;j++)
if(Data[j].Pow<Data[j+1].Pow)
{
item=Data[j];
Data[j]=Data[j+1];
Data[j+1]=item;
}
while(i<n-1)
if(Data[i].Pow==Data[i+1].Pow)
{
Data[i].Coef+=Data[i+1].Coef;
for(j=i+1;j<n-1;j++)Data[j]=Data[j+1];
n--;
}else i++;
}
void Poly::ReadPoly(void)
{
int i;
cout<<"\nPlease enter parts of poly : ";
cin>>n;
cout<<"\nPlease enter Polynomial : \n\n";
for(i=0;i<n;i++)
{
cin>>Data[i].Coef;
cout<<" x^"<<endl;
cin>>Data[i].Pow;
cout<<" +"<<endl;
}
}
void Poly::WritePoly(void)
{
int i;
cout<<"\n";
for(i=0;i<n;i++)cout<<Data[i].Coef<<"X^"<<Data[i].Pow<<" + ";
}
void Poly::AddPoly(Poly a,Poly b)
{
int i,j,k;
i=j=k=0;
while(i<a.n&&j<b.n)
{
if(a.Data[i].Pow>b.Data[j].Pow)
{
Data[k].Coef=a.Data[i].Coef;
Data[k++].Pow=a.Data[i++].Pow;
}
else if(a.Data[i].Pow<b.Data[j].Pow)
{
Data[k].Coef=b.Data[j].Coef;
Data[k++].Pow=b.Data[j++].Pow;
}
else if(a.Data[i].Coef+b.Data[j].Coef)
{
Data[k].Coef=a.Data[i].Coef+b.Data[j].Coef;
Data[k++].Pow=a.Data[i++].Pow;
j++;
}
else
{
i++;
j++;
}
}
while(i<a.n)
{
Data[k].Coef=a.Data[i].Coef;
Data[k++].Pow=a.Data[i++].Pow;
}
while(j<b.n)
{
Data[k].Coef=b.Data[j].Coef;
Data[k++].Pow=b.Data[j++].Pow;
}
n=k;
}
void Poly::SubtractPoly(Poly a,Poly b)
{
int i,j,k;
i=j=k=0;
while(i<a.n&&j<b.n)
{
if(a.Data[i].Pow>b.Data[j].Pow)
{
Data[k].Coef=a.Data[i].Coef;
Data[k++].Pow=a.Data[i++].Pow;
}
else if(a.Data[i].Pow<b.Data[j].Pow)
{
Data[k].Coef=b.Data[j].Coef;
Data[k++].Pow=b.Data[j++].Pow;
}
else if(a.Data[i].Coef-b.Data[j].Coef)
{
Data[k].Coef=a.Data[i].Coef-b.Data[j].Coef;
Data[k++].Pow=a.Data[i++].Pow;
j++;
}
else
{
i++;
j++;
}
}
while(i<a.n)
{
Data[k].Coef=a.Data[i].Coef;
Data[k++].Pow=a.Data[i++].Pow;
}
while(j<b.n)
{
Data[k].Coef=b.Data[j].Coef;
Data[k++].Pow=b.Data[j++].Pow;
}
n=k;
}
void Poly::MulPoly(Poly a,Poly b)
{
int i,j,k;
i=j=k=0;
while(i<a.n)
{
j=0;
while(j<b.n)
{
Data[k].Coef=a.Data[i].Coef*b.Data[j].Coef;
Data[k++].Pow=a.Data[i].Pow+b.Data[j++].Pow;
}
i++;
}
n=k;
}
void Poly::ItemPoly(float Coef,int Pow,Poly b)
{
int j,t;
j=t=0;
while(j<b.n)
{
Data[t].Coef=Coef*b.Data[j].Coef;
Data[t++].Pow=Pow+b.Data[j++].Pow;
}
n=t;
}
void Poly::TaghsimPoly(int k,Poly a,Poly b)
{
Poly d,e;
p:
if(a.Data[0].Pow>=b.Data[0].Pow)
{
Data[k].Pow=a.Data[0].Pow-b.Data[0].Pow;
Data[k].Coef=a.Data[0].Coef/b.Data[0].Coef;
d.ItemPoly(Data[k].Coef,Data[k].Pow,b);
e.SubtractPoly(a,d);
k++;
}
n=k;
if(e.Data[0].Pow>=b.Data[0].Pow)TaghsimPoly(k,e,b);
else
{
cout<<"\nMod Is : \n";
e.WritePoly();
}
}
void main(void)
{
Poly a,b,c;
char Sign;
a.ReadPoly();
a.SortPoly();
cout<<"\nPlease enter sign(+,-,*,/) : ";
cin>>Sign;
b.ReadPoly();
b.SortPoly();
switch(Sign)
{
case'+':
c.AddPoly(a,b);
break;
case'-':
c.SubtractPoly(a,b);
break;
case'*':
c.MulPoly(a,b);
c.SortPoly();
break;
case'/':
c.TaghsimPoly(0,a,b);
break;
}
cout<<"\n\nAnswer Is : \n";
c.WritePoly();
getche();
این برنامه یک فایل source C را با درج تورفتگی های مناسب مرتب میکند.
برنامه ساعت analog
برنامه رسم DFA و مینیمم سازی آن و...
ادیتور فارسی برای Dos
فونت ادیت (FontEdit) برای Dos
برنامه ای برای جابجایی، چرخش و تغیر سایز یک شکل
رسم منو (Menu)
پازل جدول 9
پازل ساختن تصویر بهم ریخته
شبیه سازی ماشین تورینگ Turing
چاپ مثلث بالای قطر فرعی
پایینش و ببینید میتونید بنویسید اگه نه براتون بذارم تمرین خوبیه برای آرایه ها! :لبخندساده:
#include<iostream.h>
#include<conio.h>
int main()
{
int n,i,j;
cout<< "Enter num:";
cin>> n;
for(i = n; i >= 1; --i){
for(j = 1; j <= i; ++j)
cout<< '*';
cout<< '\n';
}
getch();
return 0;
}
داشتم فایلهام رو مرور میکردم که این برنامهء قدیمی رو که خیلی وقت پیش نوشته بودم و در یک فروم یکی از دوستان ایدهء نوشتنش رو مطرح کرده بود دیدم.
گفتم بذارم اینجا بد نیست بالاخره از اینکه جایی که کسی بهش دسترسی نداره خاک بخوره بهتره.
این برنامه یک ادیتور متن ساده و آزمایشی هست که با سی و تحت داس نوشته شد.
بنظرم بخش بزرگی از پیچیدگی و حجمش بخاطر اینه که نمایش خطوط طولانی تر از تعداد ستونهای صفحهء نمایش و همینطور عبور از سطر آخر صفحهء نمایش و اینطور چیزها رو مدیریت میکنه. یعنی مثلا وقتی طول خط از 80 ستون بیشتر میشه کاراکترها یکی به سمت چپ میرن و غیره. ضمنا اون دوستی که پیشنهادش رو داده بود نظرش یک ادیتور خیلی ساده تر بود که فقط کاربرد لیست پیوندی رو باهاش نمایش بدیم و تجاوز از ستونها و سطرهای صفحهء نمایش رو مدیریت نکنه، ولی من سعی کردم تاحد امکان از نظر کارایی آزمایشی کامل باشه و ضمنا بیشتر استانداردهاش رو هم سعی کردم از نوتپد ویندوز بگیرم. خلاصه اکثر امکانات ویرایشی پایه مثل select کردن و کپی و پیست و غیره رو داره.
فایل ضمیمه شده شامل سورس (فقط یک فایل سی) و فایل exe هست.
وقتی برنامه رو اجرا کردید کلید F1 رو که بزنید یک Help مختصر میاد که هر کارایی و ترکیب کلید مربوطه رو معرفی کرده. با کلید ESC هم خارج بشید.
متاسفانه بخاطر محدودیت حافظهء داس، حجم فایلهایی که میشه با این برنامه باز کرد یا حجم متنی که میشه تایپ کرد خیلی محدوده؛ البته من یک بار با استفاده از اشاره گرهای بزرگتر یا یه همچین چیزی (زمان زیادی میگذره و یادم رفته دقیقا چی بود :لبخند:) مقدارش رو افزایش دادم اما سورس اون از دست رفت و دیگه هم درستش نکردم.
ضمنا برنامه وقتی با Alt+Enter اون رو به حالت Full screen ببرید خیلی سریعتر کار میکنه و محیطش هم ظاهر مناسبتری داره.