Form tasarımı aşağıdaki gibi olacaktır...
Programda mesaj girildikten sonra ekrana gelecek olan sonuç ise aşağıdaki gibi olacaktır...
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;
namespace _46_For_Kelimeler_ile_Piramit_Örneği
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string cumle = textBox1.Text; // string zaten dizi gibi davranabilen bir türdür...
string goster = "";
string piramit = "*"; // Ben yıldız koydum... Siz isterseniz boş da bırakabilirsiniz...
for (int i = 0; i < cumle.Length; i++) //İlk döngümüz girilen kelimenin parçalarını almak için...
{
goster += cumle[i]; // string özelliği sayesinde cumlemizi parçalayarak alıyoruz...
for (int k = 0; k < cumle.Length; k++) // 2. döngümüz yıldızları yerleştirebilmek için...
{
// Amacımız piramitin başı olacak ilk harfi tam ortaya yazdırıp yanlarına yıldız koyabilmek...
// Örneğin ***m*** gibi... Bunun için bütün kelime uzunluğundan
// o anki parçası alınmış harf sayısını çıkartıp 2 ye bölüyoruz... Tam ortayı buluyoruz...
if ((cumle.Length - goster.Length) / 2 == k) // Döngü orta sayıya ulaştığında elimizdeki goster isimli kelimeyi ekliyoruz...
{
piramit += goster; // bunu ekranda göstereceğiz...
k += goster.Length; // kelime uzunluğumuz kadar 2. döngümüzün sayacını artrıyoruz ki fazladan yıldız eklemesin...
}
piramit += "*"; // Eğer kelime eklemiyorsak muhakkah yıldız ekliyoruz...
}
listBox1.Items.Add(piramit); // Ekranda gösteriyoruz...
piramit = "*"; // diğer saatır da yine piramiti sıfırlıyoruz ki bir önceki satır ile karışmasın...
}
}
}
}