Python’da Veri Tipleri

String Veri Tipi

String, çift ya da tek tırnak içerisine yazılabilen bir ya da daha fazla harf, sayı veya özel karakterlerden oluşan bir dizidir. Python’da karakter veri tipi bulunmaz. Tırnaklar arasına yazılan her karakter dizenin bir parçasıdır. Bu parçaların indeks numaralarını kullanarak her bir karaktere erişebiliriz. Aşağıda string veri tipinde bir değişken oluşturulmuş ve bir karakterin indeks numarası kullanılarak karaktere ulaşılmıştır.

INPUT:

isim = "Mehmet"

isim[4]   #İndeks numarası 4 olan karakter "e" dir.

OUTPUT:

' e '

Integer Veri Tipi

Pozitif veya negatif tam sayılardan oluşan 32 bit veri tipidir. Python’da bir tam sayı değerinin uzunluğu sistemin sahip olduğu bellek kapasitesi ile sınırlıdır. Ancak bu uzunluktan daha uzun bir sayı tanımlamak bellek kapasitesi yeterli sistemler için mümkündür.

Long Veri Tipi

Çok daha uzun tam sayıları tanımlamak için kullanılan 64 bitlik veri tipidir.

Float Veri Tipi

Ondalık sayılardan oluşan 64 bitlik veri tipidir.

Complex Veri Tipi

a+bj şeklinde gerçek ve sanal kısımdan oluşan kompleks sayıları ifade eden veri tipidir.

List Veri Tipi

List, birbirinden farklı veri tipine sahip ögeleri barındırabilen, sıralı ve değiştirilebilir veri tipidir. Listeler, [ ] arasına yazılan değerler ile tanımlanabilir. Metinsel(string) değerler “ ”(tırnak) içerisinde yazılması gerekirken numerik değerler(int,long,float) normal yazılır. Liste içerisindeki değerler birbirlerinden “ , ” (virgül) ile ayrılır. Burada da bir ögenin indeks numarası kullanılarak ögeye ulaşılabilir hatta değiştirilebilir.

Tuple Veri Tipi

Tuple, list veri tipi gibi sıralı ögelerden oluşan veri tipidir. Tuple ile list arasındaki fark ise tuple’ın değiştirilemez olmasıdır. Tuple ( ) içerisine yazılan değerler ile tanımlanır.

Dictionary (Sözlük) Veri Tipi

Sözlük, veri değerlerini (anahtar:değer) çiftlerinde tutmak için kullanılan veri tipidir. Sözlüklerin içerisindeki içerisindeki çiftler hemen hemen her veri tipinden oluşabilen, sıralanmamış ve değiştirilebilir ögelerdir. Sözlükler { } (süslü parantez) ile yazılırlar. Bir sözlük içerisindeki anahtarların değerlerini tek tek çağırabiliriz.  Ayrıca bu anahtarların tiplerini de sorgulayabiliriz.

Boolean Veri Tipi

Mantıksal bir veri tipi olan boolean, True ve False olmak üzere iki değere sahiptir. Mantıksal olarak doğru olan duruma True, yanlış olan duruma ise False değeri karşılık gelir.

Python’da kod yazarken yukarıdaki veri tiplerine uygun olarak değişkenler tanımlayabilir ya da input( ) fonksiyonunu kullanarak dışarıdan kendimiz bir değişkene değer verebiliriz. Tanımladığımız ya da dışarıdan girdiğimiz değerlerin veri tiplerini değiştirmek mümkündür. Şimdi bu durumları inceleyelim.

String Veri Tipini Integer Veri Tipine Dönüştürme

String veri tipinde bir değişken tanımlayalım:

x = "12345"

Python, x değişkeninin değerini (“ ”) arasına yazıldığından string tipinde algılayacaktır. Bu string tipindeki x değişkenini int( ) fonksiyonunun içerisine yazarsak x değişkeni artık integer tipinde olur.

INPUT:

int(x)

print(type(x))

OUTPUT:

<class 'int'>

Burada dikkat edilmesi gereken husus tanımlanan bu string değerinin her bir karakterinin sayısal olmasıdır. Yoksa bu dönüştürme işlemi gerçekleşmez.

İki adet string tipinde değişken tanımlayalım:

 x = “1”  ve y = ” 2 ” şeklinde olsun. Burada x ve y’yi toplamayı denersek normal toplama işlemindeki gibi 3 değerini elde etmeyiz. String ifadeleri topladığımızda çıktı olarak iki ifadenin yan yana yazılmış halini görürüz.

INPUT:

x = "1"

y = "2"

print(x+y)

OUTPUT:

12

