Задать вопрос
29 июня, 07:21

Помогите, как преобразовать данный алгоритм с помощью рекурсии (в pascal abc)

Слова в тексте разделены пробелами. Какие символы есть в каждом слове?

Решение:

function simbols (st:string) : set of char;

var

s:string;

n:integer;

mc:set of char;

begin

mc:=[];

n:=pos (' ', st) ;

if n>0 then

begin

s:=copy (st, 1, n-1) ;

Delete (st, 1, n) ;

result:=simbols (st) ;

end

else s:=st;

foreach var c:char in s do mc:=mc+[c];

if result=[] then result:=mc else if mc[] then result:=result*mc;

end;

var

s:string;

begin

readln (s) ;

writeln (simbols (s)) ;

end.

+2
Ответы (1)
  1. 29 июня, 07:36
    0
    Function simbols (st:string) : set of char;

    var s:string;

    n, i:integer;

    nc:set of char;

    begin

    nc:=[];

    n:=pos (' ', st) ;

    if n>0 then

    begin

    s:=copy (st, 1, n-1) ;

    Delete (st, 1, n) ;

    end

    else

    begin

    s:=st;

    st:='';

    end;

    for i:=1 to length (s) do nc:=nc+[s[i]];

    if length (st) >0 then

    result:=nc*simbols (st)

    else result:=nc;

    end;
Знаете ответ?
Сомневаетесь в ответе?
Найдите правильный ответ на вопрос ✅ «Помогите, как преобразовать данный алгоритм с помощью рекурсии (в pascal abc) Слова в тексте разделены пробелами. Какие символы есть в ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы
Похожие вопросы по информатике
Program mm; var o, oo, v, n, n1, q1, r1, y1:string; l, x, b, z, y, r, q:integer; begin v:='вычислить '; read (n) ; n1:=n; q:=pos (' + or - ', n) ; q1:=copy (n, 1, q-1) ; val (q1, x, r) ; Delete (n, 1, q) ; r:=pos (' - or + ', n) ;
Ответы (1)
Сделать так чтобы Writeln был заменен другим словом и повторялься не больше двух раз program choise; var N_M:integer; writeln (' введи номер месяца ') ; readln (N_M) ; case N_M of 1:writeln (' январь ') ; 2:writeln (' февраль ') ;
Ответы (1)
Функция для определения позиции буквы в слове, не могу найти ошибку. var slovo : string; i : integer; function ups (var s : string; ch : char) : integer; var i, n : integer; begin for i:=1 to length (s) do if s[i]=ch then n:=i else n:=0; ups:=n; end;
Ответы (1)
Как сделать теперь без массива (паскале) ? var nm:array of integer; j, l:integer; begin nm: = new integer[3] (random (20), random (20), random (20)) ; writeln ('nm[0] = ', nm[0]) ; writeln ('nm[1] = ', nm[1]) ; writeln ('nm[2] = ', nm[2]) ;
Ответы (1)
Помогите перевести с Паскаля на Python: var k, s: string; n: integer; begin read (s) ; n : = 100; while n > 0 do begin n : = pos ('/', s) ; if n > 0 then begin k : = copy (s, 1, n - 1) ; writeln (k) ; delete (s, 1, n) ; end else n : = 0; end;
Ответы (1)