Pascal: szöveg betűinek megszámlálása

Üdv mindenkinek!
Ez itt első pascalos cikkem, és közkívánatra esetleg még többet is írhatok. :)

A program annyit tesz, hogy megszámolja a beadott szöveg betűit és kiírja képernyőre.

A program önmagáért beszél, vagyis nem sokat fűzök hozzá, csupán annyit, hogy a hozzáfűznivalók a forrásban vannak kommentek formájában.

szamol2 300x123 Pascal: szöveg betűinek megszámlálása

A teljes forrás:

program betuszamlalo;

const
BetuKarakterek = ['A'..'Z','a'..'z'];

var

// az elemek indexe megfelel az angol abc betűinek sorszámával
// pld.: betuk[0] az ‘A’ betűt jelölik ; betuk[2] a ‘C’ betűt stb
// és minden elem az adott betű előfordulásainak számát tartalmazza

betuk: array[0..25] of Integer;

// feltölti a betuk tömböt a szoveg karakterlánc alapján
procedure
szamol(szoveg: String);
var

i: Integer;
c: Char;
begin

for
i := 1 to Length(szoveg) do
begin

// c-ben eltároljuk az adott karakter nagybetűs változatát
// így a szoveg-ben lévő kisbetűk nem okoznak gondot a továbbiakban

c := UpCase(szoveg[i]);

// a c karakternek megfelelő indexű tömbelem értéket megnöveljük
if
c in BetuKarakterek then
Inc(betuk[Byte(c) - 65]);
end
;
end;

// kiírja az egyes betűk előfordulását a betuk tömb segítségével
procedure
kiir;
var

i: Byte;
begin

for
i := 0 to 25 do
if
betuk[i] > 0 then
begin

WriteLn(Chr(65 + i), ‘: ‘, betuk[i]);
end;
end;

// bekér egy szöveget, ami a függvény visszatérési értéke lesz
function beker: String;
begin
Write(‘Kérem a szöveget: ‘);szamlalo 160x160 Pascal: szöveg betűinek megszámlálása
Readln(beker);
end;

begin
szamol(beker);
Writeln;
kiir;
Readln;
end.

Valamennyi hozzászólást az RSS 2.0 hírcsatornán lehet követni. Szóljon hozzá, vagy adjon a saját honlapjáról egy visszakövetést.

8 hozzászólás »

 
  • storm szerint:

    Hali és üdv!
    Kiprobáltam a program forrás kódot, a képen és a forrásban mellékelt között találtam pár hibát, de javitásuk után is a constansra hibát észlel a TP… pontosvesszőre hagyatkozva, probáltam módositani, de nem engedte akkor se futatni…
    Ha tudsz segíteni előre is megköszönném!
     
    Üdv,
    István

  • badogman szerint:

    Hello.
    Több okból is lehet rossz:

    Ha Másolás/Beillesztés-t használtál, akkor rossz karakterek kerülhettek a fájlba. Ilyen például az aposztróf pár helyen.
    A TP nem ismeri a //-megjegyzéstípust. Írd át { valami } vagy (* valami *)  formára, vagy csak töröld ki.
    A beker függvénnyel is baja lehet Readln(beker) miatt.

    Egyelőre ennyi.
    Ha esetleg még nem lenne jó, másold be ide a hibás sort.
     

  • Bősze szerint:

    Helló badogman !
    Örülök, hogy újra feltűntél :) Nekem semmi időm mostanság.
    Köszi a segítséget!

  • badogman szerint:

    Hy Bősze.
    Nem neked kell megköszönni, stormnak osztottam a tudományt. :)

  • storm szerint:

    Köszi! :D Elindult a progi :P
    Jaja, de volt 1 progi amit használtam const-ra hivatkozott és átkellet írjam type-ra :D ott meg müködött és debugba ment is… De kiderült akinek kellet a program 92′-es progit használtak és ott még más volt a kódolás a const tökéletes :D összeakadtak picit a kódolási hibák :D De sikerült kijavitani és mennek a dolgok mégegyszer köszi:P
     
    Viszont ha valaki olvasgatja a blog-ot akkor lenne 1 kérésem! :) Remélem tudtok segíteni ! Egy olyan progi kéne ami hasonló mint ez csak annyival különböző hogy kikéne írni csak az A betüket a mondatból, az első szóból és a második szóból külön sorban…
    Előre is köszönöm, meghálálnám!!!
     
    Üdv,
    Storm

  • badogman szerint:

    Rendben. $-)
    Megkeresem a számlaszámomat;)

  • storm szerint:

    Hehe :D
    Már majdnem kész a progi :P Csak tele van hibával, forumozgatunk haverral :D hátha tudnak segíteni.. eddig egész jól megy a dolog… De ha kell elküldöm az eddigi forrás anyagot, egyébként ettől a progitól függ a barátom következő éve :D hogy átmegy-e vagy sem xD

  • badogman szerint:

    Hát elküldheted, ha akarod. Mégse hagyhatjuk, hogy haver megbukjon, mert hova vezetne az, ugye? :)

 

Szólj hozzá!