Gerçek Yazılımcılar Belli Olacak - Teknik Yarışma - ihan3t

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

DeSTuRSuZz_

Kıdemli Üye
10 Ara 2015
3,577
4
Şimdi bize eşek dediğine mi yansam, ona sıpa dediğine mi gülsem anlamadım... :)

Estağfurullah, Ata Sözü O :D Bize Aldırış Etmeyin, Ben İzliyorum Keyifli Gidiyor... xdebron'un Postuna Yanıtı Da Şuan Acayip Merak Ediyorum. Sezon Finali Yapmaz İnşallah ^^
 
Son düzenleme:

KoyuAdam

Kadim Üye
5 Şub 2012
5,873
14
çok fazla terim var. açıklanabilecek şeylerse dipnot olarak geçmeni tavsiye ederim. Gereksiz yorumları kaldırıyorum.

katılacaklara kolay gelsin katılmayan da konuyu baltalamasın
 

Mocean

Katılımcı Üye
29 Tem 2016
992
0
Sarmatia
Merhabalar tht üyeleri, sansasyonel bir konu ile birlikteyiz.

Şimdi neden böyle bir konu açıyorum? Daha önce açtığım yarışma konusundan sonra yeni bir yarışma yapmanın vakti geldi. ( eski yarışma konusu : http://www.turkhackteam.org/python/1497935-algoritma-sorusu-ihan3t.html )

Bu konuyu sadece derinlemesine yazılım ile ilgilenen gerçek yazılımcılar çözümleyebilir. O yüzden böyle bir başlık seçtim.

Soruyu ilk okuduğunuzda aslında çok basit gelebilir. Fakat işin içine dalıp yapmaya çalıştığınızda zorluğunu anlayacaksınız.

Arkadaşlar bildiğiniz üzere forumda herkes kendisini "yazılımcı, hacker, programcı, webci, android uzmanı, çok bilgili kişi" şeklinde tanıtıyor. Fakat açılan konulara içeriklere baktığımızda teknik anlamda boş şeyler oluyorlar (hepsi değil tabiki, fakat malesef birçoğu..).

Bu yarışmada, gerçekten ilgilenen / bilgili kişiler kendilerini test ederek pratik yapacaklar, bilmeyenler ise yazılımda önemli bir konuyu öğrenmiş olacaklar. Herkes için faydalı bir yarışma olacak.

Şimdi gelelim sorumuza... Aslında basit olan sorumuz şu şekilde : "vereceğim matematik işlemini, içerdiği expressionları parse ederek yorumlayıp işlem yapan bir program yazın".

Anlamayanlar için şöyle bir örnek vereyim :

"27 + 3 * (15 - 8 / 2) - 4" bu işlemi parse ederek, matematiksel işlem önceliği kurallarına uygun bir şekilde çalıştıran bir program yazın. Yazılan bu program, verilen işlem değiştirildiğinde de düzgün çalışabilmeli, farklı 4 işlem biçimlerini matematiksel işlem önceliğine göre parse edebilmeli.


Önemli : Python da "eval" kullarak veya başka bir dilde buna benzer bir yöntem ile yapılan işlem bu sorunun çözümü değildir. Hazır kütüphane/tool kullanmak yasaktır. Soruyu "parse" ederek çözmeniz gerekmekte.

Forumda "sözde yazılımcı" olduğunu başkalarının gözüne sokan arkadaşları bu güzel konuya davet ederek kendilerini kanıtlama fırsatı sunabilirsiniz.

Sorunun çözümünü anlatan uzunca bir konu yazacağım, sorunun çözümü de zaman alacağı için hafta sonuna kadar katılanlara vakit veriyorum. Pazar akşamı/gecesi çözümü anlatıp sonrasında bu konu üzerine eğitim yapacağım.

Sorunun kabul gören tek bir cevabı vardır.

Katılan herkese şimdiden başarılar..

arkadaşlarım bana algoritma ustası der ama bu algoritma cidden çok zor ve çok güzel Python öğrenmemem biraz eşeklik olmuş :D neyse cevabı arşivlemek için hazırım...
 

ygm95

Yeni üye
21 Kas 2015
19
0
hint-avrupa
parser başlı başına bir konu bilgisayar mühendisliğinde ve onu 0dan yapabilecek insan sayısı çok az türkiyede ayrıca swift yazarlarken bile apple hazır tool kullanmıştır (LLVM)
 

ihan3t

Kadim Üye
7 Şub 2012
5,018
24
parser başlı başına bir konu bilgisayar mühendisliğinde ve onu 0dan yapabilecek insan sayısı çok az türkiyede ayrıca swift yazarlarken bile apple hazır tool kullanmıştır (LLVM)

Zaten bende burada mühendislik prensibi gereği o llvm in flex in background da ne işler yaptığını anlatmaya çalışıyorum.

İşin temelini bilmeden hazır tool kullanmanın yazılımda yeri yok maalesef. Zaten konuda da bunu belirten bu amaçla açılmış bir konu.

Domain specific language tasarlarken şirketler tool kullanabilir ama o adamlar zaten biliyor işin teknik tarafını.


Çok basit

var l = 25*4-6+7

Konuyu okudunuz mu? Çünkü kırmızıyla yazdım belli olsun diye, hazır tool kullanılmayacak, eval vs kullanilmayacak.

Hala sadece boş cevaplar görüyorum şöyle yapılır şu tool var demek yerine yapında gerçekten bilip bilmediğinizi görelim.

Bu konuda amaç gerçekten yazılımla ilgilenenler ve her şeyi lafta olanları ayırabilmek..
 
Son düzenleme:

TurkHackAnkara

Katılımcı Üye
7 Haz 2016
607
4
Aynen
Zaten bende burada mühendislik prensibi gereği o llvm in flex in background da ne işler yaptığını anlatmaya çalışıyorum.

İşin temelini bilmeden hazır tool kullanmanın yazılımda yeri yok maalesef. Zaten konuda da bunu belirten bu amaçla açılmış bir konu.

Domain specific language tasarlarken şirketler tool kullanabilir ama o adamlar zaten biliyor işin teknik tarafını.




Konuyu okudunuz mu? Çünkü kırmızıyla yazdım belli olsun diye, hazır tool kullanılmayacak, eval vs kullanilmayacak.

Hala sadece boş cevaplar görüyorum şöyle yapılır şu tool var demek yerine yapında gerçekten bilip bilmediğinizi görelim.

Bu konuda amaç gerçekten yazılımla ilgilenenler ve her şeyi lafta olanları ayırabilmek..

Senin dediğin şey 1 sn lik işe bir gün uğraşalım. Bu forumda programlama hakkında çok az bilgisi olanlar cevabımı kısa veya saçma bulabilirler. Ancak bilen birine sorsan en mantıklısının bu olduğunu söyler. Şimdi uzun ve beyeneceğin bir cevap hazırlıyorum. Ancak projeyi inceleyince aslında var l = 45*5-6+4 ün ne kadar anlamlı olduğunu anlayacaksın.
 
Son düzenleme:
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.