سورس چند تکه برنامه مفید در زبان C

آبجی

عضو جدید
کاربر ممتاز
برنامه انداختن تاس با دستور randomize() و random()

برنامه انداختن تاس با دستور randomize() و random()

این برنامه تا زمانی که کاربر Enter بزنه، شروع به ریختن تصادفی تاس میکنه و عدد اون رو نمایش میده.
PHP:
   			//This program can imagery dice rolling.
#include <stdlib.h>
#include <time.h>
#define  randomize()(srand(time(0)))
#define  random(x)(rand()%x)
#include <conio.h>
#include <iostream.h>

void main()
{
 cout<<"Press Enter for roll the dice and press Esc for exit.";
    int n=1;
      do{
            char ch=getch();
             if(ch==13)
                {
                    clrscr();
                    randomize();
                     switch(random(6)+1)
                    {
                         case 1:
                                  cout<<n++<<"- The dice is 1.";
                                  break;
                         case 2:
                                  cout<<n++<<"- The dice is 2.";
                                  break;
                         case 3:
                                  cout<<n++<<"- The dice is 3.";
                                  break;
                         case 4:
                                  cout<<n++<<"- The dice is 4.";
                                  break;
                         case 5:
                                  cout<<n++<<"- The dice is 5.";
                                  break;
                         default :
                                  cout<<n++<<"- The dice is 6.";
                      }//end of switch
                  }//end of if
             else if(ch==27)
                break;//break the loop if user press the Esc.
         }while(1);//end of DO…WHILE loop.
}


//end
 

آبجی

عضو جدید
کاربر ممتاز
برنامه ی اشتراک و اجتماع دو مجموعه مرتب شده

برنامه ی اشتراک و اجتماع دو مجموعه مرتب شده

این برنامه دو لیست مرتب شده از ورودی گرفته و اشتراک و اجتماع آنها را چاپ میکند.
PHP:
   			#include <iostream.h>

void main()
{
    int n, m, x[50], y[50];
    register c;
    cout<<"Enter the number of first list's elements:";
    cin>>n;
    cout<<"Enter the first sorted list:"<<endl;
    for(register i=0;i<n;i++)
        cin>>x[i];
    cout<<"Now enter the number of second list's elements:";
    cin>>m;
    cout<<"Enter the second sorted list:"<<endl;
    for(c=0;c<m;c++)
        cin>>y[c];
    //------------------------------------------------------------
    cout<<"Union: ";
    char ch;
    i=0;
    for(i=0;i<n;i++)
        if(x[i]!=x[i-1])
            cout<<x[i]<<"\t";
    for(c=0;c<m;c++)
        if(y[c]!=y[c-1])
        {
            ch=0;
            for(i=0;i<n;i++)
                if(y[c]==x[i])
                {
                    ch=1;
                    break;
                }
            if(ch!=1)
                cout<<y[c]<<"\t";
        }
    cout<<endl;
    //------------------------------------------------------------
    cout<<"Subscription: ";
    c=0;
    for(i=0;i<n;i++)
        if(x[i]!=x[i-1])
            for(;y[c]<=x[i]&&c<m;c++)
                if(y[c]!=y[c-1]&&x[i]==y[c])
                {
                    cout<<x[i]<<"\t";
                    break;
                }
    //-------------------------------------------------------------
}


//end
 

آبجی

عضو جدید
کاربر ممتاز
strrev و strtok توابع معکوس کردن رشته و تشخیص نشانه های آن

strrev و strtok توابع معکوس کردن رشته و تشخیص نشانه های آن

تابع strrev: این تابع با دریافت یک رشته محتویات آن را معکوس میکند. به عبارت دیگر کاراکتر ابتدا را به انتها و کاراکتر انتها را به ابتدا منتقل میکند و این عمل را برای تمامی کاراکتر های رشته انجام میدهد. به عنوان مثال دستور زیر موجب معکوس شدن رشته str می شود:
PHP:
strrev(str);
//end



تابع strtok: این تابع نشانه های موجود در یک رشته را مشخص میکند و بیشتر برای تجزیه رشته ها کاربرد دارد:

PHP:
char* token = strtok(str1, str2);
//end



در الگوی فوق str1 رشته ای است که نشانه های موجود در آن باید جدا شوند و str2 رشته ای است که جدا کننده ها را مشخص میکند. این تابع اشره گری را به نشانه ی یافت شده بر میگرداند.
 

