آموزش c++ & c جلسه چهارم_ ساختار کنترلی IF…ELSE

دستور شرطی IF

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

برنامه ای که تشخیص دهد عدد دریافت شده از ورودی، زوج است یا فرد؟

برنامه ای که تشخیص دهد عدد دریافت شده از ورودی، زوج است یا فرد؟

۱ شروع

۲ متغیر A را از ورودی بگیر

۳ اگر باقیمانده A بر ۲ برابر ۰ بود برو ۴ واگرنه برو به ۵

۴ چاپ کن زوج برو به ۶

۵ چاپ کن فرد برو به ۶

۶ پایان 

C++

#include <iostream>
#include <conio.h>
int main()
{
int A;
cout<< “Enter Number :” ;
cin >> A;

//IF…ELSE : IF:اگر شرط درست بود
if(A %2==0)
cout<<“even”;

//ELSE :  اگر شرط نادرست بود
else
cout<<“odd”;
getch();
return 0 ;
}

C

#include <stdio.h>
#include <conio.h>
int main()
{
int A;
printf(“Enter Number :”) ;
scanf(“%d”,&A);
if(A %2==0)
printf(“even”);
else
printf(“odd”);
getch();
return 0 ;
}

آموزش c++ & c_ ساختار کنترلی IF و عملگرهای قیاسی

دستور کنترلی IF

فقط در صورت درست بودن(۱، true) شرط استفاده میشود.

عملگر های قیاسی:

 عملگرهایی که برای مقایسه عملوند ها استفاده میشه. 

 

<،=<  : بزرگتر،بزرگتر یا مساوی            مثال : ۶<7
>،=> : کوچکتر ، کوچکتر یا مساوی       مثال : ۷>6

== :  مساوی                                 مثال : ۱==۱

=!  : مخالف                                    مثال : ۶=!۷

برنامه که یک عدد از ورودی میگیرد اگر دریافتی کمتر از ۲۰ بود آن را چاپ میکند.

برنامه که یک عدد از ورودی میگیرد اگر دریافتی کمتر از ۲۰ بود آن را چاپ میکند.

۱ شروع

۲ متغیر A را دریافت کن

۳ اگر A کمتر از ۲۰ بود برو ۴ واگرنه برو ۵

۴ چاپ کن کمتر از ۲۰ است

 ۵ پایان

C++

#include <iostream>
#include <conio.h>
int main()
{
int A;
cout<< “Enter Number :” ;
cin >> A;

//if: برای بررسی درستی یک یا چند دستور به کار میرود 

if(A <20)
cout<<“Number : “<<A;
getch();
return 0 ;
}

C

#include <stdio.h>
#include <conio.h>
int main()
{
int A;
printf(“Enter Number:”) ;
scanf(“%d”,&A);

//if: برای بررسی درستی یک یا چند دستور به کار میرود. 

if(A <20)
printf(“Number:%d”,A);
getch();
return 0 ;
}

آموزش c++ & c _ برنامه محاسبه تعداد دانش آموزان

برنامه ای که درصد کل هر کدام از دانش آموزان موجود در یک آموزش ابتدایی را به شرح زیر محاسبه کند.

۱ کلاس اول ۲۰۰ نفر

۲ کلاس دوم ۱۰۰ نفر

۳ کلاس سوم ۱۰۰ نفر

۴ فوق چهارم ۱۵۰ نفر

۵ کلاس پنجم ۳۰۰ نفر

شروع

مقدار متغیرهای  CA,CD,CS,CC,CP را از ورودی بگیر

مجموع متغیرهای دریافت شده را در total بریز

هر مقدار گرفته شده از ورودی در ۱۰۰ ضرب و در total  تقسم کن و دوباره در همان متغیر بریز (برای تمام ورودی ها)

تک تک مقادیر حاصل را در خروجی چاپ کن

پایان 

c++

