سفارش تبلیغ
ساعت مچی smart
آموزش برنامه نویسی مبتدی برای دانشجویان

   1   2      >

22/6/88
12:46 صبح

آموزش برنامه نویسی مبتدی C

بدست hsanali lotfi در دسته

<!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; font-size:14.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} @page Section1 {size:612.0pt 792.0pt; margin:45.0pt 45.0pt 72.0pt 45.0pt; border-top:ridge; border-left:ridge; border-bottom:groove; border-right:groove; border-color:windowtext; border-width:6.0pt; padding:24.0pt 24.0pt 24.0pt 24.0pt;} div.Section1 {page:Section1;} -->

 


مثال 31) برنامه ای بنویسید که مشخصا ت پرسنل یک شرکت را گرفته سپس آنها را در فایلی نگهداری کند سپس از آن لیست حقوق کارمندان را محاسبه و چاپ کند .


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


# include <stdlib.h>                             # include <string.h>


int main( )


{


File *f;


Char numstr[10];


Int I,salary;


Struct em


           {


               Char name[10];


                Int hp;


                Int h;


           }


Emp;


Clrscr( );


F=fopen("employ.dat" ,"wb+");


If (!f)


{


Printf("can not open fill");


Exit 0;


}


Printf("name hour pay , hour");


While(y)


{


Gets(em.name); = scanf("%d",&emp,name);


If(!emp.name);


Break;


Gets(num str );


Emp.hp=atio(numstr);


Gets(num str );


Emp.h=atio(num str);


Fwrite(&emp,sizeof(structem),I,f);


{


   Rewrute(f);


    Clrscr ( );


 Puts(name salary):
FREAD(&emp,size of (struct em),I,f);


While (!feof(f))


{


Puts(ep.name);


Printf(%d \n memp.hp*emp.h);


Fread(&emp , size of (structem), I,f );


}


Close (f);


Getch( );


Return 0;


}


 


 


 



22/6/88
12:45 صبح

آموزش برنامه نویسی مبتدی C

بدست hsanali lotfi در دسته

<!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0;} @font-face {font-family:Badr; panose-1:0 0 4 0 0 0 0 0 0 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; font-size:14.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {} @list l0:level1 { margin-left:18.0pt; text-indent:-18.0pt; font-family:Wingdings;} @list l0:level2 { margin-left:54.0pt; text-indent:-18.0pt; font-family:Symbol;} @list l0:level3 { margin-left:90.0pt; text-indent:-18.0pt; font-family:Wingdings;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} -->

 


انواع فایل ازنظر دسترسی :


1- فایلهای با دسترسی مستقیم یا تصادفی : در این نوع فایل ها نحوه دسترسی به داده ها مستقل از ترتیب ذخیره سازی آن ها می باشد و می توان به هرکدام از داده ها به طور مستقیم دسترسی داشت . مثلاًدر فایل دیکشنری برای دیدن کلمه ای که با B شروع می شود دیگر کلماتی را که با حرف A شروع می شود را نمی بیند.


2- فایلهای با دسترسی ترتیبی : در این نوع از فایل ها دسترسی به داده ها به همان ترتیبی است که ذخیره شده است یعنی برای دسترسی به داده n ام باید از n-1 داده عبور کنیم . مثلاً اگر بخواهیم دقیقه دوم یک موزیک را گوش کنیم باید از دقیقه اول آن عبور کنیم .


انواع فایل از نظر محتویات :


1- فایل های متنی (text) : در این نوع از فایل ها داده ها به همان شکلی که نوشته می شوند ذخیره می گردند .


2- فایل های دودویی یا باینری : در این نوع از فایل ها داده ها به صورت دودویی تبدیل شده و ذخیره می گردند .


 برای استفاده از فایل ها در هر زبان برنامه سازی مجموعه ای از عملیات باید انجام پذیرد که عبارتند از :


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


 


شکل کلی تعریف متغیر فایلی : (در قسمت متغیر ها تعریف می شود.)


FILE (حروف باید بزرگ باشد.)       * نام متغیر فایلی (نام داخلی) ;


مثال  : FILE     *f1 ;


2- باز کردن فایل : باید نام خارجی و نام داخلی فایل را به یکدیگر نگاشت نموده و نیز نوع فایل را مشخص کنیم , همچنین تعیین کنیم که فایل را برای چه عملی می خواهیم باز کنیم که کل این کار توسط دستور fopen  انجام می پذیرد.


شکل کلی دستور :


نام متغییر فایلی = fopen ( " مسیر و نام خارجی فایل ", " نوع فایل و حالت باز کردن  " ) ;


 


حالتهای مختلف باز کردن فایل :


1- باز کردن فایل متنی برای خواندن    read text               r (rt)    


2- باز کردن فایل متنی برای نوشتن     write text             w (wt)


3- باز کردن فایل متنی برای اضافه کردن      append text     a (at)


4- باز کردن فایل دودویی برای خواندن                         rb (rbt)


5- باز کردن فایل دودویی برای نوشتن            wb (wbt)            


6- باز کردن فایل دودویی برای اضافه کردن           ab (abt)         


7- فایل متنی را هم برای خواندن و هم برای نوشتن باز می کند .        +r


8- فایل متنی را هم برای نوشتن و هم برای خواندن باز می کند .        +w


9- فایل متنی را برای اضافه کردن و خواندن و نوشتن باز می کند .        +a


10- فایل دودویی را برای خواندن و هم نوشتن باز می کند .      b +r


11- فایی دودویی را برای نوشتن و هم خواندن باز می کند .      b+w


12- فایل دودویی را برای اضافه کردن و خواندن و نوشتن باز می کند.   b + a


مثال :                                                                              f1= fopen ("D: example .dat" , "w")    ;


توجه:دستور باز کردن فایل f1 را نوشتیم اگر f1 موجود باشد اطلاعات جدید را می ریزد درون f1 که اطلاعاتی از قبل درونش بود و اگر f1 موجود نباشد f1 جدیدی را می سازد.


*نکته :


پس از آنکه فایل مورد نظر باز شد باید بررسی کنیم که این کار موفقیت آمیز بوده یا نه . برای امتحان کردن اینکه f1 باز شده است یا نه دستور زیر را در برنامه می نویسیم :


if (f1== NULL)


          {


             printf (" file not opened ") ;


              exit (0) ;


             }


 


3- نوشتن در فایل یا خواندن در آن :


     متناسب با محتویات (جنس , نوع ) فایل دستوری که برای این دو کار استفاده می کنیم متفاوت است.


الف – نوشتن و خواندن کاراکتر :   شکل کلی دستور به شکل زیر است


putc (نام متغییر , نام داخلی فایل ) ;                           : نوشتن


مثال  : putc (ch , f1) ; ذخیره گردد                              f1درون فایل ch این دستور موجب می شود محتویات  


 


نام متغیر  = getc(نام داخلی فایل ) ;                                                                                           خواندن:


مثال : ch = getc(f1) ;          ذخیره گرددchخوانده شده ودر متغییر  f1این دستور موجب می شود که یک کاراکتر از فایل


   


    ب- نوشتن و خواندن رشته :   شکل کلی دستور به صورت زیر است :


fputs ( نام متغییر رشته ای , نام داخلی فایل ) ;                               نوشتن:


مثال : fputs (s1 , f1 ) ;


fgets (نام متغییر رشته ای , طول رشته , نام داخلی فایل ) ;             خواندن :


مثال : fgets (s1 , 10 , f1 ) ;


 


4- بستن فایل :


پس از آنکه عملیات مورد نظر بر روی فایل به اتمام رسید آن را می بندیم . که شکل کلی دستور به شکل زیر است:


fclose (نام داخلی فایل ) ;


دلایل بستن فایل :


ü     تعداد فایل هایی که یک سیستم عامل همزمان می تواند باز کند محدود است .


ü     افزودن علامت مخصوص به انتهای فایل , فایلی که می بندیم به ویژه فایل متنی یک علامتی( مثل( .)) انتهای متن می آید که اگر دفعه بعدی فایل را باز کردیم برای پیدا کردن انتهای متن دنبال آن علامت بگردیم .


ü     سرعت دسترسی ما به حافظه جانبی بسیار پایین است


* نکته :


برای تست انتهای فایل از تابع feof  استفاده می کنیم .


 


* خواندن و نوشتن structure در فایل :


fwrite (نام متغییر ساختاری , sizeof( نوع متغییر ساختاری) ,تعداد , نام داخلی فایل ) ;  نوشتن:


 


fread (نام متغییر ساختاری , sizeof( نوع متغییر ساختاری) ,تعداد , نام داخلی فایل ) ;   خواندن:


 



22/6/88
12:42 صبح

آموزش برنامه نویسی مبتدی C

بدست hsanali lotfi در دسته

<!-- /* Font Definitions */ @font-face {font-family:Badr; panose-1:0 0 4 0 0 0 0 0 0 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; font-size:14.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} -->

اشاره گر ها(pointer) :


ویژگی متغییر : 1- نام      2- ادرس      3- محتویات       4- نوع


 


int x ;                                             int   x ;


x = 55 ;                                           int *p ;


printf ("%d",x) ; : 55                     x = 55 ;


 p = &x ;                            بریز x در را pآدرس                 


printf ("%d" , x) ;   : 55


                       یا


printf ("%p",*p ) ;    : 55


                                        


اشاره گر : متغییری است که در آن آدرس متغییر دیگر را می توان نگهداری کرد .


 


شکل کلی تعریف اشاره گر :


 Type   *var name;


int      *p ;                                                      اشاره گر است pیعنی   


float     *q ;        


char     * r ;      


نکات :


1- در نام رشته و آرایه , آدرس شروع رشته و آرایه ذخیره می شود . از این رو می توانیم با استفاده از اشاره گر هابه آن ها دسترسی یابیم .


2- در پیاده سازی زیر برنامه ها هنگام فراخوانی می توان از دو روش استفاده نمود . 


فراخوانی توابع: 


   الف- فراخوانی توسط مقدار (call by value ) :     


   در این روش مقدار پارامتر حقیقی در پارامتر مجازی کپی می شود و پس از فراخوانی پارامترهای حقیقی و مجازی مستقل از هم عمل می کنند .


     ب – فراخوانی توسط ارجاع یا آدرس ( call by refrence ) :


در این روش آدرس پارامترهای حقیقی در پارامتر های مجازی کپی می شود یا به عبارت دیگر پارامترهای مجازی اشاره گر به پارامتر های حقیقی می باشند , از این رو هرگونه تغییر در پارامترهای حقیقی عیناً در پارامترهای مجازی تأثیر گذاشته و بالعکس .


پرونده یا فایل (File ) :


   درکلیه برنامه هایی که قبلاً پیاده سازی می کردیم داده ها درون متغییر ها ذخیره می شوند و متغییر ها در حافظه اصلی (Ram ) نگهداری می شوند و پس از خروج از هر برنامه محتویات متغییر ها از بین می رود که برای رفع این مشکل از file  استفاده می کنیم .


فایل : مجموعه ای از داده های مرتبط به هم را گویند که در حافظه جانبی ذخیره شده و یک نام به آن مجموعه نسبت داده می شود .



22/6/88
12:40 صبح

آموزش برنامه نویسی مبتدی C

بدست hsanali lotfi در دسته

<!-- /* Font Definitions */ @font-face {font-family:Badr; panose-1:0 0 4 0 0 0 0 0 0 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; font-size:14.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} -->

ساختمان یا رکورد (structure) :


    مجموعه ای از داده ها می باشند که نوع آنها الزاماً یکسان نبوده و دارای نام مشترکی می باشند .


برای پیاده سازی نرم افزارهای کاربردی ابتدا باید موجودیت های سیستم مورد نظر را شناسایی کنیم , سپس هر کدام از موجودیت ها را با استفاده از یک ساختمان پیاده سازی می کنیم .


به اشخاص , اشیا , و پدیده های موجود در هر سیستم عملیاتی اصطلاحاً موجودیت گویند . مانند : اعضا و کتاب در سیستم کتابخانه .


شکل کلی تعریف نوع رکوردی :


struct نام نوع ساختار  {


                                نوع       نام فیلد 1 ;


                                 


                                 


                                نوع        nنام فیلد


                              } ;


مثال : 


struct   book {


                     char   title[30] ;


                     char   writer[10] ;


                     int        id ;


                       }


* پس از تعریف نوع ساختار باید متغییر هایی از آن نوع را تعریف نماییم .


الف )* تعریف متغییر ها پس از معرفی نوع ساختار.    مثلاً در مثال بالا بعد از { :


} b1,b2,b[10] ;


ب ) تعریف در بخش متغییر ها .


