Yıldız Piramit Yapımı
-
arkadaşlar do while döngüsüyle aşagıda verdiğim kodlardan tam piramit yapabilirmiyim girilen herhangibi sayı için.nette for döngüsü içinde yapılmış bu şekildeki piramitler.
çözdüğünüzde algoritma mantığınıda anlatırsanız güzel olur.
sağa yaslanmış
*
**
***
****
*****intmain()
{
intj=1,l=1,k;
cout<<"numberofline";
cin>>k;
do{
do{
cout<<"*";
j++;
}
while(j<=l);
cout<<endl;
j=1;
l++;
}
while(l<=k);
return0;
}
sola yaslanmış
*
**
***
****
*****
intmain() { intj=1,t=0,l=1,k; cout<<"numberofline"; cin>>k; do{while(j<=(k-l)) {cout<<""; j++; } do{ cout<<"*"; t++; } while(l>t); cout<<endl; j=1; t=0; l++; }while(l<=k); return0; } -
bu kodumun ödevini bize de veriyorlar iki senedir :/ java. c c# hepsinde istediler hiç birinde de yapmadım arkadaş, ne gereksiz bir ödevdir ya. bunun yerine illa döngü mantıgını oturtacaksa girilen bir sayının kaç basamaklı oldugunu bulan program (string fonksiyonları olmadan) ya da sayı tahmin oyunu yaptırsınlar :S neyse sakinim :|
-
hocam bunun sayıyla yapılmıs versiyonu var elimde ama beyin amcıklaması gecirtecek türden, su an hic bakacak halim yok, yıldıza göre uyarlamaya calırsan yaparsın :]
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int i, j;
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= (9 - i); j++)
cout << " ";
for (j = 1; j <= i; j++)
cout << setw(1) << j;
for (j = (i - 1); j >= 1; j--)
cout << setw(1) << j;
cout << endl;
}
}
-
bunun java kodları vardı ama nerelerde kimbilir.
-
Andrei bunu yazdı:
-----------------------------hocam bunun sayıyla yapılmıs versiyonu var elimde ama beyin amcıklaması gecirtecek türden, su an hic bakacak halim yok, yıldıza göre uyarlamaya calırsan yaparsın :]
#include
#include
using namespace std;
int main()
{
int i, j;
for (i = 1; i
{
for (j = 1; j
cout << " ";
for (j = 1; j
cout << setw(1) << j;
for (j = (i - 1); j >= 1; j--)
cout << setw(1) << j;
cout << endl;
}
}
-----------------------------yukarıda verdğim 2 kodun kombinasyonuyla full piramit yapılmaya çalısılcak do while döngüsü kullanılarak. for döngüsüne ait bi çok kaynak var yalnız do while yapılanı bulamadım.
-
Öncelikle do-while ile while arasındaki tek fark do-while da koşul kontrol edilmeksizin kod çalışır sonra kontrol yapılır.
Şimdi kodları yazamıycam ama mantığını sana diyim;
iki tane döngü iç içe yapacaksın matris mantığıyla,dıştaki döngü satır sayısı içteki döngü sütun sayısı. 1den girilen sayıya kadar döndüreceksin dıştakini, içteki döngü ise satır sayısı kadar dönecek yani dıştaki döngüdeki o anki değer kadar ve * yazdıracak. Gayet basit?
-
hem up olsun hem de kodu vereyim;
#include <iostream>
using namespace std;
int main()
{
int i=1, j=0,n;
cout<<"Satir sayisi:";
cin>>n;
do
{
do
{
cout << "*";
j++;
}while(j!=i);
cout << endl;
j=0;
i++;
}while(i!=(n+1));
}dıştaki döngü okunan satır sayısının 1 fazlasına kadar dönüyor yani n değeri son değer.
içteki döngü i sayısının o anki değeri kadar dönüyor * yazdırıyor,sonra bir alt satıra geçip devam ediyor falan işte...ama j değerini sıfırlamayı unutursan her satıra birer * koyup geçiyo.
-
wasd bunu yazdı:
-----------------------------hem up olsun hem de kodu vereyim;
#include
using namespace std;
int main()
{
int i=1, j=0,n;
cout<cin>>n;
do
{
do
{
cout << "*";
j++;
}while(j!=i);
cout << endl;
j=0;
i++;
}while(i!=(n+1));
}dıştaki döngü okunan satır sayısının 1 fazlasına kadar dönüyor yani n değeri son değer.
içteki döngü i sayısının o anki değeri kadar dönüyor * yazdırıyor,sonra bir alt satıra geçip devam ediyor falan işte...ama j değerini sıfırlamayı unutursan her satıra birer * koyup geçiyo.
----------------------------verilen koda sağa doğru+1 * artıyor benim verğim kodlarda onu oluşturdum yalnız aşagıaki gibi tampiramit olması için ne yapabilirz.
*
**
***
****
*****
******
*******
-
Arkhe bunu yazdı:
-----------------------------verilen koda sağa doğru+1 * artıyor benim verğim kodlarda onu oluşturdum yalnız aşagıaki gibi tampiramit olması için ne yapabilirz.
*
**
***
****
*****
******
*******
-----------------------------Hacı sen verdiğim kodu tam anladığına eminmisin? Ufak bi eklemeyle oluyor çünkü. Onuda geçtim andreinin verdiği kod full piramit yapıyor,sağdaki yarısını yazan satırları çıkardınmı birde sayı yerine * koydurdunmu oluyor. Sen andreinin verdiği kodu çalıştırmayı bile denememişsin.
Mantığı şu;
atıyorum 10 satır isteniyor, 10-i diyeceksin i1den bağlayacak. 1den 10a kadar artacak,bu sayede boşluk sayısı 9dan 0'a kadar azalarak gidecek, n-i tane boşluktan sonra i tane * yazdırıp alt satıra geçirerek
-
oha lan nedense çok eğlenceli birşey gibi geldi :D boş bi zamanımda yapıyım :)
-
hocam sağa sola yasla diye iki radiobutton koy bir de piramit için istenen satır sayısını yazacağı bir textbox ile button koy
sağa yaslanmış olan için for döngüsünde 1den girilen sayıya kadar sınırlandırma koy her seferinde bir arttır döngü her çalışmasında for döngüsünde geldiği sayı kadar * koyup bir alt satıra geçsin
sola yaslanmış olan için yukarıdakinin aynısını yapacaksın tek fark girilen sayıdan for döngüsünde gelinen sayıyı cıkarıp önce farkı kadar boşluk koydurup sonra gelinen sayı kadar yıldız yapacaksın olay sadece bundan ibaret...