#include<iostream.h>
#include<conio.h>
int main()
{
int CA,CD,CS,CC,CP,total ;
cout << “vared kon tedade avale dabestan:”;
cin >>CA;
cout << “vared kon tedade dovom dabestan:”;
cin >> CD;
cout << “vared kon tedade sevom dabestan:”;
cin >> CS;
cout << “vared kon tedade chaharom dabestan:”;
cin >> CC;
cout <<  “vared kon tedade panjom dabestan:”;
cin >> CP;

//اینجا برای بدست آوردن کل تعداد دانش آموزان همه متغیر ها، با هم جمع زده شدند
total= CA+CD+CS+CC+CP;

//float : نوع متغیر اعشاری است

//از نوع صحیح تعریف شده بوده ولی در اینجا یک بار در عددی ضرب و بعد بر عددی تقسیم شده است به خاطر همین ممکن بود مقدار حاصل اعشاری باشد phdچون

//برای همین از تبدیل نوع که صحیح را به اعشاری تبدیل میکند استفاده شده.

//endl : انتهای خط جاری وو مکان نما را به خط بعدی اتقال میدهد.

cout<<“avale: ” <<(float)CA*100/total<<endl ;
cout<<“dovom: ” <<(float)CD*100/total<<endl ;
cout<<“sevom: ” <<(float)CS*100/total<<endl ;
cout<<“chaharom: ” <<(float)CC*100/total<<endl ;
cout<<“panjom: ” <<(float)CP*100/total<<endl ;
getch();
return 0 ;
}

c

#include<stdio.h>
#include<conio.h>
int main()
{
float CA,CD,CS,CC,CP,total ;
printf(“vared kon tedade avale dabestan: :”);
scanf(“%f”,&CA) ;
printf(“vared kon tedade avale dabestan: :”);
scanf(“%f”,&CD) ;
printf(“vared kon tedade avale dabestan: :”);
scanf(“%f”,&CS) ;
printf(“vared kon tedade avale dabestan: :”);
scanf(“%f”,&CC) ;
printf(“vared kon tedade avale dabestan: :”);
scanf(“%f”,&CP) ;
total= CA+CD+CS+CC+CP;
printf(“avale: %f\n”,CA*100/total) ;
printf(“dovom: %f\n”,CD*100/total) ;
printf(“sevom: %f\n”,CS*100/total) ;
printf(“chaharom: %f\n”,CC*100/total) ;
printf(“panjom: %f\n”,CP*100/total) ;
getch();
return 0 ;
}

آموزش c++ & c_ جمع دو متغیر و عملگرهای محاسباتی

عملگرهای محاسباتی: 

این عملگرها (ضرب،تقسیم،باقیمانده،جمع وتفریق)برای محاسبات ریاضی  به کار میروند. فعلا قراره از همین عملگرها در این برنامه و برنامه بعدی استفاده بشه بقیه به مرور و در حین استفاده معرفی میشن.

برنامه ای که دو عدد از کاربر دریافت کرده و مجموع آنها را حساب کند.

int a,b,sum;

اگه خودمون بخواهیم مقداری دهی انجام بدیم:

int a = 1;

int b = ۲ ;

int sum(3) = a(1) + b(2);

برنامه ای که دو عدد از کاربر دریافت کرده و مجموع آنها را حساب کند.

شروع

متغیر اول (A) را از ورودی بگیر

متغیر دوم (B)را از ورودی بگیر

دو متغیر A,B را باهم جمع و در متغیر C بریز

C چاپ کن

پایان

 

C++

#include<iostream.h>
#include<conio.h>
int main()
{
int A,B,C ;
cout << “enter number1 :”;

//cin : شی ای که مقداری از ورودی میگیرد
cin >>A ;
cout << “enter number2 :”;
cin >> B ;
C=A+B;
cout<<“sum :”<< C;
getch();
return 0 ;
}

C

#include<stdio.h>
#include<conio.h>
int main()
{
int A,B,C ;
printf(“enter number1 :”);

//scanf : این تابع برای ورود اطلاعات از صفحه کلید به کار میرود 

//&A : تابع بعد از گرفتن مقدار از ورودی آن را باید در متغیر، که مکانی از حافظه هست قرار دهد.  
scanf(“%d”,&A) ;
printf(“enter number2 :”);
scanf(“%d”,&B) ;
C=A+B;
printf(“sum :%d”, C) ;
getch();
return 0 ;
}

آموزش c++ & c_ تعریف متغیر و عملگر انتساب

تعریف متغیر و مقدار دهی به آن توسط عملگر انتساب

متغیر

مثل یک ظرف میمونه که میتونه در خود یک مقدار را ذخیره کنه.

متغیر به مکانی از حافظه(رم) گفته میشه  که برنامه میتونه در اون مقداری را ذخیره و باز یابی کنه. مقدار متغیر در طول اجرای برنامه تغییر میکنه.

 

نحوه تعریف متغیر:

noe dade     name moteghayer   ;

int  sufra ;

   int (اعداد صحیح) :  جزوه داده های اصلی مثل اعداد اعشاری،کاراکتر,..

; : برای بستن انتهای خط هست.

نحوه مقدار دهی به متغیر:

int  sufra = 20 ;

عملگر 

نمادی مثل + که اعمال خاصی روی داه ها(عملوند) انجام میده.

عملوند 

