Задача 5 урок 16

Задача 5 урок 16

Пользователь вводит строку символов, в которой есть два числа, разделенные другими символами, т.е. строка имеет вид:

какиетосимволыЧИСЛО1какиетосимволыЧИСЛО2какиетосимволы

необходимо считать данные числа в две строковые переменные s1 и s2.

var s, S1, S2: string;
            i: Integer;
begin
 writeln('Vvedite stroku');
 readln(s);
   for i:=1 to Length(s) do
     if (s[i]>='0')and(s[i]<='9') then
       if length(S1) < 2 then
         S1:=S1+s[i]
       else if length(S2) < 2 then
         S2:=S2+s[i];

 write('S1= ',S1,' '); // выводим строковые перемен.
 write('S2= ',S2);
 readln();
end.
vedro-compota's picture

if length(S1) < 2 then

-- почему именно 2?

_____________
матфак вгу и остальная классика =)

var s, S1, S2: string;
            i: Integer;
         flag: boolean;
begin
 flag:=true;
 writeln('Vvedite stroku');
 readln(s);
   for i:=1 to Length(s) do
     if (s[i]>='0')and(s[i]<='9') then
       if flag then
         begin
           S1:=S1+s[i];
           if NOT((s[i+1]>='0')and(s[i+1]<='9')) then
             flag:=false;
         end
       else
         S2:=S2+s[i];

 write('S1= ',S1,' '); // выводим строковые перемен.
 writeln('S2= ',S2);
 readln();
end.
vedro-compota's picture

if NOT((s[i+1]>='0')and(s[i+1]<='9')) then
             flag:=false;
  • 1) проверить на выход за пределы строки
  • 2) добавить альтернативное решение без обращения к (i+1)-ому элементу (не смотре "вперед")

_____________
матфак вгу и остальная классика =)

var s, S1, S2: string;
            i: Integer;
         flag: boolean;
begin
 flag:=true;
 writeln('Vvedite stroku');
 readln(s);
   for i:=1 to Length(s) do
     if (s[i]>='0')and(s[i]<='9') then
       begin
         if (flag) then
           S1:=S1+s[i]
         else
           S2:=S2+s[i];
       end
     else if flag AND (S1<>'') then
       flag:=NOT flag;


 write('S1= ',S1,' '); // выводим строковые перемен.
 writeln('S2= ',S2);
 readln();
end.
vedro-compota's picture

решение засчитано

_____________
матфак вгу и остальная классика =)