Показать сообщение отдельно
Старый 13.02.2012, 18:55   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Ну вот, как вариант: сюжет "Серый Волк и Красная Шапочка". Сделано для Турбо-Паскаля, впрочем, графику там можно прицепить любую, алгоритм сохранится. Естественно, пути к файлам можно поменять. Также самостоятельно конфигурируйте параметры процедуры InitGraph. Цвета у меня инвертированы, поскольку используется черный DOS-экран. И еще - для наглядности каждая точка - это квадрат экрана 10х10 пикселей.
Код:
Uses Graph,CRT;
Var
 A,B:Array[1..100,1..100] of byte;
 M,N,i,j,k,l:Byte;
 X0,Y0,X,Y:Word;
 f:Text;
 C:Char;
 Code:Integer;
BEGIN
 Assign(f,'D:\Input.txt');
 Reset(f);
 Readln(f,N,M);
 For i:=1 to M do
  Begin
   For j:=1 to N do
    begin
     Read(f,C);
     Val(C,A[i,j],Code);
    end;
   Readln(f);
  End;
 Close(f);
 InitGraph(...);
 ClearDevice;
 X0:=(GetMaxX-N*10) div 2;
 Y0:=(GetMaxY-M*10) div 2;
 For i:=1 to M do
  For j:=1 to N do
   For k:=0 to 9 do
    For l:=0 to 9 do
     Begin
      X:=X0+j*10+k;
      Y:=Y0+i*10+l;
      If A[i,j]=0 then
       PutPixel(X,Y,Black)
      else
       PutPixel(X,Y,White);
     End;
 ReadKey;
 Assign(f,'D:\Output.txt');
 Rewrite(f);
 N:=N div 2;
 M:=M div 2;
 Writeln(f,N,' ',M);
 For i:=1 to M do
  Begin
   For j:=1 to N do
    begin
     B[i,j]:=A[2*i-1,2*j-1]+A[2*i,2*j-1]+A[2*i-1,2*j]+A[2*i,2*j];
     If B[i,j]>1 then B[i,j]:=1 else B[i,j]:=0;
     Write(f,B[i,j]);
    end;
   Writeln(f);
  End;
 Close(f);
 ClearDevice;
 X0:=(GetMaxX-N*10) div 2;
 Y0:=(GetMaxY-M*10) div 2;
 For i:=1 to M do
  For j:=1 to N do
   For k:=0 to 9 do
    For l:=0 to 9 do
     Begin
      X:=X0+j*10+k;
      Y:=Y0+i*10+l;
      If B[i,j]=0 then
       PutPixel(X,Y,Black)
      else
       PutPixel(X,Y,White);
     End;
 ReadKey;
END.
Изображения
  
Вложения
Тип файла: txt INPUT.TXT (1.5 Кб, 599 просмотров)
Тип файла: txt Output.txt (407 байт, 585 просмотров)
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070