Fonksiyonlar.

Slides:



Advertisements
Benzer bir sunumlar
Nesneye Yönelik Programlama
Advertisements

Hazırlayan ve Sunan Ali Yasin Çakılcı HUNROBOTX
Fonksiyonlar - Functions
Fonksiyonlar.
Programlama-II (Java ile Bilgisayar Programlama)
Bölüm 4 İşlevlerve Modüler Programlama. 1 / 8 İşlev Tanımı /* İşlev açıklama satırı */ ( ) { }
Değişken Bildirimleri
Atama ve Girdi/Çıktı Komutları
Soru1: kuvvet(taban,us) Şeklinde bir yinelenen fonksiyon yazın
Bölüm 10 Yapılar ve Birleşimler
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Fonksiyonlar Fonksiyon nedir?
Fonksiyonlar.
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
Paralel Programlamaya Giriş
FONKSİYONLAR.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Fonksiyonlar –Programı modüler hale getirir –Yerel değişkenler,
Bilgisayar Programlama
Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Fonksiyonlar Fonksiyon Tanımı
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
C PROGRAMLAMA FONKSİYONLAR Adres ile Fonksiyon Çağırma Pointer (İşaretçiler) ile Fonksiyon Çağırma Rekürsif Fonksiyonlar.
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
C++.
Örnek Adam asmaca oyununun programının yazılması.
1 Yapılandırılmamış programlama Prosedür/Fonksiyon gerekliliği Prosedural Programlama Fonksiyon Tanımlama/Prototip/Çağırma Örnek fonksiyonlar Fonksiyon.
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
2. HAFTA 2. Hafta.
Algoritmalar ve Programlama I Ders 10: ALTPROGRAM KAVRAMI ve FONKSİYON
Bölüm 3 Atama ve Girdi/Çıktı Komutları Bölüm 3 Atama ve Girdi/Çıktı Komutları Atama Komutu Operatörler İsim Sabitleri Veri Tipi Dönüşümü Çıktı Fonksiyonu.
4. Hafta1 4. HAFTA. 4. Hafta2 Fonksiyonlar  Büyük problemler, küçük parçalara bölünerek kolay çözülür  Yazılımlar benzer modüller içerirler  Hata ayıklama.
Fonksiyonlar.
AB’15 Arduino ile sensörler dersi
BİLGİSAYAR programlama II
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
C dili kullanıcıya kendi ihtiyacı olan bir fonksiyonu yazma imkanı vermiştir. Bir sayının faktöriyelini almaya ihtiyaç duyduğumuzu ve aynı zamanda asal.
Algoritma ve Programlama
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Bilgisayar Programlama BIL 107
Fonksiyonlar ve Diziler
YAPISAL PROGRAMLAMA Hafta-5
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
C Programlama Dili Bilgisayar Mühendisliği.
C’de Fonsiyonlar Aslı Ergün.
Motor Sürücü Devresi ile Kontrol
EETE233 Mikrodenetleyiciler ArduIno ile Programlama
GAZİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
BİLGİSAYAR PROGRAMLAMA Ders 8: Fonksiyonlar
DİZİLER Bellekte sıralı bir şekilde bulunan ve aynı türden bilgilerin saklandığı veri yapısına dizi (array) denir. Örneğin kullanıcıdan 7 kişinin not ortalamasını.
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
FONKSİYONLAR Programlamada fonksiyon kullanmanın en önemli sebebi kodların tekrar edilmesini engellemektir. Örneğin; karekök yada üsalma işlemi yapan bir.
Doğu Akdeniz Üniversitesi Bilgisayar Ve Teknoloji Yüksek Okulu
Bölüm 2 C Dilinin Temelleri
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
EETE233 Mikrodenetleyiciler ArduIno ile Programlama
ARDUİNO Arduino Eğitimleri Bölüm 4 Programlama Dili Temelleri - II
GAZİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
Fonksiyonlar.
YAPISAL PROGRAMLAMA Hafta-6
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
ARDUİNO Arduino Eğitimleri Bölüm 2 Arduino’ya Giriş
BİLGİSAYAR programlama II
YAPISAL PROGRAMLAMA Hafta-7
Bölüm 6: Kullanıcı Tanımlı Fonksiyonlar I
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Bölüm 2 C Dilinin Temelleri
C ile Programlamaya Giriş
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