آبجی

عضو جدید
کاربر ممتاز
strcspn تابع جستجو یک رشته در دیگری و بازگشت عدد int

strcspn تابع جستجو یک رشته در دیگری و بازگشت عدد int

تابع strcspn: این تابع کاراکتر های یک رشته را در یک رشته جستجو کرده و مکان اولین موردی که یکی از کاراکتر های زیر رشته در رشته ی اصلی وجود داشته باشد را به صورت یک عدد int برمیگرداند. شکل کلی بکارگیری این تابع بصورت زیر است:

;(رشته 2 ,رشته 1)int position=strcspn
 

آبجی

عضو جدید
کاربر ممتاز
سورس مرتب سازی یک آرایه با طول n با استفاده از Quick Sort

سورس مرتب سازی یک آرایه با طول n با استفاده از Quick Sort

اینم یه برنامه که ابتدا طول آرایه رو مشخص میکنید و سپس عناصر اونو از ورودی میگیره و با مرتب سازی سریع، به صورت صعودی مرتب میکنه و نمایش میده. که این برنامه رو دوست عزیزم LOgiCeR k3nTo نوشتن.
PHP:
			#include<conio.h>
#include<iostream.h>

//--------------------------------------------------------------------------
void read_list(int a[],int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        cout<<"\n\n\t ENTER THE ELEMENT ["<<i<<"] :: ";
        cin>>a[i];
    }
}
//--------------------------------------------------------------------------
void print_list(int a[],int n)
{
    int i;
    for(i=0;i<n;i++)
        cout<<"\n\n\t "<<a[i];
}
//--------------------------------------------------------------------------
void quick_sort(int a[],int first,int last)
{
    int low,high,temp,pivot;
    low=first;
    high=last;
    pivot=a[(first+last)/2];

    do{
        while(a[low]<pivot)
            low++;
        while(a[high]>pivot)
            high--;
        if(low<=high)
        {
            temp=a[low];
            a[low]=a[high];
            a[high]=temp;
            low=low+1;
            high=high-1;
        }
      }while(low<=high);

    if(first<high)
        quick_sort(a,first,high);
    if(low<last)
        quick_sort(a,low,last);
}
//--------------------------------------------------------------------------
void main()
{
    int a[20],n;

    clrscr();
    cout<<"\n\n\t ENTER THE ARRAY LENGTH :: ";
    cin>>n;

    read_list(a,n);

    cout<<"\n\n\t THE ARRAY ELEMENTS ARE AS FOLLOWS :: ";
    print_list(a,n);

    quick_sort(a,0,n-1);

    cout<<"\n\n\t THE SOTED LIST IS :: ";
    print_list(a,n);
    getch();
}


//end
 

آبجی

عضو جدید
کاربر ممتاز
سورس دیگر برنامه ی مثلث خیام پاسکال

سورس دیگر برنامه ی مثلث خیام پاسکال

اینم یه سورس دیگه از برنامه ی مثلث پاسکال که دوستمون LOgiCeR k3nTo نوشتنش
PHP:
			#include <iostream.h>
#include <iomanip.h>
int c(int i,int j)
{
    int k;
    if ((i==j)||(j==1))
        k=1;
    else
        k=c(i-1,j-1)+c(i-1,j);
    return k;
}
int main ()
{
    int k=26;
    for (int i=1; i<13 ;i++)
    {
        cout << "\n";
        cout << setw(k);
        for (int j=1; j<=i;j++)
            cout << c(i,j)<< setw(4);
        k=k-2;
    }
    return 0;
}


//end
 

آبجی

عضو جدید
کاربر ممتاز
strupr و strlwr توابع بزرگ و کوچک کردن حروف، موجود در cstring.h

strupr و strlwr توابع بزرگ و کوچک کردن حروف، موجود در cstring.h

تابع strupr: این تابع حروف یک رشته را به حروف بزرگ تبدیل میکند. شکل کلی بکارگیری این تابع به صورت زیر است:

;(نام رشته مورد نظر)strupr

تابع strlwr: این تابع تمامی حروف رشته را به حروف کوچک تبدیل میکند. شکل کلی:


;(نام رشته مورد نظر)strlwr
 

آبجی

عضو جدید
کاربر ممتاز
سورس برنامه ی شمارنده ی حروف و ارقام

سورس برنامه ی شمارنده ی حروف و ارقام

