Aplikace Kruh – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Aplikace Kruh – Delphi – Fórum – Programujte.comAplikace Kruh – Delphi – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Vebimat0
Duch
2. 6. 2013   #1
-
0
-

Ahoj. Mám ,jako většina lidi tady, úkol do školy a zasekl jsem se v jednom místě. Tady je zadání:
Zadání: Vytvořte program na naplnění a tisk matice znaků o rozměru 25*70. Automatickým plněním vhodnými znaky
             do matice znázorníte kruh o průměru 1.
             Výsledek zobrazte do memo pole a vytiskněte do souboru.
Vstup: žádný
Výstup: Tisk matice s pseudografickým obrazem kruhu


Dělám to v Delphi 2009 do formuláře:

A mam tuto proceduru která je funkční (je to ověřeno výpisem do textového souboru):
.

.
type
  TPole = array[1..23,-4..65] of char;
var
  A:TPole;
procedure NaplnitMatici(var A:TPole;grdPole:TMemo);
var
  i,j,r:integer;
begin
  for i := 1 to 23 do
    for j := -4 to 65 do A[i,j] := '.';
  for i := 1 to 23 do A[i,0] := '|';
  for i := 2 to 12 do begin
    A[i,-3] := char(ord('0') + (12 -i) div 10);
    A[i,-2] := ',';
    A[i,-1] := char(ord('0') + (12 -i) mod 10);
  end;
  for i := 14 to 22 do begin
    A[i,-4] := '-';
    A[i,-3] := char(ord('0') + (i-12) div 10);
    A[i,-2] := ',';
    A[i,-1] := char(ord('0') + (i-12) mod 10);
  end;
  for j := -4 to 65 do begin
    A[12,j] := '-';
    if j mod 10 = 0 then begin
      A[23,j-1] := char(ord('0') + abs(j-30) div 2 div 10);
      A[23,j]   := ',';
      A[23,j+1] := char(ord('0') + abs(j-30) div 2 mod 10);
      if j < 30 then A[23,j-2] := '-';
    end;
  end;
  for j := 10 to 50 do begin
    r :=round(sqrt(100-0.25*sqr(30-j)));
    for i := -r to r do A[12 - i ,j] := '+'
  end;
end;

Problém :můj problém tkví v tom, že nevím jak udělat aby se po stisku tlačítka zobrazil výsledek již výše zmíněné procedury NaplnitMatici do memopole ve formuláři.

Asi to bude vypadat takto:

procedure TfrmKruh.btnVytvoritClick(Sender: TObject);
begin
  grdPole.lines.Add(?????);
end;

Nevím co dát místo otazníků.

Našel by se zde někdo, kdo by mi pomohl tento "zádrhel" vyřešit??
Děkuji za každou odezvu.
 

Nahlásit jako SPAM
IP: 188.120.196.–
Sniper
~ Anonymní uživatel
215 příspěvků
2. 6. 2013   #2
-
+1
-
Zajímavé

   

For i := Low(A) to High(A) do grdPole.Lines.Add(A[i]);

Aby se to správně zobrazilo, tak tomu memu nastav neproporcionální písmo (např. Courier New).

Nahlásit jako SPAM
IP: 90.179.201.–
Vebimat0
Duch
3. 6. 2013   #3
-
0
-

Děkuju  :)

Nahlásit jako SPAM
IP: 195.113.65.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 13 hostů

Podobná vlákna

Aplikace ve VS — založil kuba

Aplikace — založil ETNyx

Aplikace z c++ — založil ovens

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý