BMS-301 Kabuk Programlama Güz 2017 (7. Sunu) (Yrd. Doç. Dr. Deniz Dal)

Slides:



Advertisements
Benzer bir sunumlar
Nesneye Yönelik Programlama
Advertisements

Görsel C# Programlama Güz 2009 (6. Hafta).
JAVA’DA DİZİLER Dr.Galip AYDIN.
Bölüm 3: Diziler BTEP 102 – Veri Yapıları ve Programlama
Python Aslı Ergün.
BMS-301 Kabuk Programlama Güz 2015 (6. Sunu) (Yrd. Doç. Dr. Deniz Dal)
BMS-301 Kabuk Programlama Güz 2015 (5. Sunu) (Yrd. Doç. Dr. Deniz Dal)
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
Dosya Yönetimi Dosya, Klasör ve Sürücüler HÜSEYİN ALİOSMANOĞLU.
BM-308 Paralel Programlamaya Giriş Bahar 2016 (2. Sunu) (Yrd. Doç. Dr. Deniz Dal)
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
BÖLÜM 4 PROGRAMLAMA DİLLERİ. PROGRAMLAMA DİLLERİNDE KULLANILAN VERİ TİPLERİ Bilgisayarda işlenen veriler iki türdür: Sayısal Alfasayısal.
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
Örnek 1 Kullanıcının girdiği bir sayının karesini hesaplayan bir program yazınız.
1. Ders Bir, İki ve Üç Yazarlı Eserlerin Kataloglanması Prof. Dr. Bülent Yılmaz Arş. Gör. Tolga Çakmak.
9. HAFTA 25 Nisan2016. Fonksiyon M-Dosyaları Fonksiyon dosyaları ilk satırda “function” kelimesi bulunan “.m” uzantısı bulunan dosyalardır. MATLAB içinde.
PHP Nedir? ● Bir web sayfası oluşturabilmeniz için: ● HTML kullanmalısınız. ● Sayfadaki etkileşimi artırmak için ● JavaScript/VBScript ● Görselliği bütün.
Arasınav ders ve temaları. Tıbbi Mikrobiyoloji Anabilim Dalı , Bahar, Trakya Üniv Tıp Fak 6. Kurul, Neşe Akış, PhD, Tıbbi Mikrobiyoloji.
Sevgili 8.sınıf öğrencisi; Kendi yeteneklerin, ilgilerin, değerlerin hakkında bilgi sahibi olmak ve daha doğru lise tercihi yapabilmek için lütfen öncesinde.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
YÖNLENDİRME. Yönlendirme ● Statik ● Dinamik ● Kaynakta yönlendirme ● Hop by hop yönlendirme.
BİLGİSAYAR PROGRAMLAMA DERSİ
Mobil Uygulama Entegrasyonu İle
İnternet'e Bağlanmak İçin Neler Gereklidir?
İÇİNDEKİLER NEGATİF ÜS ÜSSÜ SAYILARIN ÖZELLİKLERİ
BM-103 Programlamaya Giriş Güz 2016 (3. Sunu)
BM-103 Programlamaya Giriş Güz 2016 (8. Sunu)
BÖTE 323: Internet Tabanlı Programlama Dr. Ercan TOP
Delphi Ders3 Asli Ergün.
BM-103 Programlamaya Giriş Güz 2016 (7. Sunu)
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H05
DOĞAL SAYILAR TAM SAYILAR
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı
BİLİŞİM SİSTEMLERİ GÜVENLİĞİ (2016)
Derinlik öncelikli arama (Depth-first Search(DFS))
Doğu Akdeniz Üniversitesi Bilgisayar Ve Teknoloji Yüksek Okulu
Dizi (Array) ve Küme (Cluster)
RESİM VE RESİM DÜZENLEME İŞLEMLERİ
STORAGE BÜŞRA KARADENİZ
My EBSCOhost Kişisel Klasörünün Kullanımı
Dosya, Klasör ve Sürücüler
Pascal’da Kullanılan Standart Prosedür ve Fonksiyonlardan Bazıları
İSTATİSTİK Yrd. Doç. Dr. Cumhur TÜRK
3.hafta METODLAR.
PARAMETRİK HİPOTEZ TESTLERİ
Bilgisayar Programlamasına ve Veri Analizine Giriş - VI
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
İleri Algoritma Analizi
Ölçü transformatorları
Dicle Üniversitesi Online Talep Takip Sistemi
Algoritmalar II Ders 12 DFS algoritması. Kirişlerin sınıflandırılması. Topolojik Sıralama.Kuvvetli bağlantılı bileşenler.
NİŞANTAŞI ÜNİVERSİTESİ
Bilgisayar II 26 Nisan-7Mayıs Öğr. Gör. Feyza Tekinbaş.
Evren-Örneklem, Örnekleme Yöntemleri 2
İNTERNET PROGRAMCILIĞI 2
NİŞANTAŞI ÜNİVERSİTESİ
Değerler ve Değişkenler
NİŞANTAŞI ÜNİVERSİTESİ
Hata ayıklama da denilen programlama hatalarını bulma ve düzelme işlemine ne denir? a) Veri b) Yazılım c) Bug d) Debugging e) Donanım.
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
Pascal’da Kullanılan Standart Prosedür ve Fonksiyonlardan Bazıları
SULAMA YÖNTEMLERİ Prof. Dr. A. Halim ORTA.
NİŞANTAŞI ÜNİVERSİTESİ
MTM216 GÖRSEL PROGRAMLAMA
MTM216 GÖRSEL PROGRAMLAMA
İleri Algoritma Analizi
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
Bilimsel Araştırma Yöntemleri
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