struct     book     b1,b2,b[10] ;


شکل کلی دسترسی به فیلدهای ساختاری :


















     abc




 

نام متغییر ساختاری . نام متغییر ;                                                                      b1                b2 


b1 . title = "abc" ;                                                                  title


                                                                                              writer


                                        id      


                       


نکات :


1- اگر بخواهیم همزمان با تعریف متغییر های ساختاری , به ان ها مقدار بدهیم به صورت زیر عمل می کنیم .                                      


srtuct    book   b3 = {"xyz","abc",554};    


2- اگر متغییرهای ساختاری هم نوع داشته باشیم می توانیم آن ها را به هم انتساب دهیم .


    b1 = b2 ;                     b2 = b[10] ;


 


مثال : برنامه ای بنویسید که اطلاعات 10 کتاب را از ورودی گرفته سپس شماره کتابی را خوانده و مشخصات کامل آن را چاپ کند.


#include <stdio.h>


#include <conio.h>


#define    n    10  


int main()


{


   struct book{


                        char   title[15] ;


                        char   writer[10] ;


                          int      id ;


                       }b1 , b[n] ;


    int   x,i,j ;


    for (i=0 ; i<n ; i++ )


        {


           printf (" enter title\writer\id : \n") ;


           scanf ("%s%s%d",b[i].title , b[i].writer , &b[i].id ) ;


         }


 printf (" enter num for search \n") ;


 scanf ("%d" , &x);


 


    for (i=0 ; i < n ; i++ )


         if (x = = b[i].id)


              {j=i;


                 break ;


                }


printf (" the title and writer is: %s%s " ,b[i].title,b[i].writer) ;


getch();


return 0 ;


}


 