Fonksiyonlar

FONKSİYONLAR Fonksiyonlar bazı alt işlemleri gruplara ayırıp, modüler olarak çözmek için yazılırlar. Fonksiyonlarda fonksiyon adı, gelen ve giden parametresi olur. #include <stdio.h>  void mesajyaz () { printf("Ben bir fonksiyonum !\n"); }   int main () mesajyaz (); return 0;

FONKSİYON ANATOMİSİ Fonksiyon tipi(çıkış parametre türü) : int Fonksiyon adı: toplama Fonksiyon giriş parametreleri: a,b // basit parametreli fonksiyon ornegi1 #include <stdio.h> int toplama (int a, int b) { int r; r=a+b; return (r); } int main () int z; z = toplama (5,3); printf(‘’%d’’, z); return 0;

ARDUINODA FONKSİYONLAR Fonksiyonlar bazı alt işlemleri gruplara ayırıp, modüler olarak çözmek için yazılırlar. Arduino fonksiyon yazımı, C dilindeki fonksiyon yapısına çok benzer. Fonksiyonlar loop, setup veya başka bir fonksiyon içerisinden çağrılabilirler.

FONKSİYONLAR DÖNÜŞ PARAMETRELERİ

FONKSİYON PARAMETRELERİ Arduino Programlama dili c,c++ yapısında fonksiyonlar kullanır. Burada fonksiyon parametre alabilir, ve çağrıldığı yere değer döndürebilir.

Giriş Parametresiz Fonksiyon

Giriş Parametreli Fonksiyon

Değer döndürmeyen fonksiyon örneği void printmessage () { Serial.println("I'm a function!"); } loop () printmessage ();

ARDUINO FONKSİYONLAR ÇAĞIRMA /* Seri haberleşme üzerinden “Arduino” yazdıran fonksiyon saniyede 1 kez çağırılıyor. Bilgisayar Ekranindan Arduino IDE monitorunu açınız. Arduino yazısı 1 Sn aralıklarla gorulebilir.Seri Haberleşme örneği (UART) Baud rate = 9600 olarak ayarlandi. IDE ortamındaki Seri monitor’ un de default değeri 9600’ dur. */ void setup() { Serial.begin(9600); } void loop() ArduinoYazdir(); // Fonksiyon çağrısı delay(1000); // Bir saniye bekle Void ArduinoYazdir() ; // Bizim tanımladığımız fonksiyon /* Aşağıdaki fonksiyon Arduino IDE de mevcuttur */ Serial.println (“Arduino”); // Bir saniye bekle

Fonksiyon Değer Kopyalanması main() veri alanı toplam() veri alanı i a kopyalandı 12 12 j b kopyalandı 25 25 k c kopyalandı 45 45

Değer ve Referansla Çağırma main() veri alanı toplam() veri alanı Değer i Değişkenin Kopyası a 12 12 main() veri alanı toplam() veri alanı Referans &i Değişkenin Kendisi &i 12 12

Değerle Çağırma // basit fonksiyon ornegi2 #include <stdio.h> int cikarma (int a, int b) { int r; r=a-b; return (r); } int main () int x=5, y=3, z; z = cikarma (7,2); printf(‘’%d’’, z); z= 4 + cikarma (x,y); return 0;

Referansla Çağırma // referans adresiyle parameter donduren fonksiyon ornegi #include <iostream> using namespace std; void ikikat (int& a, int& b, int& c) { a*=2; b*=2; c*=2; } int main () int x=1, y=3, z=7; ikikat (x, y, z); printf(‘’%d %d %d’’, x,y,z); return 0;

