31 Aralık 2016 Cumartesi

Bulut Mesajlaşma (Cloud Messaging)


Bulut Mesajlaşma (Cloud Messaging) Nedir?

Geliştirici tarafından işletilen sunuculardan İşletim Sistemini hedefleyen uygulamalara ve ayrıca uygulamalar için bildirim verileri veya bilgileri göndermesine olanak sağlayan bir mobil bildirim hizmetidir.
Android, IOS veya Blackberry cihazlara yazdığımız uygulamalarda bildirim çubuğuna bildirim bırakmamızı sağlar. Arkaplan servisi (background service) kullanılarak yapılır. Uygulama kapalı olduğunda bile, uygulamanın içeriğine dair kullanıcı bilgilendirmesi yapmak için kullanılır. Örneğin mail geldiğinde telefon titrer, bildirim ışığı yanar ve bildirim çubuğunda 1 yeni posta yazar. Bu, push notification servisi sayesinde yapılır.
Bu servis ile -anlık olarak- yeni veri kullanılabilir olduğunda, sunucudan mobil uygulamanıza istek gönderilir. Böylelikle telefon üzerinde sürekli veri giriş çıkışı kontrolü yapılmaz. Pil, ram, işlemci tasarrufu sağlanır.
                                                  Başlıca Cloud Messaging Sağlayıcıları                                                   
              Google Cloud Messaging                    
 Apple Push Notification Service
                                                           Oracle Cloud Messaging
                                                     Windows Push Notification Service

Google Cloud Messaging (GCM) Nedir ?

Geliştiricilere Google tarafından ücretsiz olarak sunulmaktadır. GCM Hizmeti ilk önce Haziran 2012'de , kimlik doğrulama ve dağıtım, yeni API bitiş noktaları ve mesajlaşma parametrelerinde yapılan iyileştirmeler ve sınırlamaların kaldırılmasını gerekçe göstererek, Google'ın şu an geçmemiş olan Android Cluetooth'dan Bulut'a Aygıt Mesajlaşma (C2DM) hizmetine bir halef olarak ilan edildi. API gönderme oranları ve mesaj boyutları.
2014 yılında ise bunun yerini Google'ın Firebase Cloud Messaging (FCM) aldı.
Geliştirilmesi
Google Cloud Messaging'e geçiş, Android hizmeti 27 Haziran 2012'de Google I / O'da açıldığında ilk açıklandı.Google Bulut Mesajlaşma servisini duyurduktan kısa süre sonra Google, C2DM'den yeni servise geçişle birlikte uygulama geliştiricilere rehberlik edecek belgeler yayınladı. Hizmete geçiş yapmak için SDK ve kod değişikliklerinin yanı sıra, indirmek ve güncellemek için yayın deposu (Google Play gibi) için bir uygulama güncellemesi yayınlaması gerekir.
Chrome hizmeti, Google I/O 2013'ten önce ‘Push mesajıyla etkili uygulamalar ve uzantılar oluşturma' başlıklı bir blog yazısı ile ilan edildi.
I/O 2015'te Google, yeni bir SDK ve iOS desteği verdiğini açıkladı.

Teknik Detayları
Google Cloud Messaging işlevleri, hem sunucu API'larını ve hem de  SDK'lari Google tarafından yapılmaktadır. GCM, push bildirimlerini, derin bağlantı komutlarını ve uygulama verilerini gönderme yeteneğine sahiptir. Daha büyük mesajlar, en fazla 4 KB ‘a kadar gönderilebilir.


