Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите найти ошибки в задачи на функцию
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
spektr
Помогите пожалуйста!Совсем ноль!!!
Описать функцию f(s, n, х), определяющую, какой символ реже других ( но не нуль раз ) встречается в строке s и сколько раз он в нее входит. Если таких символов несколько, то взять первый из них по алфавиту.

Надеюсь на Вашу помощь!!!
spektr
Вот готовая программа,но препод говорит,есть ошибки,какого-то условия не хватает... Помогите пожалуйста их найти неточности...

procedure Stat(source: string);
var
chars: array[0..255] of Word;
n, k: Integer;
begin
for n:=0 to 255 do chars[n]:=0;
for n:=1 to length(Source) do
begin
k:=ord(Source[n]);
chars[k]:=chars[k] + 1
end;
for n:=0 to 255 do
if chars[n] > 0 then
Write(chr(n),'' - '', chars[n]:3,'' '');
WriteLn;
end;
VAR S: String;
BEGIN
Write(''Type the string: ''); ReadLn(S);
Stat(S);
END.
volvo
Я бы вот так сделал:

procedure Stat(source: string);
var
chars: array[0..255] of Word;
n, k: Integer;
min: integer;

begin
for n := 0 to 255 do chars[n] := 0;
for n:=1 to length(Source) do begin
k := ord(Source[n]);
chars[k]:=chars[k] + 1
end;

{ Вот этого у тебя не было - тебе же надо найти символ(ы), встречающиеся минимальное кол-во раз? }
min := 255;
for n := 0 to 255 do
if (chars[n] > 0) and (chars[n] < min)
then min := chars[n];

for n:=0 to 255 do
if chars[n] = min then
write(chr(n),' - ', chars[n]:3,' ');
writeLn;
end;

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.