C++ da yıldızlarla üçgen

-TurkishKence

Öğrenci
Katılım
23 Şubat 2013
Mesajlar
13
Reaksiyon puanı
0
Puanları
1



ekrana bu üçgeni yazdırak program lazım. yardımlarınızı bekliyorum..
 

Kadima

Rektör
Katılım
17 Mart 2011
Mesajlar
11,958
Reaksiyon puanı
841
Puanları
293
nerede takıldın onu söyle yardımcı olalım :)
 

-TurkishKence

Öğrenci
Katılım
23 Şubat 2013
Mesajlar
13
Reaksiyon puanı
0
Puanları
1
okulda derste iç içe for dögüsüyle 8x8 kare yeptık bunu ödev verdi. aklıma hiç bişey geliyo. daha 2 hafta önce başladım..
 

Da Vinci's

Doçent
Katılım
7 Eylül 2013
Mesajlar
532
Reaksiyon puanı
5
Puanları
0
Sadece 2 dakikalık çalışmayla c# da bu kodu yazdım. Düşününce daha efektif çözüm tabiki bulunabilir ama dediğim gibi ama 2 dakikada bundan iyi şamdan kayısı bence.

string a = " ";
for (int i = 1; i < 10; i = i + 2)
{
int j=(9-i)/2;
for (int k=1;k<=j;k++)
{
Console.Write(a);


}
for(int m=1;m<=i;m=m+1)
{
Console.Write("*");
}
for (int l=1;l<=j;l++)
{
Console.Write(a);


}
Console.WriteLine("");
}
Console.ReadKey();

Bu kodu c++ kolayca çevirebilrsin. C#la ilgili kısa bilgi vermek gerekirse Console.Write ekrana yazı yazdırma printf komutu gibi. Console.Writeline da fark olarak yeni satırdan yazmaya başlarsın. Write da ise aynı satırda yazmaya. printf in içinde /n yaptığında yeni satıra geçiş yapıyordu ya onla aynı. string =düz yazı şeklinde değişken tanımlama,
int ise tam sayı olarak değişken tanımlama. For döngüsü bildiğin sayac işte. C# da süslü parantez içine yazıyorsun. süzlü parantezi kapattıın yer for döngüsünün bitişi oluyor.
Console.ReadKey ise programın çalışması bittiğinde siyah pencerenin kapanmaması için.

C++ derleyim olsa hızlıca çevirirdim ama derleyicim yok. Açıkcası c++ bırakalı uzun zaman oldu tamda hatırlamıyorum.

Not: Eğer hoca istenildiği yıldız kadar bu satırların devam etmesini istiyorsa o zaman "9" yerine en alt satırda olması gereken yıldız sayısını vereceksin, yada kullanıcının girmesini isteyeceksin. Yani yukarıdaki 9, enalt satırda olan yıldız sayısıdır.

- - - Mesaj Güncellendi - - -

Buda ekran çıktısı

2qiy3yw.jpg
 

-TurkishKence

Öğrenci
Katılım
23 Şubat 2013
Mesajlar
13
Reaksiyon puanı
0
Puanları
1





pritf dediğiniz galiba cout oluyo bu şekilde çevirmeye çalıştım ama olmadı.
 

kosasker

Profesör
Katılım
24 Aralık 2008
Mesajlar
3,195
Reaksiyon puanı
49
Puanları
228
Algoritmada paslanmışım. [MENTION=359458]HSYN89N[/MENTION] in gönderdiği kod C++ için tam olarak şöyle
Kod:
    int max=10;
    int k=max/2;
    for (int i = 1; i < max; i+=2,k--) {
        for (int j = 0; j < k; j++) {
            cout << " ";
        }
        for (int j = 0; j <i; j++) {
            cout << "*";
        }
        cout << "\n";
    }

Düzeltme: cout :D
 

-TurkishKence

Öğrenci
Katılım
23 Şubat 2013
Mesajlar
13
Reaksiyon puanı
0
Puanları
1
Algoritmada paslanmışım. [MENTION=359458]HSYN89N[/MENTION] in gönderdiği kod C++ için tam olarak şöyle
Kod:
    int max=10;
    int k=max/2;
    for (int i = 1; i < max; i+=2,k--) {
        for (int j = 0; j < k; j++) {
            printf(" ");
        }
        for (int j = 0; j <i; j++) {
            printf("*");
        }
        printf("\n");
    }

tamamdır çalıştı. teşekkür ediyorum..

- - - Mesaj Güncellendi - - -

