DonanımHaber Mini sürüm 2 Ocak 2026 tarihi itibariyle kullanımdan kalkacaktır. Bunun yerine daha hızlı bir deneyim için DH Android veya DH iOS uygulamalarını kullanabilirsiniz.
Arama butonu
Bu konudaki kullanıcılar: 1 misafir
196
Cevap
13414
Tıklama
8
Öne Çıkarma
Cevap: Reddit, HN, Euler, DH gibi sitelerden iş görüşmesi soruları + ödev soruları (3. sayfa)
T
6 yıl (20069 mesaj)
Yarbay
Konu Sahibi

C bilimsel problemleri kodlamak için değil, Unix'i programlamak üzere tasarlanmış.

Ha, tasarımı cok başarılı olduğundan temel bilimsel problemlerde de kullanılıyor o ayrı. Sonuçta problem biraz karışıklaştığında C zor durumda kalır.

paskal üçgenini Scheme ile kodladım. 10 sıra sürdü ancak pak sonuç verdi. Esasında paskal ücgeni C ile 10 satırı cok aşmayacak biçimde kodlanabilir ancka Scheme'de kodu yazarken deneme olanağı var, C'de yok o yüzden bu tür problemleri geliştirmek daha zor. Scheme'de üstteki pencerede yazıyorum 2 komutla anında alttaki pencerede kodu deneyebiliyorum:

< Resime gitmek için tıklayın >





< Bu mesaj bu kişi tarafından değiştirildi Tuğkan-0153 -- 11 Ağustos 2022; 13:16:35 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Guest-D992B0457
G
6 yıl (4350 mesaj)
Yarbay

https://rosettacode.org/wiki/Pascal%27s_triangle#Perl_6

her dilde var





< Bu mesaj bu kişi tarafından değiştirildi Gökşen PASLI -- 13 Ağustos 2019; 12:12:2 >
Bu mesaja 1 cevap geldi.
G
6 yıl (22 mesaj)
Er

doğrusu bu koddan hiç bir şey anlamadım hazır fonksiyon varmı?

@Gökşen PASLI'nın verdiği linkte c diliyle hazır fonksiyon olmadan 6-7 satırla yapılmış.

void pascaltriangle(unsigned int n)
{
unsigned int c, i, j, k;

for(i=0; i < n; i++) {
c = 1;
for(j=1; j <= 2*(n-1-i); j++) printf(" ");
for(k=0; k <= i; k++) {
printf("%3d ", c);
c = c * (i-k)/(k+1);
}
printf("\n");
}
}


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @vonderplanitz
T
6 yıl (20069 mesaj)
Yarbay
Konu Sahibi

Paskal üçgeni Fibonacci dizisi ile özdeş ilerleyişe iye bir tek gösterimi değişik (wikipedia'da paskal - fibonacci ilişkisi gösteriliyor)

burada cok büyük olasılıkla fibonacci gibi matematiksel formül tanımı üzerinden giderek çözüyor olmalı ki bu programcı çözümünden cok matematik formulün C ile uygulanması oluyor başka deyişle bu çözümün programcılık açısından pek bir esprisi yok.

Onun bir altında C ile rekürsif çözüm var o iyi görünmekle beraber gerçek rekürsif çözüm değil cunku iterasyon (döngü) var, gerçek rekürsif kodda iterasyon olmaz. Daha ötesi paskal üçgenindeki bir önceki sırayı tutmak üzere bir integer dizisi daha tanımlıyor ki gerçek rekürsif çözümde ona da gerek kalmaz.

rekürsif çözümü doğru uygulayan Scheme kodu. Gözünüze iliştiyse o kodda hiçbir dizi yada listeyi önceden tanımlamıyor. Bununla beraber Scheme kodunda da birkaç eksik yakaladım, birincisi Scheme'deki isteğe bağlı (optional) argüman kullanarak kodu 3 sıra kısaltabilirsiniz, ikincisi ana işlemi iki rekürsif fonksiyona bölmek yerine yerine tek fonksiyon içinde duble rekürsif olarak da yazabilirsiniz böylelikle kod 2 sıra daha kısalabilir. Buradaki "kısaltma" ile amacımız kodun boyutunu kısaltmaktan cok, "daha az sayıda kod ile daha çok nes anlatmak" :)





< Bu mesaj bu kişi tarafından değiştirildi Tuğkan-0153 -- 11 Ağustos 2022; 13:21:41 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Guest-D992B0457
G
6 yıl (22 mesaj)
Er

rekürsif kodda neden döngü olmasın böyle bir kuralmı var?


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @vonderplanitz
T
6 yıl (20069 mesaj)
Yarbay
Konu Sahibi

Rekürsif kodun içinde döngü (iterasyon) olması futbol maçında topu elle oynamak gibi bir nes :)





< Bu mesaj bu kişi tarafından değiştirildi Tuğkan-0153 -- 11 Ağustos 2022; 13:22:38 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Guest-D992B0457
G
6 yıl (22 mesaj)
Er