مثال : برنامه ای بنویسید که در یک سیستم کتاب فروشی کلیه کتاب هایی که قیمت آن ها زیرx ریال می باشد را گزارش کند :


#include < stdio.h >


#include < conio.h >


int main ()


{


 const   int    n=10 ;


 struct   book {


                          char    title[15] ;


                          char    writer[15];


                           int     id , price ;


                       } b[n] ;


 int   x , i ,j ;


for (i=0 ; i < n ; i++ )


 scanf ("%s%s%d%d" , b[i].title , b[i].writer , &b[i].id , &b[i].price ) ;


printf (" enter price for search \n") ;


scanf ("%d",&x) ;


 for (i=0 ; i < n ; i++ )


        if (b[i].price <= x)


              printf (" %d" , b[i].id) ;


getch() ;


return 0 ;      


   }



22/6/88
12:35 صبح

آموزش برنامه نویسی مبتدی ...... انواع متغییر ها از نظر اعتبار

بدست hsanali lotfi در دسته

<!-- /* Font Definitions */ @font-face {font-family:Badr; panose-1:0 0 4 0 0 0 0 0 0 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; font-size:14.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} -->

 


انواع متغییر ها از نظر اعتبار :


1- محلی(local) :این نوع از متغییر ها را در داخل زیر برنامه ها تعریف می کنند و فقط در همان زیر برنامه ها اعتبار دارند .


