[]

Çömezler İçin C: Ters Üçgen Sorusu

Sevgili güngörmüşler,

Sınavda bi problem sordular. Birkaç soru sorucam konuyla ilgili. Problem şu:

*********
$*******$
$$*****$$
$$$***$$$
$$$$*$$$$

$'ler boşluk.

Bunu basacak programı yazınız (sadece for, while ya da do-while kullanarak).

Şimdi sorularıma geçeyim:

1-) Ben şöyle bişey yazdım (ki compiler'da yüz kere compile ederek. Matbu sınavda bu soruya doğru yanıtı vermem rahat bi 15 günü alırdı):

int i, j, blank;

for ( i = 9; i >= 1; i -= 2 ) {
for ( j = 1; j <= i; j++ ) {
printf("*"); }
printf("\n");
for ( blank = 9; blank >= i; blank -= 2 ) {
printf(" "); }

Soruya yanıt verse de bu kod bana oldukça ucube göründü. Daha şık bir çözümü olsa gerek, nasıl olabilir acaba?

2-) Şimdi böyle üçgen yap, yok efendim paralelkenar yap, şekil yap problemlerinin klasik "introduction to C" problemleri olduğunun farkındayım. Ammavelakin bunlar bana ekstrem şekilde zor geliyor, çözüm yolunu bulana kadar ayva çiçek açıyor (2 aylık öğrenciyim). Yıllardır kod yazan arkadaşlar: Bu nested loop'lu soruları "mehehehe ne var lan hemen hoop oraya for buraya x tamamdır, 15 saniyede yazdım," şeklinde yapabiliyor musunuz? Hemen seziliyor mu yani? Hiç compile etmeden falan, direkt haşırt diye hatasız olarak? Evetse ne kadarlık bir tecrübe adamı o aşamaya getiriyor?

Teşekkür ederim.

 
1-) Char dizileri gördüysen eğer ;
bir char diziye 10 tane * atardın , sonra bir döngü içinde baştan ve sondan 1 er 1 er * ları \n le değiştirip ekrana yazdırırdın.

Fakat bunu henüz öğrenmemiş olabilirsin.

2-) Kendi adıma cevap vereyim , ilk başlarda zor gelir :) yaptıkça keyif almaya başlıyacaksın.Kodu kısa sürede ve hatasız yazmak zamanla değil , tecrübeyle olacaktır.

Bir de şu an yeni yeni kodlamaya başlamışsın, zamanla döngülerin mantığı kafana oturur zaten.Sıkma kendini.Kod yaz bol bol.

20 cm tecrübe yeter.
  • dark dante  (19.11.08 00:37:23) 
nested loop yazarken, her loop'u hiyerarşik bir şekilde bir "tab" uzaklığı daha içerde yazarsan daha rahat görürsün neyin ne olduğunu.

yani mesela:

for (bir şey bir şey)
-----{
-----for (başka bir şey)
----------{bir dolu bir şey}
-----for (bir şeyler daha)
----------{
----------for (bir daha bir daha)
---------------for (falan falan)
----------komutlar komular
-----komutlar

bak böyle olunca neyin nerede olduğu daha belli oluyor. tabii ben burada örnek gösterirken çok komutlarla doldurmadığım için alt alta çok belli olmadı ancak biraz daha fazla komut olunca aynı hizada olanlar kendilerini belli ediyor. güzel oluyor.

bir de iki boyutlu, hatta üç boyutlu diziler sürekli aklında olsun. çok işe yarıyorlar. hele hele bu tarz geometrik alıştırmalarda ilaç gibi geliyorlar.

yine bir de bu alıştırmalar kısa çözümler içeriyor, işin hamallığını yapsan bile uzun olmuyor. gerektiğinde copy/paste falan derken uzun uzun yapılıyor. yeni öğrendiğin ama nasıl kullanıldığını anlamadığın bir şeyi kullansan çok kısa olacağını biliyorsun ama kısa olunca yapmıyorsun. sakın ama sakın öyle durumlarda hep kısa yöntemi kullan ki daha sonraları uzun uzun uzun uzun programlar yazarken problem yaşama. okulda/kursta çok efsane uzunlukta program yazmazsın, yazsan da tez falan olur, onu da hocalar satır satır incelemez. ama sonra sektörde falan iş yaparken hamal olursun. hatta bazı şeyleri yapamazsın.
  • co2s2  (19.11.08 22:01:47) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.