Дана строка,состоящая из слов и чисел,отделенный друг от друга пробелами.Сформировать 3...

0 голосов
76 просмотров

Дана строка,состоящая из слов и чисел,отделенный друг от друга пробелами.Сформировать 3 строки,одна из которых содержит только целые числа,встречающиеся в исходной строке,вторая-только вещественные числа,а третья-оставшиеся слова.


Информатика (46 баллов) | 76 просмотров
0

Это в Паскале.

Дан 1 ответ
0 голосов

Var
    fullstr,s,s_int,s_rl,s_str: string;
    int: integer;
    rl: real;
    space,err: integer;
begin
 writeln('String:');
    readln(fullstr);

 while fullstr[1] = ' ' do
        delete(fullstr,1,1);
    while fullstr[length(fullstr)] = ' ' do
        delete(fullstr,length(fullstr),1);
    while pos('  ',fullstr) <> 0 do
        delete(fullstr,pos('  ',fullstr),1);

 s_int := '';
    s_rl  := '';
    s_str := '';
    while fullstr <> '' do begin
        space := pos(' ',fullstr);
        if space = 0 then
            space := length(fullstr) + 1;
        s := copy(fullstr,1,space-1);
        val(s,int,err);
        if err = 0 then
            s_int := s_int + s + ' '
        else begin
            val(s,rl,err);
            if err = 0 then
                s_rl := s_rl + s + ' '
            else
                s_str := s_str + s + ' ';
        end;
        delete(fullstr,1,space);
    end;

 writeln('Integers: ',s_int);
    writeln('Real: ',s_rl);
    writeln('Words: ',s_str);

readln
end.

(1.4k баллов)