2- سراسری (global) : این نوع از متغییرها را در ابتدای برنامه و قبل از همه توابع تعریف و پیاده سازی می کنند که امکان استفاده از آن ها در کلیه زیر برنامه ها وجود دارد.


استفاده از متغییر های سراسری :


دارای اثرات جانبی می باشد و به همین دلیل تا حد امکان از آن ها استفاده نمی کنیم .


اثرات جانبی بدین معنی است که اگر مقدار متغییر سراسری به نادرستی تغییر کند بخش های بعدی برنامه در صورت استفاده از آن نتایجش اشتباه خواهد بود .


زیربرنامه های بازگشتی (recursive) :


زیر برنامه هایی را گویند که خود را فراخوانی می کنند.


مسایلی را به صورت بازگشتی پیاده سازی می کنند که یا ماهیت بازگشتی داشته باشتند مانند فاکتوریل و فیبوناچی یا از ساختمان داده های غیر خطی استفاده می نماید.


ــ برای نوشتن یک تابع بازگشتی ابتدا مسأله را بامثال های عددی بررسی می کنیم سپس دو رابطه زیر را روی آن ها تعیین می کنیم .


1- رابطه بازگشتی : رابطه ای که طبق آن زیر برنامه خود را فراخوانی می کند .


2- نقطه توقف : مرحله که فراخوانی در آن توقف می کند .


