F

pic basic string tanımlaması ?

Başlatan ferdi0435, 23 Ekim 2011, 00:51:51

ferdi0435

pic basic pro ile string tanımlaması nasıl yapılır veya stringe benzer hangi yöntem kullanılır?


ayrıca pic c dilinde string tanımlaması var mı ?

ete

Pic Basic Pro da string tanımlaması yoktur ama kullanmak için bir yöntem vardır. Lookup komutu bu imkanı bize tanımaktadır. Belkide bu nedenle ayrıca bir komut koyulmamış. Kullanım şekli şöyle;
Lookup index,["ABCDEFGHIJKLMN"],VAR
Burada index isimli değişken , dizi içindeki hangi karekterin alınacağını belirler. Index bazında alınan karekterin ASCII numarası ise Var isimli değişkene aktarılır. Örnek kullanım şekli LOOKUP X,["DENEME YAZISI"],AL şeklinde olabilir.
X=0 ise AL="D" (veya AL=68)
X=1 ise AL="E" (veya AL=69)
...
X=12 ise AL="I"
olacaktır.

C dilinde deki durumu bilemiyorum.

Ete



M_B

Alıntı yapılan: ferdi0435 - 23 Ekim 2011, 00:51:51
ayrıca pic c dilinde string tanımlaması var mı ?

char isim[5]={'a','h','m','e','t','\0'};
char isim[5]="ahmet";
char soyad[5];
şeklinde tanımlamalar mevcut.

ferdi0435

#3
hocam
char soyad[4]={ahmet}


bunu dızı seklınde atıor ve bızde bunu elde etmek ıcın ornegın

for(int i=0,i<=4,i++)
{
soyad [ı];
ms_delay(1000);
}

gibi komutlar mı kullanıyoruz ?

ccs c veya micro c de falan bunun string soyad ="ahmet";  gibi karşılığı yokmu tanımlamak için?

M_B

Aşağıdaki tanımlamaların hepsi de aynı dır.

char *ad="ahmet";
char ad[]="ahmet";

veya
char *ad;
ad="ahmet";

char soyad[]; bu bir dizi tanımıdır.
soyad icine karakter girdiği zaman string tanımlanmış oluyor.
Dizi tanımlamaları genelde programın basında yapılır.

ferdi0435

örneğin;

char soyad[4]="ahmet";

lcd_putc(soyad);


yazınca lcd de direkt ahmet yazısı gözükecek mi yoksa başka bir yöntemlemi  kullanılıyor?



M_B

Evet lcd de direk gozur.
ornegin hi-tech c de su sekılde

lcd_puts(soyad);


ferdi0435

hocam pic c dillerinden hangisini önerirsiniz derleyici bakımından falan birde kaynak gösterebileceğiniz yerler varmı program örnekleri vb kesmelerin nasıl kullanıldığına dahir veya seri haberleşmenin nasıl olduğuna dahir ete hocamın picbasic derslerine benzer c dilinde güzel açıklamaların olduğu bir kaynak önerirmisiniz?

M_B

merhaba
Pic C dili olarak hi-tech c yi oneririm. Tabi karar sizindir. İster MikroC ister CCS C secersiniz. Veya basicle devam edersiniz. Bazen diyorum basiclemi devam etsem ;)  ETE gibi hocamız var.

kaynak olarak  altakı linkteki dokumanı oneririm.
http://www.fxdev.org/muhendislik/hi-tech-pic-programlama/

ferdi0435

hocam haklısınız ete hoca sayesinde bir çok şeyi öğrendik ve öğrenmeye devam ediyoruz fakat c dillerinde başka bir tat var :)

ferdi0435

char *ad;
ad="ahmet";

hocam bunda sorun veriyor neden ?

3mZ

ETE
Hocam bu string olayı tam olarak ne işe yarıyor.

KAZIMUGUR

C tartışmaları hocamı rahatsız edecek gibi.
Boş verin c yi.
Bissürü dayatma.
Basic iyidir.
Oyuncaklarımız araçtır amaç değil.

Bakın ne güzel basic ide leri var.

http://www.norm-online.net/FineLineIDE.php

http://www.picbasic.co.uk/forum/content.php

Mucit23

Alıntı yapılan: 3mZ - 24 Aralık 2011, 20:01:59
ETE
Hocam bu string olayı tam olarak ne işe yarıyor.

Ben cevaplayayım.
String tanımlamaları aslında bir dizi değişkenlerden farksızdır. Normalde nasıl bir değişken tanımlayıp ona bir değer atayabiliyorsak
Sitring tanımlaması yapıp onada ASCII karakterler yükleyip string tanımlamasını çeşitli işlemlere sokabiliriz. Tabi String tanımlaması için kullanacağımız dizi değişkenimiz karakter sayısına uymalıdır. Aksi halde derleyici uyarı verir.
Birkaç örnek vereyim..

DIM DIZI1 as STRING * 20   
DIM DIZI2 as STRING * 20

Yukarıdaki şekilde DIZI1 Ve DIZI2 Adında iki adet strıng tanımlaması yaptık ve her biri 20 karakter kapasiteli. ( Bir anlamda derleyici 20 dilik iki adet dizi değişkeni tanımladı. Normal Dizi değişkeni tanımlamayla farkları varmı yokmu bende tam olarak bilmiyorum)

Şimdi Bu stringlere biz Ascıı karakterler yükleyebilir  ve çeşitli işlemlere sokabiliriz.
Yine örnek vermek gerekirse

DIZI1 = "Mucit23"
DIZI2 = "etepic"
şeklinde string tanımlamalarına Sırasıyla ASCI karakterleri yüklemiş olduk.

ardından biz bu stringleri Print komutuyla LCD ye yazabiliriz
Print DIZI1,DIZI2 şeklinde
Veya çeşitli if sorgularına sokabiliriz.

IF DIZI1 = "Mucit23" Then
.........
......
...

Bunun gibi yapılacak işlemler çok. Bazı yönlerden işleri çok kolaylaştırıyor.
Örnek vermek gerekirse Normalde Prınt komutları program hafızasını çok işgal eder ama string tanımlamasıyla biz bu yönden çok tasarruf edebiliriz.
Örnek vereyim.
DIZI1 adında bir string değişkenimiz olsun.

LCD ye karakter gönderirken PRINT 1,1,DIZI1 komutuyla DIZI1 içeriğini LCD ye yazarız. Sonra İstediğimiz gibi DIZI1 içeriğini değiştirerek  LCDye gönderdiğimiz karakterleri değiştiririz.
DIZI1= "Ali"
DIZI1= "Mehmet"
DIZI1= "Ayşe"
DIZI1= "İbrahim"
..................
Bu şekilde her seferinde ayrı bir print komutu kullanmamıza gerek kalmaz
Yazlışım varsa düzeltin aklıma bu kadar geldi.
Yani benzer işlemleri picbasic dede yapabilirsiniz. İlla protona gerek yok
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

3mZ

mucit 23
Teşekkür ederim. Anladım gibi bir kaç örnek yaparsam iyice yerleşir bilgi.

Powered by EzPortal