Лёгкая по паскалю! , ! составьте программу которая позволяет удалить второе слово строки s. строку s, состоящую из 2 слов, разделённых пробеламі, введите с клавbатуры.
Var s: string; x,i: byte; begin writeln('Введите строку:'); readln(s); for i:=2 to length(s) do begin if s[i]=' ' then begin x:=i+1; while (s[x]<>' ') and (x<length(s)) do begin delete(s,x,1); end; delete(s,x,1); break; end; end; writeln(s); end.
Пример 1: мама мыла мама Пример 2: Мама мыла раму Мама раму
PS: считается, что строка не начинается с пробела и не может быть два пробела подряд
Для начала задачу нужно решить чисто математически, решения приведены на листочках. Поскольку задача школьная, то вариант совпадения точек не рассматривается Алгоритмического языка не знаю, но поскольку это вариант псевдокода, то думаю алгоритм вполне понятен
алг Круг_по_двум_точкам_и_радиусу(арг действ Ax, арг действ Ay, арг действ Bx, арг действ By, арг действ r) дано | A,B,r надо | нарисовать окружность нач ввод Ax, Ay, Bx, By, r
действ dAB = ((Ax - Bx)^2 + (Ay - By)^2)^(0.5) // длина АВ действ h = (r^2-dAB^2/4)^(0.5) // высота и длина вектора ОМ
// М середина АВ действ Mx = (Ax + Bx) / 2 действ My = (Ay + By) / 2
//первый круг действ Ox = Mx + (Ay - By) * h/dAB действ Oy = My - (Ax - Bx) * h/dAB нарисовать_круг(Ox, Oy, r)
//второй круг Ox = Mx - (Ay - By) * h/dAB Oy = My + (Ax - Bx) * h/dAB нарисовать_круг(Ox, Oy, r) кон
Для начала задачу нужно решить чисто математически, решения приведены на листочках. Поскольку задача школьная, то вариант совпадения точек не рассматривается Алгоритмического языка не знаю, но поскольку это вариант псевдокода, то думаю алгоритм вполне понятен
алг Круг_по_двум_точкам_и_радиусу(арг действ Ax, арг действ Ay, арг действ Bx, арг действ By, арг действ r) дано | A,B,r надо | нарисовать окружность нач ввод Ax, Ay, Bx, By, r
действ dAB = ((Ax - Bx)^2 + (Ay - By)^2)^(0.5) // длина АВ действ h = (r^2-dAB^2/4)^(0.5) // высота и длина вектора ОМ
// М середина АВ действ Mx = (Ax + Bx) / 2 действ My = (Ay + By) / 2
//первый круг действ Ox = Mx + (Ay - By) * h/dAB действ Oy = My - (Ax - Bx) * h/dAB нарисовать_круг(Ox, Oy, r)
//второй круг Ox = Mx - (Ay - By) * h/dAB Oy = My + (Ax - Bx) * h/dAB нарисовать_круг(Ox, Oy, r) кон
begin
writeln('Введите строку:');
readln(s);
for i:=2 to length(s) do begin
if s[i]=' '
then begin
x:=i+1;
while (s[x]<>' ') and (x<length(s)) do begin
delete(s,x,1);
end;
delete(s,x,1);
break;
end;
end;
writeln(s);
end.
Пример 1:
мама мыла
мама
Пример 2:
Мама мыла раму
Мама раму
PS: считается, что строка не начинается с пробела и не может быть два пробела подряд