رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.

علی کرباسی

گروه دانشجو
  • تعداد ارسال ها

    53
  • تاریخ عضویت

  • آخرین بازدید

اعتبار در سایت

32

1 دنبال کننده

درباره علی کرباسی

  • درجه
    برنامه نویس

پیشفرض

  • وضعیت فردی :
    مجرد
  • جنسیت :
    اقا
  • محل تولد :
    تهران
  • محل سکونت :
    اصفهان
  • مدل گوشی :
    iPhone 7
  • درباره من :
    توسعه دهنده اندروید و طراح وب | www.AliKarbasi.com

آخرین بازدید کنندگان نمایه

1,030 بازدید کننده نمایه
  1. سلام . راه دیگه ای نیست و باید صبر کنی شما هر وقت که روی گزینه ران کلیک می کنی ، بیسیک 4 اندروید میاد با توجه به کد هایی که نوشتی ، یه فایل APK جدید می سازه که میتونه دیباگ باشه یا نباشه !!! در تنیجه فایل جدید شامل تغییراتی هست که تو نسخه جدید برنامه دادی و اون فایلی که قبلا روی شبیه ساز نصب کردی ویژگی های جدید رو نداره و تنها راه برای تست برنامه جدید اینه که فایل جدید رو نصب کنی و این کار هم زمان میبره
  2. خط دریافت اطلاعات رو به کد زیر تغییر بدین و تست کنید : cin>>name[i]>>code[i];
  3. سلام دوستان . من بیسیک نسخه 7 رو نصب کردم و پروژه ای که با نسخه های قبلی بدون مشکل کامپایل میشد رو نتونست کامپایل کنه و ارور زیر رو داد : B4A version: 7.00 BETA #1 Parsing code. (0.01s) Compiling code. (1.48s) Compiling layouts code. (0.10s) Organizing libraries. (15.80s) Generating R file. (3.03s) Compiling generated Java code. (5.08s) Convert byte code - optimized dex. Error Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/iid/InstanceID; Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/iid/InstanceIDListenerService; Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/iid/InstanceIDListenerService$1; Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/iid/InstanceIDListenerService$2; Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/iid/zza; Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/iid/zzc; Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/iid/zzc$1; Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/iid/zzd; Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/iid/MessengerCompat; UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.RuntimeException: Translation has been interrupted at com.android.dx.command.dexer.Main.processAllFiles(Main.java:689) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:313) at com.android.dx.command.dexer.Main.run(Main.java:279) at com.android.dx.command.dexer.Main.main(Main.java:247) at com.android.dx.command.Main.main(Main.java:106) Caused by: java.lang.InterruptedException: Too many errors at com.android.dx.command.dexer.Main.processAllFiles(Main.java:681) ... 4 more کتابخانه های فعال : کسی میدونه مشکل از کجاست ؟؟؟
  4. تو چه کامپایلری تست کردین ؟ یه عکس از ارور بفرستین
  5. سلام . این تاپیک رو مشاهده کنید :
  6. با سلام خدمت تمامی دوستان با استفاده از کد زیر می تونید اطلاعات ( که در این کد نام و نام خانوادگی و معدل 10 دانشجو را دریافت میکنه ) را با استفاده از استراکچر دریافت کنید . همچنین در آخر برنامه ، مشخصات دانشجو نمونه نیز چاپ میشه : #include <iostream.h> #include <conio.h> struct student { char name [20]; char family [20]; float ave; } int main() { struct student s,name; cin >> s.name >> s.family >> s.ave; max=s; for(int i=1;i<=9;i++) { cin >> s.name >> s.family >> s.ave; if(s.ave>max.ave) max=s; } cout << max.name << max.family << max.ave; getch(); return 0; } موفق باشید
  7. سلام دوستان در این مقاله ، همه چیز در مورد رابط کاربری و تجربه کاربری توضیح داده شده !!! امیدوارم مفید باشه تفاوت طراحی رابط کاربری (UI) و تجربه کاربری (UX) شاید برای شما هم پیش آمده که در صحبت های عامیانه بشنوید رابط کاربری سایت و یا برنامه ای خوب است اما تجربه کاربری ضعیفی دارد و یا مواردی مشابه. جالب اینجاست که اکثر این افراد اطلاعات چندانی در مورد رابط کاربری (UI)،تجربه کاربری (UX) و تفاوت آن ها باهم ندارند. ما می خواهیم در این مقاله به بررسی رابط کاربری،تجربه کاربری و تفاوت این دو بپردازیم. طراح رابط کاربری (UI) و همچنین طراح تجربه کاربری (UX) هر دو برای دستیابی به محصول نهایی مناسب ضروری هستند و باید با یکدیگر همکاری داشته باشند. با وجود این نقش ها و وظایف این دو با یکدیگر تفاوت زیادی دارد. طراحی تجربه کاربری موضوعی تحلیلی و تکنیکال می باشد، در حالی که طراحی رابط کاربری بیشتر نزدیک به چیزی است که ما به عنوان طراحی گرافیک می شناسیم، گرچه وظایف بیشتر و پیچیده تری دارد. اگر شما یک محصول را به مانند بدن انسان در نظر بگیرید، کدها همان استخوان هایی هستند که به بدن شکل می دهند. اندام ها نیز نمایانگر طراحی تجربه کاربری هستند که ورودی های بدن انسان را برای بقا اندازه گیری و بهینه سازی می کنند. طراحی رابط کاربری نیز مانند نمای بیرونی بدن است، مانند احساسات و عکس العمل ها و به طور کلی آنچه از بیرون دیده می شود. راهول ورشنی از موسسین شرکت foster.fm در این باره می گوید : طراحی رابط کاربری و طراحی تجربه کاربری از گیج کننده ترین بحث ها در کار ما است و بسیاری این دو مفهوم را اشتباه به کار می برند. یک رابط کاربری بدون تجربه کاربری مانند یک نقاش است که بدون هیچ ایده و تفکری قلمش را روی بوم می کشد. در حالی که یک تجربه کاربری بدون رابط کاربری مانند یک قالب مجسمه تو خالی است. یک حس ایده آل ناشی از محصول با یک طراحی تجربه کاربری خوب شروع می شود، که در ادامه اش طراحی رابط کاربری خوب قرار می گیرد. هر دوی آن ها برای دستیابی به یک محصول موفق ضروری اند. طراحی تجربه کاربری (UX) چیست ؟ طبق تعریفی که در ویکی پدیا آمده است طراحی تجربه کاربر (UXD یا UED) فرایند بهبود رضایت مشتری و وفاداری او با بهبود قابلیت استفاده، سهولت استفاده و لذت های ارائه شده در تعامل بین مشتری و محصول است. ممکن است در نظرتان این تعریف مبهم باشد، همچنین هیچ اشاره ای نیز به تکنولوژی و مفاهیم دیجیتال نکرده باشد. به طور کلی خلاصه کردن یک پروسه در قالب چند کلمه همیشه امری دشوار بوده است. برخی از ابهامات در تعاریف به دلیل تازه و نو بودن این مفهوم است. دُن نورمن، دانشمند علوم شناختی و موسس گروه مشاوره طراحی نیلسون نورمن درباره اهمیت تجربه کاربری می گوید : تجربه کاربری تمام جنبه های تعامل کاربر با شرکت، خدمات و محصولات شرکت را شامل می شود. طراح تجربه کاربری (UX) باید به طور فعالانه در فرآیند تحقیق، ارزیابی، توسعه، محتوا و نمونه سازی برای ارزیابی کیفیت محصول مشارکت داشته باشد. طراحی تجربه کاربر یک مفهوم غیر دیجیتال و مرتبط با علوم شناختی است، اما به طور عمده در حوزه ی دیجیتال تعریف و به کار گرفته می شود. طراحی رابط کاربری (UI) چیست ؟ اگر چه طراحی رابط کاربری مفهومی قدیمی تر بوده و بیشتر از آن استفاده شده است، اما به علت برداشت های غلط بسیار، یافتن پاسخی برای سوال “طراحی رابط کاربری چیست؟” امری دشوار است. در حالی که تجربه کاربر، مجموعه ای از وظایف متمرکز بر بهینه سازی محصول برای استفاده همراه با لذت کاربر و افزایش کارایی است، طراحی رابط کاربری مکمل آن است و شکل و ظاهر، حس و جذابیت محصول را در بر می گیرد. همانند طراحی تجربه کاربری، طراحی رابط کاربری نیز نقشی چند وجهی و چالش برانگیز است. طراح رابط کاربری مسئول تبدیل محتوا،طرح و ظاهر یک محصول به تجربه ای جذاب برای کاربر است. بر خلاف رابط کاربری (UI)، تجربه کاربری (UX) مفهومی کاملا دیجیتال است. نقش طراحی رابط کاربری برای هر رابط دیجیتال و کاربران آن در زمینه احساس ناشی از برند و اعتماد به برند نقشی بسیار مهم و ضروری می باشد. گرچه ارتقا حس ناشی از برند و اعتماد به برند به طور خاص وظیفه ی طراح رابط کاربری نیست، اما طراحی رابط کاربری محصولات برند بر این دو موضوع تاثیرگذار است. آخرین وظیفه ی طراح رابط کاربری نیز پیاده سازی طراحی به کمک یک توسعه دهنده است. در گذشته تفاوتی میان طراح رابط کاربری و توسعه دهنده قائل نمی شدند. اما امروزه طراح وب (که در واقع همان طراح رابط کاربری است که توانایی کدنویسی دارد) به عنوان طراح رابط کاربری شناخته می شود. در حالی که طراح تجربه کاربری نیازی به کدنویسی ندارد. طراحی رابط کاربری امری است که بر پایه ساخت رابط کاربری هایی جذاب با گذر زمان تکیه دارد و با گذشت زمان دچار تکامل و تغییر می شود. به طور کلی می توان گفت طراحی رابط کاربری سه بخش از محصول را تشکیل می دهد : Sense : شامل کنش و واکنش محصول در رابطه با ورودی کاربر و یا محیط های نمایش متفاوت است Skin : شامل نمایش بصری و گرافیکی محصول است Makeup : شامل دستورالعمل ها و نکات و راهنماهایی است که کمک می کند کاربر تجربه بهتری داشته باشد. رابط کاربری (UI) و تجربه کاربری (UX) ، مکمل یکدیگرند : UI و UX مکمل یکدیگر شناخته می شوند. هر دوی آن ها در محصول برای ایجاد تجربه ای دلنشین برای کاربر ضروری اند و نمی توان یکی را بر دیگری ارجح دانست. هلگا مورنو ،طراح و کارشناس، در مقاله ی “فاصله بین UX و UI” و “تفاوت UI و UX” در اینباره می گوید : چیزی که عالی به نظر می رسد اما کار کردن با آن دشوار است نمایانگر UI خوب و UX ضعیف است، و برخلاف آن چیزی که کارکردن با آن ساده است و ظاهری بد دارد، نمایانگر UX خوب و UI ضعیف است. موفق باشید منبع : مدرسه اکا استودیو
  8. تست نکردم . چون گوشیم روت نبود و لاکی پچر نداشتم
  9. همه چی عالی ولی در مورد امنیت درون پرداخت نظری ندارم موفق باشی
  10. نظر شما کاملا درسته و من هم با شما موافق هستم . ولی باید قبول کنیم که اکثر توسعه دهنده ها با زبان جاوا راحت تر هستن . درضمن تا زمانی که تو دانشگاه های ما c++ رو به کنسول محدود می کنن و از دانشجو ها می خوان تا برنامه ای بنویسن که محیط دایره و .. رو حساب کنه ، نباید انتظار آموزش ساخت یا حتی ساخت برنامه هایی مثل برنامه های شرکت Adobe یا Mozilla یا MySQL و ... رو داشت
  11. با سلام خدمت تمامی عزیزان خوب رسیدیم به بخش شیرین شی گرایی چرا شیرین خودمم نمیدونم لطفا در این مورد سوال نپرسید !!! تنها اختلاف بین زبان C و C++ مبحثی است بنام شی گرایی یا OOP(Object Oriented Programming) که همین مورد کافی است که دنیای نرم افزار شاهد تحول عظیمی در طراحی و پیاده سازی نزم افزارهای کنونی باشد . بد نیست بدانید که اندیشه شی گرایی در زبان C++ آنقدر قوی است که به جرئت می توان گفت تمامی نرم افزارهای موجود مدیون این دید از برنامه نویسی هستند. اکثر سیستم عامل های رایج مانند Linux, Macintosh, ... بر گرفته از تفکر C++ هستند و Windows را صرفا با C++ و مبانی CC نوشته اند . نرم افزار های غولی مانند Office, Photoshop, Nero, ... را با این زبان طراحی و پیاده سازی کرده اند . بیشتر زبان های کاربری امروزی توانایی های خود را بدون تفکر C++ هیچ می دانند مثل Java, Javascript, PHP, Delphi, C#, .NET, ... !!! خوب این شی گرایی چی هست و به چه دردی می خورد که جناب آقای بی یارنه استراس تروپ دانمارکی را در جهان برنامه نویسی با جای دادن این مفاهیم در دل C وتکامل آن زبان به C++ جاودانه کرد . بیشترین دغدغه توسعه دهندگان نرم افزارها و نیاز برنامه ها این بود که هر چه بیشتر ساختار برنامه ها را به دنیای واقعی انسان نزدیک نمایند و آنرا مفهومی کنند. اقداماتی در زمینه برنامه نویسی ساخت یافته انجام گرفت اما جوابگوی نیاز آنروز جهان نبود. با ورود OOP و اشیاء در تفکر برنامه نویسی صنعت نرم افزار پا به عرصه جدیدی از برنامه نویسی مبتنی بر اشیاء دنیای واقعی گذاشت و توانست تا به امروز با همین مبحث تا بدینجا پیش رود . مثال ) یک مثال ساده را میتوان DragDrop در درون محیط Windows در نظر گرفت. این کار را با Copy,Paste نیز می توان انجام داد اما عمل کشیدن و رها کردن یک فایل یا فولدر و قرار دادن آن در محلی دیگر نیاز نرم افزارهای پیشرفته و کاربران پر توقع امروزی است . مفهوم شی گرایی یک اتومبیل BMW را در نظر بگیرید. یک طرح و سیستم آن در کارخانه طراحی و پیاده سازی شده و با توجه به نیاز بازار از آن ساخته می شود . به کارخانه BMW سازنده و طراح آن اتومبیل گفته می شود و به طرح و سیستم کلی آن طرح و الگوی ساخته شده از آن ، مدل گفته می شود هر چند که مدل ها و طرح های دیگری نیز برای BMW وجود دارد . به اتومبیل BMW740Li که در همین اصفهان ( به زودی در سراسر کشور ... ) زیر پای یک آقا یا خانم توانمند است شیی از آن مدل گفته می شود . در این بین ممکن است فردی توانمندتر ، از همان مدل با ویژگی های بهتری را به شرکت سازنده سفارش دهد که با کمی تغییر در جزئیات طرح اصلی شرکت آنرا به مشتری تحویل می دهد . در برنامه نویسی شی گرا نیز همین طرز تفکر برقرارا است . در این مورد چهار مفهوم اساسی وجود دارد که هر یک را بررسی می کنیم : نوع داده انتزاعی یا تجریدی (Data Abstract) در زبان C++ انواع داده ای مختلفی مانند int,char,... تعریف شده اند و می توان از آنها در طول برنامه استفاده نمود اما نوع داده انتزاعی نوعی است که صرفا توسط خود کاربر تعریف می شود و نوع خاصی را شامل نمی شود و با ایجاد یک شی از آن نوع داده انتزاعی یا تجریدی می توان از داده ها و روال ها و رخدادهای درون آن بهره گرفت . از این دسته می توان به Class, struct اشاره نمود که صدها و هزاران نوع از آنها را می توان با داده ها و روالهای مختلف تعریف نمود و با استفاده از یک یا چند شی آنها را در برنامه پیاده سازی کرد . محرمانگی یا بسته بندی (Encapsulation) این مفهوم دقیقا این است که در خارج از کارخانه BMW نمیتوان مدلی از آن اتومبیل را ساخت مگر اینکه تمامی شرایط را فراهم نمود و این یعنی ساخت یک کارخانه دیگر با همان امکانات و طرح و یعنی دیوانگی محض. یا اینکه خریدار با فشار دادن پدال ترمز، اتومبیل را متوقف می سازد در حالی که از چگونگی اجرای سیستم ترمز بی خبر است . در برنامه نویسی نیز به همین مفهوم است یعنی داده ها و روالها را بگونه ای که در خارج از آن نوع داده انتزاعی قابل دسترسی نباشند را تعریف کنیم و عملیات و روال ها دور از چشم کاربر و پشت صحنه کار خود را انجام می دهند بدون اینکه کاربر نحوه انجام آنرا متوجه شود . وراثت (Inheritance) در کارخانه BMW ممکن است از یک سری خصوصیات و روالهای معینی برای مدلهای مختلف تولیدی استفاده نمود مانند آرم آن شرکت که در تمامی مدلهای تولیدی موجود است و در اصطلاح به آنها ارث رسیده است . در برنامه نویسی شی گرا نیز همین گونه است یعنی برخی اوقات انواع داده انتزاعی به عنوان طرح کلی یا ***** ساخته می شود که در نوعهای دیگر یا فرزندان هم قابل استفاده است . چند ریختی (polymorphism) طرف میره کارخانه BMW و تقاضا می کند که روی همین دنده ای که وجود دارد یک دنده هوایی برای پرواز کردن هم قرار بگیرد. شرکت هم سیستمی را پیاد سازی می کند که مثلا دنده X مثل قبل کار کند و در این شرایط به دنده هوایی تبدیل شود . در برنامه نویسی شی گرا هم این مورد صادق است و میتوان برای یک نمونه چندین تعریف مجزا را بیان نمود مثل عملگر جمع یا ... !!! کلاس (Class) همان طرح با خصوصیات و روالهای مشخص و تعریف شده در کارخانه است که با استفاده از آن یک نمونه را ساخته و به بازار وارد می کنند . شی (Object) همان مدلی است که در تهران زیر پای شخص خاصی است. یعنی استفاده از خصوصیات و روالهای تعریفی در Class برای استفاده از آن . مثال) فرض کنید سازمان تامین اجتماعی قصد دارد برنامه ای داشته باشد که اطلاعات بیمه شدگان را در آن مدیریت نماید. هر بیمه شده دارای خصوصیات و روالهای مشترک و منحصر به فرد خود است مثل شماره بیمه، نام، سن، شغل، تعداد افراد تحت تکلف، بیمه پرداختی و ... . اگر در این برنامه برنامه نویس از برنامه نویسی ساخت یافته استفاده نماید هم حجم برنامه زیاد شده و هم در صورت بروز اشکال، پیدا کردن اشکال و رفع آن کار دشوار و وقت گیر و پر هزینه است و برای رفع اشکال باید تمامی سطرهای مربوطه تغییر یابد . با استفاده از برنامه نویسی مبتنی بر شی، یک نوع داده انتزاعی مثل Class تعریف شده و تمامی پارامترها، متغیرها، روالها، توابع، رخدادها و ... در همان Class تعریف می شود و برای دسترسی به هر یک از بیمه شدگان و کار با داده های آنها با تعریف یک Object از آن Class براحتی با تعداد بیشماری از بیمه شدگان می توان کار کرد و در صورت بروز مشکل یا ایجاد تغییر تنها کافی است که Class را تغییر داد . ممکن است بیمه شدگانی دارای بیمه تکمیلی باشند پس از Class عمومی بیمه شدگان استفاده می کنند و Class جدیدی برای آنها تعریف می شود که از Class کلی خصوصیات و روالها را به ارث می برد یعنی دارای تمامی خصوصیات دیگر بیمه شدگان است به اضافه خصوصیات تعریفی برای خود. پس فرزند دارای کل خصوصیات و توابع ***** است بعلاوه خصوصیات خود و کاملتر از ***** . با برنامه نویسی شی گراست که می توان به راحتی و مثل دنیای واقعی با برنامه تعامل داشت . پایان آموزش موفق باشید
  12. سلام توابع بازگشتی توابعی هستند که در درون تعریف خود تابع هم فراخوانی می شوند . هدف از اینکار صرفه جویی در کد نویسی و ایجاد خلاقیت است به این نکته توجه داشته باشید که حتما شرطی برای تابع بازگشتی باید وجود داشته باشد تا برنامه به درستی اجرا شود و نتایج خواسته شده از تابع بدست آید و اگر این مورد رعایت نشود تابع بینهایت بار فراخوانی شده و هیچ وقت برنامه به پایان نمی رسد . مثال : کدی به زبان C++ با استفاده از تابع بازگشتی بنویسید که حاصلضرب دو عدد را با استفاده از حاصلجمع آنها بدست آورد #include <iostream.h> #include <conio.h> int product(int, int); int main() { int a, b; cout << "Enter first number :" ; cin >> a; cout << "Enter second number :" ; cin >> b; cout << product(a, b); getch(); return 0; } int product(int a, int b) { if(b == 1) return a; return (a + product(a, b-1)); } توضیحات : a=4, b=3 1) if(3==1) return 4; return(4+product(4,3-1)) 2) if(2==1) return 4; return(4+product(4,2-1)) 3) if(1==1) return 4; return(4+product(4,1-1)) در فراخوانی سوم از تابع بازگشتی بالا ، شرط درست است پس مقدار 4 به فراخوانی دوم بر میگردد و باز با مقدار 4 فراخوانی دوم جمع شده و عدد حاصل که 8 است به فراخوانی اول بر میگردد و باز با 4 جمع شده و در نهایت مقدار 12 که جواب ماست چاپ می شود . حتما توجه کنید که از فراخوانی سوم به بعد شرط if نقض شده و فراخوانی تابع بازگشتی متوقف می شود . در مورد توابع بازگشتی باید چندین نکته را رعایت کنید : الف) غیر از اینکه تابع بازگشتی را در تابع main فراخوانی می کنیم باید در درون تعریف خود تابع بازگشتی هم آنرا فراخوانی کنیم. ب) قبل از فراخوانی تابع بازگشتی خود در تعریف تابع، باید شرطی را برقرار سازیم که پس از طی روال مشخصی فراخوانی به پایان برسد . پ) در فراخوانی تابع بازگشتی در خود تابع، یکی از پارامترها باید تغییر نماید حال زیاد شود یا کم یا ... و این بسته به نیاز تابع خواهد بود . ج) هر تابعی را نمی توان بصورت بازگشتی نوشت مگر اینکه رابطه منطقی و ریاضی در این مورد برای آن پیدا کنیم . ه) یک تابع بازگشتی باید دارای نوع برگشتی باشد وحداقل یک پارامتر ورودی داشته باشد . مثال سری فیبوناچی را با هم به وسیله توابع بازگشتی در C++ بررسی می کنیم : می دانیم که برای پیدا کردن فاکتوریل یک عدد باید خود عدد را در عدد قبلی ضرب کرده و حاصل آنرا هم به همین ترتیب در عدد قبلی ضرب و به همین ترتیب ادامه دهیم تا به 1 برسیم . لذا وقتی ضرب اعداد در هم ادامه پیدا می کند که به عد 1 برسیم و این شرط ما خواهد بود وهمینطور می دانیم که فاکتوریل 1 برابر با 1 است . #include <iostream.h> #include <conio.h> long factorial(int); int main() { long number; cout << "Please type a number :" ; cin >> number; getch(); return 0; } long factorial(int a) { if(a > 1) return ( a*factorial(a-1) ); else return (1); } خدمت عزیزان باید عرض کنم که در کد بالا نوعی را به نام long می بینیم که شامل اعداد صحیح بزرگتر از int می باشد . دلیل استفاده از این نوع این است که int شامل اعداد بین 32767 و -32767 است و چون جواب ما از این محدوده بیشتر است باید از long استفاده کنیم !!! موفق باشید
  13. درود دوستان و همراهان هدف از ساخت کامپیوتر و ایجاد برنامه نویسی ، دادن اطلاعات به ماشین و دریافت جواب بوده که به این روال ، جریان ورودی خروجی گفته میشود . ( منبع : جزوه خودم ) برای استفاده از این جریانات ما حداقل به 2 فایل کتابخانه ای در C++ نیاز داریم و دستوراتی برای استفاده از این کتابخانه ها که با ارائه یک مثال ، استفاده از این دستورات را نشان می دهم : #include <iostream.h> #include <conio.h> int main() { int a; //a=? cin >> a; //a=value of user input cout << "a:"; //Prints a: on screen cout << a; //Prints value of a getch(); return 0; } برای استفاده از کلمات کلیدی cin و cout لازمه که از کتابخانه iostream.h در برنامه خود استفاده کنیم. دستور cout باعث چاپ اطلاعات در مانیتور می شود به این صورت که اگر بعد از این دستور، عبارت مورد نظر رو تو " " قرار بدیم عینا همون عبارت تو مانیتور نشان داده می شود و معمولا جایی که کاربر قصد نشان دادن عین یک عبارت را در خروجی دارد مورد استفاده قرار می ***د و اگه بخواهیم مقدار یک متغیر یا ثابتی را نمایش بدهیم باید نام را نوشته و از " " استفاده نکنیم . دستور cin باعث می شود که از کاربر یا برنامه دیگه ای یک مقدار یا متنی را بگیریم . در واقع کامپایلر با رسیدن به این دستور منتظر ورود اطلاعات از طرف کاربر شده تا زمانی که کاربر Enter را فشار بده و مقدار ورودی کاربر را در متغیری که در جلوش اعلان شده بریزه و همونطور که قبلا اشاره شد موجب مقدار دهی به متغیر مربوطه میشود . در برنامه بالا تابعی بنام getch() هست که برای استفاده از اون باید از کتابخانه conio.h استفاده کنیم که باعث میشود بعد از اجرای برنامه و رسیدن کامپایلر به این خط، برنامه متوقف شده و منتظر این باشه که کاربر یک کلید از کیبورد را فشار دهد . با این دستور می توانیم خروجی برنامه را ببینیم چون اگر این تابع نباشد در کسری از ثانیه برنامه اجرا و بلافاصله بسته میشود و دیگر ما قادر به دیدن خروجی نخواهیم بود . ( اگه باور نمی کنی امتحان کن !!! ) در مثال بالا فرض بر اینه که کاربر مقدار 120 را وارد کرده است . گاهی اوقات لازمه که ما چند مقدار را با استفاده از دستور cin به برنامه بدهیم ، در اینصورت به ازاء هر مقدار از یک << استفاده می کنیم و همینطور برای دستور cout ازیک >> . int a, b; //a=?, b=? cin >> a >> b; cout << a << b; همونطور که در برنامه های قبلی دیدیم با نوشتن چند دستور چاپ ، تمامی اطلاعات در یک خط نوشته شد . در خروجی برای اینکه از خط کنونی به خط بعدی برویم به یکی از صورتهای زیر عمل می کنیم : cout << a << endl; عبارت endl به کامپایلر پایان خط جاری را نشان می دهد و در صورت وجود خروجی دیگه ای در برنامه، نمایش خروجی را از خط بعدی ادامه میدهد . cout << a << "\n"; عبارت \n نیز مثل endl خروجی را به خط بعدی هدایت می کند . #include <iostream.h> #include <conio.h> int main() { int a, b; //a=?,b=? cout << "Please inter value of a:"; cin >> a; //a=value of user input cout << "Please inter value of b:"; cin >> b; //b=value of user input cout << "a:" << a << "\n"; //Prints a:(value of a) on screen and go to next line cout << "b:" << b; //Prints b:(value of a) on screen return 0; } باید بگم فرض بر این است که مقادیر 120 و 87 توسط کاربر وارد شده است . نکته ای که اینجا قابل توجه است اینه که دستور cin خودش باعث میشود که کامپایلر با گرفتن مقدار بطور خودکار به خط بعدی برود و دیگه اینجا نیازی به قید \n یا endl نیست . موفق باشید
  14. برای انجام عملیات بر روی داده ها از عملگرها استفاده می کنیم. عملگرها نمادهایی هستند که عملیاتی مانند جمع،ضرب، کوچکتری و از این قبیل را روی داده ها انجام می دهند که عبارتند از : انتساب ( Assignment ) ( = ) از این عملگر برای نسبت دادن یک مقدار به یک داده استفاده می شود . #include <iostream> int main() { int a, b ; // a:?, b:? a = 10 ; // a:10, b:? b = 4 ; // a:10, b:4 a = b ; // a:4, b:4 b = 7 ; // a:4, b:7 cout << "a:" ; cout << a ; cout << "b:" ; cout << b ; return 0 ; } نحوه عملکرد این عملگرد به این شکله که مقدار سمت راست تساوی را در سمت چپ قرار می دهد. عملگرهای محاسباتی ( Arithmetic Operators ) ( + , - , * , / , % ) پنج عملگر محاسباتی موجود در C++ عبارتند از : جمع (+) تفریق (-) ضرب (*) تقسیم (/) باقیمانده تقسیم (%) با 4 عملگرد اول آشنا هستید اما آخرین که خوانده می شود ( مـد "با واو تلفظ کنید" ) عملوند سمت چپ را بر عملوند سمت راست تقسیم کرده و باقیمانده آنرا بدست می آورد . #include <iostream> int main() { int a = 11; int b = 3; int c = a % b; cout >> "c:" ; cout >> c ; return 0 ; } عملگرهای ترکیبی ( Compund Operators ) ( =+ , =- , =* , =/ ) در واقع جواب این نوع از عملگرها برابر حاصل عمل عملگر، بر خود عبارت سمت چپ و عبارت سمت راست تساوی است . علت اینگونه نوشتار هم مختصرنویسی است. عملگرهای ترکیبی دیگری نیز وجود دارند که در ادامه در موردشان بحث می کنیم مثل : => و =< #include <iostream> int main() { int a ,b = 3; // a=?, b=3 a = b; // a=3, b=3 a += 2; // a=a+2=3+2=5 cout >> a; return 0 ; } عملگرهای افزایش کاهش ( Increase , Decrease ) ( ++ , -- ) این عملگرها یک واحد به عملوند خود اضافه می کنند و عمل اونها به اینکه در سمت چپ یا راست عملوند خود قرار بگیرند متفاوت است . #include <iostream> int main() { int a = 2, b = 3; // a=2, b=3 a += b++; // a+=(b+1) ---> a=a+(b+1) ---> a=2+4=6 cout >> "a:"; cout >> a; return 0; } اگر عملگر سمت راست یا چپ عملوند خود باشه در هر دو صورت یک واحد به عملوند اضافه می شود . اما تفاوت این دوحالت در عبارات محاسباتی خود را نشان می دهد . عبارات محاسباتی ترکیبی از متغیرها، ثوابت و عملگرها هستند مثل 4*5-5/10 و 6-x/y int A , B = 3; // A=?, B=3 A = ++B; // A=(++B) ---> A=(B+1) , B=B+1 ---> A=4, B=4 در مثال بالا چون افزایش قبل B قرار دارد ابتدا یک واحد به B اضافه شده، پس در همینجا B می شود 4 و در پایان مقدار فوق در A قرار می گیرد . int A , B = 3; // A=?, B=3 A = B++; // A=(B++) ---> A=B, B=B+1 ---> A=3, B=4 اما در مثال بالا چون افزایش بعد از B قرار دارد اول مقدار B که 3 هست در A ریخته میشود و بعد یک واحد به B اضافه میشود . عملگرهای رابطه ای و تساوی (Relational and equality operators) ( = = , =! , > , < , =< , => ) از این نوع عملگرها برای مقایسه دو عبارت استفاده میشود که کاربرد اونها بیشتر در عبارات شرطی است که بعدا در موردشون بحث می کنیم . فعلا اینو بدونید که این عملگرها در صورت درست بودن مقایسه، مقدار درستی و در غیر این صورت مقدار نادرستی را برمی گردانند . int a = 10 , b = 7; //a=10, b=7 (a == b) ; //a=10 and not equal to b so return false (a >= b) ; //a=10 greater than b so return false (a > b) ; //a=10 greater than b so return true عملگرهای دیگه ای هم وجود دارند که در آینده و با برخورد به اونها در موردشون صحبت می کنم تا مبحث کسل کننده و طولانی نشه موفق باشید
×