این برنامه که نوشته ی LOgiCeR k3nTo هست، یک رشته از ورودی گرفته و تعداد حروف بزرگ، حروف کوچک، اعداد، کاراکتر های ویژه و تعداد کلمات را شمرده و نمایش می دهد.
PHP:
#include <iostream.h>
#include <conio.h>
int main()
{
    int word_counter=0,small_chars=0,large_chars=0,number_counter=0,special_chars=0;
    char ch=0;
    cout<<"\n *** This program counts the number of different kinds of characters ***\n "
    <<"\t\t*** which you use in a paragragh ***\n\n";
    cout<<" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \n\n";
    cout<<"\n\a>>NOTE: about using space(????)\n"
    <<"\n\\O/ Now! Enter a paragragh (and press enter 4end):\n\n\n";
    cout<<"\t\t\t * * * * * \n\n ";
    while((ch=getche())!='\r')
    {
        if(ch>='a'&&ch<='z')
            small_chars++;
        else if(ch>='A'&&ch<='Z')
            large_chars++;
        else if(ch>='0'&&ch<='9')
            number_counter++;
        else if(ch==' '||ch==',' || ch=='.')
            word_counter++;
        else
            special_chars++;
    }
    word_counter++;
    cout<<"\n\n >Word Count= "<<word_counter<<"\n\n >Small Characters Count= "<<small_chars
    <<"\n\n >Large Characters Count= "<<large_chars<<"\n\n >Number Count= "<<number_counter
    <<"\n\n >Special Characters Count= "<<special_chars;
    getch();
    return 0;
}

//end
 

آبجی

عضو جدید
کاربر ممتاز
strchr و strrchr توابع جستجوی یک کاراکتر در رشته، موجود در cstring.h

strchr و strrchr توابع جستجوی یک کاراکتر در رشته، موجود در cstring.h

تابع strchr: این تابع اولین مکان یک کاراکتر را در یک رشته یافته و یک اشاره گر از نوع char* به مکان مورد نظر در رشته برمیگرداند. در صورتی که کاراکتر مورد نظر یافت نشود، مقدار NULL بازگردانده میشود. این به شکل کلی زیر به کار میرود:
PHP:
;(کد اسکی کاراکتر مورد جستجو ,رشته مورد نظر)char* position=strchr



تابع strrchr: تنها تفاوت این تابع با strchr این است که آخرین مکان وقوع کاراکتر را در یک رشته برمیگرداند. به عبارت دیگر این تابع رشته را از انتها برای یافتن نخستین وقوع کاراکتر موردنظر جستجو میکند. به عنوان مثال دستور زیر رشته str را جهت یافتن آخرین وقوع کاراکتر 'b' مورد جستجو قرار میدهد:
PHP:
char ch='b';
char* position=strrchr(str, ch);
//end
 

آبجی

عضو جدید
کاربر ممتاز
strlen تابع تشخیص طول یک رشته، موجود در cstring.h

strlen تابع تشخیص طول یک رشته، موجود در cstring.h

strlen: این تابع یک رشته از نوع آرایه ای از کاراکتر ها به کار میرود و دارای شکل کلی زیر است:
;(رشته مورد نظر)int lenght=strlen


شایان ذکر است که طول آرایه ی کاراکتری ممکن است با طول رشته ی مورد نظر متقاوت باشد، چرا که این تابع تعداد کاراکتر های رشته را از ابتدای رشته تا نقطه ای که به علامت NULL برسد میشمارد.
 

آبجی

عضو جدید
کاربر ممتاز
strncat تابع الحاق تعداد مشخصی کاراکتر به یک رشته

strncat تابع الحاق تعداد مشخصی کاراکتر به یک رشته

تابع strncat: این تابع نیز تعداد مشخصی کاراکتر از ابتدای رشته مبدا را به انتهای رشته مقصد متصل میکند و به شکل کلی زیر به کار میرود:
PHP:
;(تعداد کاراکتر متصل شونده ,رشته مبدا ,رشته مقصد)strncat
 

آبجی

عضو جدید
کاربر ممتاز
_strnicmp تابع مقایسه ی دو رشته بدون توجه به بزرگی و کوچکی حروف

_strnicmp تابع مقایسه ی دو رشته بدون توجه به بزرگی و کوچکی حروف