Karışık Değerli // karisik parametreli fonksiyon ornegi #include <stdio.h>   void oncesonra (int x, int& prev, int& next) { prev = x-1; next = x+1; } int main () int x=100, y=0, z=0; printf(y,z); oncesonra (x, y, z); return 0;

FONKSİYONLAR GERİ DÖNÜŞ DEĞERİ Örnekler: return (a+b/c); /* parantez kullanmak zorunlu değil */ return 10; /* değişken kullanmak mecbur değil */ return topla(a, b)/2.0; /* önce topla fonksiyonu çalışır */ Programın çözüm mantığına göre bir fonksiyon içerisinde birden çok geri dönüş değeri kullanılabilir. Fakat, ilk karşılaşılan "return" deyiminden sonra fonksiyon sonlanır ve çağrılan yere bu değer gönderilir.

FONKSİYON ÖRNEKLERİ

FONKSİYON PROTOTİPİ KULLANMA Bir fonksiyon prototipi, derleyiciye fonksiyon tarafından döndürülen verinin tipini, fonksiyonun almayı beklediği parametre sayısını, parametrelerin tiplerini ve parametrelerin sırasını bildirir.

FONKSİYON PROTOTİPİ KULLANMA // fonksiyon prototipi tanimlama #include <iostream> using namespace std; void tek (int a); void cift (int a); int main () { int i; do { cout << "Bir sayi girin (Cıkıs icin 0 girin): "; cin >> i; tek (i); } while (i!=0); return 0; } void odd (int a) { if ((a%2)!=0) cout << "Sayi tektir.\n"; else cift (a); } void cift (int a) if ((a%2)==0) cout << "Sayi cifttir.\n"; else tek (a);

