PDA

View Full Version : سوال: چاپ تمام كد ها در خروجي!



Patira
جمعه 17 تیر 1390, 21:12 عصر
سلام!
سوال بنده اين بود كه چطور ميشه كل كد را (حتي خود PrintF) رو در زبان C به عنوان خروجي چاپ كرد؟!
بدون اينكه از تابعي كمك گرفته بشه...
فقط مي خوام از توابع مبتدي برنامه نويسي مثل if يا for يا ... كمك گرفته بشه!
به نظرتون از چه راهي قابل حله؟

Patira
شنبه 18 تیر 1390, 10:16 صبح
کسی نبود که جواب این سوال رو بدونه؟

glassysmart
شنبه 18 تیر 1390, 10:30 صبح
یه راهمی که به نظرم میرسه اینه که فایلی که کدت توش هست را باز کند و محتویاتش را به صورت text نمایش بده

Patira
شنبه 18 تیر 1390, 12:23 عصر
بله... اینم میشه!
ولی سوال بنده این بود:
چطور میشه عیناً همون کد رو در خروجی چاپ کرد؟!
شما اگه بخواین اون رو به صورت text نمایش بدین آخرش باید یه دستور بنویسین...
حالا سوال من گفته که به یه نحوی برنامه نویسی بشه که حتی همون کد هم در خروجی چاپ بشه... برای مثال دستوری که text رو نمایش بده رو هم باید در خروجی چاپ شده ارائه کنیم!
:ناراحت:

FastCode
شنبه 18 تیر 1390, 12:42 عصر
main.h فایل کد شماست.
main.o/main.exe فایل اجرایی.
توی main.exe/main.o فایل main.h رو باز کنید و در خروجی بنویسید.

Patira
شنبه 18 تیر 1390, 12:51 عصر
main.h فایل کد شماست.
main.o/main.exe فایل اجرایی.
توی main.exe/main.o فایل main.h رو باز کنید و در خروجی بنویسید.

الان اینایی که گفتین جواب سوال من بود؟!
یا لطف کنین بیشتر توضیح بدین و یا سوال رو مجدداً مطالعه کنین...
ممنونم از توجهتون...

یوسف زالی
شنبه 18 تیر 1390, 13:21 عصر
ببینید برای اینکه کدهای برنامه شما نمایش داده بشه بدون داشتن سورس برنامه فقط یک راه داری:
یک رشته طولانی بگیری و سورس رو در برنامه اجرایی بگذاری.
اما به این ترتیب فقط رشته شما به نمایش در میاد نه برنامه ای که توش رشته ای باشه که توش برنامه هست...
یه جورایی Recursive میشه.
اما اگر سورس برنامه رو داشته باشی - یعنی همونی که الان داری توش تایپ می کنی - موقع اجرا مثل یک فایل ورودی ساده که دیگه در اون موقع هیچ ربطی به برنامه شما پبدا نمی کنه ، اون رو باز می کنی و ازش می خونی و نمایش می دی.
همین دستور نمایش هم در سورس می نویسی دیگه. پس موقع اجرا اونم می بینی.
اما فکر این رو که برنامه بدون داشتن این دو مورد ، یا موردی مشابه مورد اول، بتونی دقیقا همون کد ها رو نمایش بدی از سر بیرون کن!
تنها راهی که می مونه Disassemble کردن Exe برنامه هست که کدهایی "مشابه" و نه دقیقا همون ها رو به شما میده که ممکنه حتی زمین تا آسمون با کد شما فرق داشته باشه اما خروجی مشابهی تولید کنه.
الان اینا جواب سوال شما بود؟!
:قهقهه:

Patira
شنبه 18 تیر 1390, 13:39 عصر
نه عزیزم!
شما میگین اون سوالی که من پرسیدم دقیقاً همونطور نمیشه!
ولی سوال بنده دقیقاً سوال مربوط به المپیاد کامپیوتر بود!
یعنی باید یه جواب حتماً داشته باشه!

یوسف زالی
شنبه 18 تیر 1390, 15:16 عصر
پس راه استفاده از سورس می مونه دیگه.
اگر سورس رو به عنوان یک فایل متنی ساده باز کرده و بخونید همه دستورها و حتی باز کردن فایل و چاپش هم توش هست.
اگر قانع نشدید:
1- سوال رو دارید ناقص میگید . سوال رو دقیقا برید بخونید شاید توش نکته ای باشه. یا شما منظور طراح سوال رو بد متوجه شدید.
2- جوابتون فایله اما شما فکر می کنید پیچیده تر از این حرفهاست.
3- تکنیکی وجود داره که بنده از اون بی خبرم: خودم مدتها دنبالش بودم اما گشتم نبود نگرد نیست!

در صورت رسیدن به جواب از تمام دوستان خواهشمندم در همین جا نتیجه رو اعلام کنند. خیلی وقته دنبالشم!
:لبخند:
دوست من راه همونیه که دوستان گفتند.

Patira
شنبه 18 تیر 1390, 15:25 عصر
ولی سوال دقیقاً همونیه که خدمتتون گفتم!
بدون کلامی اشتباه!

FastCode
شنبه 18 تیر 1390, 17:02 عصر
سوال درسته.
جوابش سه صفحس.حوصله ندارم بنویسم.
۲ ۳ شبه نخوابیدم.
خالم خوب بشه میام مینویسم.

Patira
پنج شنبه 30 تیر 1390, 18:29 عصر
سوال درسته.
جوابش سه صفحس.حوصله ندارم بنویسم.
۲ ۳ شبه نخوابیدم.
خالم خوب بشه میام مینویسم.


خب حالا اگه میشه لطف کنین و بگین دیگه!!

یوسف زالی
جمعه 31 تیر 1390, 00:09 صبح
دو هفته هست بنده خدا نخوابیده.
اذیتش نکنین!
:لبخند:

rezaricky
یک شنبه 02 مرداد 1390, 18:40 عصر
تا جایی که من میدونم اصطلاحا به این نوع برنامه ها Quine میگن
لینک ها رو ببین چند تا مثال توش هست
http://en.wikipedia.org/wiki/Quine_%28computing%29
http://www.nyx.net/~gthompso/quine.htm (http://www.nyx.net/%7Egthompso/quine.htm)

این کد هم شاید بدردت بخوره
http://www.nyx.net/~gthompso/self_c++.txt

djsohrab2007
چهارشنبه 19 مرداد 1390, 23:40 عصر
سلام
دست شما درد نکنه ، فقط اگر میشه یکی بیاد فارسی توضیح بده که من نه صورت سوال را درست متوجه شدم و نه جواب آن را!:گریه:
با تشکر