ش | ی | د | س | چ | پ | ج |
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 |
در ابتدا می بایست تعریف صحیحی از نوع شمارشی enum ارائه داد و در ادامه به نحوه استفاده از آن پرداخت. برای توضیح این موضوع از یک مثال استفاده می کنیم. فرض کنید می خواهید یک برنامه حسابداری بنویسید که در آن حقوق نظافت چی 3 واحد پول، حقوق منشی 5 واحد پول، حقوق کارمندان 6 واحد پول و حقوق کارشناسان 8 واحد پول باشد و در ادامه قصد دارید تا جمع پرداختی را محاسبه کنید...
راه اول بدون استفاده از enum)
در این روش می توانید مقدار حقوق هر فرد را جمع کنید که در این حالت خروجی برابر مقدار پرداختی در سر ماه خواهد بود. ولی در این روش دو مشکل وجود دارد. یکی اینکه اگر تعداد افراد شاغل در شرکت زیاد باشد، باید از یک دفترچه راهنما استفاده کنید تا فراموش نکنید که مثلا حقوق کارمند چند واحد پول بوده است و دیگر اینکه اگر فردی برنامه ی شما را بخواند متوجه نمی شود که 6 واحد پول به چه معناست. برای رفع این مشکلات از نوع شمارشی enum استفاده می کنیم. برای مشاهده جزییات به ادامه توجه کنید.
راه دوم با استفاده از enum)
ساده و صریح بگویم: در واقع در این روش کارمند را به معنای 6 واحد پول در نظر می گیریم و به کامپایلر می گوییم هر کجا نام کارمند را دید به جای آن 6 واحد پول جایگزین کن. به این صورت هم مشکل اول حل می شود (چرا که تنها یک بار حقوق کارمند را مشخص می کنیم و در ادامه تنها از آن استفاده می کنیم) و هم مشکل دوم. (چرا که به جای مقدار حقوق، نام کارمند را قرار می دهیم.)
زبان برنامهنویسی C از دو نوع متغیر پشتیبانی میکند: متغیرهای معمولی و اشارهگرها (متغیرهای حاوی آدرس حافظه). زبان ++C نوع سومی را به این مجموعه اضافه کرده است: متغیرهای مرجع (Reference).
متغیرهای مرجع از روی دو نوع دیگر ساخته میشود و به نوعی میتوان گفت نام مستعار برای متغیر اصلی به حساب میآید. برای تعریف متغیر مرجع از عملگر & استفاده میکنیم:
1 | int a; |
2 | int &b = a; |
عبارت فوق متغیر b را مرجعی برای a معرفی میکند. از این کد به بعد متغیرهای a و b معادل هم هستند. یعنی تغییرات a در b و تغییرات b در aتاثیر میگذارد. در واقع a و b از یک محل حافظه استفاده میکنند؛ یا اینکه یک خانهی حافظه، دو نام متفاوت دارد.
کاربرد اصلی متغیرهای مرجع را میتوان در انتقال اطلاعات به توابع و بالعکس دید. همانطور که میدانید در زبان C دو روش برای انتقال اطلاعات به تابع و بالعکس وجود دارد: مقدار و اشارهگر. زمانی که از روش اول استفاده میکنیم، آرگومان متناظر با پارامتر تابع فقط یک کپی از مقدار آن پارامتر را دارد. یعنی تغییر متغیر آرگومان تاثیری در متغیر پارامتر ندارد.
منبع الگوریتم ها
متغییرهای مرجع در سه جا به درد میخورند
1- هنگامی که داده های برگشتی ما بیشتر از یکی باشد
2- برای تغییر پارامتر اصلی
3- برای ذخیره کمتر حافظ و زمان
خوبی تابع این است که یک بخش کاملاً مجزا در برنامه نویسی است که میشه اون رو جداگانه کد نویسی کرد، کامپایل کرد، و حتی دیباگ کرد. مثل ماژول میمونه. در یک زمان چند نفر میتونند به طور همزمان روی یک برنامه کار کنند که دارای چندین تابع هست و هر نفر یک تابع رو روش کار کنه.
چند از تابع ها مهم و معروف در سی پلس
sqrt
pow
floor
ceil
abs
fabs
islower
isupper
return
هدر تابع های ریاضی معمولاً cmath هست و باید این هدر رو در ابتدای برنامه ذکر کنیم تا بتونیم از تابع هاش استفاده کنیم
این اولین برنامه ای است که نوشتم!
یه برنامه خیلی ساده و به درد نخور! محاسبه مساحت مربع، مستطیل و دایره در صورتی که شما یک عدد رو وارد کنید و اون عدد یکی از ضلعهای مربع و عرض مستطیل و شعاع دایره باشد!
کدش رو اینجا یادگاری میزارم. البته مجبورم تعاریف مربوط به خودم و استادم رو پاک کنم
// Author: Reza
// Program: This program calculates the perimeter and area of rectangle, Square, and circle
// Input: The Value x (is a side of square, width and half of rectangle, and radius of circle)
// Output: the area of the Square, Rectangle, and Circle
//Class: C++
//Proffessor: B
// Assignment 1
//Revision: 4
//Date: 04/01/2018
//This header for compile the file and store it
#include "stdafx.h"
// this header needed for int, cout, and cin
#include <iostream>
// This header for Console input and output
#include <conio.h>
// this header needed for showing the double and decimal points
#include <iomanip>
using namespace std;
int main()
{
// Tell the User what this program does
cout << "Hello," << endl;
cout << "This Program Calculates the area of a square, rectangle, and circle according to value of x." << endl;
// Declare the Variable
int x;
//propmpt the user to enter the value x
cout << "Please enter the value for x:" << endl;
// input the value x
cin >> x;
// Calculate the Square Area
int squarearea = x * x;
// Calculate the Rectangle Area
int rectanglearea = (2 * x)*x;
// Calculate the Circle Area
double circlearea = 3.14159*x*x;
// Display the Square Area
cout << "\nThe area of the Square with side " << x << " is:" << squarearea << endl;
// Display the Rectangle Area
cout << "\nThe area of the Rectangle with side " << x << " is:" << rectanglearea << endl;
// Force computer to show decimal point
cout << fixed << showpoint;
// Set the decimal points into Three digits
cout << setprecision(3);
// Display the Corcle area (after setting the decimal point)
cout << "The area of the Circle with side " << x << " is:" << circlearea << endl;
// Prompt the user press any key to exit the program
cout << "\nPress Any Key to continue ....";
//exit the program
_getch();
//return 0 to show end of execution
return 0;
}
این کلاس واقعا فشرده است و خیلی سریع میگذره نمیتونم همه چیز رو نوت بردارم و پست بزارم .
بعلاوه من خودم هم زندگی خیلی شلوغی دارم! و البته کاملا کسل کننده و بی روح! از صبح زود میرم سر کار تا ساعت 6 بعدازظهر خسته میرسم خونه. بعد از اون هم یا میرم کالج یا مجبورم درسهام رو مرور کنم یا اینکه کارهای معمولی خونه رو انجام بدم مثل خرید و تمیزکاری. نه هیجانی نه دید و بازدیدی نه تفریحی ! هیچی ! همین طوری الان حدود بیشتر از سه ساله که داره میگذره !
خب بگذریم
میخوام چند تا از اوپراتورها و معنی شون رو برای یادآوری خودم بزارم اینجا
&& = and
! = not
| | = or
این سه تا خیلی کاربرد دارند
اون علامت توجه همون کاربرد فعل منفی رو داره در برنامه نویسی.
دقت کنید که اون اوپراتورهایی که برای && و یا | | استفاده شده از هر سیمبل دو بار استفاده شده نه یک بار.مثلا اگر یکبار از سیمبل & استفاده کنید جواب متفاوت خواهد بود.
چه تفاوتی بین این دو هست؟
int
برای تعیین متغیرهای اعداد صحیح به کار میره
اما کانست اینت، فرق میکنه اینجا ما ثابت ها رو تعریف میکنیم
اما توابع دیگر در سی پلاس پلاس
cin
برای ورودی - وارد کردن اطلاعات به حافظه جهت محاسبه
cout
خروجی_ نمایش خروجی
char
ذخیره تنها یک کاراکتر
تا اینجا فهمیدم که زبان سی پلاس پلاس یک زبان نسل سومی هست که ویژوال سی پلاس پلاس هم نسل پنجم است
اما الگوریتم
a step-by-step problem-solving process that reaches a solution in a finite amount of time
به معنی یک راه حل قدم به قدم به طور خلاصه ، که برای حل مسائل و مخصوصا در برنامه نویسی خیلی لازم است
وقتی شما میخواهی درباره یک موضوع خاص برنامه ای بنویسی باید مراحل زیر رو بگذرونی تا بتونی یک برنامه خوب و کامل درست کنی
1- قدم اول اینه که مشکل رو تجزیه و تحلیل کنید. مشکل چی هست؟ چه چیزهایی نیاز داریم برای رفع این مشکل؟ چه مراحلی به طور کلی باید طی بشه؟
2- تهیه الگوریتم، و نوشتن کدهای مربوطه بر اساس آن
3- ایجاد اصلاحات و تغییرات در برنامه
یه زمانی سیستم عامل موبایل ها سیمبیان بود. آیا هنوزم آثاری از این شرکت سیمبیان باقی مونده ؟
این سیستم عامل سال 98 میلادی ایجاد شد و به زبان سی پلس پلس نوشته شده بود. گوشی های خاطره انگیزی مثل نوکیا ان 73 با همین سیستم عامل کار میکردند!
گوشی های سونی اریکسون و سامسونگ هم با همین برنامه درست شده بودند. اما با آمدن برنامه هایی مثل آندریود، اپل موبایل و ویندوز موبایل ، این سیستم عامل کاملاً متروک شد تا اینکه الان کسی ممکنه یادش نمونده باشه .