quote:

Orijinalden alıntı: Tuğkan-0153

Rekürsif kodun içinde döngü (iterasyon) olması futbol maçında topu elle oynamak gibi bir nes :)
bu bakış açısı bana mazoşizmi hatırlattı yazımı en kolay performansı en iyi olan benim için en iyi koddur.


Bu mesaja 1 cevap geldi.
T
6 yıl (20069 mesaj)
Yarbay
Konu Sahibi

Bakış açısı değil, teknik.

Universidad Rey Juan Carlos'tan CompSci PhD'li Manuel Rubio Sánchez ile Harvard'tan CompSci PhD'li Paul Graham, rekürsif kodlama tekniği üzerine anlatılar, tutoriallar yayınlamış, bu tekniğin iterasyona göre etkin de geleceğin programcılık tekniği olduğunu belirtmişler.

Sence ben onların bilgi ile deneyimine mi bakarım, yoksa her bir nesi C şablonunda çözmeye çalışan birinin bir twit uzunluğundaki yorumuna mı





< Bu mesaj bu kişi tarafından değiştirildi Tuğkan-0153 -- 11 Ağustos 2022; 13:26:26 >

< Bu ileti mini sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Guest-D992B0457
G
6 yıl (22 mesaj)
Er

programlamayla amatör olarak ilgileniyorum çok bilgili değilim edindiğim tectübelere göre rekürsif kodun döngülerle alakası olmadığı.

bu kod verilen isme göre alt klasörler dahil tüm dosya klasör isimlerini karşılaştırıyor, bunu rekürsif kullanmadan dögüyle yazabilirmisin? yada rekürsif kullanıp döngü kullanmadan.


int SearchFile(const char* fPath,const char *SearchName)
{
HANDLE hFind;
WIN32_FIND_DATA FindData;

char lPath[MAX_PATH];
char fName[MAX_PATH];

sprintf(lPath,"%s\\*",fPath);
sprintf(fName,"%s\\",fPath);

if((hFind = FindFirstFile(lPath,&FindData)) != INVALID_HANDLE_VALUE)
{
strcpy(lPath,fName);
do
{
if(FindData.cFileName[0] != '.')
{
strcat(fName,FindData.cFileName);
if((FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
if(strstr(FindData.cFileName,SearchName))
printf("Folder: %s\n",fName);
SearchFile(fName,SearchName);
strcpy(fName,lPath);
}
else
{
if(strstr(FindData.cFileName,SearchName))
printf("File: %s\n",fName);
strcpy(fName,lPath);
}
}
}while(FindNextFile(hFind,&FindData));

FindClose(hFind);
}
return 0;
}


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @vonderplanitz
T
6 yıl (20069 mesaj)
Yarbay
Konu Sahibi

Bir projede öyle birşey çıkarsa yazabilirim. Ancak burada yazmam cunku demo açısından bir esprisi olmaz.

rekürsif kod döngülerle alakalı cunku döngü ile aynı sonucu veriyor, fakat kod yapısı daha sade ve bazı şartlarda çalışması daha hızlı. Bazı yapay zeka algoritmalarında rekürsif kodlama, kodun cok daha açık olmasını sağlıyor.




Bu mesajda bahsedilenler: @Webtimes
T
6 yıl (20069 mesaj)
Yarbay
Konu Sahibi

Perl 6'da Haskell gibi matematik formül gösterimine yakın dizi oluşturma özellikleri var. Nitekim orada Paskal üçgenini öyle oluşturmuş. Oradaki { } içindeki kod, dizide bir sonraki elemanın nasıl olacağını belirtiyor.

Perl 6 ile fibonacci serisini tek satırda oluşturabilirsin:

quote:

my @fib = 0,1,->$a,$b {$a+$b} ... Inf;


Sondaki Inf Infinity operatörü. O yüzden bu şekilde oluşturulan dizilerden slice / dilim almak gerekiyor:

quote:

say @fib[0..10]; # -> (0 1 1 2 3 5 8 13 21 34 55)


Oradaki 0,1, dizinin ilk iki elemanını belirliyor -> devamını $a,$b değişkenlerine atıyor { } içinde ise sonraki eleman $a+$b yani bir önceki 2 elemanın toplamı olacağı tanımlanıyor.





< Bu mesaj bu kişi tarafından değiştirildi Tuğkan-0153 -- 16 Ağustos 2019; 14:58:29 >


Bu mesajda bahsedilenler: @Gökşen PASLI
T
6 yıl (20069 mesaj)
Yarbay
Konu Sahibi

Çok başarılı dediğin C ile, kullanıcıdan alınan rakama kadar Fibonacci dizisini kaç satırda yazabilirsin? Perl 6 ile tek satırda yazabiliyorum:

< Resime gitmek için tıklayın >


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Webtimes
G
6 yıl (22 mesaj)
Er

https://www.programiz.com/c-programming/examples/fibonacci-series
for (int n=1, i = 1, t1 = 0, t2 = 1,nextTerm; i <= n; i==1?scanf("%d", &n):i=i,printf("%d, ", t1), nextTerm = t1 + t2, t1 = t2, t2 = nextTerm,++i);;

c dili türkçemiz gibi esnek bir dildir, ikisinin de kıymetini bilelim





< Bu mesaj bu kişi tarafından değiştirildi Guest-D992B0457 -- 16 Ağustos 2019; 22:5:56 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @vonderplanitz
T
6 yıl (20069 mesaj)
Yarbay
Konu Sahibi

Kullanıcıdan alınan rakama kadar Paskal ücgenini yazdırmak:< Resime gitmek için tıklayın >





< Bu mesaj bu kişi tarafından değiştirildi Tuğkan-0153 -- 4 Eylül 2020; 17:16:12 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Guest-D992B0457
G
6 yıl (22 mesaj)
Er

hiç tek satırdan fazla yaptığın bir şey yokmu?





< Bu mesaj bu kişi tarafından değiştirildi Guest-D992B0457 -- 16 Ağustos 2019; 22:48:44 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @vonderplanitz
T
6 yıl (20069 mesaj)
Yarbay
Konu Sahibi

uygulamalar cok satırlı olur fakat buradaki konumuz uygulamalar değil orta-temel programcılık soruları ve onları en kısa şekilde çözmek için fonksiyonel stilde program yazmak. Yukarda gördüğün son 2 çözüm, salt fonksiyonel çözüm örneğin...




Bu mesajda bahsedilenler: @Webtimes
T
6 yıl (20069 mesaj)
Yarbay
Konu Sahibi

Temel düzey programlama sorusu (19.Ağu.2019)

Kullanıcı 2020TL, 3400TL, 5500TL gibi maaş listesi ve her bir maaşa uygulanacak artış oran listesi ve para birimi girecek.
Örnek:

Kullanıcı şunları girecek:

maaş_listesi: (2020, 3400, 5500)
artis_oran_listesi: (1.25, 1.1, 1.0)
para_birimi: "TL"

Program şunu basacak:

Maaş:2020, Yeni: 2525.00TL
Maaş:3400, Yeni: 3740.00TL
Maaş:5500, Yeni: 5500.00TL

Bu program Scheme ile 3, Perl 6 ile tek satırda okunaklı şekilde yazılabiliyor.





< Bu mesaj bu kişi tarafından değiştirildi Tuğkan-0153 -- 29 Eylül 2019; 13:6:34 >

T
6 yıl (20069 mesaj)
Yarbay
Konu Sahibi

Asal sayı dizisi.

Kullanıcının girdiği rakam kadar asal sayı dizisi çıkaran kod yazınız.
Örneğin kullanıcı 10 girdiyse

2 3 5 7 11 13 17 19 23 29

gibi.

Not: Bu soruyu sadece 1 satırda kodladım :)


