Witam. Moim zadaniem jest napisanie aplikacji w Pascalu, która pobierze tekst od użytkownika, a następnie wypisze po kolei litery w kolejności: od tych, których jest najwięcej, do tych, których jest najmniej.
Podstawy już napisałem oraz stworzyłem tablicę indeksowaną znakowo, w której mam wystąpienia poszczególnych liter. W tym momencie zaczynają się problemy, bo miałem pomysł, żeby posortować ją bąbelkowo lub inaczej i póżniej wypisać po kolei elementy, tylko nie wiem czy wtedy nie stracę informacji, jaka litera wystąpiła ileś razy. Z resztą instrukcja inc nie działa.
Proszę o pomoc w tym sposobie wypisania liter, albo o zapodanie jakiegoś innego... :)
var s : String;
temp,x : Integer;
wyst: array['a'..'z'] of Integer;
c,k : Char;
begin
Write('Podaj tekst = ');
Readln(s);
for c:='a' to 'z' do
wyst[c]:=0;
for x:=1 to (length(s)) do
wyst[s[x]]:=wyst[s[x]]+1;
for k:='a' to 'z' do
if wyst[k]<wyst [inc(k)] then
begin
temp:=wyst[k];
wyst[k]:=wyst[inc(k)];
wyst[inc(k)]:=temp;
end;
Writeln;
for k:='a' to 'z' do Write(wyst[k],' ');
end.
P.S. Kompiluję w Delphi Personal 7, ale program ma być w Pascalu.