Kezdőoldal » Számítástechnika » Programozás » Pascalban a kvetkező programot...

Pascalban a kvetkező programot kellene megoldani?

Figyelt kérdés

Az ASZTAL szóból szópiramist a következő módon


A

AS

ASZ

ASZT

ASZTA

ASZTAL

ASZTA

ASZT

ASZ

AS

A


• Kérjen be egy szót.

• Írja ki a szó hosszát.

• Végezze el a feladatot (hozza létre a piramist).



a segítséget előre is köszönöm!



2017. júl. 28. 12:08
 1/7 anonim ***** válasza:
100%

Valóban meg kéne, legalábbis gondolom, ezért írtad ki (ezzel technikailag a kérdésedre válaszoltam).


Hol akadtál el, melyik rész nem megy? Bekérés? Kiírás? A piramis létrehozása?

Bár szerintem elég szájbarágósan le van írva a feladat, azért elmondom, én hogy írnám ki a piramist (minden más teljesen egyértelmű):

Miután bekértem a stringet, egy for ciklusban kiíratnám először az első betűjét, majd az első kettőt, majd az első hármat stb. A ciklust nyilván a szó hosszáig futtatnám (vagy eggyel kevesebbig, kapásból nem tudom, a Pascal 0-tól vagy 1-től indexel-e). Majd egy második ciklussal kiíratnám az első (hossz-1) karaktert, majd az első (hossz-2)-t, egészen az első (hossz-(hossz-1)) = 1 karakterig.


A kiíráshoz valszeg elég sok lehetőség ban, a dokumentáció gyors fellapozása alapján a LeftStr függvényt javasolnám.

Persze messze nem ez az egyetlen, és valószínűleg nem is a leghatákonyabb módszer, de elvégzi a feladatot, és ez jelen esetben (mivel felteszem, iskolai vagy érettségi feladat volna) úgy gondolom, elegendő.


Ez alapján meg kéne tudd írni. Ne várd el ezen a fórumon (meg bármely más prog. fórumon sem) senkitől, hogy az egészet megírja helyetted, mert az eléggé szembemegy a programozás mentalitásával.

2017. júl. 28. 12:24
Hasznos számodra ez a válasz?
 2/7 SimkoL ***** válasza:

var s : String;

i : Byte;

begin

Write('Kérem a szót: ');

ReadLn(s);

for i := 1 to Length(s) do WriteLn(Copy(s, 1, i));

for i := Length(s) - 1 downto 1 do WriteLn(Copy(s, 1, i));

ReadLn;

end.

2017. júl. 28. 12:36
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:
Sok sikert.
2017. júl. 28. 12:49
Hasznos számodra ez a válasz?
 4/7 tabaki ***** válasza:

Nagyjából ezt akartam írni én is, csak elhúztam az időt azzal, hogy egy kódmegosztó oldalt keressek, amit javasolhatok a programod idemásolása helyett (a GyK ugyanis elrontja a behúzásokat). Sajna, így hirtelenjében nem találtam igazán egyszerű kezelésűt, ha valaki tud, ajánljon jobbat:

[link]

A stringek karakterei egyenként indexelhetők (pl. szo[3], ha a szo stringben az 'ASZTAL' van, a 'Z' karaktert jelenti), ennek az alapján egymásba ágyazott ciklusokkal is megoldhatod StrLeft() helyett.

2017. júl. 28. 12:54
Hasznos számodra ez a válasz?
 5/7 tabaki ***** válasza:
Öhm, Puskás Gábor esete a későn futással... Még #1-hez akartam hozzászólni :)
2017. júl. 28. 12:57
Hasznos számodra ez a válasz?
 6/7 tabaki ***** válasza:
100%

Na mindegy, jobban jártál volna egy kis gondolkodással, de ha már SimkoL ellőtte a poént, közlöm az én változatomat is (ékezeteket nem tud):


var x, y : byte; szo : string;

begin

      Write('Kerem a szot: '); Readln(szo);

      for y := 1 to Length(szo) do

            begin

                  for x := 1 to y do Write(szo[x]);

                  WriteLn;

            end;

      repeat

            Dec(y);

            for x := 1 to y do Write(szo[x]);

            WriteLn;

      until y < 2;

end.


Futtatás:


Kerem a szot: MEDVEKALAND

M

ME

MED

MEDV

MEDVE

MEDVEK

MEDVEKA

MEDVEKAL

MEDVEKALA

MEDVEKALAN

MEDVEKALAND

MEDVEKALAN

MEDVEKALA

MEDVEKAL

MEDVEKA

MEDVEK

MEDVE

MEDV

MED

ME

M

2017. júl. 28. 13:42
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:
Köszi szépen a válaszokat!:) Mindenkinek ment a zöld ujjacska
2017. júl. 28. 15:21

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!