BMS-301 Kabuk Programlama Güz 2017 (7. Sunu) (Yrd. Doç. Dr. Deniz Dal)

Bu sunu aşağıdaki link kullanılarak hazırlanmıştır. http://www.thegeekstuff.com/2010/06/bash-array-tutorial/

Dizi Genellikle aynı türde (bazen farklı türde) birden fazla veriyi saklamak amacıyla kullanılan en temel veri yapısına dizi denir. Bash kabuğu programlamada: dizilerin boyutları ile ilgili bir maksimum kısıtlaması yoktur. dizi üyeleri ardışıl olarak oluşturulmak veya indekslenmek zorunda değildir. dizi indisi 0’dan başlar.

Dizi Deklarasyonu ve Dizi Elemanlarına İndeks (İndis) Kullanılarak Değer Atama Aşağıdaki kullanım Bash kabuğu programlamada bir dizinin otomatik olarak oluşturulmasını sağlar. name[index]=value; Bu kullanımda name dizinin adıdır. index ise değeri sıfıra eşit veya sıfırdan büyük bir tam sayı ve deyim olabilir. Dizi elemanlarına index sayesinde ulaşılır ve index kare parantezler arasına alınır.

Dizi Elemanlarına İndeks Kullanarak Ulaşım $ cat ArrayManip.sh #!/bin/bash Linux[0]="Debian"; Linux[1]="Red Hat"; Linux[2]="Ubuntu"; Linux[3]="Suse"; Linux[4]="Fedora"; echo ${Linux[1]}; #Dizi Elemanına İndeks İle Ulaşmak İçin echo $Linux; #echo ${Linux}; #İndex Belirtilmezse $./ArrayManip.sh Red Hat Debian

Dizi Deklarasyonu Anında Dizi Elemanlarına İlk Değer Atama Her bir dizi elemanını indeks kullanarak tek tek oluşturmak yerine, bir Bash dizisi deklarasyon anında ilk değer atama listesi kullanılarak da oluşturulabilir. Bu amaçla normal parantezler kullanılır ve dizi elemanları birbirlerinden en az bir boşluk karakteri ile ayrılır. Bir dizi elemanının boşluk karakteri içermesi durumunda ilgili dizi elemanı tırnak içerisine alınmalıdır. $ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ echo ${Linux[1]}; Red Hat

Boş Dizi Deklarasyonu $ Linux=();

Bir Dizinin Tamamına Ulaşım İndeks numarası olarak @ karakteri kullanılarak bir dizinin tamamına ulaşılabilir. (Bu işlem bir dizinin elemanlarını bir döngü ile ziyaret edebilmek amacıyla sıklıkla kullanılır.) $ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ echo ${Linux[@]}; Debian Red Hat Ubuntu Suse Fedora

