BASIC kullanıcılarını C'ye alıştırma turları

Başlatan bunalmis, 28 Ekim 2011, 18:48:32

eistain_54

#15
(a&2)==>degerler:
15,14,11,10,7,3,2
a==8==>degerler:
8 dir heralde sadece

2,3,7,10,11,14,15 bir de 8 etti 8 2 tane daha soyle ki 10 olsun.
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

eistain_54

Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

eistain_54

#17
0000#0
0001#1
0010#2
0011#3
0100#4
0101#5
0110#6
0111#7
1000#8
1001#9
1010#a
1011#b
1100#c
1101#d
1110#e
1111#f
dolayısıyla yukarıdaki sayılara 9 12 13 de dahil edilebilir. Ama ikinci şartta eşitlik olması gerekmezmi yani ikinci şart için sadece 8 olur sanıyorum ?

9,12,13 dahil edilemez cunku 2 ile AND isleminde 0 uretirler.

a 8 bit olduguna gore 0x12, 0x13, 0x16,... 0xF2 vs eklenebilir.
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

z

#18
if komutunda birde su ornegi vermek istiyorum.

if (a==0)
  {
  }

if (!a)
  {
  }

Yukaridaki iki yazim sekli de ayni anlama gelir.

a sifir ise a==0 sorusunun cevabi dogrudur.

if(a) komutunda a=0 ise yanlistir. a sifirdan farkli ne olursa olsun dogrudur.

Fakat a nin onune ! koyarsan bu unlem yanlisi dogru, dogruyu da yanlis yapar.

yani if (!a) a=0 ise dogrudur.

Şu ana kadar öğrendiğiniz if komutu ile karşılaştırma, goto ile de dallanma yaparak proje bile yapabilecek durumdasınız.

Şimdi ilk başlarda sorduğum 1 ve 99 dahil aradaki sayıları toplayan aşağıdaki örnek programa bakın.

void Soru()
{
int i, Toplam;

     Toplam=0;

     for(i=1;i<100;i++)
        {
           Toplam=Toplam+i;
        }
}

Bir de 2 ve 98 dahil aradaki cift sayıları toplayan aşağıdaki örnek programa bakın.

void Soru()
{
int i, Toplam;

     Toplam=0;

     for(i=2;i<100;i=i+2)
        {
           Toplam=Toplam+i;
        }
}

Programlari inceleyerek varsa for komutu ile ilgili sorularinizi sorun.

Toplam=Toplam+i;  yerine Toplam+=i; de yazabilirsiniz
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

muhittin_kaplan

Soru değilde Bir yerden öğrendiğim konuyu yazmak istiyorum.
Biz Basit ciler hep
if A=0 saya alışmışızdır. C de bu hatalara neden olur muş (Atama Öperatörü =, == operatörünün Eşitmi anlamına geldiğinden)
bunu engellemek için önce sayıyı sonrasında değişken ismini yazmamız öneriliyor
if 5=A gibi. Aslında Bu yazım şekli Derleyicide Hata veriyor ve biz bu hatayı Düzeltiyoruz.
if 5==A yapıp kodlarımızın tadına bakıyoruz.

z

Soru olmadığına göre her şey yolunda.

Şimdi de 1 ve 99 dahil ara sayıların toplamını while komutu ile yazın.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

muhittin_kaplan

#21
1 ile 99 un arasının toplamı mı ?

1 + 2 + .... + 97 + 98 + 99

eistain_54

#22
c ile:
int toplam,i;
toplam=0
while (i=0;i<100;i++)
{
toplam=toplam+i
}


basic:
i var word
toplam var word
i=0
toplam=0
while i<100
toplam=toplam+i
i=i+1
wend
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

muhittin_kaplan

#23
        Dim A As Byte                  ;8 Bitlik A
        Dim Toplam As Word       ;16Bitlik Toplam

        While A < 100                 ;A 100 den küçükse Bunları Yap
            Toplam = A + Toplam
            A = A + 1
        Wend

Yazdığın programda, A ve Toplamı  en başta sıfırlamak gerekmezmi?

Aşağıdaki de C deki programimiz

int a,Toplam;

        a=1;
        Toplam=0; 

        while(a<100)
           {
               Toplam+=a;
               a++;
           }

z

#24
eistain_54 while for gibi değil.

Şimdi while komutunu, soracağım soruda uygun şekilde kullanın.

Port1 ve Port2 adında değişkenlerim var. Aslında bunlar donanımsal bir port.

Bu portların C'de int Port1, Port2; şeklinde tanımlandığını varsayın.

Port1 den okunan verinin 7. biti 1 ise data hazır anlamına gelmektedir. Eger data hazırsa datayı Port2 portundan okuyabilirsiniz.

Portların en düşük bitinin numarası 0 dır.

Data gelinceye kadar bekleyen, ve gelen data 0x55 ise Buldum adındaki etikete gidip sonsuz döngüye giren Basic ve C kodlarını yazın.

(Gelen Data 0x55 degilse yeni Datayı beklesin)
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

muhittin_kaplan

Yeni Tanımladığım bir değişkeni sıfırlamam.

muhittin_kaplan

#26
Dim Port1 as byte
Dim Port2 as byte

while=1 
   if Port1.7=1
   if Port2=$55
            goto Buldum
   endif
    endif
wend
     
Buldum: goto Buldum

z

#27
Peki C de nasıl yazarız?

Farklı bir kaç örnek istiyorum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

eistain_54

bana biraz zaman verin ekran klavyesiyle yazıyoum...
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

muhittin_kaplan

Alıntı yapılan: bunalmis - 29 Ekim 2011, 19:14:08
Peki C de nasıl yazarız?

Farklı bir kaç örnek istiyorum.
Hocam Burada Ben Bekleyeyim. Ben Olsam Bir Fonksiyonlar Oluşturur Kontrol Eder Dönerdim.