تابع strnicmp_ : این تابع همانند تابع strncmp عمل کرده با این تفاوت که مقایسه ی دو رشته را بدون توجه به بزرگی و کوچکی حروف انجام میدهد. لذا دو رشته ی "quick" و "QUICK" از نظر این تابع با یکدیگر برابر هستند. شایان ذکر است که این تابع تنها مختص کامپایلر های شرکت مایکروسافت است. البته در بعضی دیگر مانند توربو سی پلاس پلاس 4.5 با عنوان strnicmp وجود دارد.
 

آبجی

عضو جدید
کاربر ممتاز
تمرین: برنامه ی مشخص کردن تعداد تکرار یک رشته در دیگری

تمرین: برنامه ی مشخص کردن تعداد تکرار یک رشته در دیگری

یه تمرین با آرایه های کاراکتری:

- برنامه ای بنویسید که دو رشته از ورودی گرفته و تعداد تکرار رشته ی دوم در رشته ی اول را در خروجی نمایش دهد.
PHP:
   			#include <iostream.h>
#include <conio.h>

void main()
{
     char c1[99]={0}, c2[99]={0};
     int c, no=0;
     cout<<"Enter the fisrt string:"<<endl;
     cin.get(c1,99);
     cout<<"Enter the search pattern:"<<endl;
     cin>>c2;
     for(int i=0;c1[i]!=0;i++)
          for(c=0;;c++, i++)
          {
                if(c2[c+1]==0&&c2[c]==c1[i])
                {
                     no++;
                     break;
                }
                else if(c2[c]==c1[i])
                     continue;
                else
                     break;
          }
     cout<<"The search pattern was found "<<no<<" time(s)!";
}

//end
 

آبجی

عضو جدید
کاربر ممتاز
strncmp تابع مقایسه تعداد مشخصی از کاراکتر های دو رشته موجود در cstring.h

strncmp تابع مقایسه تعداد مشخصی از کاراکتر های دو رشته موجود در cstring.h

strncmp تابع مقایسه تعداد مشخصی از کاراکتر های دو رشته

شکل کلی:
PHP:
;(تعداد کاراکتری که باید مقایسه شود ,رشته 2 ,رشته 1)int result=strncmp


مثال:
PHP:
int result=strncmp(str1, str2, n);
//end

با اجرای این کد n کاراکتر ابتدای رشته اول با n کاراکتر ابتدای رشته دوم مقایسه شده و نتیجه بصورت یک عدد int برگشت داده میشود.
 

آبجی

عضو جدید
کاربر ممتاز
strncpy تابع کپی تعداد مشخصی از کاراکتر های یک رشته در دیگری، موجود در cstring.h

strncpy تابع کپی تعداد مشخصی از کاراکتر های یک رشته در دیگری، موجود در cstring.h

strncpy تابع کپی تعداد مشخصی از کاراکتر های یک رشته در دیگری

شکل کلی:

;(تعداد کاراکتر کپی شونده ,رشته مبدا ,نقطه ی آغازین عمل کپی+رشته مقصد)strncpy


مثال:
PHP:
strncpy(str1+m;str2;n);
//end



در مثال فوق تعداد n کاراکتر ابتدایی رشته ی str2 را از کاراکتر (m+1) ام رشته ی str1 تا محل (m+n+1) کپی میکند. اگر تعداد کاراکتر هایی که در str2 وجود دارد، کمتر از مقدار n باشد، به تعداد لازم کاراکتر NULL در انتهای str1 کپی میشود.
 

آبجی

عضو جدید
کاربر ممتاز
تمرین: برنامه ی حذف space

تمرین: برنامه ی حذف space

یه تمرین برای رشته های کاراکتری:

- برنامه ای بنویسید که یک متن از ورودی گرفته و تمامی space های آن را (در صورت وجود) حذف کرده و آرایه ی کاراکتری جدید را چاپ نماید.
PHP:
  			#include <iostream.h>
#include <conio.h>

void main()
{
    char ch[100];
    int c,space=0;
    cout<<"Enter a string:"<<endl;
    cin.get(ch,100);
    for(int i=0;ch[i]!=0;i++)
        if(ch[i]==32)
        {
            space++;
            for(c=i;ch[c+1]!=0;c++)
                ch[c]=ch[c+1];
        }
    i-=space+1;
    //print
    for(c=0;c<=i;c++)
        cout<<ch[c];
}


//end
 

آبجی

عضو جدید
کاربر ممتاز
ساختار های تکرار (while و do while)

ساختار های تکرار (while و do while)