مثال : بدست آوردن فاکتوریل عدد n :


!4 = !3 * 4


!3 = !2 * 3            رابطه بازگشتی                    n! = (n)(n-1)!        :رابطه کلی


!2 = !1 * 2                           


!1 = !0 * 1                                                  n = 0             n! = 1           : نقطه توقف 


!0 = 1             نقطه توقف     


پس از بدست آوردن دو رابطه مورد نظر کافیست با استفاده از دستورif – else زیر برنامه را پیاده سازی کنیم .


int   fact (int n)


 {


     if (n == 0)


          return 1 ;


     else


           return   n*fact(n-1) ;


   }


مثال : فرض کنید صرفاً امکان جمع و تفریق با یک وجود دارد زیر برنامه بازگشتی بنویسید که دو عدد صحیح مثبت را با یکدیگر جمع کند :


3+5  = ?        : فرض                          int s (int n , int m );


s (5,3) = 1 + s (5 , 3-1)                     {


s (5,2) = 1 + s (5 , 2-1)                        if ( m==0)


s (5,1) = 1 + s (5, 1-1)                                 return m ;


s (5,0) =1     : نقطه توقف                         else


                                                                     return (1+ s(n , m-1)) ;


                                                            }


توجــه : اگر زیر برنامه ها را بعد از main بنویسیم error  می دهد و باید پیش از تعریف بیاوریم.


مثال30) برنامه ای به صورت بازگشتی بنویسید که سری فیبوناچی را چاپ کند .


# include <stdio.h>


# include <conio.h>


 Int fibo(int);


Int main ( )


{


 Int n,I ;


 Printf("enter any no \n");


 Scanf( "%d",&n);


 For (i=0;i<n;i++)


 Printf("\n %d , fibo(i));


 Getch ( );


 Return 0 ;


}


 Int fibo(int n);


   {


      If (n<=2)


      Return(1);


      Return(fibo(n-1)+fibo(n-2)); 


   }



22/6/88
12:32 صبح

آموزش برنامه نویسی مبتدی C

بدست hsanali lotfi در دسته

<!-- /* Font Definitions */ @font-face {font-family:"Agency FB"; mso-font-alt:"Trebuchet MS";} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; font-size:14.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} -->

 


مثال27 ) برنامه ای بنویسید که حاصل عبارت زیر را محاسبه کند.


 


 


              n 2                    n1                          


C =         n1       / n1 - n2          /n2


 


 


 


# include <stdio.h>


# include <conio.h>


Int power(inta,intb )


{


 Int I,p;


 P=1;


 For (i=1;i<=n;i++);


 P=p*a;


 Return p;


}


Int main( )


{


   Int n1,n2;


   Float n3,x,y ;


 Scanf("%d %d \n ", &n1,&n2);


 X=poer(n1,n2)/n1;


 Y=power(n2,n1)/n2;


 N3=x-y;


 Printf("%f ", n3);


 Return(0);


}


 


 


مثال28 ) برنامه ای بنویسید که حاصل عبارت روبرو را محاسبه نماید .


             n 2                   n1


C =   n1       / n1 - n2          /n2


 


# include <stdio.h>


# include <conio.h>


Int power(inta,intb )


{


 Int I,p;


 P=1;


 For (i=1;i<=b;i++);


 P=p*a;


 Return p;


}


Int fact (inta)


 {


      Int I,p;


      F=1;


      For (i=a;i>=1;i--)


      F = f * I;


      Return f ;


 }


 Int main( )


{


    Int a,b ;


    Float c ;


    Clrscr ( );


    Scanf(" %d %d \n ",&a,&b);


    If (a<0 || b<0)


 {


   Printf(invalid);


   Exit 0;


 }


C= ( power (a,b)/fact( c ) ) – ( power (b,a)/ fact( c ) );


Printf("%f \n ",c);


Return (0);


}


 مثال29 ) برنامه مثال بالا را با استفاده ازdiov بنویسید .


 


# include <stdio.h>


 # include <conio.h>


   Void power (int a,int b)


        {


           Int I,p;


           P=1;


           For( i=1;i<=b;i++)


                P=p*a;


           Printf( "%d",p );


         }


      Int main( )


        {


           Int a,b;


           Scanf("%d %d \n ",&a,&b);


           Power(a,b);


           Return 0;


         }



22/6/88
12:27 صبح