Bir Dizinin Eleman Sayısı (Boyutu) $ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ echo ${#Linux[@]}; 5

Bir Dizinin n. İndisindeki Elemanının Boyutu $ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ echo ${#Linux[2]}; #İndeks 2’de bulunan dizi elemanının boyutu 6

Bir Dizinin Belirli Bir İndis Aralığındaki Elemanlarına Ulaşım $ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ echo ${Linux[@]:3:2}; #3. ve 4. indekslerdeki elemanlar Suse Fedora $ echo ${Linux[@]:0}; ?? $ echo ${Linux[@]:3};

Bir Dizinin Belirli Bir Elemanının Belirli Bir Aralıktaki Elemanlarına Ulaşım $ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ echo ${Linux[2]:0:4}; #2. indeksteki elemanın ilk 4 karakteri Ubun

Mevcut Bir Dizinin Sonuna Yeni Bir Dizi Elemanı Ekleme $ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ Linux=("${Linux[@]}" "Knoppix"); $ echo ${Linux[5]}; Knoppix $ echo ${#Linux[@]}; 6 $ Linux=(${Linux[@]} "Knoppix"); $ echo ${# Linux[@]}; 7 Orijinal dizi çift tırnak içerisine alınmazsa, içinde boşluk karakteri bulunan dizi elemanları aynen muhafaza edilmezler. If the elements in your array could contain whitespace, you need to use double quotes so that each element is treated as a separate "word:" foo=("the first" "the second") for i in "${foo[@]}"; do # Expands to 'for i in "the first" "the second"; do...' echo $i # so the loop runs twice done # the first # the second Contrast this with the behavior without double quotes: for i in ${foo[@]}; do # Expands to 'for i in the first the second; do...' echo $i # so the loop runs four times! # the # first # second

Mevcut Bir Dizinin Sonuna Yeni Bir Dizi Elemanı Ekleme $ Linux+=("Kali Linux"); veya $ Linux[${#Linux[@]}]="Knoppix";

Mevcut Bir Dizinin Başına Yeni Bir Dizi Elemanı Ekleme $ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ Linux=("Kali Linux" "${Linux[@]}"); $ echo ${Linux[@]}; Kali Linux Debian Red Hat Ubuntu Suse Fedora Çift tırnak kullanılmasaydı ne olurdu? Çift tırnağın kullanılması ve kullanılmaması durumlarında dizinin boyutlarını test ediniz.

Bir Dizi Elemanının Silinmesi Çift tırnak kullanılmasaydı ne olurdu? Çift tırnağın kullanılması ve kullanılmaması durumlarında dizinin boyutlarını test ediniz. $ cat ArrayManip.sh #!/bin/bash Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); pos=3; Linux=("${Linux[@]:0:$pos}" "${Linux[@]:$((pos + 1))}"); echo ${Linux[@]}; $./ArrayManip.sh Debian Red Hat Ubuntu Fedora

Bir Dizinin Kopyalanması $ Linux=("Debian" "Red Hat" "Ubuntu" "Suse" "Fedora"); $ LinuxYedek=("${Linux[@]}"); $ echo ${LinuxYedek[@]}; Debian Red Hat Ubuntu Suse Fedora Çift tırnak kullanılmasaydı ne olurdu? Çift tırnağın kullanılması ve kullanılmaması durumlarında orijinal ve kopya dizinin boyutlarını test ediniz.

Bir Dizinin Elemanlarına Döngü İle Ulaşım (1) $ cat LogFile.txt Welcome to thegeekstuff Linux Unix

Bir Dizinin Elemanlarına Döngü İle Ulaşım (2) $ cat LoadContent.sh #!/bin/bash fileContent=(`cat LogFile.txt`) ; for i in "${fileContent[@]}" #Çift tırnaklara dikkat do echo "$i"; done $ ./LoadContent.sh

Bir Dizinin Elemanlarına Döngü İle Ulaşım (3) $ cat LoadContent.sh #!/bin/bash fileContent=($(cat LogFile.txt )) ; for((i=0;i<${#fileContent[@]};i++)) do echo "${fileContent[$i]}"; done $ ./LoadContent.sh

Bir Karakter Dizisinin (String) Boyutunun/Uzunluğunun Tespiti $ isim="Deniz DAL"; $ echo ${#isim}; 9 $ echo $isim | wc -c 10 $ echo -n $isim | wc -c Neden? $ echo $isim | od -abc

Uygulama Kendisine parametre olarak aldığı bir klasörün içerisindeki en uzun isme sahip dosyayı: dosya uzantısı isme dahil iken dosya uzantısı isme dahil değilken bularak ekrana basan iki kabuk programı yazınız.