Sadece 2 dakikalık çalışmayla c# da bu kodu yazdım. Düşününce daha efektif çözüm tabiki bulunabilir ama dediğim gibi ama 2 dakikada bundan iyi şamdan kayısı bence.

string a = " ";
for (int i = 1; i < 10; i = i + 2)
{
int j=(9-i)/2;
for (int k=1;k<=j;k++)
{
Console.Write(a);


}
for(int m=1;m<=i;m=m+1)
{
Console.Write("*");
}
for (int l=1;l<=j;l++)
{
Console.Write(a);


}
Console.WriteLine("");
}
Console.ReadKey();

Bu kodu c++ kolayca çevirebilrsin. C#la ilgili kısa bilgi vermek gerekirse Console.Write ekrana yazı yazdırma printf komutu gibi. Console.Writeline da fark olarak yeni satırdan yazmaya başlarsın. Write da ise aynı satırda yazmaya. printf in içinde /n yaptığında yeni satıra geçiş yapıyordu ya onla aynı. string =düz yazı şeklinde değişken tanımlama,
int ise tam sayı olarak değişken tanımlama. For döngüsü bildiğin sayac işte. C# da süslü parantez içine yazıyorsun. süzlü parantezi kapattıın yer for döngüsünün bitişi oluyor.
Console.ReadKey ise programın çalışması bittiğinde siyah pencerenin kapanmaması için.

C++ derleyim olsa hızlıca çevirirdim ama derleyicim yok. Açıkcası c++ bırakalı uzun zaman oldu tamda hatırlamıyorum.

Not: Eğer hoca istenildiği yıldız kadar bu satırların devam etmesini istiyorsa o zaman "9" yerine en alt satırda olması gereken yıldız sayısını vereceksin, yada kullanıcının girmesini isteyeceksin. Yani yukarıdaki 9, enalt satırda olan yıldız sayısıdır.

- - - Mesaj Güncellendi - - -

Buda ekran çıktısı

2qiy3yw.jpg


vakit ayırdın. Teşekkürler :)
 

omerfaruk18_341

Asistan
Katılım
20 Ağustos 2013
Mesajlar
204
Reaksiyon puanı
1
Puanları
18
bence o ödevler fikrini zorlayıp kendini geliştirmen için çok basit olsada düşünüp hata yapıp uğraşmalısın ...
 

kosasker

Profesör
Katılım
24 Aralık 2008
Mesajlar
3,195
Reaksiyon puanı
49
Puanları
228
Ben hala Hüseyinin yazdığı koda bakıyorum :D Kötü pas tutmuşum. Bir an önce tekrardan yazmaya başlamalıyım.

Evet bu ödevin senin tarafından yazılmaması gerçek anlamda, senin için kötü oldu. Algoritma kurmak temel adımdır ve o adımı kendin atmazsan dara düşersin.
 

-TurkishKence

Öğrenci
Katılım
23 Şubat 2013
Mesajlar
13
Reaksiyon puanı
0
Puanları
1
zaten ben bunu bu şekilde verirsem kabul edeceğini zannetmiyorum. derste bu şekilde işlenedik. printf felan yok. mantığını çözüp kendim tekrar yazcam..
 

HSYN89N

Asistan
Katılım
30 Temmuz 2013
Mesajlar
182
Reaksiyon puanı
2
Puanları
18
Ben javada yazmıştım C++ kısmına dikkat etmedim kod ile alakalı bir sorunmu var anlayamadım ? :) :)

- - - Mesaj Güncellendi - - -

Bu ödevi uğraşıp yapamamak imkansız ancak yanlış anlamayın elbet gayret göstermişsinizdir elbet çabalamışsınızdır ancak yeterli olduğunu düşünmüyorum. Ben de ödevlerinizin kendiniz tarafından yapılması taraftarıyım ancak belli bir yaşa gelmiş kimseleriz , kendimiz için neyin doğru neyin yanlış olduğunu en iyi kendimiz biliriz. Zorda veya ihtiyacınızın aciliyetini düşünerek paylaşımlar yapmamız normal bence. Bu da C++ hali :
http://pastie.org/8435556
 

Da Vinci's

Doçent
Katılım
7 Eylül 2013
Mesajlar
532
Reaksiyon puanı
5
Puanları
0
zaten ben bunu bu şekilde verirsem kabul edeceğini zannetmiyorum. derste bu şekilde işlenedik. printf felan yok. mantığını çözüp kendim tekrar yazcam..