آموزش برنامه نویسی مبتدی C

بدست hsanali lotfi در دسته

 


<!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; font-size:14.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} -->

رشـته (string) :


آرایه ای از کاراکترها را رشته گویند.                                                                     char name[10] ; 


نکته : برای خواندن رشته از صفحه کلید :


scanf ( " % s " , name ) ;    یا      gets (name) ;


   برای چاپ کردن رشته :


 printf ( " % s " , name ) ;      یا     puts (name) ;


نکته : برای خواندن رشته ها اگر حروف کمتر از جای خالی بود از علامت   \0 در انتهای رشته استفاده می کنیم .


زیر برنامه ها ( sub program ) :


اساس برنامه سازی ساخت یافته زیر برنامه ها می باشند .


یک برنامه را ابتدا تجزیه و تحلیل کرده و در صورت نیاز آن را به زیر برنامه های کوچکتری تقسیم می کنیم , سپس زیر برنامه ها را فرخوانی می کنیم .


مراحل استفاده:


1- تعریف و پیاده سازی :  برای این مرحله باید توابع را با کلیه عملیات مربوط به آن پیاده سازی کنیم . یعنی همانند یک برنامه کلیه متغییر ها , دستورات , و نیز ورودی ها و خروجی ها را تعیین می کنیم .


2- فرا خوانی (call) : صدا کردن یک زیر برنامه( تا زمانی که فرا خوانی نگردد اجرا نخواهد شد) .


ــ توجــه : در هر بنامه یک زیر برنامه اصلی و در صورت نیاز چندین زیر برنامه فرعی خواهیم داشت که اجرای عملیات از زیر برنامه اصلی شروع خواهد شد .


شکل کلی تعریف و پیاده سازی زیربرنامه :


نوع خروجی زیر برنامه      نام زیربرنامه  (اسامی و نوع پارامتر ورودی)


   {  


             تعریف متغییرهای محلی ;


             دستورات               ;


         return متغییر خروجی ;


    }


 


 


شکل کلی فراخوانی زیربرنامه :


نام زیربرنامه     (اسامی پارامترهای ورودی)  ;


ــ توجــه : تعداد پارامترهای مجازی با تعداد پارامترهای واقعی باید یکسان باشد .


ــ در زبان C به زیر برنامه ها تابع گویند .


ــ اگر یک تابع خروجی نداشته باشد نوع آن را void تعریف می کنیم .


 




مثال26 ) برنامه ای بنویسید که دوعدد ازورودی گرفته با استفاده از زیر برنامه ها توان آن ها را محاسبه و چاپ کند.


(توان :عدد اول به توان عدد دوم )


# include <stdio.h>


# include <conio.h>


   Int power (int a ,int b);


{


Int i,p;


P=1;


For (i=1;i<=b;i++);


P=p*a;


Return p;


}


Int main ( )


{


 Int n1,n2,n3;


Scanf("%d %d \n ",&n1,&n2);


N3=power(n1,n2);


Printf( "% \n ",n3);


Return 0;


}


 



22/6/88
12:22 صبح

آموزش برنامه نویسی مبتدی C

بدست hsanali lotfi در دسته

 


<!-- /* Font Definitions */ @font-face {font-family:Badr; panose-1:0 0 4 0 0 0 0 0 0 0;} @font-face {font-family:"Agency FB"; mso-font-alt:"Trebuchet MS";} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; font-size:14.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} -->

 


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


   نام ماتریس[تعدادسطر][ تعدادستون] ;


Int m[2][3];                                                                                                      : مثال


مثال22) - برنامه ای بنویسید که عناصر یک ماتریس 3*3 را از ورودی گرفته سپس مجموع عناصر قطر اصلی را محاسبه کند .


 


# include <stdio.h>


# include <conio.h>


Main ( )


{


    Int   m[3] [3];


    Int s=0,I,j;


    For(i=0;i<3;i++)


        For(j=0;j<3;j++)


            Scanf("%d \n",&m[i][j] );


    For (i=0;i<3;i++)


        For(j=0;j<3;j++)


            If (i==j)


              S+=m[i][j];


   Printf("sum=%d \n",s);


   Getch( );


    Return(0) ;


}


 


مثال23 ) برنامه ای بنویسید که یک عدد از ورودی گرفته و تعداد دفعات تکرار آن را در یک ماتریس nm×چاپ کند .