İstemci uygulaması, bildirimleri alması ve göstermesi için uygulama iznine izin verdikten sonra, kayıt işlemine başlamak için Google Cloud Messaging arayüzüne bir register API isteği gönderir. GCM Hizmeti, isteği alır ve onaylar ve geliştiricinin daha sonra tek bir aygıta bir bildirim göndermek için kullandığı benzersiz bir tanımlayıcı olan aygıta bir GCM Registration ID vererek yanıt verir. Tanımlayıcı aygıta kaydedilir ve genellikle saklanması için geliştiricinin uygulama sunucusuna gönderilir. GCM Registration ID, bir geliştiricinin kullanıcının kişisel kimliğini keşfetmesine izin verebilecek herhangi bir kişisel veya cihaz bilgisi içermeyen rasgele üretilen bir tanımlayıcıdır. Geliştirici bir aygıta bir bildirim olayı göndermek istediğinde, süreç GCM Kimlik Doğrulama Hizmetine gönderilen bir API POST isteğiyle başlar. POST isteği, GCM Registration ID, önceliği, isteğe bağlı değerleri ve bağlantıları ve varışta cihazda görüntülenmesi gereken bilgileri içerir. GCM Registration ID nin ve diğer kimlik bilgilerinin başarılı bir şekilde doğrulanması üzerine bir kimlik doğrulama işareti döndürülür.Ardından, her iki tanımlayıcı da GCM Hizmetine gönderilip ve sonra cihaza teslim edilir.


 Aşağıdaki tabloda çalışma sistemi anlatılmaktadır
Google Bulut Mesajlaşma Çalışma Sistemi


5 Mayıs 2016 Perşembe

Android | Gecikmeli loop döngüsü oluşturmak

Merhaba arkadaşlar çoğu uygulamada karşıma çıkan ve sizinde karşılacağınızı tahmin ettiğim "ben nasıl 1 saniye gecikmeli döngü döndürüp , kontrol yapabilirim ? " sorusuna cevap olarak kısa bir algoritma hazırladım.Bunu direk kalıp olarak kullanabilirsiniz.

Şimdi benim buradaki amacım bir bluetooth cihaz ile iletişimde her saniye 1 tane logic değer göndermekti.
if(btAdapter.getState() == BluetoothAdapter.STATE_ON) { //btAdapter durumu açık olduğunda koşulu
for (int a = 0; a < 1000; a++) { //1000 e kadar yaptım siz kendinize göre tasarlayın.
Handler handler1 = new Handler(); //Handler hakkında bilginiz yoksa bakabilirsiniz.
handler1.postDelayed(new Runnable() { //şimdi burda handlerimize bir gecikmeli post olacağını bildirdik
@Override
public void run() { //bu kısma yapacağınız işlemleri yazabilirsiniz.
mConnectedThread.write("1"); //Mesela benim işlemim sadece bluetooth ile 1 göndermekti.
}
}, 1000); //Buradaki gecikme süresi ms türünden olduğu için 1000 ms = 1 s gecikmeli kontrol olacaktır.
}
}

 

 

 

 

23 Nisan 2016 Cumartesi

C# Market Otomasyonu

C# Market Otomasyonu


C# Market Otomasyonu

Sizden Şekil 1 de verilen form application’ın gerçekleştirilmesi beklenmektedir.
Uygulamada ürün ismi ve ürün miktarını kullanıcıdan alan 2 adet TextBox, Ürün ekleme, ürün çıkartma veya alışverişi iptal etmek için kullanılacak Butonlar bulunacaktır. Ayrıca kullanıcı ürün ekleyip çıkarttıkça yada alışverişini iptal ettiği durumda, Form application üretinde bulunan ListBox ve altında bulunan toplam bilgiyi veren TextBox güncellenecektir.
Uygulamanız arka planda Dictionary<String, double> tipinde 2 tane container bulunduracaktır. Bunlardan 1 tanesi constProductList, alışveriş listesine eklenebilecek ürünlerin isimlerini(String) ve ilgili ürünün birim fiyatını(double) tutmaktadır. Diğeri ise currentBuyList, anlık olaran kullanıcının eklediği ürünleri barındırmaktadır.

C# Market Otomasyonu Çözüm:

 

Directory kategorize etme yapısını kullanarak çözüm yapıldı key,value yapısı ile daha kolay bir çözüm oldu ...

 

C# Market Otomasyonu

Proje dosyası  :  https://www.dropbox.com/s/ep585grxs5h3rs3/MarketOtomation%20%281%29.rar?dl=0

 

 

 

 

