[]

programlama (ya da bilgisayar) dilinden anlayanların çözebileceği bir soru

linkteki sorunun cevabı nedir?

i.hizliresim.com


 
tüm örnekler de sonsuz döngü içinde çalışır. denemek için

www.onlinegdb.com
  • the last  (05.06.18 16:53:32) 
3 örnek sonsuzs kadar çalışamaz stackoverflow olur


  • Sir Anthony Hopkins  (05.06.18 16:56:08) 
yani direk c standardina gore soruyorsa bence nuevo'nun cevabi yanlis. Cevap "yalniz 2" olmali.

1 icin n unsigned int olarak verilmis. unsigned int overflow edince 0'dan tekrar baslar, for loop da n > 0 gecerli olmaz ve program sonlanir.

2 icin while'da 0 olmayan her sey true sayilir. n = -n olunca n -1 ve 1 arasinda doner durur ve while bunu hep true olarak gorur, sonsuza kadar calisir.

3 icin, teoride sonsuza kadar calisabilir tail call optimization falan durumlarinda ama c icin konusursak recursion stack uzerinde olacagi icin bir sure sonra stack overflow verip program sonlanacaktir. ama bazi compilerlar TCO yapabilir o durumda stack overflow olmayabilir, standart implementasyona birakmistir diye biliyorum. o yuzden sonsuza kadar kesin calisir diyemeyiz ama algoritmayi sonsuz tape'i olan bir turing machine'de calistiracak olsaydik sonsuza kadar calisirdi evet. cevaplarda 2 ve 3 olmadigi icin bunu c standardina gore yorumlamamiz isteniyor denilebilir o zaman da cevap "Yalniz 2" olur.

Benim C biraz pasli ama eyorlamam bu kadar.

edit: Sir Anthony Hopkins, 1 ve 2 de stack overflow olmasi icin bir sebep yok cunku recursion yok. 1'de daha once yazdigim gibi numerical overflow olur, n 0 olur bir yerde o kadar. 2 sonsuza kadar calisir gibime geliyor cunku while 0 olmadigi surece true sayilir diye biliyorum.
  • robokot  (05.06.18 17:00:11 ~ 17:01:35) 
sonsuz döngü içinde çalışır dedim gençler, sonsuza kadar çalışır diyebilmek zaten pratikte mümkün değil.


  • the last  (05.06.18 17:02:32) 
tamam hepsi sonsuz dongu icinde de calismaz, cevabimda acikladim. online compiler'da javascript uzerinden calistigi icin print islemleri browser tabini kilitliyor ondan sonsuzmus gibi gozukebilir.


  • robokot  (05.06.18 17:05:56) 
@robokot online compiler bir kabuk gibi verilen c kodunu sunucuda çalıştırır ve gelen isteği gösterir, ilgili sayfada bir donma olmadı zaten. 1. örnekte yanılmışım ama diğer örneklerde sonsuz döngü gerçekleşiyor göründüğü kadarıyla.


  • the last  (05.06.18 18:41:35) 
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.