دو دستور while و do while نیز مانند for عمل میکنند با چند تفاوت:

-در while و do while دو قسمت مقدار اولیه و مقدار افزایش یا کاهش for وجود ندارد و فقط شرط ادامه ی حلقه موجود است.
-در do while بر خلاف for و while ابتدا دستور یا دستورات اجرا شده و سپس شرط چک میشود.

ساختار while:

ساختار while بشکل زیر است:
PHP:
while(A)
B;

//end

در اینجا A شرط ادامه ی حلقه و B دستور یا دستورات تکرار شونده هستند.

ساختار do while:

ساختار do while بشکل زیر است:
PHP:
do{
A
}while(B);

//end


در اینجا A دستور یا دستورات تکرار شونده و B شرط ادامه ی حلقه هستند.

نکته: توجه کنید که بعد از شرط در do while علامت ; میگذاریم.
 

آبجی

عضو جدید
کاربر ممتاز
سورس الگوریتم برج هانوی C++

سورس الگوریتم برج هانوی C++

PHP:
/*
Sepehr Mohammad
Http://sepehrm.com

Algorithmic solution is as follows

1)  if TopN==1, move the single disc from A to C and stop.
2)  Move the top n-1 discs from A to B, using C as Inter.
3)  Move the remaining disc from A to C.
4)  Move the n-1 discs from B to C, using A as destination(dest).
*/

#include <iostream.h>
#include <stdio.h>
#include <conio.h>

void tower(int,char,char,char); /*prototype*/
int main()
{
    int ndisk;
    clrscr();
    cout<<"\n Enter number of disks <<<::: ";
    cin>>ndisk;
    tower(ndisk,'A','B','C');  /*Calling Function*/
    getch();
    return 0;

} /* End of program */

/********************************************/

// src = Source | aux = Auxiliry | dest = Destination
void tower(int topN, char src,char aux,char dest)
{
    if(topN == 1)
    {
            cout<<"\n Disk 1 from "<<src<<" to "<<dest;
    }
    else
    {
        tower(topN-1,src,dest,aux); //src to aux
        cout<<"\n Disk "<<topN<<" from "<<src<<" to "<<dest;
        tower(topN-1,aux,src,dest); //aux to dest
    }
}
 

آبجی

عضو جدید
کاربر ممتاز
مرتب سازی سریع (Quick Sort) در C++

مرتب سازی سریع (Quick Sort) در C++

تابع مرتب سازی سریع در C++ که یکی از روش‌های مرتب‌ سازی آرایه است و به‌ دلیل مصرف حافظه کم، سرعت اجرای مناسب و پیاده‌ سازی ساده بسیار مورد قبول واقع شده‌ است.
PHP:
*/
void quickSort(int x[], int left, int right)
{

        int i = left, j = right;

        int tmp;

        int pivot = x[(left + right) / 2];


        while (i <= j)
        {

                while (x[i] < pivot)

                        i++;

                while (x[j] > pivot)

                        j--;

                if (i <= j)
                {

                        tmp = x[i];

                        x[i] = x[j];

                        x[j] = tmp;

                        i++;

                        j--;

                }

        }


        if (left < j)

                quickSort(x, left, j);

        if (i < right)

                quickSort(x, i, right);

}

 

fsd2070

عضو جدید
سلام
کسی هست که سورس کد الگوریتم رمزنگاری AES را داشته باشه
خواهش می کنم کمک کنید من سورس زبان سیشو پیدا کنم
در حد واجبه
پیشاپیش ممنون
 

Sevda63

عضو جدید
برنامه ای بنویسید که با استفاده از حلقه ها، یک جدول ضرب 10*10 نمایش دهد.
#include<iostream.h>
int main()
{
for(int i=1; i<=10;i++)
{
for (int j=1; j<=10;j++)
cout<< i*j<<" ";
cout<<endl;
}
return 0;
}


//end​
 
آخرین ویرایش:

Sevda63

عضو جدید
برنامه بنویسید که نام روز های هفته را در یک آرایه قرار دهد و آنها را چاپ کند.
//This program uses array of string.

#include <iostream.h>


int main()
{
const int Days=7;
const int Max_Length=10;
char str_array[Days][Max_Length] = {"Sunday","Monday",
"Tuesday","WednesDay","Thursday","Friday","Saturday"};
for(int i=0;i<Days;i++)
cout<<str_array<<endl;
return 0;
}


//end


//end
 

Similar threads

بالا