C++ da yıldızlarla üçgen
Konu bilgisi
18cevap
26 bingörüntüleme
27.10.2013açıldı
26.07.2020son cevap
Cevaplar
nerede takıldın onu söyle yardımcı olalım :)
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..
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ı

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ı

Buyrun http://pastie.org/8435452#9 .
Algoritmada paslanmışım. HSYN89N in gönderdiği kod C++ için tam olarak şöyle
Düzeltme: cout :D
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
tamamdır çalıştı. teşekkür ediyorum..kosasker dedi: ↑Algoritmada paslanmışım. HSYN89N in gönderdiği kod C++ için tam olarak şöyleint 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"); }
- - - Mesaj Güncellendi - - -
vakit ayırdın. Teşekkürler :)honami dedi: ↑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ı
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 ...
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.
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.
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 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
- - - 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
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.-TurkishKence dedi: ↑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..
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.
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("");
}
ş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("");
}
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.
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.
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
2013 yılının konusunu hortlattınız.
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çinabiler 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
https://forum.shiftdelete.net/konular/yazilima-nereden-baslamaliyim-cevap.681371/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


