1 / 31

توابع ورودي-خروجي

توابع ورودي-خروجي. توابع ورودي- خروجي در C. اغلب برنامه ها بايد اطلاعاتي را از كاربر بگيرند و روي آنها پردازش دهند و نتيجه پردازش را به كاربر اعلام نمايند در زبان برنامه نويسي C توابع متنوعي براي عمليات ورودي-خروجي تعريف شده‌اند كه هر كدام ويژگيهاي خاص خود را دارند

reid
Download Presentation

توابع ورودي-خروجي

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. توابع ورودي-خروجي

  2. توابع ورودي- خروجي در C • اغلب برنامه ها بايد اطلاعاتي را از كاربر بگيرند و روي آنها پردازش دهند و نتيجه پردازش را به كاربر اعلام نمايند • در زبان برنامه نويسي C توابع متنوعي براي عمليات ورودي-خروجي تعريف شده‌اند كه هر كدام ويژگيهاي خاص خود را دارند • عمومي ترين توابع ورودي-خروجي در زبان C تابع scanf براي ورود اطلاعات و printf براي نمايش اطلاعات ميباشند

  3. توابع ورودي- خروجي در C(ادامه) • توابع ورودي-خروجي ديگري كه در C وجود دارند و از آنها ميتوان استفاده كرد عبارتند از: • getch, getchar, putch, putchar, gets, puts • در زبان C++ نيز براي سهولت عمليات ورودي خروجي توابعي درنظر گرفته شده است: • cin براي ورود اطلاعات و cout براي نمايش اطلاعات

  4. تابع printf • اين تابع براي نمايش اطلاعات به كاربر بر روي خروجي استاندارد (مانيتور) بكار ميرود. • قالب استفاده از اين دستور به شكل زير ميباشد • printf(“رشته كنترلي”[,متغيرها]); • اين تابع در كتابخانه stdio.h تعريف شده است • رشته كنترلي كه داخل كتيشن (“”) قرارميگيرد از متنهاي ثابت و كاراكترهاي كنترلي تشكيل ميشود • در بخش متغيرها، متناظر با هر كاراكتر كنترلي در رشته كنترلي بايد يك متغير وجود داشته باشد • كاراكتر كنترلي بايد متناسب با نوع متغير باشد

  5. كاراكترهاي كنترلي • كاراكترهاي كنترلي با % آغاز ميشوند. • با استفاده از كاراكترهاي كنترلي ميتوان خروجي را به شكل دلخواه نشان داد • فهرست كاراكترهاي كنترلي به شرح ذيل ميباشند:

  6. مثال • Ex 1. نمايش يك عدد صحيح در خروجي • int n=2; • printf("n is an integer = %d" , n ); • Ex 2.نمايش عمليات جمع دو عدد صحيح • int a(3),b(4); • printf(" %d+%d=%d", a , b , a+b);

  7. مثال 3 int main() { int event; char heat; float time; event = 5; heat = ‘C’; time = 27.25; printf( “The winning time in heat %c" , heat); printf( “ of event %d was %f" , event, time); return 0; } خروجي: The winning time in heat C of event 5 was 27.250000

  8. مثال 4 int main() { int x=31; float y=148.5; char z[10] = {"computer"}; printf ( "%d %f %s" , x , y , z ); return 0; } خروجي: 31 148.500000 computer

  9. مثال 5 int main() { float x=50.0, y=0.25; printf ( "%f %f %f %f\n" , x , y , x*y , x/y ); printf ( "%e %e %e %e" , x , y , x*y , x/y ); return 0; } خروجي: 50.000000 0.250000 12.500000 200.00000 5.000000e+01 2.500000e-01 1.250000e+01 2.000000e+02

  10. %6.2f %.3f %6d ***.** **.*** ****** كاراكترهاي تعيين ميدان • در برنامه قبل ديديم كه متغير اعشاري y با 6 رقم مميز چاپ شده است، درحالي كه تنها دو رقم از اين ارقام با ارزش هستند. • از اين كاراكترها براي مرتب شدن خروجي و زير هم بودن اطلاعات استفاده ميشود.

  11. كاراكترهاي تعيين ميدانمثال

  12. 123 123.456 123.5 1.234560e+02 1.23456e+02 1.235e+02 خروجي: مثال 6 int main() { float x=123.456; printf ( "%7.0f\n%7.3f\n%7.1f\n\n" , x , x , x , x ); printf ( "%12e\n%12.5e\n%12.3e" , x , x , x , x ); return 0; }

  13. در صورتي كه بخواهيم خانه هاي خالي با صفر جايگزين شود، بعد از علامت % از كاراكتر 0(صفر) استفاده ميكنيم

  14. رشته هاي گريز • در رشته كنترلي كاراكترهايي ميتوان استفاده كرد كه موقعيت مكان نما را براساس نياز ما تغيير ميدهد. • رشته هاي گريز با \ آغاز ميشوند و نمونه اي از آنها عبارت است از:

  15. مثال 7- مثال • برنامه اي بنويسيد كه خروجي زير را بصورت مرتب نمايش دهد. num1 num2 sumation 1 2 3 100 2 102 1010 256 1266 5 56 61

  16. مثال 7 int main() { printf ( "num1\t num2\t sumation\n" ); printf ( "%4d\t %4d\t %8d\n" , 1 , 2 , 3 ); printf ( "%4d\t %4d\t %8d\n" , 100 , 2 , 102 ); printf ( "%4d\t %4d\t %8d\n" , 1010 , 256 , 1266 ); printf ( "%4d\t %4d\t %8d\n" , 5 , 56 , 61 ); return 0; }

  17. تمرين • 1- برنامه اي بنويسيد كه خروجي به شكل زير توليد نمايد ************* * Hello World * ************* • 2- برنامه اي بنويسيد كه نام شما را در وسط صفحه نمايش چاپ كند (براي اينكار از تابع gotoxy استفاده كنيد. • 3- برنامه اي بنويسيد كه عدد PI را با دقتهاي 1،2،5 و 10 رقم اعشار نمايش دهد

  18. تابع scanf • مهمترين تابع ورودي در C ميباشد كه براي گرفتن اطلاعات از IO استاندارد يعني كي‌برد بكار برده ميشود. • قالب استفاده از اين دستور به شكل زير ميباشد • scanf(<رشته كنترلي>,<آدرس متغيرها>); • اين تابع در كتابخانه stdio.h تعريف شده است • رشته كنترلي داخل كتيشن (“”) نوشته شده و از كاراكترهاي كنترلي تشكيل ميشود. • در بخش متغيرها، متناظر با هر كاراكتر كنترلي در رشته كنترلي بايد آدرس يك متغير وجود داشته باشد. • كاراكتر كنترلي استفاده شده در اين تابع همانند كاراكترهاي كنترلي در تابع printf هستند

  19. اپراتورهاي & و * • همانطور كه اشاره شد متغيرها آدرس محلهايي در حافظه هستند • با استفاده از نام متغير به تنهايي ما ميتوانيم به محتويات آن دسترسي پيدا كنيم • در برخي موارد لازم است ما آدرس محل حافظه را داشته باشيم در اينصورت از اپراتور & استفاده ميكنيم. • اپراتور * براي دسترسي به محتويات يك خانه حافظه استفاده ميشود. يعني اين اپراتور آدرس يك خانه حافظه را گرفته و محتويات آنرا برميگرداند. (در ادامه درس، بخش اشاره گرها مفصل در اين زمينه صحبت خواهد شد)

  20. مثال: • &(نام متغير)  آدرس حافظه (آدرس متغير) • *(آدرس حافظه)  مقدار حافظه • فرض كنيد متغير ch از نوع كاراكتر تعريف شده باشد و سيستم عامل خانه 110 را به آن اختصاص داده باشد و ما مقدار 44 را در آن ذخيره كرده باشيم. در اينصورت: • &(ch)  110 • ch 44 • *(110) 44

  21. Value:2, Address:3536 خروجي: مثال2: برنامه نمايش يك متغير به همراه آدرس متغير int main() { int num ; num = 2; printf( "Value:%d, Address:%d" , num , &num ); return 0; }

  22. please type your age in years: 5 you are 1825.0 days old. خروجي: مثال2: برنامه تبديل سن شخص به روزهاي زندگي int main() { float years , days ; printf( "please type your age in years: " ); scanf ( "%f" , &years ); days = years * 365; printf( "\nyou are %.1f days old.\n" , days ); return 0; }

  23. تمرين • 1- برنامه اي بنويسيد كه 3 عدد صحيح را از كاربر گرفته و حاصل جمع آنها را نمايش دهد • 2- برنامه اي بنويسيد كه 3 عدد اعشاري را از كاربر گرفته و حاصل جمع آنها را نمايش دهد • 3- برنامه اي بنويسيد كه x و y را از كاربر گرفته xy را نمايش دهد. براي محاسبه توان از تابع pow استفاده نماييد • 4- برنامه اي بنويسيد كه يك عدد صحيح را از كاربر گرفته و در خروجي زوج يا فرد بودن آنرا نمايش دهد اگر زوج بود عدد 0 و اگر فرد بود عدد 1 نمايش داده شود. • 5- برنامه اي بنويسيد كه x , y از كاربر گرفته و باقيمانده تقسيم x بر y را نمايش دهد • 6- برنامه اي بنويسيد كه شعاع يك كره را گرفته و مساحت جانبي و حجم آنرا در خروجي نمايش دهد • 7- برنامه اي بنويسيد كه طول، عرض و ارتفاع يك مكعب مستطيل را گرفته و مساحت جانبي و حجم آنرا در خروجي نمايش دهد • 8- برنامه اي بنويسيد كه يك مقدار درخواستي پول را از كاربر گرفته و تعداد اسكناسهاي 1000 توماني، 100 توماني، 50 توماني و 1 توماني مورد نياز را محاسبه نمايد.

  24. مثال 3: گرفتن چند متغير از كاربر و نمايش int main() { int event; char heat; float time; printf( "Type numbers for event heat and time: "); scanf( "%d %c %f", &event , &heat , &time); printf( "The winning time in heat %c" , heat); printf( " of event %d was %f" , event, time); return 0; } خروجي: Type numbers for event heat and time: 4 B 36.34 The winning time in heat B of event 4 was 36.340000

  25. Enter a b c: 1 -5 6 x1=3.000000 , x2=2.000000 خروجي: تمرين كلاسي: برنامه اي بنويسيد كه ضرايب معادله درجه 2 را گرفته و ريشه هاي معادله را نمايش دهد. int main() { float a , b , c; printf("Enter a b c: "); scanf( "%f %f %f", &a , &b , &c); float delta; delta= b * b–4 * a * c ; float x1 , x2 ; x1 = (-b + sqrt( delta )) / (2 * a); x2 = (-b - sqrt( delta )) / (2 * a); printf( "x1=%f , x2=%f " , x1 , x2); return 0; }

  26. توابعgetch()، getche() و getchar() • توابعgetch()، getche() و getchar() براي گرفتن يك كاراكتر از كاربر استفاده ميشوند. • تابع getch با فشار دادن يك كليد، كد آن را برميگرداند و هيچ كاراكتري در روي مانيتور نمايش داده نميشود. • تابع getche همانند تابع getch عمل ميكند با اين تفاوت كه كاراكتر وارد شده روي مانيتور نقش ميبندد • تابع getchar همانند تابع getche عمل نموده و براي وارد كردن كاراكتر لازم است بعد از كاراكتر مورد نظر كليد Enter هم فشرده شود

  27. مثال 1: برنامه اي بنويسيد كه يك كاراكتر از كاربر بگيرد و در خروجي با يك پيام نمايش دهد int main() { char ch; printf( "Enter a character: "); ch = getch(); printf( “\nInput character is: %c" , ch); return 0; } Enter a character: Input character is: a

  28. كد اسكي ascii • هر كاراكتر در سيستم ANSI در يك بايت ذخيره ميشود. • در زبان C نوع داده اي char براي ذخيره يك كاراكتر استفاده ميشود. • هر كاراكتر با يك كد ارائه ميگردد كه به آن كد اسكي ميگويند. • براي نمونه كد مربوط به كاراكتر A برابر 65 ميباشد

  29. متغيرهاي char در زبان C • مقداردهي به متغير char به شكل زير را در نظر بگيريد: • char ch=‘A’ • دستور فوق باعث ميشود كد اسكي كاراكتر A در متغير ch قرارگيرد • ميتوان بجاي دستور فوق از دستور زير استفاده نمود • char ch=65 • هر دو دستور فوق يك عمل را انجام ميدهند. • كامپايلر C انواع داده‌اي از نوع كاراكتر را به كد اسكي آنها تبديل ميكند

  30. مثال 2: كد اسكي int main() { char ch; ch= ’A’; printf( "character is: %c\n" , ch); printf( "code is: %d\n" , ch); return 0; } int main() { char ch; ch= 65 ; printf( "character is: %c\n" , ch); printf( "code is: %d\n" , ch); return 0; }

More Related