Bu mesaja 1 cevap geldi.
T
6 yıl (20069 mesaj)
Yarbay
Konu Sahibi

Yukarda temel Computer Science konusu olan asal sayı - prime number sorusuna yanıt gelmedi.

Başka bir soru:

Formul kullanarak Altın Oranı (yaklaşık olarak) bulunuz.
Örnek (Perl 6)


# formül ile altın oranı bulan program
my $onceki=2;
my $oanki;
for (1 .. 10) {
say $oanki = 1 + 1/$onceki;
$onceki = $oanki;
}
say "Altın Oran: $oanki";
Çıktı:
1.5
1.666667
1.6
1.625
1.615385
1.619048
1.617647
1.618182
1.617978
1.618056
Altın Oran: 1.618056


Bu kod örnek amaçlı ve kommentler, blok işaretleri { } ve sonraki ekstra satır hariç 5 satır. Perl 6 ile bunu 1 satırda kodladım.





< Bu mesaj bu kişi tarafından değiştirildi Tuğkan-0153 -- 8 Şubat 2021; 0:55:25 >

T
6 yıl (20069 mesaj)
Yarbay
Konu Sahibi

SORU: Kullanıcının girdiği dizide "a e i o u" sırasını en uzun içeren seriyi bulmak. Örnekler:


"aeiaaioaauaeiou"
en uzun seri: a a a a a a e i o u uzunluğu: 10

"aeiioaeiou"
en uzun seri: a e i i i o u uzunluğu: 7

"eiioaeiooouu"
en uzun seri: a e i o o o u u uzunluğu: 8

"eiooouu"
en uzun seri: uzunluğu: (cunku başta a yok)

"aeioo"
en uzun seri: uzunluğu: (cunku sonda u yok)


Bu soru 1-2 yıl evvel forumda bir ödev sorusu olarak sorulmuştu.
Benim çözümüm 3 satır fakat biraz kasarak 2 hatta 1 satıra indirebilirim.