Yazılım Geliştirme Teknikleri Semineri
0Merhaba arkadaşlar, geçen ay ki seminerden bahsedeceğim başlıkda sadece yazılım geliştirme teknikleri yazdım fakat sadece bundan ibaret değildi diğer konular , sosyal medya ve dijital dünya ,scrum ve agile metodolojisi üzerine konu anlatımlarında geniş bir vakit ayırdık ve çok verimli olduğunu söyleyebilirim ekip çalışmasnıdan yazılım final evresine kadar yapılması gerekenler, java ile yazılım geliştirme üzerine birçok konu ele aldındı , kanaatimce en güzel bölüm Nazi Berat’ın kişisel gelişim ve girişimcilik üzerine konu aldığı anlatımdı , yaşam hikayesini öğrendiğimiz Nazif Berat gerçekten çok ilginç ve bi o kadar da değişik azmi , hırsı sayesinde yaptıklarının kendisini nerelere getirdiğini , özellikle kazandığı acı tecrübelerini aktaran ve aklımızdaki ticari fikir sorularını cevaplayan anlatımlarını ağzımız açık dinledik doğrusunu söylemek gerekirse konuşmasının bitmesini istemedik çünkü anlattığı her anısından birşeyler kaptık.
Özdevingen(Recursive) Yapısı ile Dizi Toplamı ve Ortalaması
0Merhaba arkadaşlar bu programda recursive programlama mantığını göreceğiz.
Aşağıdaki başlangıç değerleri ile tanımı verilmiş A[10] dizinli değişkenini kullanarak aşağıdaki işlemleri yapan özyinemeli(Recursive) fonksiyonları hazılıyoruz.
int a[10]={25,48,12,91,74,148,39,1,98,86};
• a[] Dizinli değişkenin en büyükk değerinin bulunması. MaxBul(),
• a[] Dizinli değikenin eleman değerlerinin toplamının bulunması. ToplamBul(),
• a[] Dizinli değişkenin elemanlarının ortalamasını bul. ortBul().
Yol Gösterme:Fonksiyonların prototipini aşağıdaki biçimde hazırlıyoruz.
<geri dönen değer> fonksiyon_adı(int a[ ], int n);
C ile onluk tabandan ikilik tabana çevirme
0Merhaba arkadaşlar , bu programda özdevingen yapısı ile 10 tabandaki sayıyı 2′lik tabana çeviren c kodunu görceksiniz.
#include<stdio.h>
#include<stdlib.h>
void onlu_ikili( int n, int base ); // prototype
int main(void)
{
int number;
printf(“Donusturulecek olan Tam sayiyi Giriniz: ” );
Struct ile personel kayıt bilgileri
0Merhaba arkadaslar
Problem : “personel.txt” isimli dosyada aşağıdaki biçimde ve uzunlukta bilgiler bulunmaktadır.
personel.txt yi indirmek icin burayı tıklayınız.
Personel Numarası(4) , Adı(12) , Soyadı(12), Maaşı(6)
Dizi tanımlı calisanlar[N] struct yapısını aşağıdaki biçimde tanımlıyabilir ve maksimum calışan sayısını 100 olarak düşünebilirsiniz.
#define N 100
struct personel{
int perNumara;
char adi[12];
char soyadi[12];
int maas;
};
struct personel calisanlar[N];
Ana programdan çağıracağınız menü() fonksiyonunda aşağıdaki temel işlemler bulunacak ve her işlem ayrı bir fonksiyon içerisinde yürütülecektir.
1. Dosyadan Okuma dizine aktarma, Sıralama/Listeleme işlemleri
• “personel.txt” dosyasından bilgiler okunarak yukarıda tanımı verilmiş bulunan dizinli yapı değişkenine aktarılacak ve kabarcık(Bubble sort) mantığı kullanılarak personal numarası sırasında sıralanacaktır(küçükten büyüğe sırada).
• Sıralanmış olan personel bilgileri(Personel numarası, Adı, Soyadı, maaşı), her sayfada 30 kişinin bilgisi bulunacak şekilde monitörden listelenecektir.
2. İsme göre sıralam işlemi
Bir önceki adımda dosyadan okunup dizinli yapı değişkenine aktarılmış bulunan bilgileri kullanarak yalnızca isme(adı) göre sıralama işlemi yapınız(küçükten büyüğe sırada) ve bir önceki adımda anlatıldığı gibi listeleyiniz(Seçmeli sıralama(Selection sort) mantığını uygulayınız, isim karşılaştırmalarında sözce(string) fonksiyonlar kullanılacaktır(strcmp()).
3. Yeni personel Ekleme
Ekrandan yeni bir personelin girişini yaparak(personel numarası, adı, soyadı, maaş bilgisi istenecek), ilk adımda yaratmış olduğunuz dizinli sıralı yapı değişkenine kişinin bilgisini doğru konuma ekleyiniz ve ilk şıkta olduğu gibi listeleyiniz
4. Arama işlemini
Personel Numarası girilen kişinin ikili arama(binary search) arama yöntemi kullanılarak aranıp bulunması ve kişinin bilgilerinin monitörden listelenmesi. Belirtilen numaralı kişi yoksa “Bulunamadı” mesajı verilmesi.
5. Arayıp slime işlemi
Personel numarası girilen kişinin sıradan arama metodu(Sequential sort) kullanılarak aranıp bulunması ve ekrandan onaylanarak silinmesi ve de tüm personel bilgilerinin birinci bölümde olduğu gibi listelenmesi(kişinin silinip silinmediğini anlıyabilmek için bu listeleme gereklidir)
Kontrol edilmeyen ‘hayvan’lar
0Merhaba aşağıdaki fotoğraflar sizi insanlığınızdan utandırabilir!
Uzun zamandır bu konuyu yazmak istiyorum ama Kurban Bayramı’nda çekmek zorunda kaldığım Ceninin fotoğraflarına bakamıyordum. Bugün tekrar cesaretimi toplatıp, fotoğrafları düzenledim ve ekledim.
Fotoğrafta görülen Cenin kontrolsüzlüğün, umusamazlığın ve vicdansızlığın Kurbanı…
Her yerde Bilgi ve İletişim teknolojisindeki gelişmeler, fiber ağlarla ördüğümüz anayurt, internet kullanıcısı sayısındaki günlük artışlar ve benzeri birçok rakamla karşılaşıyoruz.
Bu sevindirici rakamların Bilgi üretimine, akla ve zekaya dönüşmesi bu kadar zor mu? Teknolojinin sunduğu olanaklarla koyun, inek gibi hayvanlardaki gebeliğin tespitinde %95′e kadar doğru sonuç veren farklıyöntemler geliştirilmiş (Demirci Eşref,2011).
Ancak bunu kullanamamak teknolojiyi sadece sürekli eskiyen VERİ üretme cihazları olarak algılamaya devam edersek aşağıdaki fotoğrafta gördüğünüz gibi kendisi de Dişi olan Cenini de doğmadan öldürür, teknolojinin olanakları ile fotoğrafını İnternette paylaşmaktan başka birşey yapamazsınız…
Türkiye İstatistik Kurumu’nun 2010 verilerine göre Koyun sayısı, 2009 yılına göre artmış olabilir ama gerekli ve basit kontroller yapılsa, doğmamş kuzucuklar katledilmese ve bu rakam %18′lere ulaşsa daha iyi olmaz mı? Böylece angus vb. ithal etlerle de işimiz pek olmaz…
Unutmayalım, Bilgi Güçtür! Veri ya da milyon dolarlık yazılım-donanım değil!
NOT : başlık’da geçen “kontrol edilmeyen”den kasıt tarım bakanlığının bu yapılanlar için bir önlem almaması , “havyanlar” ise insan görünümündeki hayvanlar için kullanılmıştır nedeni ise biraz önce Esra G. Kaygısız’ın blogunda gördüğüm ve bunu yapanlar için ağzımı doldurduğum hayvansı olay.
İşletim Sistemi Çalışma Soruları
0Merhaba arkadaşlar , vizelerinizde çalışırsanız faydası olacağını düşndüğüm çalışma sorularını paylaşmak istedim.
TBİL-407 İşletim Sistemleri
BÖLÜM 1
1- İşletim sistemi, kullanıcılar ile donanım arasında yer alan bir yazılımdır.
Doğru
Yanlış
2- İşletim sistemi kullanıcılara kolay bir işletim ortamı sunarken sistem kaynaklarının
verimli kullanımını da amaçlamak zorundadır.
Doğru
Yanlış
3- Güvenli işletim, işletim sisteminin sorumluluğu dışında ele alınır.
Doğru
Yanlış
4- İşletim sistemi çekirdek kesimi donanımın ayrıntısını üst katmanlardan gizler.
Doğru
Yanlış
5- Ana belleğin programlar arasında paylaşılması bellek yönetiminden bağımsız
düşünülür.
Doğru
Yanlış
6- Ana işlem biriminin yönetimi görev yönetimi olarak da bilinir.
Doğru
Yanlış
7- Kabuk katman uygulama programlarına hizmet veren bir katmandır.
Doğru
Yanlış
8- UNIX’te Shell, bir iş tanım dilidir ve bir programlama dili yetkinliğindedir.
Doğru
Yanlış
9- Uygulama programından isletim sistemine sapış, alt yordam çağırma düzeneği ile
gerçekleşir.
Doğru
Yanlış
10- Program ile görev arasında herhangi bir ayrım bulunmaz.
Doğru
Yanlış
11- Aşağıdaki ifadelerden hangisi doğru değildir ?
İşletim sistemi olmadan bir bilgisayar sisteminden yararlanmak olanaksızdır.
İşletim sistemi kolay, hızlı ve güvenli bir işletime olanak verir.
İşletim sistemi donanım nitelikli bileşenler de içeren karmaşık bir sistemdir.
İşletim sistemi kullanıcılar ve sistem kaynakları arasında yer alır.
12- Aşağıdaki ifadelerden hangisi doğru değildir ?
İşletim sistemi katmanlara dağılmış bir dizi alt kesimden oluşur.
Sistem kaynakları donanım nitelikli kaynaklardır.
Kaynak paylaşımının kurallarını işletim sistemi belirler.
Sistem kaynaklarının verimli kullanımından işletim sistemi sorumludur.
13- İş kavramına ilişkin aşağıdaki ifadelerden hangisi doğru değildir?
İş, bir bütün olarak ele alınması istenen komut/program takımına verilen addır.
İş, program kavramını genişleterek içeren bir kavramdır.
Kişisel bilgisayar sistemleri tek iş düzeninde çalışır.
İşler, tanım dilleri kullanılarak yaratılır ve özel tür kütükler içinde saklanır.
14- Görev kavramına ilişkin aşağıdaki ifadelerden hangisi doğru değildir?
Görev, işletim aşamasında programa verilen addır.
Çok görevli işlem çok iş düzeni için bir zorunluluktur.
İşletime alınan her program için bir görev iskeleti tanımlanır.
Görev iskeleti içinde, ana işlem birimi yazmaçları için yer öngörülür.
15- Aşağıdaki ifadelerden hangisi doğru değildir?
Toplu işlemde sisteme sunulan işler hemen işletime alınırlar.
Çok kullanıcılı sistemler etkileşimli işlemin uygulandığı sistemlerdir.
UNIX’te sisteme giren her kullanıcı için, Shell, ayrı bir görev olarak işletilir.
Toplu ve etkileşimli işlem, birlikte kullanılabilen işlem türleridir.
16- Aşağıdaki ifadelerden hangisi doğru değildir ?
AİB’nin yönetimi görev yönetimi olarak da adlandırılır.
Zamanuyumlama düzenekleri, paylaşılan verilerin bütünlüğünün korunmasına da katkı
verir.
Ana bellek yönetici, kullanıcılara programlarını sayfalama (paging) olanağı verir.
G/Ç sistemi aygıt sürücü yordamları içerir. (daha fazla…)
C++ Dizi İşlemleri
0Merhaba arkadaşlar,
Bu programda kullanıcıdan okunan bir grup rakam üzerinden işlem yapan bir program yazmamız istenmektedir. Aşağıdaki adımları izleyerek programınızı yazınız. Her adımda programınızı çalıştırarak test ediniz.
a) Kullanıcıdan kaç adet rakam girmek istediğini sorarak, istenilen adette rakamı bir dizi yada benzeri bir veri yapısının içine kullanıcıdan okuyarak depolayınız.
b) Depolanan rakamları ekrana yan yana düzenli bir şekilde yazdıracak bir fonksiyon yazınız (ekran genişliğinin 80 karakter olduğunu bilmenizde fayda var). Bu fonksiyona veri yapısını parametre yada parametreler olarak almalıdır (örn: dizi için dizi değişkeni ve dizinin uzunluğu verilmelidir.)
c) Depolanan rakamların toplamını bulan fonksiyonu yazarak rakamların toplamını yazdırınız. Bu yazdırma işlemi yazdığınız fonksiyonda değil “main” fonksiyonunda olmalıdır, yani,yazacağınız fonksiyon hesapladığı toplamı geriye değer olarak döndürmelidir.
d) Rakamların ortalamasını bulan fonksiyonu, toplam bulma fonksiyonundan yararlanarak yazınız.
e) Rakamların içindeki en küçük ve en büyük değerleri bulan fonksiyonları yazınız.
f) Rakamların içindeki en küçük ve en büyük değerlerin kaçıncı elemanlar olduğunu bulan fonksiyonları yazınız.
g) Verilen rakamlar içerisinde en büyükten en küçüğe kadar olan aralıktaki eksik olan rakamların sayısını bulan bir fonksiyon yazınız.
h) Aşağıdaki formülden yararlanarak verilen rakamların standart sapmasını hesaplayınız:
σ=√Σ(xi−ortalama)2 / elemansayısı
i) Bu rakam seti üzerinde uygulanabilecek olan bir başka işlem bularak programlayınız.
C Diziler de ekleme ,silme ,sıralama işlemleri
0Merhaba arkadaşlar,bir başka lab çözümündeyiz
C , Programda yer alacak olan dizinli değişkenin elaman sayısını 100 olarak belirleyin ve başlangıçta(1. adim seçildiğinde) rastgele(random) sayı üreten fonksiyon ile dizinli değişkene 50 adet tam sayı değeri atayarak ardından menüde sözü edilen diğer adımları yaptırın. Program sıralama işlemini yapmadan diğer işlemlere geçemesin bunu program içerisinde denetleyiniz ve yapınız.
Menüde aşağıdaki işlemler bulunacaktır.
- 1-Dizinli değişkene veri doldur.(veriYarat())
- 2-Sıralama(secmeliSiralama())
- 3-Yeni bir eleman ekleme (yeniVeriEkle())
- 4-Verilen bir elemanın silinmesi(veriSil())
- 5-Verilen bir elemanın sıradan arama yöntemi ile konumunun bulunması(araBulSiradan())
- 6-Verilen bir elemanın ikili arama yöntemi ile konumunun bulunması(araBulIkili())
Yukarıda isimleri verilmiş olan fonksiyonları belirlerken, dizinli değişken ve toplam elemean sayısını parameter olarak veriniz. (daha fazla…)
C++ geometrik hesaplamalar
0Merhaba arkadaşlar bugün sizlere geçen haftaki yazdığım c++ lab sorusundan bahsedeceğim, bu haftakini yarın veya önümüzdeki günler paylaşacağım sırayı bozmayalım =)
Soru
Bu ödevde basit geometri hesaplamaları yapan bir program yazmanız beklenmektedir.
Aşağıdaki adımları izleyerek programınızı yazınız. Her adımda programınızı çalıştırarak test ediniz. (daha fazla…)
KOD ÇÖZÜCÜLERİN VE ANAHTARLAYICILARIN VHDL İLE TASARIMI
0KOD ÇÖZÜCÜLERİN VE ANAHTARLAYICILARIN VHDL İLE TASARIM VE BENZETİMİ
A. VHDL Mntık Vektörleri (Logic Arrays): hatırlayacağınız üzere, tek bitlik mantık için STD_LOGIC en fazla kullanılan veri tiplerinden biridir. Çok bitli mantık değişkenlerinin temsili için ise STD_LOGIC_VECTOR veri tipini şu şekilde kullanıyoruz:
X: in STD_LOGIC_VECTOR((N-1) downto 0); N-bit giriş değişkeni X, en soldaki bir en etkin olanıdır.
Y: out STD_LOGIC_VECTOR((N-1) downto 0); N-bit çıkış değişkeni Y, en soldaki bir en etkin olanıdır.
Z: in STD_LOGIC_VECTOR(0 to (N-1)); N-bit giriş değişkeni Z, en sağdaki bir en etkin olanıdır.
Y: out STD_LOGIC_VECTOR(0 to (N-1)); N-bit çıkış değişkeni Y, en sağdaki bir en etkin olanıdır.
VHDL programlamada begin ve end işaretleri arasındaki tüm cümleler aynı anda paralel olarak işlenirler. Cümlelerin sırası VHDL kodunun çıkışlarını etkilemez.





Son Yorumlar