معرفی سایت
صفحه اول

به وبلاگ آموزش برنامه نویسی خوش آمدید ، برای شما لحظات خوشی را در این وبلاگ آرزو می کنم . این وبلاگ با هدف آموزش برنامه نویسی با تمام زیان ها ایجاد شده است به همین خاطر مطالب این پایگاه گلچینی از بهترین آموزش ها در اینترنت می باشد . من "رضا عبدالملکی " دانشجوی دوره کاردانی رشته کامپیوتر از شهرستان دورود در استان لرستان هستم و منتظر نظرات ، پیشنهادات و انتقادات شما می باشم . موفق و پیروز باشید .




آمار سايت
كل بازديدهاي سايت: 87862
تاريخ ايجاد وبلاگ: شنبه 2 آبان 1388
بروز رساني:چهارشنبه 12 خرداد 1389
تعداد نظرات داده شده : 73 نظر
كل مطالب ارسال شده: 791 عدد
تاريخ ايجاد وبلاگ: شنبه 2 آبان 1388
بروز رساني:چهارشنبه 12 خرداد 1389
تعداد نظرات داده شده : 73 نظر
كل مطالب ارسال شده: 791 عدد
امکانات جانبی
فایل داده:
یک فایل داده (یا فایل ورودی ) فایلی است که شامل اطلاعات ورودی برنامه است یک فایل داده می تواند از نوع متن دودویی باشد .
مزایای فایل داده ها :
یکی از مزایای فایل های داده این است که می توان آن ها را با استفاده از ویراستار برنامه(یا واژه پرداز)بازیابی کرد و قبل از اینکه فایل ، توسط برنامه پردازش شود خطاهای آن را اصلاح کرد . مزیت دیگر آنها این است که می توانند چندین بار توسط برنامه خوانده شوند .این خاصیت ،اشکال زدایی را آسان می کند. همچنین می توان نتایج برنامه را به جای صفحه کلید در یک متن ،نوشت .
ساختار اطلاعات در یک فایل متن:
یک فایل متن می تواند توسط یک ویراستار ،ایجاد و ذخیره شود هر کاراکتری که تایپ می شود به طور موقت در حافظه اصلی قرار می گیرد و روی صفحه ، نمایش داده می شود . وقتی فایلی ذخیره می کنید ، اطلاعات روی صفحه نمایش ، به صورت رشته ای از کاراکتر ها روی دیسک ذخیره می شوند .
ساختار منطقی یک فایل متن:
از نظر منطقی فایل متن شامل خطوطی از کاراکتر ها است که این خطوط توسط کاراکتر< eoln> از یکدیگر جدا می شوند . با استفاده از یک ویراستار یا یک فرمان سیستم عامل (نظیر فرمان زیر ) می توان یک فایل متن را روی صفحه نمایش مشاهده کرد.
> type filename
یک فایل داده (یا فایل ورودی ) فایلی است که شامل اطلاعات ورودی برنامه است یک فایل داده می تواند از نوع متن دودویی باشد .
مزایای فایل داده ها :
یکی از مزایای فایل های داده این است که می توان آن ها را با استفاده از ویراستار برنامه(یا واژه پرداز)بازیابی کرد و قبل از اینکه فایل ، توسط برنامه پردازش شود خطاهای آن را اصلاح کرد . مزیت دیگر آنها این است که می توانند چندین بار توسط برنامه خوانده شوند .این خاصیت ،اشکال زدایی را آسان می کند. همچنین می توان نتایج برنامه را به جای صفحه کلید در یک متن ،نوشت .
ساختار اطلاعات در یک فایل متن:
یک فایل متن می تواند توسط یک ویراستار ،ایجاد و ذخیره شود هر کاراکتری که تایپ می شود به طور موقت در حافظه اصلی قرار می گیرد و روی صفحه ، نمایش داده می شود . وقتی فایلی ذخیره می کنید ، اطلاعات روی صفحه نمایش ، به صورت رشته ای از کاراکتر ها روی دیسک ذخیره می شوند .
ساختار منطقی یک فایل متن:
از نظر منطقی فایل متن شامل خطوطی از کاراکتر ها است که این خطوط توسط کاراکتر< eoln> از یکدیگر جدا می شوند . با استفاده از یک ویراستار یا یک فرمان سیستم عامل (نظیر فرمان زیر ) می توان یک فایل متن را روی صفحه نمایش مشاهده کرد.
> type filename
خواندن اطلاعات از فایل متن:
می توان از رویه readln برای خواندن داده از یک فایل متن استفاده کرد. برنامه ای در نظر بگیرید که شامل تعریف متغیرهای زیر است :
Var
Salary : real ; { input – a salary }
First . last ; char; { input – initials }
Separator : char ; { input – blank between salary and first }
Mydata :Text ; { a text file used as data file }
عبارت :
Readln ( mydata, Salary, Separator, First, last )
رویه :read
رویه ورودی دیگر ، رویه read است که کار آن نیز خواندن اطلاعات از صفحه کلید یا فایل است . بر خلاف readln ، رویه read تنها کاراکتر های داده ای که در لیست ورودی اش مشخص شده را می خواند.
مثال :
دستورات :
Read ( mydata , salary ); { read salary from mydata. }
Read ( mydata , separator ) { read the balank character }
Read ( mydata , first , last ) { read initials from mydata }
Readln ( mydata ) { skip past < eoln > character in mydata. }
نتیجه یکسانی با دستور زیر دارند.
Readln ( mydata , salary , separator , first , last )
نوشتن نتایج در فایل متن :
برای نوشتن نتایج در فایل های متن از رویه های write و writeln استفاده می کنیم .این رویه ها درست مانند همان رویه های چاپ نتایج روی صفحه نمایش هستند اگر اولین پارامتر در فراخوانی write یا writeln ، متغیری از نوع text باشد خروجی به جای صفحه نمایش به فایل فرستاده می شود .
رويه هاي write , writeln:
شكل استفاده :
Write ( outfile , output list )
Writeln ( outfile , output list )
مثال :
Write ( myresult , salary )
Writeln ( myresult , hours : 3 :1 , ‘ s’ , salary :4 :2 )
نامهاي داخلي و خارجي فايل:
براي اینکه پاسكال قادر به بازيابي يك فايل ذخيره شده روي ديسك باشد ، بايد نام دايركتوري ديسك كه فايل در آنجا قرار مي گيرد را داشته باشيد.
رويه Reset:
شكل استفاده :
Reset ( infile )
مثال :
Reset ( mydata )
فايل mydata را به عنوان ورودي برنامه آماده مي كندو نشانگر موقعيت فايل نيز به ابتداي فايل منتقل مي شود. نشانگر موقعيت فايل همواره به كاراكتر بعدي كه قرار است پردازش شود ، اشاره مي كند.بعد از عمل reset ، كاراكتري كه خوانده مي شود ، اولين كاراكتر فايل است.
نکته :
عمل reset قبل از اينكه كاراكتري از فايل mydataخوانده شود ، انجام مي گيرد و اگر فايل mydata قبلاروي ديسك ذخيره نشده باشد ، اين عمل ناموفق است ، براي خواندن و پردازش فايل در بار دوم و در همان برنامه ، عمل reset بايد انجام شود.
رويه rewrite:
شكل استفاده :
Rewrite ( outfile )
مثال :
Rewrite( outdata )
فايل outdata را براي خروجي آماده مي كند .اين فايل در ابتدا خالي است.كليه داده هايي كه قبلا در فايل outdata ذخيره شده اند، از بين مي روند.
تست انتهاي فايل : تابع EOF:
شكل استفاده :
EOF( filename )
مثال :
EOF( infile )
تمام فايل ها به طور اتوماتيك با كاراكتر< eof > خاتمه مي يابند.و تابع از پیش ساخته شده EOF در پاسكال (مخفف ENDOF FILE ׂ( تست مي كند كه آيا كاراكتر بعدي فايل eof است يا خير؟
نکته :
در صورتي كه كليه كاراكتر هاي فايل infile پردازش شده باشند (يعني كاراكتر بعدي ، كاراكتر < eof > باشد)، true را بر مي گرداند و اگر هنوز کاراکتر هایی برای خواندن وجود داشته باشند false را بر می گرداند .
تست انتهای خط : تابع EOLN :
شكل استفاده :
EOLN( filename )
مثال :
EOLN ( infile )
پاسکال تابعی به نام EOLN ( END OF LINE )دارد که قادر به تشخیص کاراکتر < eoln > است. در صورتی که کاراکتر بعدی < eoln > باشد , تابع EOLN مقدار true و در غیر این صورت false را بر می گرداند.
نکته :
1.اگر کاراکتر بعدی فایل , < eoln > باشد ,نتیجه تابع true و در غیر این صورت false خواهد بود .
2.اگر file name حذف شود ,فایل سیستم input (صفحه کلید ) ، فایل ورودی است. در پاسکال استاندارد , فراخوانی تابع EOLN در صورتی که EOF( filename ) ، True باشد ،خطا است.
استفاده از فایل های متن:
اگر برنامه خروجی خود را به جای صفحه نمایش روی دیسک بنویسد ، برنامه دیگری می تواند از این خروجی به عنوان یک فایل داده استفاده کند . در حقیقت دو برنامه از طریق یک فایل دیسک با یک دیگر ارتباط برقرار می کنند.
Assign( ):
این تابع شناسه فایل را به فایل خارجی منسوب می کند در اگر فایل وجود نداشته باشد آن را می سازد.
نحوه کاربرد:
Assign( my_file,external_name ) ;
بستن فایل=close ( )
این تابع برای بستن فایل می باشد.
نکته:
1.اگر قبل از خاتمه برنامه تمامی فایل ها را نبندید ،هیچ کدام از اعمالی که بر فایل اعمال نموده اید ،اجرا نخواهد شد.
2.قبل از این که بتوانید بین عملیات ها سوئیچ کنید، باید فایل را ببندید، به عنوان نمونه ،بعد از نوشتن اقلامی در فایل، باید آن را ببندید و مجددا قبل
ازخواندن اقلام دوباره آن را باز کنید.
نحوه کاربرد:
Close( file_name ) ;
دستیابی تصادفی به فایل ها-seek( ):
پاسکال روشی را برای دستیابی به فایل ها ارائه می کند که به آن دستیابی تصادفی می گویند. دستیابی تصادفی اجازه می دهد تا قلم داده خاصی از فایل را که می خواهید پردازش کنید، با مشخص کردن موقعیت آن، انتخاب کنید.
نحوه کاربرد:
Seek( file_name,position_number ) ;
حال چند مثال جالب از فایل ها را حل میکنیم:
مثال1.برنامه ای بنویسید که نام،تاریخ تولد، شماره تلفن فردی را گرفته و در فایلی ذخیره کند؟
Program file_ex ;
Uses wincrt ;
Type rec_type=record
Name:string ;
Date_of_brith:string ;
Telephone_number:string ;
End ;
Var
My_file:file of rec_type ;
Rec_var: rec_type ;
Ch:char ;
Begin
Clrscr ;
Assign( my_file,'file_1.dat' ) ;
Rewrite ( my_file ) ;
Repeat
Write( 'enter a name:' ) ;
Readln( rec_var.name ) ;
Write( 'enter a date of brith:' );
Readln( rec_var.date_of_brith ) ;
Write( 'enter a telephone number:' ) ;
Readln( rec_var.telephone_number ) ;
Write( my_file,rec_var ) ;
Write( 'continue? Reply y/n: ' ) ;
Readln( ch ) ;
Until ( ch='n') or(ch='N') ;
Close( my_file ) ;
End .
مثال 2. برنامه بالا را برای افزودن رکورد جدید تغییر دهید؟
Program file_ex ;
Uses wincrt ;
Type rec_type=record
Name:string ;
Date_of_brith:string ;
Telephone_number:string ;
End ;
Var
My_file:file of rec_type ;
Rec_var: rec_type ;
Ch:char ;
Begin
Clrscr ;
Assign( my_file,'file_1.dat' ) ;
Reset ( my_file ) ;
Seek( my_file,filesize( my_file) ) ;
Write( 'enter a name:' ) ;
Readln( rec_var.name ) ;
Write( 'enter a date of brith:' );
Readln( rec_var.date_of_brith ) ;
Write( 'enter a telephone number:' ) ;
Readln( rec_var.telephone_number ) ;
Write( my_file,rec_var ) ;
Close( my_file ) ;
End .
مثال3. برنامه ای کامل برای جستجوی قلم داده ای خاص در درون فایل بنویسید؟
Program file_ex ;
Uses wincrt ;
Type rec_type=record
Name:string ;
Date_of_brith:string ;
Telephone_number:string ;
End ;
Var
My_file:file of rec_type ;
Rec_var: rec_type ;
Sought_name: string ;
Found:Boolean ;
Found_ind, counter:integer ;
Begin
Clrscr ;
Assign( my_file,'file_1.dat' ) ;
Reset ( my_file ) ;
Counter:=0 ;
Write( 'enter a name to be Found :' ) ;
Readln (Sought_name ) ;
Repeat
Seek( my_file,counter) ;
Read(my_file,rec_var ) ;
Found:=rec_var.name= Sought_name ;
If Found then
می توان از رویه readln برای خواندن داده از یک فایل متن استفاده کرد. برنامه ای در نظر بگیرید که شامل تعریف متغیرهای زیر است :
Var
Salary : real ; { input – a salary }
First . last ; char; { input – initials }
Separator : char ; { input – blank between salary and first }
Mydata :Text ; { a text file used as data file }
عبارت :
Readln ( mydata, Salary, Separator, First, last )
رویه :read
رویه ورودی دیگر ، رویه read است که کار آن نیز خواندن اطلاعات از صفحه کلید یا فایل است . بر خلاف readln ، رویه read تنها کاراکتر های داده ای که در لیست ورودی اش مشخص شده را می خواند.
مثال :
دستورات :
Read ( mydata , salary ); { read salary from mydata. }
Read ( mydata , separator ) { read the balank character }
Read ( mydata , first , last ) { read initials from mydata }
Readln ( mydata ) { skip past < eoln > character in mydata. }
نتیجه یکسانی با دستور زیر دارند.
Readln ( mydata , salary , separator , first , last )
نوشتن نتایج در فایل متن :
برای نوشتن نتایج در فایل های متن از رویه های write و writeln استفاده می کنیم .این رویه ها درست مانند همان رویه های چاپ نتایج روی صفحه نمایش هستند اگر اولین پارامتر در فراخوانی write یا writeln ، متغیری از نوع text باشد خروجی به جای صفحه نمایش به فایل فرستاده می شود .
رويه هاي write , writeln:
شكل استفاده :
Write ( outfile , output list )
Writeln ( outfile , output list )
مثال :
Write ( myresult , salary )
Writeln ( myresult , hours : 3 :1 , ‘ s’ , salary :4 :2 )
نامهاي داخلي و خارجي فايل:
براي اینکه پاسكال قادر به بازيابي يك فايل ذخيره شده روي ديسك باشد ، بايد نام دايركتوري ديسك كه فايل در آنجا قرار مي گيرد را داشته باشيد.
رويه Reset:
شكل استفاده :
Reset ( infile )
مثال :
Reset ( mydata )
فايل mydata را به عنوان ورودي برنامه آماده مي كندو نشانگر موقعيت فايل نيز به ابتداي فايل منتقل مي شود. نشانگر موقعيت فايل همواره به كاراكتر بعدي كه قرار است پردازش شود ، اشاره مي كند.بعد از عمل reset ، كاراكتري كه خوانده مي شود ، اولين كاراكتر فايل است.
نکته :
عمل reset قبل از اينكه كاراكتري از فايل mydataخوانده شود ، انجام مي گيرد و اگر فايل mydata قبلاروي ديسك ذخيره نشده باشد ، اين عمل ناموفق است ، براي خواندن و پردازش فايل در بار دوم و در همان برنامه ، عمل reset بايد انجام شود.
رويه rewrite:
شكل استفاده :
Rewrite ( outfile )
مثال :
Rewrite( outdata )
فايل outdata را براي خروجي آماده مي كند .اين فايل در ابتدا خالي است.كليه داده هايي كه قبلا در فايل outdata ذخيره شده اند، از بين مي روند.
تست انتهاي فايل : تابع EOF:
شكل استفاده :
EOF( filename )
مثال :
EOF( infile )
تمام فايل ها به طور اتوماتيك با كاراكتر< eof > خاتمه مي يابند.و تابع از پیش ساخته شده EOF در پاسكال (مخفف ENDOF FILE ׂ( تست مي كند كه آيا كاراكتر بعدي فايل eof است يا خير؟
نکته :
در صورتي كه كليه كاراكتر هاي فايل infile پردازش شده باشند (يعني كاراكتر بعدي ، كاراكتر < eof > باشد)، true را بر مي گرداند و اگر هنوز کاراکتر هایی برای خواندن وجود داشته باشند false را بر می گرداند .
تست انتهای خط : تابع EOLN :
شكل استفاده :
EOLN( filename )
مثال :
EOLN ( infile )
پاسکال تابعی به نام EOLN ( END OF LINE )دارد که قادر به تشخیص کاراکتر < eoln > است. در صورتی که کاراکتر بعدی < eoln > باشد , تابع EOLN مقدار true و در غیر این صورت false را بر می گرداند.
نکته :
1.اگر کاراکتر بعدی فایل , < eoln > باشد ,نتیجه تابع true و در غیر این صورت false خواهد بود .
2.اگر file name حذف شود ,فایل سیستم input (صفحه کلید ) ، فایل ورودی است. در پاسکال استاندارد , فراخوانی تابع EOLN در صورتی که EOF( filename ) ، True باشد ،خطا است.
استفاده از فایل های متن:
اگر برنامه خروجی خود را به جای صفحه نمایش روی دیسک بنویسد ، برنامه دیگری می تواند از این خروجی به عنوان یک فایل داده استفاده کند . در حقیقت دو برنامه از طریق یک فایل دیسک با یک دیگر ارتباط برقرار می کنند.
Assign( ):
این تابع شناسه فایل را به فایل خارجی منسوب می کند در اگر فایل وجود نداشته باشد آن را می سازد.
نحوه کاربرد:
Assign( my_file,external_name ) ;
بستن فایل=close ( )
این تابع برای بستن فایل می باشد.
نکته:
1.اگر قبل از خاتمه برنامه تمامی فایل ها را نبندید ،هیچ کدام از اعمالی که بر فایل اعمال نموده اید ،اجرا نخواهد شد.
2.قبل از این که بتوانید بین عملیات ها سوئیچ کنید، باید فایل را ببندید، به عنوان نمونه ،بعد از نوشتن اقلامی در فایل، باید آن را ببندید و مجددا قبل
ازخواندن اقلام دوباره آن را باز کنید.
نحوه کاربرد:
Close( file_name ) ;
دستیابی تصادفی به فایل ها-seek( ):
پاسکال روشی را برای دستیابی به فایل ها ارائه می کند که به آن دستیابی تصادفی می گویند. دستیابی تصادفی اجازه می دهد تا قلم داده خاصی از فایل را که می خواهید پردازش کنید، با مشخص کردن موقعیت آن، انتخاب کنید.
نحوه کاربرد:
Seek( file_name,position_number ) ;
حال چند مثال جالب از فایل ها را حل میکنیم:
مثال1.برنامه ای بنویسید که نام،تاریخ تولد، شماره تلفن فردی را گرفته و در فایلی ذخیره کند؟
Program file_ex ;
Uses wincrt ;
Type rec_type=record
Name:string ;
Date_of_brith:string ;
Telephone_number:string ;
End ;
Var
My_file:file of rec_type ;
Rec_var: rec_type ;
Ch:char ;
Begin
Clrscr ;
Assign( my_file,'file_1.dat' ) ;
Rewrite ( my_file ) ;
Repeat
Write( 'enter a name:' ) ;
Readln( rec_var.name ) ;
Write( 'enter a date of brith:' );
Readln( rec_var.date_of_brith ) ;
Write( 'enter a telephone number:' ) ;
Readln( rec_var.telephone_number ) ;
Write( my_file,rec_var ) ;
Write( 'continue? Reply y/n: ' ) ;
Readln( ch ) ;
Until ( ch='n') or(ch='N') ;
Close( my_file ) ;
End .
مثال 2. برنامه بالا را برای افزودن رکورد جدید تغییر دهید؟
Program file_ex ;
Uses wincrt ;
Type rec_type=record
Name:string ;
Date_of_brith:string ;
Telephone_number:string ;
End ;
Var
My_file:file of rec_type ;
Rec_var: rec_type ;
Ch:char ;
Begin
Clrscr ;
Assign( my_file,'file_1.dat' ) ;
Reset ( my_file ) ;
Seek( my_file,filesize( my_file) ) ;
Write( 'enter a name:' ) ;
Readln( rec_var.name ) ;
Write( 'enter a date of brith:' );
Readln( rec_var.date_of_brith ) ;
Write( 'enter a telephone number:' ) ;
Readln( rec_var.telephone_number ) ;
Write( my_file,rec_var ) ;
Close( my_file ) ;
End .
مثال3. برنامه ای کامل برای جستجوی قلم داده ای خاص در درون فایل بنویسید؟
Program file_ex ;
Uses wincrt ;
Type rec_type=record
Name:string ;
Date_of_brith:string ;
Telephone_number:string ;
End ;
Var
My_file:file of rec_type ;
Rec_var: rec_type ;
Sought_name: string ;
Found:Boolean ;
Found_ind, counter:integer ;
Begin
Clrscr ;
Assign( my_file,'file_1.dat' ) ;
Reset ( my_file ) ;
Counter:=0 ;
Write( 'enter a name to be Found :' ) ;
Readln (Sought_name ) ;
Repeat
Seek( my_file,counter) ;
Read(my_file,rec_var ) ;
Found:=rec_var.name= Sought_name ;
If Found then
امیدوارم که از این مجموعه آموزش نهایت استفاده را برده باشید . درسته که الآن با وجود زبانهای برنامه نویسی فوق الآده قوی زیاد از این زبان برنامه نویسی استفاده نمیشود ، اما برای علاقه مندان و دانشجویان کام÷یوتر میتواند مفید واقع شود . منتظر نظرات گرم شما هستم .....
منبع : iritn.com
ارسال در تاريخ پنج شنبه 28 آبان 1388 توسط
رضا عبدالملكي