fonksiyonlarda parameter olarak array(dizi) kullanimi void printarray (int arg[], int length) { for (int n=0; n<length; n++) Serial.println (arg[n] ); Serial.println ("\n"); } loop () { int firstarray[] = {5, 10, 15}; int secondarray[] = {2, 4, 6, 8, 10}; printarray (firstarray,3); printarray (secondarray,5);

SERİ MONİTÖR FONKSİYONLARI Seri Monitör I/O FONKSİYONLARI Serial.begin(9600) Monitörü seri iletişimle bağlantıya açar. Serial.print() , Serial.println() Seri monitöre değer yazar. Serial.read(), Serial.readBytes(), Serial.readString(), Serial.readBytesUntil(), Serial.parseInt(), Serial.parseFloat(), Seri monitörden değer okur.

ARDUINO MATEMATİK FONKSİYONLARI Temel matematik işlemleri matematik operatörleriyle gerçekleştirebiliyoruz. Karekök alma, trigonometrik hesaplamalar gibi işlemler için matematik kütüphanesi fonksiyonlarını kullanabiliriz. #include <math.h> ile kütüphane dahil edilir. Matematik kütüphanesi fonksiyonlarından belli başlıcaları aşağıda sıralanmıştır. double cos (double __x) // returns cosine of x double fabs (double __x) // absolute value of a float double fmod (double __x, double __y) // floating point modulo double sin (double __x) // returns sine of x double sqrt (double __x) // returns square root of x double tan (double __x) // returns tangent of x double exp (double __x) // function returns the exponential value of x. double atan (double __x) // arc tangent of x double atan2 (double __y, double __x) // arc tangent of y/x double log (double __x) // natural logarithm of x double log10 (double __x) // logarithm of x to base 10. double pow (double __x, double __y) // x to power of y double square (double __x) // square of x double min (double __x, double __y) // min of x to and y double max (double __x, double __y) // max of x to and y

ARDUINO DİLİ MATEMATİK FONKSİYONLARI Val = min(Val, 100); // Val değeri ile 100 sayısını karşılaştırır hangisi // küçükse Val Değerine atama yapar. // Sonuç Hiç bir zaman 100 değerinden büyük olamaz. Val = max(Val, 20); // Val değeri ile 20 sayısını karşılaştırır. hangisi büyükse // Val Değerine atama yapar.                     // Sonuç hiç bir zaman 20 değerinden küçük olamaz. abs(a); // a değişkeninin mutlak değerini hesaplar.  a++;    // Sonra a’ nın değerini “1” artır. sqrt(val); // Sayının karekökünü hesaplar. Dönen değer Double sayı // tipindedir.

Bölüm 3: ARDUINO PROGRAMLAMA DİLİ Konu 3. 12 Bölüm 3: ARDUINO PROGRAMLAMA DİLİ Konu 3.12.8:ARDUINO’ DA KÜTÜPHANE (LIBRARY) KULLANIMI Arduino platformunda diğer programlama platformları gibi, kütüphanelerin kullanımı mevcuttur. Kütüphaneler, taslaklarınıza ekstra işlevsellik kazandırabilir. Bir taslağınızda kütüphane kullanmak için, Sketch> Import Library komutunu seçiniz. IDE ile yüklü gelen Kütüphaneler vardır, ama aynı zamanda kendi kütüphanelerizi oluşturabilirsiniz. Aşağıdaki listede bir kısım Arduino kütüphanlerinin kullanımını göreceksiniz. Standart Arduino Kütüphaneleri EEPROM – EEPROM entegreden veri okuma ve veri yazma Ethernet - Arduino Ethernet Shield aracılığıyla internete bağlanmak Firmata – Standart seri bağlantı aracılığıyla bilgisayar uygulama GSM - GSM shield ile GSM/GRPS networkunu kullanmak. LiquidCrystal – LCD ekran kullanımı. SD - SD kartlara okumak ve yazmak. Servo - Servo motor kullanımı. SPI - Serial Peripheral Interface (SPI) cihazlarla haberleşme. SoftwareSerial – Herhangi bir dijital pinden seri iletişim gerçekleştirme. Stepper – Step motor kontrolü. TFT - Arduino TFT ekran ile şekiller ve resimler oluşturmak. WiFi - Arduino WiFi shield ile internete bağlanmak. Wire – (TWI/I2C) I2C cihazlarla bağlantı. Daha fazla bilgi için aşağıdaki linke bakınız. https://www.arduino.cc/en/Reference/Libraries

GECİKME VE ZAMAN FONKSİYONLARI Delay() : milisaniye cinsinden gecikme sağlar delayMicroseconds(us_gecikme) : Microsaniye cinsinden gecikme sağlar. millis() fonksiyonu Arduino’nun çalışmasından itibaren geçen süreyi ms cinsinden döndürür. Dönüş değeri yüksek bir değer olabileceğinden “unsigned long” tipi kullanılmalıdır. ( unsigned long –işaretsiz long tipindeki sayıdır. Alabileceği değerler 0 – 4.294.967.295 arasındadır) Aşağıda gecikme ile ilgili örnek program parçacıkları görülüyor. delay(1000);                   // 1000 Ms (1 Saniyelik) gecikme sağlar. delayMicroseconds(50);        // 50 microsaniyelik gecikme sağlar.     Serial.print("Time: "); // Bilgisayar ekranında “Time:” yazısını göster. time = millis(); //Arduino programının çalışmasından itibaren geçen süreyi miliSaniye Serial.println(time); // mS cinsinden geçen zamanı gösterir.

Fonksiyonlarda Dizi Kullanımı // fonksiyonlarda parameter olarak array(dizi) kullanimi #include <iostream> using namespace std; void diziyaz (int arg[], int length) { for (int n=0; n<length; n++) cout << arg[n] << " "; cout << "\n"; } int main () { int ilkdizi[] = {5, 10, 15}; int ikincidizi[] = {2, 4, 6, 8, 10}; diziyaz (ilkdizi,3); diziyaz (ikincidizi,5); return 0;