var s:string; k:integer; begin Write('Введите слово: '); Readln(s); Write('Какую по порядку букву удалить? '); Read(k); Delete(s,k,1); Writeln('Результат: ',s) end.
Вариант с функцией Copy
var s:string; k,n:integer; begin Write('Введите слово: '); Readln(s); Write('Какую по порядку букву удалить? '); Read(k); n:=Length(s); s:=Copy(s,1,k-1)+Copy(s,k+1,n-k); Writeln('Результат: ',s) end.
Вариант с циклами
var s,s1:string; k,i,n:integer; begin Write('Введите слово: '); Readln(s); Write('Какую по порядку букву удалить? '); Read(k); n:=Length(s); s1:=''; for i:=1 to k-1 do s1:=s1+s[i]; for i:=k+1 to n do s1:=s1+s[i]; Writeln('Результат: ',s1) end.
Тестовое решение (одинаково для всех вариантов): Введите слово: Таракан Какую по порядку букву удалить? 4 Результат: Таркан
for (auto& i : field){ i.H = 'a' + distribution(generator) - 1; i.V = distribution(generator); } }
// Поиск возможных комбинаций для хода. std::vector<Notation> SearchMoves(const Notation& stroke){ std::vector<Notation> temp; int x, y;
for (int i = 0; i < 8; ++i){ switch (i){ case 0: // Вверх влево. y = +3; x = -1; break; case 1: // Вверх вправо. y = +3; x = +1; break; case 2: // Вправо вверх. y = +1; x = +3; break; case 3: // Вправо вниз. y = -1; x = +3; break; case 4: // Вниз вправо. y = -3; x = +1; break; case 5: // Вниз влево. y = -3; x = -1; break; case 6: // Влево вниз. y = -1; x = -3; break; case 7: // Влево вверх. y = +1; x = -3; break; } // Если ход возможен, добавим его в массив. if (CheckMov(stroke, x, y)) temp.push_back(Notation{ stroke.H + x, stroke.V + y }); } return std::vector<Notation>(temp); }
// Проверка выхода за границу. bool CheckMov(const Notation& stroke, int x, int y){ bool isLTBorder = (stroke.H + x >= 'a') && (stroke.V + y >= 1); bool isRBBorder = (stroke.H + x <= 'h') && (stroke.V + y <= 8); return (isLTBorder && isRBBorder); }
// Все возможные ходы одного элемента. std::vector<Notation> temp = SearchMoves(*field.begin()); for (auto i = field.begin() + 1; i < field.end(); ++i){ for (auto u : temp){ // Ход в массиве - есть ход конём. if (u == *i) { possible.push_back(u); break; } } temp = SearchMoves(*i); }
return std::vector<Notation>(possible); }
// Выводит массив в поток. std::ostream& PrintGround(const std::vector<Notation>& field, std::ostream& out){ for (auto i : field) out << i.H << i.V << " - "; return out; }
var
s:string;
k:integer;
begin
Write('Введите слово: '); Readln(s);
Write('Какую по порядку букву удалить? '); Read(k);
Delete(s,k,1);
Writeln('Результат: ',s)
end.
Вариант с функцией Copy
var
s:string;
k,n:integer;
begin
Write('Введите слово: '); Readln(s);
Write('Какую по порядку букву удалить? '); Read(k);
n:=Length(s);
s:=Copy(s,1,k-1)+Copy(s,k+1,n-k);
Writeln('Результат: ',s)
end.
Вариант с циклами
var
s,s1:string;
k,i,n:integer;
begin
Write('Введите слово: '); Readln(s);
Write('Какую по порядку букву удалить? '); Read(k);
n:=Length(s);
s1:='';
for i:=1 to k-1 do s1:=s1+s[i];
for i:=k+1 to n do s1:=s1+s[i];
Writeln('Результат: ',s1)
end.
Тестовое решение (одинаково для всех вариантов):
Введите слово: Таракан
Какую по порядку букву удалить? 4
Результат: Таркан
Блок-схемы всех вариантов находятся во вложениях