Ben yazılımıma C ile başladım. Daha sonra çok kısa c++ a baktıktan sonra C# a geçtim. Konsol uygulamarından ziyade form uygulamarıyla uğraşıyorum.
C dilinde printf le ekrana mesaj yazdırılıyordu aklımda c++ da da aynı olduğu şeklinde kalmış ama demek ki yanlış hatırlıyormuşum. Zaten yukarıdaki mesajdada yazmıştım. C++ pek hatırlamadığımı.

- - - Mesaj Güncellendi - - -

Bu arada benim kodda
şu satırlara gerek yok.


for (int l=1;l<=j;l++)
{
Console.Write(a);

}

Bu kod ile yıldızların sağınasa boşluk koymuştum ama boşuk görülmediği için sağa koymanın bir anlamı yok.


string a = " ";
for (int i = 1; i < 10; i = i + 2)
{
int j=(9-i)/2;
for (int k=1;k<=j;k++)
{
Console.Write(a);
}
for(int m=1;m<=i;m=m+1)
{
Console.Write("*");
}
Console.WriteLine("");
}
Console.ReadKey();

Yukarıda string ="a" değişkn atamak yerine de altta a nın kullanıldığı yerde yani Console.Write("a") yerine direk Console.Write(" ") da yazılabilir. Aynı sonucu verecektir.
 

Da Vinci's

Doçent
Katılım
7 Eylül 2013
Mesajlar
532
Reaksiyon puanı
5
Puanları
0
Ekleme;

şimdi printf e baktımda c++ da varmış.(Demekki yanlış hatırlamıyormuşum.) Kendi kodumu şu şekilde c++ a çevirdim. Drleyicinde bir dene istersen.

for (int i = 1; i < 10; i = i + 2)
{
int j = (9 - i) / 2;
for (int k = 1; k <= j; k++)
{
printf(" ");
}
for (int m = 1; m <= i; m = m + 1)
{
printf("*");
}
printf("");
}
 

veyselbozkurt

Öğrenci
Katılım
25 Temmuz 2020
Mesajlar
2
Reaksiyon puanı
0
Puanları
1
Yaş
24
Cevap verilmiş ama ben de ihtiyacı olan olur diye c++ ile for döngüleri kullanarak yaptığım algoritmayı paylaşmak isterim ve diğer cevaplara göre biraz daha yalın ve sade duruyor umarım açıklayıcı olur;

for (int i = 1; i < 6; i++) // ilk for satırlar arasında geçiş yapar "endl" komutu ile
{
for (int j = 6-i; j>=0; j--)
// ikinci for yıldız basmadan önceki boşlukları basar
{
cout << " ";
}
for (int a = 1; a<= 2*i-1; a++)
// üçüncü for ise yıldızları basar
{
cout << "*";
}

cout << endl;
}


Birinci for ile kaç satır olmasını istiyorsak i'ye o sayıdan küçük diye koşul tanımladık.
İkinci for ile j değişkenini (satır sayısı - i' nin o anki değeri) diye tanımladık ve sıfırdan büyük olduğu sürece azalt diyerek döngü başlattık
Üçüncü for ile de boşlukları bastık.

+ boşluklar her satırda birer azalıyor lakin yıldızlar her satırda ikişer artıyor ;
bu yüzden ikinci for da j'yi bir bir azalttık.
 

bari39

Cezalı
Cezalı
Katılım
19 Temmuz 2020
Mesajlar
53
Reaksiyon puanı
16
Puanları
8
Yaş
21
abiler bende yazılımda -kendimi geliştiricem nereden başlasam web programlamadan başlayıp phb falan orenmeye calışıcam sizce ne yapmalıyım
 

veyselbozkurt

Öğrenci
Katılım
25 Temmuz 2020
Mesajlar
2
Reaksiyon puanı
0
Puanları
1
Yaş
24
abiler bende yazılımda -kendimi geliştiricem nereden başlasam web programlamadan başlayıp phb falan orenmeye calışıcam sizce ne yapmalıyım
Bence önce detaylı bir araştırma yap ve bu işle uğraşan kişilerle birebir görüşmeye çalış herkesten bilgi topla kendi kararını kendin ver ama gerçekten iyi araştırman gerekiyor çünkü çok hızlı gelişiyor yazılım ileriye dönük kararlar ver gerek oyun geliştirme gerek web gerekse siber güvenlik alanı için
 

CapScroLL

Müdavim
Müdavim
Katılım
22 Ağustos 2014
Mesajlar
3,656
Reaksiyon puanı
2,683
Puanları
358
Yaş
27
abiler bende yazılımda -kendimi geliştiricem nereden başlasam web programlamadan başlayıp phb falan orenmeye calışıcam sizce ne yapmalıyım
 
Üst