Vypíše prvky matice 10x10 v poradí hodinových ručičiek

Delphi & Pascal (česká wiki)
Přejít na: navigace, hledání
Kategórie: Zadání z Pascalu

Program: Cirkus.pas
Soubor exe: Cirkus.exe
Soubor ubuntu: Cirkus

Vypíše prvky matice 10x10 v poradí hodinových ručičiek. Začiatok je na indexe [1,1], potom ďalší obvod [2,2], atď.
{ CIRKUS.PAS                Copyright (c) TrSek alias Zdeno Sekerak }
{ Vypiste prvky danej matice typu 10x10 v nasledujucom poradi:      }
{ najprv vypise obvod v smere hodinovych ruciciek s prvym prvkom s  }
{ indexom [1,1] potom dalsi obvod atd.                              }
{                                                                   }
{ Datum:23.05.2004                             http://www.trsek.com }
 
program cirkus;
var m:array[1..10,1..10] of integer;
    c,x,y:integer;
 
begin
  WriteLn('Vypiste prvky danej matice typu 10x10 v kruhu');
 
  { nasledujucich 9 riadkov vygeneruje maticu automaticky }
  { vhodne pre testovanie }
  {
  for y:=1 to 10 do
  begin
    for x:=1 to 10 do
    begin
      m[x,y]:=y*10+x;
      Write(m[x,y],',');
    end;
    WriteLn;
  end;
  }
 
  { najprv zadanie hodnot }
  WriteLn('Zadaj jednotlive prvky matice');
  for x:=1 to 10 do
    for y:=1 to 10 do
    begin
      Write('m[',x,',',y,']=');
      ReadLn(m[x,y]);
    end;
 
  WriteLn('Matica v kruhu je:');
 
  { teraz vykreslime podla zadania }
  for c:=1 to 10 do
  begin
    { zlava doprava }
    for x:=0+c to 11-c do
      Write(m[x,c],',');
 
    { zhora nadol }
    for y:=1+c to 11-c do
      Write(m[11-c,y],',');
 
    { zprava vlavo }
    for x:=10-c downto 0+c do
      Write(m[x,11-c],',');
 
    { zdola nahor }
    for y:=10-c downto 1+c do
      Write(m[c,y],',');
  end;
 
  WriteLn;
  WriteLn('Hotovo');
  ReadLn;
end.