Örnek olarak tanımladığımız x değişkenini 4 değeri ile çarparsak çıktı olarak 4 defa arka arkaya yazılmış 1 rakamını görürüz.

INPUT:


x = "1"

print(4*x)

OUTPUT:

1111

Böylece toplama ve çarpma işlemlerinin string ifadeler için ekleme ve arka arkaya ekleme işlevlerinde kullanılabileceğini görmüş oluruz.

String Veri Tipini Float Veri Tipine Dönüştürme

Karakterleri rakamlardan oluşan string ifadeleri float() fonksiyonu ile float tipine dönüştürebiliriz.

INPUT:

x = "20.21"

y = float(x)

print(type(y))

OUTPUT:

<class 'float'>

Float ya da Integer’dan String’e Dönüştürme

Tanımladığımız sayısal bir değere sahip olan değişkeni str() fonksiyonu ile string tipine dönüştürebiliriz.

INPUT:

x = 10

y = str(x)

print(type(x))

OUTPUT:

<class 'int'>

Boolean Veri Tipini String Ve Integer Veri Tipine Dönüştürme

Boolean, True ve False değerlerine sahip veri tipi olduğunu belirtmiştik. Aşağıdaki örnekte boolean tipinde bir değişkenin integer ve string veri tiplerine dönüştürülmesi gösterilmiştir.

INPUT:

dogru_mu = True

print(type(dogru_mu))

y = int(dogru_mu)

print(type(y))

OUTPUT:

<class 'bool'>

<class 'int'>

ya da

INPUT:

dogru_mu = False

print(type(dogru_mu))

y = str(dogru_mu)

print(type(y))

OUTPUT:

<class 'bool'>

<class 'str'>

Bu tip dönüştürmenin tersi olan integerdan boolean’a ve string’ten boolean’a dönüştürmeyi örnekle gösterelim.

1-

INPUT:

sonuc = " dogru "

print(type(sonuc))

yeni_sonuc = bool(sonuc)

print(type(yeni_sonuc))

OUTPUT:

<class 'str'>

<class 'bool'>

2-

INPUT:

x = 10

print(type(x))

y = bool(x)

print(type(y)) 

OUTPUT:

<class 'int'>

<class 'bool'>

Böylece veri tiplerini ve tip dönüştürmelerini görmüş olduk. Şimdi ise matematiksel işleçlere göz atalım. Bu işleçleri aşağıdaki tablodan inceleyebilirsiniz.

İŞLEÇLERKARAKTER
Toplama+
Çıkarma
Çarpma*
Bölme/
Tam Sayı Bölme//
Mödüler Bölme%
Kuvvet Alma**

Bu işleçlerden faydalanarak birkaç tane problem çözüp konuyu sonlandıralım.

Örnekler

1- Yarıçapı 5 olan bir dairenin çevresini hesaplayınız.

INPUT:

r = 5

pi = 3.14

dairenin_cevresi = 2*pi*r


print("Dairenin Çevresi :{}".format(dairenin_cevresi))

OUTPUT:

Dairenin Çevresi : 31.400000000000002

2- Yukarı doğru v0 hızı ile atış hareketinde, cismin herhangi bir t anındaki yüksekliği -h = v0.t – (1/2) .g.t bağıntısı ile verilir. Yukarı doğru 20 m/s hızla atılan cismin 5 saniye sonra yüksekliğini hesaplayınız. (g = 9.81 m/s2 , π = 3.14 alınız.)

INPUT:

v0 = 10

t = 3

g = 9.81

h = v0*t-(1/2)*g*(t**2)

print("5 saniye sonra yükseklik : {}".format(-1*h))

OUTPUT:

5 saniye sonra yükseklik : 14.145000000000003

3- L uzunluklu bir basit sarkacın periyodu T = 2π(L/g)(1/2) olarak verilir. 5 m uzunluklu sarkacın periyodunu hesaplayınız. (g = 9.81 m/s2 , π = 3.14 alınız.)

INPUT:

L = 5

g = 9.81

pi = 3.14

T = 2*pi*((L/g)**(1/2))

print("Sarkacın Periyodu : {}".format(T))

OUTPUT:

Sarkacın Periyodu : 4.483427405990983

Bir sonraki yazıda Python’da karşılaştırmalar ve döngülerden bahsedeceğim.

PYTN6O05URZXMNUNQC

 

Algoritma ve Akış Diyagramı Örnekleri

Algoritmaya giriş yaparken akış diyagramlarında eşkenar dörtgenlerin karar verici (karşılaştırmalı) durumlarda kullanıldığını ve ana hat itibariyle diyagramlarda temelde kullanılan 6 şekli önceki yazımızda ifade etmiştik. Farklı anlatımlarda farklı sembollerin de kullanıldığını belirterek bu yazıda da akış diyagramlarında karar verici adımların döngülerini ve örneklerini göstereceğim.



