Navigace: Hlavní stránka -> PASCAL -> 05 Jednorozměrná pole -> 05.07 Určování četností znaků v textu

MENU

05.07 Určování četností znaků v textu

Zadání:
Sestavte program, který ze zadaného textu (max. 80 znaku bez českých) určí četnosti jednotlivých znaků
Řešení:
Po zadání textu (pro jednoduchost předpokládáme malá písmena anglické abecedy) pomocí cyklu FOR vynulujeme
pole četností jednotlivých znaků (pole četností má indexy v intervalu 97..122 = pořadí malých písmen anglické
abecedy v ASCII tabulce). Poté pomocí druhého cyklu FOR pro každý znak v textovém řetězci zjistíme pořadové číslo
znaku v ASCII tabulce (funkcí ORD) a inkrementujeme příslušný prvek v poli četností. Na konci programu pomocí
cyklu FOR vytiskneme pouze ty četnosti znaků, které mají nenulovou hodnotu.
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var cetnosti:array[97..122] of byte;
    i:integer;
    retezec:string[80];

begin

   write('Zadejte textovy retezec: ');
   readln(retezec);

   for i:=97 to 122 do cetnosti[i]:=0;

   for i:=1 to length(retezec) do
      cetnosti[ord(retezec[i])]:=cetnosti[ord(retezec[i])]+1;

   writeln;

   writeln('Cetnosti:');   
   for i:=97 to 122 do
      if cetnosti[i]<>0 then writeln(chr(i),': ',cetnosti[i]);

   readln;
end.

program ke stažení