28 Mart 2016 Pazartesi

C# Bileşik,Basit Faiz hesaplama

C# Bileşik , Basit Faiz Hesaplama


faiz lab


Sizden bileşik faizi hesaplayan bir program yapmanız isteniyor. Bildiğiniz gibi Bileşik faiz, bir birim dönemde elde edilen anapara ve faiz toplamının sonraki birim dönemlerde hesaba anapara olarak katılarak bu yeni tutar üzerinden faiz hesaplanmasıdır. Bu şekilde birinci dönemden sonra faizin de faizi ödenmektedir. Aşağıdaki formüle göre hesaplanabilir. Not birim süre yıl temellidir.


Formülü;

Buna göre

a: ana para
i: faiz
n: süre

Faiz Tutarı = a * (1 + i)^n

ana para: 10.000 (a)

faiz: %10 (i)

süre: 2 yıl (n)

ilk yıl sonundaki ana para + faiz;

10.000*0,1 + 10.000 = 11.000

ilk yılın sonundaki ana para + faiz tutarını yine aynı faiz oranından bir yıl daha faize yatırırsak ikinci yıl sonunda;

11.000*0,1 + 11.000 = 12.100

Sizden basit faizi hesaplayan bir program yapmanız isteniyor. Bildiğiniz gibi basit faiz, belli bir paranın belli bir dönem kullandırılması sonucu elde edilen normal faizi ifade eder. Not birim süre yıl temellidir.

Basit faiz aşağıdaki formüle göre hesaplanır;

Faiz Tutarı = Anapara x Faiz Oranı x Birim Süre

10.000,00 x 0,02 x 3 = 600,00 TL  olacaktır.

Förmülde bulunan parametrelere göre arayüzünüzü ve isimlendirmelerinizi yapınız. Program içerisine gerekli “Exception Handling” mekanizmalarını koyunuz.  Süre Ay yada Yıl olarak seçilebilir. Program şu şekilde çıktı vermelidir.

XXX.XXX,XX TL  ana para, yıllık % Y faiz oranıyla, N Yıl dönemlerle faiz hesaplanarak N Yıl sonunda toplam GGG.GGG,GG TL faiz getirir.
Toplam ele geçecek miktar ZZZ.ZZZ,ZZ TL olur.

c# bileşik,basit faiz hesaplama

Çözüm :

faiz lab

 

Saf kod

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.MessageBox;

namespace _152120121048_OZANMANAV_FaizLab
{
public partial class Form1 : Form
{
private InterestCalculator intCalculator;
public Form1()
{
InitializeComponent();
intCalculator=new InterestCalculator();
}
private void btnHesapla_Click(object sender, EventArgs e)
{
try
{
double a = Double.Parse(txtAnaPara.Text);
double i = Double.Parse(txtFaiz.Text);
double n = Double.Parse(txtSure.Text);
if (a < 0 || i < 0 || n < 0)
{
throw new Exception();
}
double faiztutari = 0;
double sontoplam = 0;

if (rbBilesikFaiz.Checked == true)
{
faiztutari = intCalculator.BilesikFaizHesapla(a, i, n);
txtSonuc.Text = a + @" TL ana para, yıllık % " + i + @" faiz oranıyla, " + n +
@" Yıl dönemlerle faiz hesaplanarak " +
n + @" Yıl sonunda toplam" + (faiztutari - a) + @" TL faiz getirir." +
@" Toplam ele geçecek miktar " + faiztutari;
}

if (rbBasitFaiz.Checked == true)
{
faiztutari = intCalculator.BasitFaizHesapla(a, i, n);
txtSonuc.Text = a + @" TL ana para, yıllık % " + i + @" faiz oranıyla, " + n +
@" Yıl dönemlerle faiz hesaplanarak " +
n + @" Yıl sonunda toplam " + faiztutari + @" TL faiz getirir." +
@" Toplam ele geçecek miktar " + (faiztutari + a);
}

}
catch (FormatException)
{
MessageBox.Show("Lütfen Boş bırakmayınız veya Karakter girmeyiniz");
}
catch(Exception)
{
MessageBox.Show("Lütfen negatif değer girmeyiniz");
}
}
}
}

 

