
Условие:
Цитата
Определить какие символы встречаются в строке и посчитать сколько раз встречается каждый из них. В алфавитном порядке вывести обнаруженные символы и кол-во их вхождений в строку.
program volvo;
var a : array[0..255] of byte;
procedure count(s : string);
var i : integer;
begin
for i:=1 to length(s) do inc(a[ord(s[i])]);
end;
procedure WriteAr;
var i : integer;
begin
for i:=0 to 255 do
if (a[i]<>0) then
Writeln(chr (i),' - ',a[i], ' раз ');readln;
end;
var b:string;
begin
writeln ('Введите строку: ');readln(B);
count (B); WriteAr; readln; end.
var a : array[#0..#255] of byte;
, как было изначально? Зачем лишние преобразования нужны?var a : array[#0..#255] of byte;
uses crt;
var
c : array[char] of byte;
ch: char;
s : string;
i : integer;
begin
clrscr;
write('s='); readln(s);
for i := 1 to length(s) do
for ch := #32 to #255 do
if s[i]=ch then
inc(c[ch]);
for ch := #32 to #255 do
if c[ch]<>0 then
writeln(ch,' ',c[ch]);
readln;
End.
program volvo;
var
a : array[#0..#255] of byte;
chars: set of char;
procedure count(s : string);
var i : integer;
begin
for i := 1 to length(s) do begin
inc(a[ s[i] ]); chars := chars + [s[i]];
end;
end;
procedure WriteAr;
var i: char;
begin
for i:=#0 to #255 do
if i in chars then
Writeln(i,' - ', a[i], ' раз ');
readln;
end;
var b: string;
begin
writeln('Введите строку: '); readln(B);
chars := []; count (B);
WriteAr;
readln;
end.
chars: set of char;
в нем видела? Это что, не множество по-твоему?
М | Зачем ? ![]() chars: set of char; { <--- это именно он ! }
читай внимательней что тебе пишут ... klem4 |
var
s:string; {входная строка}
m:set of char;{множество встетивщихся символов}
I,j,count:byte;{счетчики}
begin
m:=[];{обнуляем множество}
readln(s);{вводим строку}
{проходим по длинне строки и включаем в множетсво встетивщиеся сиволы}
for i:=1 to length (s) do include(m,(s[i]));
{проходим коды символов с 32 до 255 (от пробела по всем алфавитам.. до конца)}
for i:=32 to 255 do
{если символ входит в множество}
if chr(i) in m then begin
{исключаем из множетсва, что бы исключить повторы}
exclude(m,chr(i));
{обнуляем количество вхождений}
count:=0;
{просматриваем всю строку и если находим этот символ, увеличиваем КОУНТ }
for j:=1 to length(s) do if s[j]=chr(i) then inc(count);
{вывод результата для текущего символа.}
writeln(chr(i),' ',count);
end;
readln;
end.
program volvo_modify;
var
a : array[#0..#255] of byte;
chars: set of char;
i : integer;
b: string;
c:char;
begin
writeln('Enter string: '); readln(B);
chars := [];
for i := 1 to length(b) do begin
inc(a[ b[i] ]); chars := chars + [b[i]];
end;
for c:=#0 to #255 do
if c in chars then
Writeln(c,' - ', a[c], ' raz ');
readln;
readln;
end.