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.

17 Temmuz 2014 Perşembe

armstrong sayılar

ARMSTRONG SAYILAR
#include<iostream>

using namespace std;

int main(){
                int toplam=0,i,j,k,kup=0;
for(i=1;i<9;i++){

                for(j=0;j<9;j++){
               
                   for(k=0;k<9;k++){
                                toplam=k+j*10+100*i;
                                kup=i*i*i+j*j*j+k*k*k;
                                if(toplam==kup){
                                               cout<<toplam<<endl;
                                }
                               
                   }
               
}
}Armstrong sayılar her basamağın sayının basamak sayısı kadar kuvvetinin alınıp toplamları ile elde edilen sonuç sayıya eşit ise bu sayılara armstrong sayılar denir.Programımızda üç tane for döngüsü oluşturduk yani sayımız üç basamaklı bir sayı birinci for döngüsünü 1 den başladık çünkü 0’ dan başlatırsak (011 gibi) üç basamaklı bir sayı olmaz.Bir örnekle daha rahat anlarız i=1,j=0,j=0 olduğunda

toplam değikenine gider sonucumuz 100 olur kup değişkenimizde  1*1*1+0*0*0+0*0*0=1 olur  eğer toplam değişkenimiz ile kup değişkenimiz aynı ise cout ile toplam değişkenimiz ekrana yazdırırız bu işlem 999 olduğunda durur.

Bir sayının %35 nin 100'den büyük yada küçük olduğunu gösteren program

#include<iostream>
using namespace std;
int main(){
                int x;
                cout<<"sayi gir: ";
                cin>>x;
                if (x*35/100>1000)
                cout<<"sayi 1000'den buyuktur";
                else
                cout<<"sayi 1000'den kucuktur";
                system("pause");
                return 0;
}

Bir sayının %35 nin 100 den küçük veya büyük olduğunu gösteren programı yazdık.Klavyeden bir sayi girdik bu sayiyi if koşulunun içinde kontrol ettik.Eger sayinin %35 100’den küçük ise ekrana kucuktur yazisi yazdırdık else yani değil ise 100’ den buyuktur yazdırdık

14 Temmuz 2014 Pazartesi

40'dan başlayarak 4'e kadar sayıların arasındaki çift sayıları bulan ve toplamlarını da ekrana yazdıran program

#include<iostream>

using namespace std;

int main()
{
int y,toplam=0;
 for(x=40;x>=4;x--)  
     {
      if(x%2==0)
      {
      cout<<"cift sayilar"<<x<<endl;
toplam+=x;}
   
 
     }
     
     cout<<endl<<toplam;
   
system("pause");
    return 0;

}

programda for döngüsü ile 40 dan azalarak 4'e kadar sayiları döndürdük.eğer x sayılarının içinde çift sayı var ise bunu ekrana yazdırdık.toplam değişkeni ile bu sayıları topladık. döngü bittiğinde ise toplam değişkenini ekrana yazdırdık.


12 Temmuz 2014 Cumartesi

10 kişilik sınıfın notlarını klavyeden alarak ortalamasını ekrana yazdıran program

#include<iostream>
using namespace std;

int main(){
float toplam=0;
int sinif[10],i=0;

while(i<10)
{
cout<<i+1<<". kisinin aldigi not:" ;
cin>>sinif[i];
 toplam=toplam+sinif[i];
i++;

}
cout<<"Sinifin ortalamasi:"<<toplam/10;
}
Burda sinif adında int dizi oluşturduk while döngüsü ile birinci diziden başlayarak (sinif [0]) degeri girdik ve bu sinif[0] degerini toplam değişkenine atadık ve döngü bittiğinde ise toplam değişkenini 10 bölerek ortalamasını alıp ekrana yazdırıdık..

11 Temmuz 2014 Cuma

10 adet sayıyı klavyeden alan ve ekrana gösteren program



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

cin>>sayi[i][j];

}

}


for(i=0;i<5;i++){
for(j=0;j<2;j++){

cout<<"sayi["<<i<<"]"<<"["<<j<<"]="<<sayi[i][j]<<"     ";

}
cout<<endl;
}
En başta [5,2] matris oluşturduk ve for döngüleriyle klavyeden sayıları adreslerine yerleştirdik.Sayıları girdikten sonra tekrar for döngüsü ile bu sayıları ekranda gösterdik.Dizi  iki boyutlu olduğu için iç içe for döngüsü kullandık.For döngüsünün ilkinde i=0 olduğu zaman alttaki döngüye geçer önce[0,0] sonra [0,1] degerini alır j=2 olmayacığı için döngü biter i=1 olur ve tekrar [1,0] [1,1] yerleri açılır i=5 geldiğinde döngüden çıkılır
[0,0]      [0,1]
[1,0]      [1,1]
[2,0]      [2,1]
[3,0]      [3,1]
[4,0]      [4,1]  dizilerine sıra ile değişken atarız