Proje Olarak İndir

İndir

 

 

22 Mart 2016 Salı

C# Maclaurin Series Calculator

C# Maclaurin Series Calculator 


Maclaurin serileri günümüz, fonksiyon sonuçlarına yaklaşımda bulunmak amacıyla yoğun olarak kullanılmaktadır. Sizden istenen aşağıdaki resimde verilen form uygulamasını gerçekleştirmenizdir.

[caption id="attachment_177" align="aligncenter" width="272"]C# Maclaurin Series Calculator C# Maclaurin Series Calculator[/caption]

Bu uygulama kullanıcıdan:
1. Yaklaşımda bulunulması istenen fonksiyonu seçmesini (Equation: ComboBox)
2. İstenilen input değerinin (x) girilmesini (Input: TextBox)
3. Eğer kullanılacak olan fonksiyon trigonometrik bir fonksiyon ise, input olarak girilen değerin
derece olarak mı, yoksa radyan olarak mı verildiğinin belirtilmesini (RadioButtons)
4. Hesaplama sırasında maximum kaç iterasyando tamamlanması gerektiğini (Max Iteration
CheckBox & TextBox)
5. Hesaplama sırasında göz önünde bulundurulması gereken eşik değerini (Thresshold CheckBox
& TextBox)
Alacak ve Calculate butonuna basıldığında verilen parametrelere uygun olan sonucu oluşturacak ve
sonucu bir MessageBox da gösterecektir.
Equation ComboBox:
Bu ComboBox hesaplanacak fonksiyonun seçilmesinde kullanılır. Sizden istenen fonksiyonlar şu
şekildedir.
 exp(x)
 1/(1-x)
 1/((1-x)^2)
 sin(x)
 cos(x)
 arcsin(x)
 arccos(x)
 sinh(x)
 cosh(x)
Kullanıcı bu ComboBox ın içeriğini her değiştirdiğinde, derece/radyan seçimi yapılan radio Buttonların
Enable durumu güncellenecektir.
Max Iteration:
Max iteration hesaplama sırasında kullanılacak olan terim sayısını göstermektedir. Örneğin 5 girilen
max iteration değeri için exponential fonksiyonuna yaklaşılmak isteniyorsa. Maclaurin serisinin ilk 5
terimi toplama dahil edilip sonuç oluşturulacaktır. Bu TextBox ın Enable durumu yanındaki CheckBox
ın Check olma durumuna bağlıdır.
Thresshold:
Thresshold değeri hesaplamanın sonlanmasını belirleyen bir başka parametredir. Eğer herhangi bir
iterasyonda, ilgili iterasyona ait elemanın değeri Thresshold değerinin altındaysa, hesaplamaya devam
etmenin gerek olmadığı anlamına gelir. Mevcut sonuç geri döndürülür. Bu TextBox ın Enable olma
durumu yanındaki CheckBox ın Check olma durumuna bağlıdır.

In English :
C# Maclaurin Series Calculator
Maclaurin series today, the function has been used extensively in order to approach the problem. You is your realization of the desired application form given in the picture below.
This application user to:
1 to select the desired function in the presence of Approach (Equation: ComboBox)
2. Select the desired input value (x) to be entered (Input: TextBox)
3. The function of a trigonometric function which will be used if the value entered as input
Have a degree, or to specify that it be given in radians (RadioButtons)
4. During my maximum number of calculations that need to be completed iterasyando (Max Iteration
CheckBox & TextBox)
5. the threshold that must be taken into account during the calculation (Thresshold checkbox
& TextBox)
Receivables and create the results will conform to the parameters and pressing the button Calculator
the results will show a MessageBox.
Equation ComboBox:
The ComboBox is used to select the function to be calculated. You requested the following functions
It is such.
 exp (x)
 1 / (1-x)
 1 / ((1-x) ^ 2)
 sin (x)
 cos (x)
 arcsin (x)
 arccos (x)
 sinh (x)
 cosh (x)