Şemsiye Almayı Mıyım Diyagramı Örneği

“Evden çıkarken şemsiye almalı mıyım” sorusu için bir algoritma ve akış diyagramı yapacak olsaydık mantık örgüsüne böyle bir akış diyagramı oluşurdu.

Adım0: Başla

Adım1: Yağmur Yağıyor Mu?

Adım2: Cevap “Evet” ise Adım4’e git

Adım3: Cevap “Hayır” ise Adım9’a git

Adım4: Şemsiye ara

Adım5: Şemsiye buldun Mu?

Adım6: Cevap “Evet” ise Adım8’e git

Adım7: Cevap “Hayır” ise Adım1’e git

Adım8: Şemsiyeyi yanına al ve Adım10’a git

Adım9: Şemsiyeyi yanına alma

Adım10: Bitir

Görüldüğü üzere karşılaştırmalı durumların oluşturduğu döngüyü de her bir adımda belirttik. Bu algoritmanın akış diyagramını yapacak olursak:

Kahve Makinesi Çalışma Diyagramı Örneği

Basit bir kahve makinesinin çalışma mantığını diyagram haline getirecek olursak:

Hastane İşleyiş Diyagramı Örneği

Farklı bir örnekle bir hastanenin işleyiş diyagramını yapacak olsaydık:

Bu örnekte dikkat edilmesi gereken fark her bir kapalı çevrimin bir döngü olduğudur. Örnek olarak Hasta Kayıtlı Mı? sorusu için eğer cevap hayırsa program hasta kaydı isteyecektir. Hasta kaydı girildikten sonra döngünün devamında ise program tekrar hasta kayıt kontrolü yapacak ve artık hasta kayıtlı olduğu için program bir sonraki adımdan devam edecektir. Aksi durumda hasta kaydı yapılmayıp bir sonraki aşamaya geçilmek istendiğinde ise program bu adımda tekrar bir döngü içine girecek ve tekrar hasta kaydı soracaktır.

Acil Yardım Hattı Diyagramı Örneği

Diğer bir örnekte acil yardım hattının işleyiş diyagramını inceleyebiliriz.

Klima Sıcaklık Kontrol Diyagramı Örneği

Bir diğer akış diyagramı örneğinde ise kapalı bir çevrimi gösteren klimanın sıcaklık kontrol diyagramını inceleyelim.

Burada ise farklı olarak veri tabanından daha önce girilen sıcaklık değerini çağırmak için silindir şekli kullanılmıştır.

Daha fazla örneği daha sonra yine buraya ekleyeceğim. Bir önceki yazı olan algoritma ve programlamaya giriş’i henüz okumadıysanız buradan okuyabilirsiniz.

ALGO4778J5DE918DYC
F1 Car Meshing by using Finite Element Method
Sonlu Elemanlar Metodu Nedir? Kullanım Alanları

Sonlu Elemanlar Metodu veya Yöntemi (SEM, Finite Element Method, FEM), genellikle mühendislik hesaplamalarında kullanılan, herhangi bir fiziksel niceliğe sahip bir maddenin çeşitli analizlerini gerçekleştirebilmek için kullanılan sayısal bir tekniktir.

Bu metoda göre, ortada çözümlenmesi gereken bir problem ve bu problemde, belirli şartlar altında analizi yapılması gereken bir yapı vardır ve bu yapı sonlu elemanlar olarak adlandırılan belirli sayıda küçük parçalara bölünerek sonraki analizlerinde her bir parçanın matematiksel olarak ‘davranışının’ test edilmesi amaçlanır. Bunun için çoğunlukla kısmi diferansiyel denklemler kullanılarak türetilen formüller kullanılır.

Sonlu elemanlar metodu kullanılarak analizi yapılan bir maddenin gösterimi

Sonlu Elemanlar Metodunun Tarihçesi

Sonlu elemanlar metodunun temellerinin Euler’in çalışmalarına dayandığı söylenebilir. Ancak, SEM ile ilgili en eski matematiksel makaleler Schellback (1851) ve Courant’ın (1943) çalışmalarında bulunabilir. Başlıca, havacılık ve inşaat mühendisliği ile ilgili yapısal mekanik sorunlarını ele almak için mühendisler tarafından bağımsız olarak geliştirilmiştir. Gelişmeler 1950’lerin ortalarında Turner, Clough, Martin ve Topp (1956), Argyris (1957), Babuska ve Aziz (1972) ile başlamış, Zienkiewicz (1971) ve Strang ve Fix (1973) kitapları da SEM’de gelecekteki gelişimin temellerini atmıştır. Sonlu elemanlar metodunun daha detaylı bir gelişim sürecini İngilizce olarak buradan inceyeleyebilirsiniz.