داده هایی که در اطراف عملگر میباشند.

عملگر (=)

  برای انتساب یک مقدار به متغیر  استفاده میشه.

برنامه ای بنویسید که کامپیوتر به متغیری، مقداری را نسبت و در خروجی چاپ کند.

شروع

مقدار ۲ را در متغیر A قرار بده 

A را چاپ کن

پایان

C++

#include<iostream.h>
#include<conio.h>
void main()
{

//تعریف متغیر از نوع صحیح
int A;

//مقدار دهی متغیر
A=2;
cout<<“A = “<<A;
getch();
}

c

#include<stdio.h>
#include<conio.h>
void main()
{
int A;
A=2;

//printf :  دو ورودی داره که اولی برای نمایش پیغامی که میخواهیم عینا در خروجی ببینیم، دومی برای نمایش مقدار و اطلاعات متغیر که در خروجی .

// %d : کاراکترهای تعیین کننده فرمت خروجی- اعداد صحیح
printf (“A   = %d”,A);
getch();
}

led چشمک زن با میکرو کنترولر PIC18F452

در این پست قصد داریم پروژه ای مخصوص افراد مبتدی و کسانی که تازه کار با میکرو کنترولر  pic18f452 را شروع کرده اند قرار دهیم.
در این پروژه ساده و ابتدایی یک LED متصل به یک pic18f452 را روشن و خاموش می نماییم ، این پروژه به زبان سی نوشته شده است.

شما می توانید پی دی اف آموزش روشن و خاموش کردن یک LED  را  از ابتدا تا انتهاکه با  نرم افزار proteus طراحی و با mikroc کد نویسی شده است، از لینک زیر دریافت نمایید:

 

Download

 

one1LED در حالت مصرف کننده جریان

پایه آند LED ،  توسط یک مقاومت، به تغذیه ۵ ولت و کاتد آن، به پورت خروجی میکروکنترلر، متصل شده است. 

oledLED در حالت منبع جریان 

پایه آند LED، توسط یک مقاومت محدود کننده جریان به پورت خروجی میکروکنترلر، و پایه کاتد آن به زمین متصل شده است.

twoاینجا دو LED را مشاهده میکنید که به فاصله زمانی ثابتی روشن و خاموش میشوند. 8ledاینجا هشت LED را مشاهده میکنید که به فاصله زمانی ثابتی روشن و خاموش میشوند.

 


تشریح کد نویسی در mikroC برای یک led به زبان سی


void main()//شروع برنامه

{

 TRISB.F0 = 0;// خروجی می کند PORTB0 یا RB0 پین

while(1) //یک حلقه نامتناهی که در داخل آن ال ئی دی متناوبا خاموش و روشن میشود

{

  PORTB.F0 = 1;//  رایک کرده و ال ئی دی را روشن میکند RB0  پین

 Delay_ms(1000);//یک ثانیه تاخیر

 PORTB.F0 = 0;   // را صفر کرده و ال ئی دی را خاموش میکند RB0  پین

Delay_ms(1000);

  }

}


برنامه ریزی پورتهای ورودی/خروجی میکروکنترلر pic


 

بسته به میکروکنترلری که استفاده میکنیم، پورتهای ورودی/خروجی میکروکنترلر pic18f452 دارای نامهای A, B, C, D, E میباشد. پایه های این پورتها ممکنه آنالوگ یا دیجیتال باشد. در مد آنالوگ، این پایه ها ورودی هستند و به مدارات آنالوگ به دیجیتال متصل میشود. در مد دیجیتال میتوان این پورتها ورودی یا خروجی تعریف کرد.

رجیستر TRIS مسیر پورت ها را تعیین میکند. برای هرپورت یک ریجیستر TRIS وجود دارد. ۰ کردن  یک بیت این رجیستر، پایه پورت متناظرش را خروجی میکندو بر عکس.

PORT ها از طریق یک رجیستر ۸ بیتی یا بیت های پورت قابل دسترسی هستند.مثلا اگر پورتی را بخواهیم به صورت خروجی تعریف شود، باید همه پایه های آن ۱ شود.

 


تشریح کد نویسی در mikroC برای دو led به زبان سی


void main()