When the user ComboBox The contents of each change, degrees / radians selection has been made of the radio Button
Enable status will be updated.
Max Iteration:
Max shows iteration of the number of terms that will be used during the calculation. For example, 5 entered
If asked to approach the exponential function for maximum iteration value. The first of the series of Maclaurin 5
Term results are included collection will be created. This TextBox checkbox next to Enable status
s depends on the status check.
Thresshold:
Thresshold value is another parameter that determines the ending of the calculation. If you have any
In iteration, Thresshold value is below the value of the related elements of the iteration continues computing
It means that there is no need of transport. The present result is returned. Enable the fact that this TextBox
status depends on the status check checkbox next to s.

[caption id="attachment_178" align="alignnone" width="399"]C# Maclaurin Series Calculator C# Maclaurin Series Calculator[/caption]

ÇÖZÜM/Solution:

Proje indir / Project Download: https://www.dropbox.com/s/bj551w6531ll5sd/SeriesCalculatorProject.rar?dl=0

c# Maclaurin Series Calculator

Saf Kod / Pure Codes:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SeriesCalculatorProject
{
public class SeriesCalculatorHelper
{

private const String EXP = "exp(x)";
private const String POLY1 = "1/(1-x)";
private const String POLY2 = "1/((1-x)^2)";
private const String SIN= "sin(x)";
private const String COS = "cos(x)";
private const String ARCSIN = "arcsin(x)";
private const String ARCCOS = "arccos(x)";
private const String SINH = "sinh(x)";
private const String COSH = "cosh(x)";

public SeriesCalculatorHelper()
{
}

public bool IsTrigonometric(string funcText)
{
return funcText.Equals(SIN) || funcText.Equals(COS) || funcText.Equals(SINH) || funcText.Equals(COSH);
}

public Double CalculateResult(string equationType, double x, int maxIteration, double thressHold)
{
Double result = 0;
switch (equationType)
{
case EXP:
result = CalculateExponential(x, maxIteration, thressHold);
break;
case POLY1:
result = CalculatePoly1(x, maxIteration, thressHold);
break;
case POLY2:
result = CalculatePoly2(x, maxIteration, thressHold);
break;
case SIN:
result = CalculateSin(x, maxIteration, thressHold);
break;
case COS:
result = CalculateCos(x, maxIteration, thressHold);
break;
case ARCSIN:
result = CalculateArcSin(x, maxIteration, thressHold);
break;
case ARCCOS:
result = CalculateArcCos(x, maxIteration, thressHold);
break;
case SINH:
result = CalculateSinH(x, maxIteration, thressHold);
break;
case COSH:
result = CalculateCosH(x, maxIteration, thressHold);
break;
default:
break;
}

return result;
}

private double CalculateExponential(double x, int maxIteration, double thressHold)
{
double result = 0;

for (int n = 0; n < maxIteration; n++)
{
double currentValue = Power(x, n) / Factorial(n);
result += currentValue;

if (Math.Abs(currentValue) < thressHold) break;
}

return result;

}
private double CalculatePoly1(double x, int maxIteration, double thressHold)
{
double result = 0;

for (int n = 0; n < maxIteration; n++)
{
double currentValue = Power(x, n);
result += currentValue;

if (Math.Abs(currentValue) < thressHold) break;
}

return result;
}

private double CalculatePoly2(double x, int maxIteration, double thressHold)
{
double result = 0;

for (int n = 1; n <= maxIteration; n++)
{
double currentValue = n * Power(x, n - 1);
result += currentValue;

if (Math.Abs(currentValue) < thressHold) break;
}

return result;
}

private double CalculateSin(double x, int maxIteration, double thressHold)
{
double result = 0;

for (int n = 0; n < maxIteration; n++)
{
double currentValue = ( Power(-1, n) / Factorial(2*n + 1) ) * Power(x, 2*n + 1);
result += currentValue;

if (Math.Abs(currentValue) < thressHold) break;
}

return result;
}

private double CalculateCos(double x, int maxIteration, double thressHold)
{
double result = 0;

for (int n = 0; n < maxIteration; n++)
{
double currentValue = (Power(-1, n) / Factorial(2 * n)) * Power(x, 2 * n);
result += currentValue;

if (Math.Abs(currentValue) < thressHold) break;
}

return result;
}

private double CalculateArcSin(double x, int maxIteration, double thressHold)
{
double result = 0;

for (int n = 0; n < maxIteration; n++)
{
double currentValue = ((Factorial(2*n))/(Power(4, n)*Power(Factorial(n), 2)*(2*n + 1)))*
Power(x, 2*n + 1);
result += currentValue;

if (Math.Abs(currentValue) < thressHold) break;
}

return result;
}

private double CalculateArcCos(double x, int maxIteration, double thressHold)
{
return (Math.PI/2) - CalculateArcSin(x, maxIteration, thressHold);
}

private double CalculateSinH(double x, int maxIteration, double thressHold)
{
double result = 0;

for (int n = 0; n < maxIteration; n++)
{
double currentValue = Power(x, 2*n + 1)/Factorial(2*n + 1);
result += currentValue;

if (Math.Abs(currentValue) < thressHold) break;
}

return result;
}

private double CalculateCosH(double x, int maxIteration, double thressHold)
{
double result = 0;

for (int n = 0; n < maxIteration; n++)
{
double currentValue = Power(x, 2 * n) / Factorial(2 * n);
result += currentValue;

if (Math.Abs(currentValue) < thressHold) break;
}

return result;
}

private int Factorial(int number)
{
if (number <= 1) return 1;

int result = 1;

for (int i = 2; i <= number; i++)
{
result *= i;
}

return result;

}

private Double Power(double x, double n)
{
return Math.Pow(x, n);
}

}
}

