Re: Задачка из книги Under pressure and on time
От: mogadanez Чехия  
Дата: 19.05.03 08:00
Оценка:
Здравствуйте, Pascal, Вы писали:

P>Купил книжку Эда Салливана и там обнаружил задачку, которую они дают кандидатам на вакансии:


P>Кандидатов просят написать программу, отображающую на экране свой собственный исходный текст не обращаясь к чтению файлов.


P>Как это возможно?


поищи по форуму тут такое было
например

using System;
namespace Mogadan
{
class SelfSource
{
[STAThread]
static void Main(string[] args)
{
String[] Str= new string[40];
String newline=Environment.NewLine;
String quota="\"";
String comma=";";
String slash="\\";
Str[0]="using System;";
Str[1]="namespace Mogadan";
Str[2]="{";
Str[3]="class SelfSource";
Str[4]="{";
Str[5]="[STAThread]";
Str[6]="static void Main(string[] args)";
Str[7]="{";
Str[8]="String[] Str= new string[40];";
Str[9]="String newline=Environment.NewLine;";
Str[10]="String quota=\"\\\"\";";
Str[11]="String comma=\";\";";
Str[12]="String slash=\"\\\\\";";
Str[13]="for (int i=0;i<13;i++)";
Str[14]="{";
Str[15]="Console.WriteLine(Str[i]);";
Str[16]="}";
Str[17]="for (int i=0;i<39;i++)";
Str[18]="{";
Str[19]="Console.Write(Str[37]+i.ToString()+Str[38]+\"=\"+quota);";
Str[20]="for (int j=0;j<Str[i].Length;j++)";
Str[21]="{";
Str[22]="if (Str[i][j]=='\\\\') Console.Write(slash+slash);";
Str[23]="else if (Str[i][j]=='\\\"') Console.Write(slash+quota);";
Str[24]="else Console.Write(Str[i][j]);";
Str[25]="}";
Str[26]="Console.Write(quota+comma+newline);";
Str[27]="}";
Str[28]="for (int i=13;i<36;i++)";
Str[29]="{";
Str[30]="Console.WriteLine(Str[i]);";
Str[31]="}";
Str[32]="Console.ReadLine();";
Str[33]="}";
Str[34]="}";
Str[35]="}";
Str[36]="}";
Str[37]="Str[";
Str[38]="]";
for (int i=0;i<13;i++)
{
Console.WriteLine(Str[i]);
}
for (int i=0;i<39;i++)
{
Console.Write(Str[37]+i.ToString()+Str[38]+"="+quota);
for (int j=0;j<Str[i].Length;j++)
{
if (Str[i][j]=='\\') Console.Write(slash+slash);
else if (Str[i][j]=='\"') Console.Write(slash+quota);
else Console.Write(Str[i][j]);
}
Console.Write(quota+comma+newline);
}
for (int i=13;i<36;i++)
{
Console.WriteLine(Str[i]);
}
Console.ReadLine();
}
}
}
... << RSDN@Home 1.0 beta 7a >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.