Teorik Boyut

Sonlu elemanlar metodu, sonsuz boyutlu bir fonksiyon uzayındaki fonksiyonları, sonlu boyutlu bir fonksiyon uzayındaki fonksiyonlara ve ardından sayısal yöntemlerle vektör uzayında izlenebilen vektörlere dönüştürme işlemidir.

Bu, nesnenin bir ağının (sınırlı sayıda noktaya sahip olan çözüm için sayısal alan) oluşturulmasıyla uygulanan uzay boyutlarında belirli bir alan ayrıklaştırmasıyla elde edilir. Bir sınır değer probleminin sonlu eleman yöntemi formülasyonu, sonunda bir cebirsel denklem sistemi ile sonuçlanır. Yöntem, bilinmeyen işlevi etki alanı üzerinden yaklaştırır. Bu sonlu elemanları modelleyen basit denklemler daha sonra tüm problemi modelleyen daha büyük bir denklem sistemine birleştirilir. Daha sonra SEM, ilişkili bir hata fonksiyonunu en aza indirerek bir çözüme yaklaşmak için varyasyonlar hesabından varyasyonel yöntemler kullanır.

Bir fenomeni SEM ile incelemek veya analiz etmek genellikle sonlu eleman analizi (FEA) olarak adlandırılır.

Sonlu Elemanlar Metodunun Kullanım Alanları

Makine mühendisliği disiplini çatısı altındaki çeşitli uzmanlıklar (havacılık, biyomekanik ve otomotiv endüstrileri gibi), ürünlerinin tasarımında ve geliştirilmesinde yaygın olarak entegre SEM kullanır. Birkaç modern SEM paketi, termal, elektromanyetik, akışkan ve yapısal çalışma ortamları gibi belirli bileşenleri içerir. Yapısal bir simülasyonda, SEM, sertlik ve mukavemet görselleştirmelerinin üretilmesinde ve ayrıca ağırlık, malzeme ve maliyetleri en aza indirmede muazzam bir şekilde yardımcı olur.

Temel Sonlu Elemanlar

     Lineer eleman  –  Kuadratik eleman            Lineer eleman – Kuadratik eleman

Sonlu Elemanlar Analizi ve Uygulamadaki Faydaları

Bir modelin en gerçekçi halinden çözümlenebilir haline gelinceye kadar yukarıdaki gibi bir süreç izlenir.

Sonlu elemanlar analizi(SEA, Finite Element Analysis, FEA), yapıların nerede büküldüğünün veya burulduğunun ayrıntılı görselleştirilmesine izin verir ve gerilmelerin ve yer değiştirmelerin dağılımını gösterir. SEM yazılımı, bir sistemin hem modellemesinin hem de analizinin karmaşıklığını kontrol etmek için çok çeşitli simülasyon seçenekleri sunar. Benzer şekilde, istenen doğruluk düzeyi ve ilişkili hesaplama süresi gereksinimleri, çoğu mühendislik uygulamasına hitap etmek için aynı anda yönetilebilir. SEM, tasarım üretilmeden önce tüm tasarımların inşa edilmesini, iyileştirilmesini ve optimize edilmesini sağlar. Ağ (mesh), modelin ayrılmaz bir parçasıdır ve en iyi sonuçları vermek için dikkatlice kontrol edilmelidir. Genel olarak bir ağdaki eleman sayısı ne kadar yüksekse, ayrıklaştırılmış problemin çözümü o kadar doğru olur. Ancak, sonuçların yakınsadığı ve daha fazla mesh iyileştirmenin doğruluğu artırmadığı bir değer vardır.

Sonlu elemanlar analizinin sağlamış olduğu güçlü tasarım imkanları, birçok endüstriyel uygulamada hem mühendislik tasarımlarının standardını hem de tasarım sürecinin metodolojisini önemli ölçüde geliştirmiştir. Ayrıca, SEM’in geliştirilmesi, ürünleri konseptten üretim hattına alma süresini önemli ölçüde azaltmıştır. Öncelikle test ve geliştirmenin hızlandırılması, SEM kullanılarak geliştirilmiş ilk prototip tasarımları sayesinde olmuştur. Özetle, SEM’in faydaları arasında artan doğruluk, geliştirilmiş tasarım ve kritik tasarım parametreleri hakkında daha iyi içgörü, sanal prototip oluşturma, daha az donanım prototipi, daha hızlı ve daha ucuz tasarım döngüsü, artan üretkenlik ve artan gelir bulunur.

 

ANZ76T18TCNP5R6229