10 Temmuz 2014 Perşembe

1 den 100 kadar 5 bölünen 7'ye bölünmeyen sayıların ekrana gösteren ve bu sayiları toplayan program



#include<iostream>

using namespace std;

int main()
{
int x,toplam=0;
for(x=1;x<=100;x++)
{
if(x%5==0 && x%7!=0){
cout<<x<<endl;
toplam+=x;}
}
cout<<endl<<toplam;

   
system("pause");
    return 0;

}
Burada for ile 1 den 100 kadar olan sayıların döndürürken if ' koşul içindeki olan sayıları ekrana yazdırır ve toplam değişkenine atar döngü bittiğinde toplam değişkeninide ekrana yazdırır


9 Temmuz 2014 Çarşamba

1'den n sayısına kadar sayıların toplamı



#include<iostream>

using namespace std;

int main()
{
int x=0,n,toplam=0;
cout<<"0 dan n'e kadar toplama n sayisini giriniz";
     cin>>n;
   
    do{
    x++;
    toplam=toplam+x;
   
    }while(x<n);
   
     cout<< toplam;
system("pause");
    return 0;

}
Önce x,n,toplam değişkenlerini tanımladık x=0 başlangıc degeri n klavyeden girilen sayı ve 'toplam' her dönüşte sayıları toplayarak bellekte tutan değişken toplama 0 atadık çünkü bilgisayar toplama değişkenine rasgele sayı atyabiliyor biz toplamı sabitledik.Bizden ilk önce n değikenini istedi cin ile girdik [c-input(giriş) c-out(çıktı) ]Do while döngüsüne gelelim burada x'i bir artırdı yani x=1 oldu ve x'i toplam değişkeni ile toplayarak  toplam değişkenine atadı(toplam=0+1) toplam=1 oldu sonra x girilen sayıdan küçük mü kontrol etti dogru ise döngüye devam etti sonra x'i tekrar artırdı x=2 oldu ve toplam değikeni ile x'i topladı (toplam=1+2) ve x=100 oldugunda dögüyü bitirir ve cout ile ekrana gösterilir.



 OPERATÖRLERİN İŞLEM SIRASI


#include<iostream>

using namespace std;

int main(){

int i=1;

cout<<++i<<endl<<i<<endl<<i++<<endl<<i;

}
bu programda ekran cıktısının
2
2
3
4
bu yanlıs olur.Bunun sebebi islem öncelik sırası ile ve operatörlerin bir kısmı soldan sağa doğru işlenir bir kısmı sağdan sola dogru işlendiği içindir.Sayfanın sonunda işlem öncelikleri ve sağdan ve soldan başlama tabloları mevcut..
Örneğimize gelelim burada kod  sağdan başlar işlem 'i' değişkenini ekrana yazacaktır ancak işlem önceliğinden dolayı i++ değişkenine gider ve i=1 ekran çıktısını verir 'i' artık 2 olmuştur(i=2)  ve kod yine 'i' değişkenine gidecektir fakat ++i operatörü vardır ve ekran cıktımız i=3 ekran cıktısını verir bundan sonra başka operatör olmadıgı için i=3 olarak kalır dogru ekran cıktımız
3(++i)
3(i)
1(i++)
3(i)

































kaynak:http://atlas.selcuk.edu.tr/1205312/operatorler.pdf


















c++ basit programlar

Bu yazımda c++ basit örnek kodlar yayınlayacağım

1'DEN  100 KADAR SAYILARI TOPLAYAN PROGRAM


#include<iostream>
using namespace std;
int main(){
        
         int x,toplam=0;
         for (x=1;x<=100;x++)  {

                   toplam=toplam+x;
}

         cout<<toplam<<endl;
        
}


Burada for dögüsü ile  x adında bir değişkenle 1 den başlayarak 100 e kadar sayıları koşturdum her sayıyı dödürürken toplama attım mesala  en başta toplam değişkeni  sıfırdı   for döngüsüne x=1 başladı   toplam=toplam+1(toplam=0+1) gibi düşünürüz  ve toplam değişkenimiz 1 degerini aldı  x=2 aldıgında  toplam=toplam+2(toplam=1+2)gibi düşünürüz  ve x=100 den sonra döngü biter ve ekrana toplam değişkeninin son degerini gösterir