c# Maclaurin Series Calculator
c# Maclaurin Series Calculator

 

 

14 Mart 2016 Pazartesi

C# Dizi sıralama (TextBox'a girilen değerlere göre)

C# Dizi sıralama


c# dizi sıralama


Sizden bir method ve bu methoduun kullanıldığı bir program yazmanız isteniyor.Method parametre olarak aldığı diziyi küçükten büyüğe yada büyükten küçüğe sıralayıp sıralı diziyi geri döndürecek.  Yazacağınız program sıralanmış diziyi ekranda gösterecek. Herhangi bir sıralama algoritması kullanılabilirsiniz.Burada girilen dizi karakterleri arasında 1 space boşluk bırakılarak giriş sağlanmıştır bu girişler kullanıcıdan alınıp trim ve split komutu ile bir string arraya geçirilip oradan number array e geçirilmiştir ve daha sonra sort ve reverse fonksiyonu ile sıralanmıştır.sort fonksiyonu küçükten büyüğe , reverse ise büyükten küçüğe sıralama yapar

 

Çözüm:

Önce kullandığımı methodları açıklayalım  :

Trim metodu karakterin başındaki ve sonundaki boşlukları atmak için kullanılır. Eğer ki sadece kelimelerin başındaki ya da sonundaki boşlukları aşmak istiyorsak TrimEnd ve TrimStart metotlarını da kullanabiliriz.

Bu metotların yapmış olduğu işlemlere örnek verecek olursak hazırladığımız programda kullanıcının mailden gelen güvenlik kodunu gireceği bir alan var. Genelde mailimizden direkt kopyala yapıştır yaparız ve kimi zaman karakter topluluğunun başında veya sonundaki fazladan boşlukları da alırız. Bu da programın güvenlik kodunu yanlış algılamasına neden olacaktır. Bu gibi durumları engellemek için Trim metotunu kullanabiliriz.

Split Metodu Kelime veya kelime gruplarında belirlenen karakterden sonrasını bölmek için kullanılır. Bu işlem sırasında belirlenen karakteri kaldıracaktır.c# dizi sıralama

 

