![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Mam pomysł by zacząć Quiz php, kto pierwszy odpowie poprawnie na zadane pytanie ma prawo do zadania kolejnego pytania, i tak dalej.
Trafiłem na fajne pytanie na forum goldenline, i zamierzam je Wam tu wkleić: Cytat to może ktoś się podejmie bardziej hardcorowego zadania: program który wyprintuje własny kod i będzie się zawierać w 1 pliku na ekranie po uruchomieniu skryptu ma się pojawić dokładnie to samo co jest w pliku żeby nie było za łatwo - nie można w żaden sposób odczytywać pliku w którym jest zapisany kod tego programu dodam że jest to wykonalne ;D Krzysztof Korzeniewski edytował(a) ten post dnia 18.08.10 o godzinie 22:17 Link: http://www.goldenline.pl/forum/1647030/php-quiz/s/4 Ja nie mam pojęcia jak to zrobić w php, by w samym pliku, wypluć wszystko począwszy od <?php do miejsca w którym wypluwamy kod. Jak ktoś wie jak to zrobić to czekam ;] |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
show_source (IMG:style_emoticons/default/winksmiley.jpg)
//edit Chyba nie doczytał?em pytania, bo nie można odczytywać pliku (IMG:style_emoticons/default/dry.gif) Ten post edytował Wicepsik 20.08.2010, 20:06:15 |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Nie wiem, czy drążę w dobrą stronę, ale coś mi się widzi, że trzeba będzie użyć przekierowania strumienia. Aczkolwiek zgaduje teraz (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 678 Pomógł: 124 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jako, że ma to być program, to chyba takie rozwiązanie odpada, ale zawsze można wyłączyć interpretację plików php przez parser (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
@Blame, niekoniecznie. Na bezczela można by zrobić tak:
i bronić się że przecież nasz skrypt nie odczytuje bezpośrednio tylko zleca wykonanie parserowi PHP, ale to nie jest rozwiązanie (IMG:style_emoticons/default/smile.gif) Przeglądałem manual na wszystkie strony i o ile nie istnieje jakaś nieudokumentowana funkcja która pozwala dobrać się do cache Zend Engine to raczej nie widzę rozwiązania. Może @thek pije w dobrą stronę ale ja się poddałem. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Jako, że ma to być program, to chyba takie rozwiązanie odpada, ale zawsze można wyłączyć interpretację plików php przez parser (IMG:style_emoticons/default/winksmiley.jpg) ale on ma wyprintować swój kod... nie serwer tylko on sam. @topic jestem bardzo ciekawy rozwiązania (IMG:style_emoticons/default/haha.gif) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%) ![]() ![]() |
Quine
poniżej przykład
lub tak:
Ponieważ mogę ale nie muszę zadać kolejne pytanie to sobie daruję. Mimo to miłej zabawy - w razie czego znowu wam ją popsuję (IMG:style_emoticons/default/winksmiley.jpg) Ten post edytował devnul 21.08.2010, 00:37:52 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Hahaha, wiedziałem że to będzie coś z evalem. Ten drugi przykład to jeszcze rozumiem, ale tego pierwszego to niestety ;]
Ale nie jestem pewien, że autorowi pytania o takie rozwiązanie chodziło, gdyż w Twoim przykładzie devnull trzeba 2x ten sam kod napisać by go wyprintować i by wyglądał jakby się sam wyprintował. Ten post edytował cojack 21.08.2010, 09:26:39 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Zgadzam się.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 678 Pomógł: 124 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
@cojack Wiesz w ogóle jakie ma być rozwiązanie? (IMG:style_emoticons/default/tongue.gif)
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%) ![]() ![]() |
@cojack: jestem pewien że dokładnie o to chodziło autorowi, "problem" jest stary jak samo programowanie i na tym polega cała "trudność" że w żaden sposób fizycznie się do kodu nie dobieramy. To co wkleiłem to tylko 2 z setek różnych możliwości - przy odrobinie wysiłku i zrozumieniu problemu można bez trudu napisać coś takiego samemu, a wersja z evalem to tylko czysty przykład, w pierwszej podanej przeze mnie możliwości eval nie występuje a wynik jest dokładnie taki sam (wyprintowanie własnego kodu).
@fifi209: źle Ci się zdaje. Podany przez Ciebie przykład nie ma racji bytu bo niby jak chcesz wydrukować kod programu nie dobierając się do jego źródła? Chodzi właśnie o takie napisanie programu żeby w jego kodzie zawrzeć go ponownie. Rety ludzie to przecież są podstawy programowania. Nie chce mi się wierzyć że to dla was taka czarna magia. Zagadnienie wymaga trochę wiedzy i umiejętności myślenia na trochę wyższym poziomie abstrakcji niż surykatka ale przy odrobinie wysiłku jest do zrobienia przez każdego. Pokrewne chociaż rzadziej spotykane reverse Quine - czyli wypisanie źródła programu ale od końca do początku. Ktoś spróbuje? |
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Rety ludzie to przecież są podstawy programowania. Nie chce mi się wierzyć że to dla was taka czarna magia. Zagadnienie wymaga trochę wiedzy i umiejętności myślenia na trochę wyższym poziomie abstrakcji niż surykatka ale przy odrobinie wysiłku jest do zrobienia przez każdego. Jakie podstawy? To, że kiedyś gdzieś zasłyszałeś o takiej metodzie nie powoduje zakwalifikowania jej do podstaw. Nie udawaj znowu takiego cwaniaka, dla którego to pestka. Sam wkleiłeś kody z Wikipedii; nie sądzę byś miał z nimi do czynienia na co dzień. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
@cojack Wiesz w ogóle jakie ma być rozwiązanie? (IMG:style_emoticons/default/tongue.gif) Nie znam rozwiązania (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%) ![]() ![]() |
@cojack: to już znasz, jeżeli wątpisz proponuję skontaktować się z autorem pytania na goldenline
@phpion: jej, jak mi wstyd - wybacz że nie chciało mi się pisać tego o wpół do drugiej w nocy i posłużyłem się przykładami z wikipedi (do której niemalże zalinkowałem), z czym wcale się nie kryję. Może trochę przesadziłem pisząc o podstawach ale nie zmienia to faktu że każdy kto trochę się zajmuje programowaniem się z tym zetknął. Problem w tym że dzisiaj większość rzeczy pisze się korzystając z frameworków a na boczny tor schodzi kompletnie umiejętność logicznego myślenia bo robią to za nas autorzy tych właśnie "magicznych" narzędzi. Mimo wszystko dla kogoś ze "starej szkoły" quine to moim zdaniem nic nowego. Przynajmniej ja się z tym zetknąłem w czasach gdy jeszcze internet się przenosiło na dyskietkach? Poniżej masz coś napisanego na szybko tak specjalnie dla Ciebie żebyś mi nie deptał po ego. Pozdrawiam i bez urazy (IMG:style_emoticons/default/winksmiley.jpg)
//edit: @phpion: no i oczywiście masz rację nie mam z tym do czynienia na co dzień bo jest to problem typowo akademicki w życiu codziennym (niemal) zupełnie do niczego Ci się nie przyda, niemniej jednak dalej uważam że każdy kto ma do czynienia z programowaniem powinien przynajmniej spróbować napisać quina w dowolnym języku ot choćby po to żeby się sprawdzić lub nauczyć czegoś nowego. Nie uważasz? Ten post edytował devnul 21.08.2010, 14:01:52 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Może trochę przesadziłem pisząc o podstawach ale nie zmienia to faktu że każdy kto trochę się zajmuje programowaniem się z tym zetknął. To raczej jest ciekawostka/zagadka dla zapaleńców a nie coś co każdy powinien znać. No nie przesadzajmy. Tak samo rozwiązywałem kiedyś pewne zadania, wszystko miało działać a kodu miało być jak najmniej tylko umiesz. Czysta zabawa nic więcej. Zresztą spróbuj sam http://nullcode.pl/zadanie-2-ilo-t80.html?...4cb2fc4bea28d97 bo ja się wkręciłem nad udoskonalaniem swojego kodu (IMG:style_emoticons/default/winksmiley.jpg) Pobij przynajmniej mnie, (oczywiście mówimy o PHP) zresztą nie sądzę żebyś miał z tym problem (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
199 (IMG:style_emoticons/default/biggrin.gif) Ten post edytował Wicepsik 21.08.2010, 15:39:33 |
|
|
![]()
Post
#18
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Ale to nie zmienia faktu, że to głównie sztuka dla sztuki. Wiedza dla odczytania tylko własnego kodu jest... w jakiś sposób użyteczna?
~Wicepsik, kiedyś pomagałem kumplowi pisać program do przeliczania pewnego wzoru. No i miał być wykres. No to zrobiliśmy. Tylko że dopiero potem prowadzący powiedział, że to w excelu. (IMG:style_emoticons/default/biggrin.gif) A my zrobiliśmy taki a'la w lame przy kodowaniu. (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
@Wicepsik kody były sprawdzane w konsoli i należy korzystać z tablicy $argv.
Poza tym po co Ci funkcja! To są zbędne znaki (IMG:style_emoticons/default/winksmiley.jpg) Ale też musisz dodać jakiś znacznik rozpoczęcia kodu PHP. Ja miałem 151 znaków i jestem z tego dumny (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%) ![]() ![]() |
zakładam że Twój wynik to 151 u mnie 149 i da się jeszcze trochę uprościć @Wicepsik: Twoje rozwiązanie działa niezbyt dokładnie (bramowanie jest krzywe) no i dodatkowo brakuje Ci ostatniej pustej kolumny @erix: niby sztuka dla sztuki ale jednak jakaś tam gimnastyka dla głowy jest |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 05:19 |