FREE PASCAL SZORZOTABLAblat hogyan tudom kiiratni? SOS
Sziasztok, amint irtam 1-20ig számoknak kellene a szorzotablaja kiiratasa programmal.
For i:=1 to 20 do
kb eddig jutottam, nem vagom hogy hogykell.. 😅
Hát... azért bemutathattad volna.
program szorzotabla;
uses crt, sysutils;
const HOSSZ = 12;
type rovid_szoveg = string[HOSSZ];
var
beolvasott : string;
szin : boolean = true;
xmax, ymax, x, y, hanyszor, utolso : byte;
tabla : array of array of rovid_szoveg;
procedure Maxok_megadasa;
begin
TextAttr := Yellow; Write('Szorzandó maximuma (1-20): ');
TextAttr := LightRed; ReadLn(beolvasott);
ymax := abs(StrToInt(beolvasott)) and 31;
if ymax < 1 then ymax := 1 else if ymax > 20 then ymax := 20;
TextAttr := Yellow; Write('Szorzó maximuma (1-255): ');
TextAttr := LightRed; ReadLn(beolvasott);
xmax := abs(StrToInt(beolvasott)) and 255;
if xmax < 1 then xmax := 1;
SetLength(tabla, xmax);
Dec(xmax);
for x := 0 to xmax do SetLength(tabla[x], ymax);
Dec(ymax);
end;
procedure Stringek_a_tombbe;
begin
for y := 0 to YMAX do
for x := 0 to XMAX do
begin
tabla[x, y] := RightStr(' ' + IntToStr(y + 1)
+ '*' + IntToStr(x + 1) + '='
+ IntToStr((x + 1) * (y + 1)), HOSSZ);
end;
end;
procedure Egy_oldal;
begin
ClrScr;
for x := 0 to 4 do
begin
szin := not szin;
if szin then TextAttr := LightRed else TextAttr := LightGreen;
for y := 0 to YMAX do
begin
if (x + hanyszor * 5) <= xmax then
begin
GotoXY(x * HOSSZ + 1, y + 1);
Write(tabla[x + hanyszor * 5, y]);
end;
end;
end;
TextAttr := Yellow; GotoXY(1, 22);
if hanyszor < utolso then Write('Tovább...') else Write('Vége.');
ReadKey;
end;
begin
Maxok_megadasa;
Stringek_a_tombbe;
utolso := xmax + 1;
if utolso mod 5 = 0 then
utolso := utolso div 5-1
else utolso := utolso div 5;
for hanyszor := 0 to utolso do Egy_oldal;
SetLength(tabla, 0); TextAttr := LightGray; ClrScr;
end.
Köszönöm szépen mindenkinek aki segített!
Egyébként én Pascal nyelvben programozok, amikor még írtam ezt a kérdést, nem tudtam a Tömbökről, még a legelején jártam ezeknek a dolgoknak. (Most járunk a tömböknél, most is az elején járok.)
Tessék, egy tömbök nélküli változat:
program szorzotabla;
uses crt;
const MAXTABLA = 4;
var
hanytabla, ujalap, szorzo, alap, i : byte;
begin
alap := 1;
for hanytabla := 1 to MAXTABLA do
begin
ujalap := alap;
ClrScr;
for szorzo := 1 to 20 do
begin
alap := ujalap;
for i := 0 to 4 do
begin
GotoXY(i * 16 + 1, szorzo);
Write(szorzo, ' * ', alap, ' = ', szorzo * alap);
Inc(alap);
end;
end;
GotoXY(1,22);
if hanytabla < MAXTABLA then
Write('Tovább...')
else
Write('Vége.');
ReadKey;
end;
ClrScr;
end.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!