[caption id="attachment_171" align="alignnone" width="647"]c# dizi sıralama c# dizi sıralama[/caption]

Saf Kod text hali :

using System;
using System.Windows.Forms;
namespace _152120121048_OZANMANAV_1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnSirala_Click(object sender, EventArgs e)
{
String text = txtSiralanmamisDizi.Text;
text = text.Trim(' ');
String[] textArray = text.Split(' ');

double[] numberArray = new double[textArray.Length];

for (int i = 0; i < textArray.Length; i++)
{
numberArray[i] = Double.Parse(textArray[i]);

}

if (rbKucuktenBuyuge.Checked)
{
txtSiralanmisDizi.Clear();
Array.Sort(numberArray);
for (int i = 0; i < numberArray.Length; i++)
{
txtSiralanmisDizi.Text += numberArray[i].ToString()+' ';
}
}

else
{
txtSiralanmisDizi.Clear();
Array.Reverse(numberArray);
for (int i = 0; i < numberArray.Length; i++)
{
txtSiralanmisDizi.Text += numberArray[i].ToString() + ' ';
}
}
}
}
}

c# dizi sıralama , c# textbox dizi sıralama , dizi sıralama , c# textbox'a girilen değerleri sıralama

7 Mart 2016 Pazartesi

C# Geometrik Dizi Yazdırma

c# geometrik dizi yazdırma


3

Bildiğiniz üzere Bir sayı dizisindeki ardışık iki terim arasındaki oran sabit bir sayı ise bu diziye geometrik dizi denir. Geometrik dizide ardışık iki terim arasındaki orana dizinin ortak çarpanı denir. Aşağıdaki dizinin ortak çarpanı 3 ve  2 'dir. Ortak çarpan bulunurken herhangi bir terim bir önceki terime bölünür.

Sizden İlk terimi a1 olan ve ortak çarpanı r olan bir geometrik dizinin genel terimi: an = a1 . r(n−1)  olacak bir serinin ilk n elemanının listeleyen bir program yazmanız öneriliyor.Kullanıcıdan ilk eleman  a1ortak çarpanı r ve eleman sayısını girmesini isteyecektir eğer kullanıcı değerleri boş girmişse program mesaj kutusu ( messagebox ) ile uyarı verecektir.

Çözüm:

c# geometrik dizi yazdırma




[caption id="attachment_164" align="aligncenter" width="410"]c# geometrik dizi yazdırma c# geometrik dizi yazdırma[/caption]

4

Saf kod hali kopyalamak için :
namespace _152120121048_OZAN_MANAV_LAB4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btnHesapla_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(txtIlkEleman.Text)) //Boş bırakıldıysa messagebox göster
{
MessageBox.Show("Lütfen Boş bırakmayınız : İlk Eleman");
return; //boş bırakılmış demekki döndür
}
if (string.IsNullOrEmpty(txtOrtakCarpan.Text)) //Boş bırakıldıysa messagebox göster
{
MessageBox.Show("Lütfen Boş bırakmayınız : Ortak Çarpan");
return; //boş bırakılmış demekki döndür
}
if (string.IsNullOrEmpty(txtElemanSayisi.Text)) //Boş bırakıldıysa messagebox göster
{
MessageBox.Show("Lütfen Boş bırakmayınız : Eleman Sayisi");
return; //boş bırakılmış demekki döndür
}

int IlkEleman = Convert.ToInt32(txtIlkEleman.Text);
int OrtakCarpan = Convert.ToInt32(txtOrtakCarpan.Text);
int ElemanSayisi = Convert.ToInt32(txtElemanSayisi.Text);

int[] dizi = new int[ElemanSayisi+1];

dizi[1] = IlkEleman;

for(int i=2;i<ElemanSayisi+1;i++)
{
dizi[i] = dizi[1] * (int)Math.Pow(OrtakCarpan,i-1) ;
}

for (int i = 1; i < ElemanSayisi+1; i++)
{
txtDiziGoster.Text = txtDiziGoster.Text + dizi[i]+Environment.NewLine;
}
}
}
}