Browsed by
Category: Eğitim

Eğitici yönü olan paylaşımlar

Üniversite 1nci, 2nci ve 3. Sınıf C#, C/C++, Java ve Android Ödev ve Projeleri/Dönem Projeleri Yapılır

Üniversite 1nci, 2nci ve 3. Sınıf C#, C/C++, Java ve Android Ödev ve Projeleri/Dönem Projeleri Yapılır

Başlıktan da anlaşılacağı gibi Üniversite 1. 2. ve 3. sınıf programlama dilleri ödevlerini yetiştiremeyecekler yada anlamadığı için ve dersten ödev yüzünden kalmak istemeyenler için ödevlerine ücret karşılığı yardımda bulunabiliriz.

 Ödev Alımları Durmuştur!(05-02-2017)

Ödevleri yaparken dikkat edeceklerimiz, kurallarımız ve ücret yönetmeliğimiz:

1-Ödev tesliminin tarihinden en az 3-4 gün önce bildirilen ödevler için teslim tarihinden önce yapılmasını garanti edilir.

2-Daha büyük projeler için ise en az 10-14 gün önceden bildirilmesi halinde aynı şekilde garanti verilir.

3-Dönem projeleri için ise en az 1 ay önce bildirilen projeler için teslim tarihinden önce yapılmasını garanti edilir.

4-Ödevin/Projenin hangi okulun ve hangi bölümünün ödevi/projesi olduğu belirtilmeden başlanmaz.

5-Ödevleriniz/Projeleriniz yapıldıktan sonra yada yapılırken olağanüstü bir durum(11) olmadığı taktirde internette yada başka halka açık bir yerde yayımlanmaz.

6-Hiç kimseye ödevlerin kimden alındığı ya da yapılıp yapılmadığı bilgisi verilmez.

7-Ödev/Proje ücretlendirmeleri zorluğa göre değil, objektif hesaplanan zorluğa göre hesaplanmaktadır. 

8-Hangi dilde olursa olsun ödevlerin/projelerin hepsinde hemen hemen her kod satırına açıklama ile ne yaptıkları yazılmış olacaktır.

9- a)Ödevi yaptıktan sonra raporunun yazımına hiç bir şekilde karışmayacağım.Açıklama satırları nasıl yaptığımı anlatacaktır.

9-b)Ödevin ekstra mantık anlatımı yapılabilir.Ancak kod anlatımı yapılmaz.

10-Ücret belirleme ödevi/projeleri gördükten sonra olur, yapmaya karar verildiğinde başlamadan önce kapora olarak %25i alınır.Geri kalanı bitirip teslim edildikten sonra verilir.

11-Ücreti ödenmeyen ödevler/projeler burada yayımlanır.

12-Kaporası ödevin/projenin son gününe, yukarıda belirttiğimiz(1,2,3 nolu prosedür) günlerden daha yakın bir zaman kala yatırılmışsa, ödevin zorluğuna bağlı olarak, “son günden önce ödev teslim” garantisi verilmeyecektir.Bazı durumlarda garantisi verilebilir ödev ise belirtilecektir.Aynı şekilde garanti dışıysa da bunun haberi verilecektir.

13-a) Eğer ki kapora yattıktan sonra 12 numaralı prosedürden haberiniz oluyorsa, aynı gün içerisinde ödevi geri çekme hakkına sahipsiniz.Yani aynı gün içerisinde kapora yattıktan sonra ödevi yaptırmak istemezseniz kaporanızı geri ödüyoruz.Yalnızca ödeve son günden önce teslim garantisi veriliyorsa kapora geri verilmez.

13-b) Garantisi verilmemiş ödevler için; eğer ödev yarım kalmışsa, son çalışır halleri atılır.Ona göre pazarlık yapılır fiyat konusunda.Garantisi verilmemiş ödevler için; eğer ödev zamanında teslim edilmişse, normal prosedür işletilir.

14-Ücretlendirme:

* C /C++ ödevleri 60 + (Havale Ücreti) Liradan

* C++ Nesne Yönelimli programlama Ödevleri/Projeleri 75 + (Havale Ücreti) Liradan

* C# Ödevleri/Projeleri 90 + (Havale Ücreti) liradan

* Visual C# Ödevleri/Projeleri 120 + (Havale Ücreti) liradan

* Java ödevleri/projeleri 100 + (Havale Ücreti) liradan

* Java GUI ödevleri/projeleri ise 150 + (Havale Ücreti) liradan başlayan

* Android ödevleri/projeleri 190 + (Havale Ücreti) liradan başlayan fiyatlardan yapılır(Google Play için Android projesi yapılmamaktadır).

15-Ücret ödenmesi, ödevin bitiminin haberi verildikten sonra yapılır.İstenirse, bir prototip yollandıktan sonra ödeme gereçekleştirilir.

16-Ödevler/Projeler-Fiyat için elimden geldiğince yardımcı olacağım zaten.Bu yüzdem pazarlık etmeyiniz.

NOT:Ücret ödemesi hesabımıza yatırma şeklinde olacağından, ayrıca ödevlerin alımı ve teslimi de internet üzerinden olacağından Türkiye’nin her yerinden bize ulaşabilirsiniz.Her türlü yardımcı oluruz.

Ücret karşılığı ödev/proje yapılması isteyenlerin yukarıda yazılanları kabul etmiş olurlar.Bana c.ovayurt@gmail.com email adresinden ulaşabilir.24 saat içerisinde(Muhtemelen daha erken de olur ama:)) bizden cevap alabilirsiniz.Mail ile iletişim kurulur.Ödevin alımı ve teslimi de mail yoluyla olacaktır.Gerek duyulduğu taktirde telefonla da iletişim kurulabilir.

NOT: + Havale ücretleri sadece İş Bankası ve Finansbank dışındaki bankalardan havale yapacak arkadaşlar için geçerlidir.Bahsettiğimiz bankalardan biriyseniz lütfen mailinizde belirtin.

Assembly ve C dilinde Konvolüsyon ile Sinyal Filtreleme

Assembly ve C dilinde Konvolüsyon ile Sinyal Filtreleme

Mikroişlemciler dersimizin bu dönemki dönemlik ödeviydi.Biraz daha görsel ve anlaşılır olsun diye raporun hepsini paylaşıyorum.Umarım yararı olur.Bana hiç yararı olmadı 😀

Filtreleme:
Filtreler gürültü oranını iyileştirerek sinyalin algılanmasını kolaylaştırırlar.Bir telefon şebekesinde, diğer taraftan alınan sinyalin yolda bozularak geldiğini varsayalım.Cızırtılı seslerin kaynağı budur.Karşı taraftan gelen sinyale filtre uygulandığında karma karışık gelen gürültülü sinyali, gürültüden arındırarak daha temiz bir sinyal elde etmemizi sağlar.

 

Mesela yukarıda gönderilen gürültülü sinyali bir kare dalga ile filtreye sokarsak, gürültüyü büyük ölçüde soğurmuş oluruz.Böylece artık telefondan cızırtılı bir ses algılamayız.
Sinyal filtreleme tekniklerinin bir çok yolu vardır.Ancak bu ödevde, konvolüsyon formulü ile filtrelemeye değineceğim.

Konvolüsyon Formülü ile Sinyal Filtreleme:

Elimizde  a ve b diye iki tane dizimizin olduğunu varsayalım.a = [1 2 3 4] ve
b = [5 6] olsun.Bir de c diye bir çıktı dizimiz olsun.

Konvolüsyon formülünün bu iki diziye uygulanarak elde edilen dizi bizim çıktı dizimiz olur.Çıktı dizisinin eleman sayısı bu iki dizinin eleman sayıları toplamından bir eksiktir.

S(c) = S(a) + S(b) -1

Konvolüsyon formulü: c(k)= ∑_(j=1)^k▒〖a(j)*b(k-j+1)〗
(parantez aralarındaki dizi indisleridir.)

 

Buna göre, a ve b’nin konvolüsyonundan şu şekilde bir yapı çıkar:

c(1) = a(1)*b(1) = 1 * 5 = 5
c(2) = a(1)*b(2)+a(2)*b(1) = 1 * 6 + 2 * 5 = 16
c(3) = a(1)*b(3)+a(2)*b(2)+a(3)*b(1) = 1 * 0 + 2 * 6 + 3 * 5 = 27
c(4) = a(1)*b(4)+a(2)*b(3)+a(3)*b(2)+a(4)*b(1)
= 1 * 0 + 2 * 0 + 3 * 6 + 4 * 5 = 38

c(5) = a(1)*b(5)+a(2)*b(4)+a(3)*b(3)+a(4)*b(2)+a(5)*b(1)
= 1 * 0 + 2 * 0 + 3 * 0 + 4 * 6 + 0 * 5 = 24

