Kezdőoldal » Számítástechnika » Programozás » FREE PASCAL SZORZOTABLAblat...

Mr.Lor kérdése:

FREE PASCAL SZORZOTABLAblat hogyan tudom kiiratni? SOS

Figyelt kérdés

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.. 😅



2017. okt. 9. 18:28
1 2
 11/14 A kérdező kommentje:
Nagyon szépen köszönöm a választ! Egyébként utólag valahogy az enyém is jólét csak formailag nem nézett ki szépen. :)
2017. okt. 10. 17:11
 12/14 tabaki ***** válasza:

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.

2017. okt. 10. 17:57
Hasznos számodra ez a válasz?
 13/14 A kérdező kommentje:

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.)

2017. nov. 18. 11:37
 14/14 tabaki ***** válasza:

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.

2017. nov. 19. 22:40
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!