# include <stdio.h>


# include <conio.h>


Main ( )


{


   Const


    Int   n=4,m=3;


    Int mat [n][m];


    Int   I,j,x,c=0;


   For(i=0;i<n;i++)


        Scanf("\n %d", &x);


        For(i=0;j<m;j++)


            For(j=0;j<m;j++)


               If (x=mat[i][j])


                   C++;


    Printf("%d",c);


   Getch( );


    Return(0);


 }


مثال24 ) برنامه ای بنویسید که حاصلضرب دو ماتریس m×n را پیاده سازی کند .


 


# include <stdio.h>


# include <conio.h>


Main ( )


{


   Const


   Int n;


   Float n[i][j],m[i][j],p[i][j],s; 


   Int m,I,j;


   For (i=0;i<n;i++)


        For(j=0;,j<n;j++)


         {  


            Printf("enter n[%d][%d],m[%d][%d]",I,j,I,g);


            Scanf("%F%F",&n[i][j],&m[i][j]);


          }


   For (h=0;i<n;i++)


      For (j=0;j<n;j++)


          {


          S+=n[i][j]*m[m][j];


          Printf("the p[%d][%d] is : %f",I,j,s);


         }


   Getch( );


    Retutn (0) ;


}


مثال25) برنامه ای بنویسید که عناصر یک ماتریس m×n را گرفته و تعداد اعداد زوج و فرد آن ها را مشخص کند .


# include <stdio.h>


# include <conio.h>


Main ( )


{


Const int n,m ;


Int   m[n],[m],I,j ,OC,OC ;


For (i=0 ; i<n ; i++);


For (j=0 ; j<n ; j++);


{


Printf("\n enter no[%d][%d]:",I,j);


Scanf("%d",&m[i][j]);


}


For (i=0;i<n;i++)


     For (j=0;j<n;j++)


       If((m[i][j]%2)= =0)


        Oc++;


        Oc=n*m-oc;


Printf("the odd counter is :%d and the even counter is 5D " , OC ,OC );


Getch ( );


Return(0);


}




22/6/88
12:19 صبح

آموزش برنامه نویسی مبتدی C

بدست hsanali lotfi در دسته

<!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; font-size:14.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} -->

 


مثال19 ) برنامه ای بنویسید که سری فیبوناچی را تولید و در یک آرایه نگهداری کند . ...و8 و 5 و3 و 2 و1 و1


 


# include <stdio.h>


# include <conio.h>


Main ( )


{


   Const


   Int n=20;


 Int m[n] , I;


 M[0]=1;


 M[1]=1


 Clrscr( );


 Printf("%d jomle az fibo :\n = = = = = = = = = \n\n",n);


 Scanf ("%d \n %d \n ", m[0],m[1]);


 For ( i=1; I,n ;i++) 


 {


     M[i] =m[i-2]+m[i-1];


     Printf("%d \n ", m[i]);


 }


     Getch( );


     Return 0;


 }


 


 


 


 


 


 


مثال20 ) برنامه ای بنویسید که یک آرایه n عنصری را خوانده ومیانگین آنها و انحراف از میانگین را محاسبه کند .


 


# include <stdio.h>


# include <conio.h>


Main( )


{


    Const         int n ;


    Float a[n],avg,s=0 ;    


    Int I;


   Clrscr( );


   For (i=0;i<n;i++)


      Scanf ("%f",&a[i]);


        For (i=0;i<n,i++)


           S+ = a[i];


   Avg=s/n;


   For (i=0;i<n;i++)  


      Printf("\n the contrast %f of avg is : a[i] – avg);


Getch( );


Return(0);


}


مثال21 ) برنامه ای بنویسید که 5 عدد را از ورودی خوانده سپس انها را به ترتیب معکوس در ارایه ی دیگری قرار داده و نتیجه را به خروجی ببرد .


# include <stdio.h>


# include <conio.h>


Main ( )


{


 Int x[5],y[5],I,j;


Clrscr ( );


For (i=0;i<5;i++)


Printf("enter number %d:",i);


Scanf( "%d",&x[i]);


}


J=0;


Printf(" num in inverse:\n");


For (i=4;i>=0;i--)


Y[j]=x[i];


Printf("%3d",y[j]);


J++;


}


Printf("\n press okey to coniniue:");  


Getch ( );


Return (0);


}



   1   2      >