Önce matlabda bakıp doğru mu diye testini yaptığım bu dizileri ardından c kodumda da kullandım.

 

C kodu:

#include<iostream>
#include<conio.h> 

 int main()
{
   int S[5]={0,1,2,3,4};
   int F[3]={0,5,6};
   int D[6]={0};
   //dizilerin ilk indislerinin 0 dan başlamasının sebebi, 0. Indis olarak almak zorunda //kalmamız.0’dan konvolüsyon formulü kullanımı için indisleri bu şekilde düzenlemem gerekti.
    //çıktı sinyalini oluşturabilmemize yarayan döngü
   {
      for(int j=1;j<=k;j++)//konvolüsyon işlemi için aralık sağlayan döngü
      {
         if((k-j+1)<3 && j<5)//sınırları belirleyen if yapısı
         D[k]+=S[j]*F[k-j+1];//ve konvolüsyon formülümüz
      }
   }
   printf("Sinyal:");//yazdırma
   for(int i=1;i<5;i++)
   printf("%d ",S[i]);
   printf("nFiltre Sinyali:");
   for(int i=1;i<3;i++)
   printf("%d ",F[i]);
   printf("nCikti:");
   for(int i=1;i<6;i++)
   printf("%d ",D[i]); 

    getch();
   return 0;
} 

 

Çıktıyı matlab ile karşılaştırarak doğruluğunu test ettim.
Ardından assembly’ye çevirdim.Assembly’de dizilerin ilk indislerini 0 almadan yaptım.

Assembly Kodu:


data segment
Sig db 8,10,1,3,8,1,6,5,4,1 ;Sinyal dizisi
Filt db 5,10,5,10,5 ;filtre dizisi
Outp db 14 dup(0) ;cikti dizisi
ForCh EQU 15 ;Cikti dizisine eleman atmak icin for
AboveSi EQU 9  ;sinyal disinin 0 dan basladigi varsayilarak, son eleman siniri
AboveDi EQU 14 ;A dan itibaren baslayan filtre dizisinin son eleman siniri
;C kodu ile ayni mantikta çcalisan assembly kodu 

 code segment
start: 
    mov ax, data
   mov ds, ax
   mov es, ax 

    lea si,Sig ;sinyal dizisinin ilk elemaninin adresini aldik
   lea di,Filt;filtre dizisinin ilk elemaninin adresini aldik 

     mov cl,1 ;cl = j
   mov ch,1 ;ch = k
   sub dx,dx
   sub ax,ax 

   ;w(k)=TOPLAM(S[j]*F[k-j+1]) 

    For:cmp ch,ForCh  ;k nin sinirlari kontrol edilir
   je FINISH
   For2:cmp cl,ch
   ja ForEx   ;j nin sinirlari kontrol edilir 

    add al,ch  ;F[k-j+1] = di
   inc al
   sub al,cl
   add di,ax   ;offset ayarlanir 

    add dl,cl  ;S[j] = si
   add si,dx  ;offset ayarlanir 

   dec si     ;aradigimiz elemanin bir fazlasi gelir hep
   dec di     ;bu yuzden bir eksiltiriz offsetleri 

   cmp si,AboveSi ;sinyal dizisi sinirlari belirlemede kullanilir
   ja ABOVE
   cmp di,AboveDi ;filtre dizisi sinirlari belirlemede kullanilir
   ja ABOVE
   ; sinir asimina gore ABOVE label'ina gidilir
   mov al,[di]  ;Filtre dizisi elemani
   mov ah,[si]  ;Sinyal dizisi elemani
   mul ah 

    lea si,Outp  ;cikti dizisi ilk eleman adresi alinir
   sub dx,dx    ;dl ye byte seklinde atama yapilirken dh deki veriler temizlensin
   mov dl,ch    ;dl ye k eklenir
   add si,dx    ;yani cikti dizisinin k. elemanina gidilir,
   dec si            ;yalniz bir fazlasi oldugu icin bir onceki elemana gidilir
   add [si],ax  ;ax e atilan carpim degerini, o elemana ekleriz 

   ABOVE:
   sub dx,dx;toplama ve carpma islemleri icin veriler 0lanir
   sub ax,ax
   inc cl
   lea si,Sig     ;dizilerin ilk elemanlarina geri donulur
   lea di,Filt 

     jmp For2
   ForEx:mov cl,1   ;j tekrar 1 olur
   inc ch     ;k artar
   jmp For

     FINISH: 

      mov ax, 4c00h ; exit to operating system.
   int 21h
ends 

 end start