{

  TRISB.F0 = 0;

  TRISB.F1 = 0;

  while(1)

  {

    PORTB.F0 = 1;

    Delay_ms(1000);

    PORTB.F0 = 0;

    Delay_ms(1000);

    PORTB.F1 = 1;

    Delay_ms(1000);

    PORTB.F1 = 0;

    Delay_ms(1000);

}

روش دیگر ///////////////////////////////////////////////////////////////////////////////

int unsigned Counter;

void main() {

 trisB = ۰;

 while(1)

 {

  portB = 0x01; // روشن میشود LED

 for(Counter = 0; Counter < 2;Counter++)

  {

   delay_ms(1000);

   portB = portB << 1; // بعدی میشودLED یک شیفت به چپ باعث روشن شدن

  }

 }

}


تشریح کد نویسی در mikroC برای هشت  led به زبان سی


 

void main()

{

  TRISB.F0 = 0;

  TRISB.F1 = 0;

   TRISB.F2 = 0;

   TRISB.F3 = 0;

   TRISB.F4 = 0;

   TRISB.F5 = 0;

   TRISB.F6 = 0;

   TRISB.F7 = 0;

  while(1)

  {

    PORTB.F0 = 1;

    Delay_ms(1000);

    PORTB.F0 = 0;

    Delay_ms(1000);

    PORTB.F1 = 1;

    Delay_ms(1000);

    PORTB.F1 = 0;

    Delay_ms(1000);

    PORTB.F2 = 1;

    Delay_ms(1000);

    PORTB.F2 = 0;

    Delay_ms(1000);

    PORTB.F3 = 1;

    Delay_ms(1000);

    PORTB.F3 = 0;

    Delay_ms(1000);

    PORTB.F4 = 1;

    Delay_ms(1000);

    PORTB.F4 = 0;

    Delay_ms(1000);

    PORTB.F5 = 1;

    Delay_ms(1000);

    PORTB.F5 = 0;

    Delay_ms(1000);

    PORTB.F6 = 1;

    Delay_ms(1000);

    PORTB.F6 = 0;

    Delay_ms(1000);

    PORTB.F7 = 1;

    Delay_ms(1000);

    PORTB.F7 = 0;

    Delay_ms(1000);

  }

}

//////////////////////////////////////////////////////////////////////////////////////////////

int unsigned Counter;

void main() {

 trisb = 0;

 while(1)

 {

  portb = 0x01;

  for(Counter = 0; Counter < 8; Counter++)

  {

   delay_ms(1000);

   portb= portb << 1;

  }

 }

}

معرفی میکروکنترلر PIC18F452

download

 

 

میکروکنترلر چیست وچگونه میتوانیم از آن استفاده کنیم؟

در بسیاری از وسایل خانگی مثل مایکروفر ها ، یخچال ها و… از میکروکنترلر استفاده میشود. میکروکنترلر یک کامپیوتر تک تراشه ای است.

میکرو یعنی کوچک بودن ابزار، کنترلر یعنی کنترل کردن آن

تفاوت  میکروپروسسور با میکروکنترلر :

میکروپروسسور از یک cpu و یک cu تشکیل شده است.

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

در واقع میکروکنترلر در ساده ترین معماری خود، از یک میکروپروسسور،حافظه و ورودی- خروجی تشکیل شده است.

میکروکنترلر های خانواده pic توسط شرکت Microchip Technology تولید می شود و در حال حاضر یکی از پر کاربردترین میکروکنترلر  در مصارف تجاری و صنعتی است. میکروکنترلر بر اساس تعداد بیتهای باس داخلی طبقه بندی میشود که براین اساس pic18، هشت بیتی میباشد.

ویژگیهای تراشه PIC18F452

حافظه برنامه (بایت)                        ۳۲k

حافظه داده  (بایت)                        ۱۵۳۶                   

EEPROM   (بایت)                          ۲۵۶                                 

I/O    پورتهای                             A,B,C,D,E

تعداد تایمر                                   ۴

منابع وقفه                                   ۱۸

۲                                        PMW

ارتباط سریال                              MSSP,USART

 A/D  مبدل                                 ۸

تشخیص ولتاژ کم                           بله

brown-out reset                          بله

پکیج                                        ۴۰-PIN DIP

طبق شکل این تراشه  ۴۰ پایه دارد و در یک پکیج DIP قرار داده شده است.

منبع: میکروکنترلرهای PIC-مهندس هوار بطحایی

 

یا ابا عبدالله

 

 

محرم ۹۵ :  ابا عبد الله  یعنی نهایت بندگی خدا وتسلیم بر قضاء وقدرش

یک سال بعد یعنی محرم ۹۶ : انقدر به خدا اعتماد و ایمان داشته باشی که از همه چیز دل بکنی. از همه چیز یعنی مطلقا فقط خدا را تو دلت داشته باشی. این یعنی کسی که ذره ای شرک تو وجود مقدسش نیست. کسی که میدونه بالا تر از قدرت خدا هیچ قدرتی وجود نداره .