وبلاگ شخصی مستر حاج رضا

وبلاگ شخصی مستر حاج رضا

در اینجا میخوام فقط بنویسم! درهم و نامربوط! همه چیز
وبلاگ شخصی مستر حاج رضا

وبلاگ شخصی مستر حاج رضا

در اینجا میخوام فقط بنویسم! درهم و نامربوط! همه چیز

Enumeration n در زبان سی پلاس پلاس

در ابتدا می بایست تعریف صحیحی از نوع شمارشی enum ارائه داد و در ادامه به نحوه استفاده از آن پرداخت. برای توضیح این موضوع از یک مثال استفاده می کنیم. فرض کنید می خواهید یک برنامه حسابداری بنویسید که در آن حقوق نظافت چی 3 واحد پول، حقوق منشی 5 واحد پول، حقوق کارمندان 6 واحد پول و حقوق کارشناسان 8 واحد پول باشد و در ادامه قصد دارید تا جمع پرداختی را محاسبه کنید...
راه اول بدون استفاده از enum)
در این روش می توانید مقدار حقوق هر فرد را جمع کنید که در این حالت خروجی برابر مقدار پرداختی در سر ماه خواهد بود. ولی در این روش دو مشکل وجود دارد. یکی اینکه اگر تعداد افراد شاغل در شرکت زیاد باشد، باید از یک دفترچه راهنما استفاده کنید تا فراموش نکنید که مثلا حقوق کارمند چند واحد پول بوده است و دیگر اینکه اگر فردی برنامه ی شما را بخواند متوجه نمی شود که 6 واحد پول به چه معناست. برای رفع این مشکلات از نوع شمارشی enum استفاده می کنیم. برای مشاهده جزییات به ادامه توجه کنید.
راه دوم با استفاده از enum)
ساده و صریح بگویم: در واقع در این روش کارمند را به معنای 6 واحد پول در نظر می گیریم و به کامپایلر می گوییم هر کجا نام کارمند را دید به جای آن 6 واحد پول جایگزین کن. به این صورت هم مشکل اول حل می شود (چرا که تنها یک بار حقوق کارمند را مشخص می کنیم و در ادامه تنها از آن استفاده می کنیم) و هم مشکل دوم. (چرا که به جای مقدار حقوق، نام کارمند را قرار می دهیم.)

منبع 

متغییرهای مرجع

زبان برنامه‌نویسی C از دو نوع متغیر پشتیبانی می‌کندمتغیرهای معمولی و اشاره‌گرها (متغیرهای حاوی آدرس حافظه). زبان ++C نوع سومی را به این مجموعه اضافه کرده استمتغیرهای مرجع (Reference).

متغیرهای مرجع از روی دو نوع دیگر ساخته می‌شود و به نوعی می‌توان گفت نام مستعار برای متغیر اصلی به حساب می‌آیدبرای تعریف متغیر مرجع از عملگر & استفاده می‌کنیم:

  

int a;
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 هست و باید این هدر رو در ابتدای برنامه ذکر کنیم تا بتونیم از تابع هاش استفاده کنیم 


استراکچر سویچ در سی پلاس پلاس

switch, case, break, and default
are reserved words
The switch structure must include a break statement after each cout statement
---
assert Function
is useful in stopping program execution when certain elusive errors occur
To use assert, include cassert header file

اولین برنامه ای که نوشتم

این اولین برنامه ای است که نوشتم! 

یه برنامه خیلی ساده و به درد نخور! محاسبه مساحت مربع، مستطیل و دایره در صورتی که شما یک عدد رو وارد کنید و اون عدد یکی از ضلعهای مربع و عرض مستطیل و شعاع دایره باشد! 

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



// 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 and const int

چه تفاوتی بین این دو هست؟

int

برای تعیین متغیرهای  اعداد صحیح به کار میره 


اما کانست اینت، فرق میکنه اینجا ما ثابت ها رو تعریف میکنیم 

اما توابع دیگر در سی پلاس پلاس 

cin

برای ورودی - وارد کردن اطلاعات به حافظه جهت محاسبه 


cout 

خروجی_ نمایش خروجی 


char

ذخیره تنها یک کاراکتر 

الگوریتم

تا اینجا فهمیدم که زبان سی پلاس پلاس یک زبان نسل سومی هست که ویژوال سی پلاس پلاس هم نسل پنجم است 


اما الگوریتم 

a step-by-step problem-solving process that reaches a solution in a finite amount of time

به معنی یک راه حل قدم به قدم به طور خلاصه ، که برای حل مسائل و مخصوصا در برنامه نویسی خیلی لازم است 


وقتی شما میخواهی درباره یک موضوع خاص برنامه ای بنویسی باید مراحل زیر رو بگذرونی تا بتونی یک برنامه خوب و کامل درست کنی 

1- قدم اول اینه که مشکل رو تجزیه و تحلیل کنید. مشکل چی هست؟ چه چیزهایی نیاز داریم برای رفع این مشکل؟ چه مراحلی به طور کلی باید طی بشه؟

2- تهیه الگوریتم، و نوشتن کدهای مربوطه بر اساس آن

3- ایجاد اصلاحات و تغییرات در برنامه 

Language of a Computer

1- ASCII (American Standard Code for Information Interchange)  the most widely used
 128 characters (0 to 127), extended version: 256 characters

2- EBCDIC (Extended Binary Coded Decimal Interchange Code)-  Used by IBM
 256 characters (1 byte)

3-Unicode - 65536 characters (2 bytes)
 capable of representing all world’s languages

همانطوری که در بالا ذکر شده زبانهای کامپیوتر این سه تا هستند. البته اینها با زبانهای برنامه نویسی اشتباه نشند! اونا کلاً چیز دیگه ای هستند
در کل برنامه نویس ها برنامه هایی رو که نوشتند میدند به کامپایلر و اینترپرتر ها تا براشون به یکی از این سه زبان برای کامپیوتر ترجمه کنه! بله کامپیوتر فقط با این سه زبان آشنا است و اینکه میگن با برنامه سی پلس یا برنامه جاوا برای کامپیوتر نوشتیم به این معنی نیست که مستقیم به خورد کامپیوتر بدیمش اون برنامه ها باید به ین زبانها ترجمه بشند تا کامپیوتر بفهمه . 
در این میان زبان یونی کد بیشتر از همه کاراکتر داره و مخصوص زبانهای به غیر از زبان انگلیسی هم هست 
اما باز هم میگم زبان کامپیوتر یک زبان مخصوص به خودش است که الفبای اون فقط دو تا عدد یک و صفر است. یعنی کامپیوتر به تنهایی نمیتونه زبان انگلیسی رو بخونه و بفهمه . همه اینها توسط برنامه نویسی و ابزارهایی مثل مترجم ، اسمبلر و کامپایلر هست که به ماشین میفهمونند که چطور یک متن انگلیسی را بخواند

زبانهای برنامه نویسی در دو سطح پایین و بالا هست 
زبانهای سطح پایین وابسته به ماشین هستند و فقط در یک کامپیوتر اجرا میشوند 
اما زبانها ی پیشرفته و سطح بالا مستقل از ماشین هستند و در چندین کامپیوتر به طور همزمان میتوانند که اجرا شوند 

یه زمانی سیستم عامل موبایل ها سیمبیان بود. آیا هنوزم آثاری از این شرکت سیمبیان باقی مونده ؟

این سیستم عامل سال 98 میلادی ایجاد شد و به زبان سی پلس پلس نوشته شده بود. گوشی های خاطره انگیزی مثل نوکیا ان 73 با همین سیستم عامل کار میکردند!

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