26 Aralık 2014 Cuma

PİC16F877 UYGULAMASI

#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#use fast_io(a)
#use fast_io(b)
int i,led,set;
int sayac[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_CCP1(CCP_OFF);
   setup_CCP2(CCP_OFF);
   // TODO: USER CODE!!

set_tris_b(0x00);
output_b(0x00);

set_tris_a(0xff);
while(1){
for(i=0;i<16;i++){
if(input(pin_a0)){
output_b(sayac[i]);
}
delay_ms(10);
output_bit(pin_a0,0);


}}}

25 Temmuz 2014 Cuma

BİR DİZİ İÇERİSİNDEKİ SAYILARI BİRBİRİ İLE ÇARPMA

#include<iostream>
#include <math.h>
using namespace std;
int  main(){
int i=0,carpim=1;
int sayi[10]={1,2,3,4,5,6,7,8,9,1};
while(i<10){

carpim=carpim*sayi[i];

i++;
}

cout<<"dizi icindeki sayilarin carpimi ="<<carpim;
                system("pause");
                return 0;


}Bir dizi içindeki sayıları biribiri ile çarpma işlemi yaptık ve ekrana gösterdik.Önce dizi içinde sayıları atadık while döngüsü ile teker teker alıp önceden tanımladığımız carpim değişkenine atıyoruz.Döngü bittikten sonra ekrana yazdırıyoruz.

İKİ BOYUTLU DİZİ

#include<iostream>
#include <math.h>
#include<cstring>
using namespace std;
int  main(){
int i,j;
string ad[2][2];
for(i=0;i<2;i++){
for(j=0;j<2;j++){

cin>>ad[i][j];
}
}
for(i=0;i<2;i++){
for(j=0;j<2;j++){

cout<<"["<<i<<"]"<<"["<<j<<"]= "<<ad[i][j]<<"   ";
}cout<<endl;
}


                system("pause");
                return 0;


} Bir diziye önce klavyeden 4 isim girerek bundan sonra bu isimleri ekrana yazdıran programı yaptık.Bunu iki boyutlu bir dizi tanımlayarak yaptık bunun için iki for döngüsü kullandık birinci for döngüsüyle satır sayısını tuttuk ikinci for  döngüsü ile sütunları yerleştirdik.Ve sırasıyla isimler girdik.Sonra bu isimleri ekrana göstermek için yine iki for döngüsü kullandık

TERNARY KOMUTU

#include<iostream>

using namespace std;


int main(){
                int x,y;
                string e,t;
                cout<<"birincisi";
                cin>>x;
                               cout<<"ikincisi";
                cin>>y;
                if(x>y){
               
                               cout<<"birinci sayi buyuktur\n";
                e=x%2>0  ?  ("sayi tektir"):(" sayi cifttir");
      cout<<e;}
                 else {
                               cout<<"ikinci sayi buyuktur\n";
                t=y%2>0  ?  ("sayi tektir"):(" sayi cifttir");
                 cout<<t;
}
                system("pause");
                return 0;
               
}
Burada c++ en sevdiğim koddan bahsedeceğim …ternary   komutu  bu kod çalışması (koşul  ?  koşul_doğru  :  koşul _yanlış) prensibi ile çalışır .Klavyeden iki sayı aldık bu sayılardan hangisinin

büyük olduğunu if döngüsü ile bulduk  ve if döngüsü içindeki  ternary  komutu ile sayinin teklik çiftlik durumuna baktık  eger  sayinin modu  0’dan büyük ise yani sayi tek ise birinci  yani sol taraftaki komutu string olarak belirlediğimiz e değişkenine atadık sayi çift olsaydı sağ taraftaki  komut e değişkenine atanır ve cout ile ekrana yazılır.

ÇARPIM TABLOSU

#include<iostream>
using namespace std;
main(){
int i,j,t;
for(i=1;i<10;i++)
{
t=0;
for(j=1;j<10;j++){
t=i*j;
cout<<i<<"X"<<j<<"= "<<t<<endl;
}
cout<<endl<<endl;
}

İlk okulda kullandığımız çarpım tablosunu yaptık.İki for döngüsü ile birinci for döngüsü ile bir sayı aldık ikinci for döngüsündeki  1 den 9 a kadar sırayla çarptık ekrana yazdırdık.Bu birinci for döngüsünün i değeri 9 olana dek devam eder ve döngü biter.t değişkenini  birinci döngüde sıfıra eşitelidik  çünkü  ikinci for döngüsünde t farklı değerler alır  tedbir amacıyla yaptık t=0 eşitlemezsekte değişen bişey olmaz ama daha büyük projelerde bunun önemli olacağı söyleniyor. 

BREAK VE CONTİNUE KOMUTLARI

#include<iostream>
using namespace std;
int main(){
int i ;
for( i=0;i<=20 ;i+=2)
{
if(i==10)
continue;
if(i==14)
break;
cout<<i<<endl;
}
system("pause");
return 0;
}
Ekran çıktısı 0  2  4  6  8 12


Break (kırmak) continue (atlamak) komutları anlamları gibi davranırlar. For döngüsü ile çift sayıları ekrana yazdırmak için kullanıldı i=10 geldiğinde cotinue komutu ile 10’u ekrana yazdırmaz atlar i=14 oldugunda  14 ekrana yazdırmaz döngüden çıkar. 

asal sayılar

#include<iostream>

using namespace std;

int main()
{
int a,c,b;
 for(a=2;a<=500;a++){
     c=1;
for(b=2;b<a;b++){
      if(a%b==0){
       c=0;
}
     }
 if(c==1) {cout<<"asal sayilar degeri: "<<a<<endl;}        
}
system("pause");
    return 0;
}

Asal sayılar sadece  kendisine ve bire bölünen sayılara denir.Bizde bunu uyguladık  programımızda  for döngüsü ile 500’ kadar döndürürken diğer  for döngüsü ile bir ve kendisi hariç sayılara böldü if koşulllarına bakarak ekrana asal sayıları yazdırdık.Burda c değişkeni bizim kilit noktamız  c=0 olduğunda hiç bişey olmadan döngüye devam ediyor  c=1 olduğunda ekrana asal sayıl olduğunu gösterir.