Написать программу для решения a) удалить из текста все введенные символы. b) в заданном тексте после каждого знака ‘–’ и перед каждым таким знаком вставить пробел, если его там нет.
begin Write('Введите текст: '); Readln(s); Write('Введите исключаемые символы ПОДРЯД: '); Readln(s_rej); s2 := ''; for i := 1 to Length(s) do if Pos(s[i], s_Rej) = 0 then s2 := s2 + s[i]; Writeln('Обработанный текст: ', s2) end.
Тестовое решение: Введите текст: Пример текста, из которого будут исключены гласные буквы Введите исключаемые символы ПОДРЯД: аеёиоуэюя Обработанный текст: Прмр ткст, з ктрг бдт склчны глсны бквы
var s, s2: string; i: integer; c:array of string;
begin Write('Введите текст: '); Readln(s); s:=Trim(s); c:=s.Split('-'); s2:=Trim(c[0]); for i:=1 to Length(c)-1 do s2:=s2+' - '+Trim(c[i]); Writeln('Обработанный текст: ', s2) end.
Тестовое решение: Введите текст: тестовая -строка - в ней много-много тире в разных- преразных вариантах - и в таком даже Обработанный текст: тестовая - строка - в ней много - много тире в разных - преразных вариантах - и в таком даже
Привет! Посмотрим на вашу программу по шагам, чтобы понять, почему она выводит 0 вместо ожидаемого значения 23.
1. Ваш код начинается с цикла "for s in range(1,1000):", который означает, что переменная s будет принимать значения от 1 до 999 включительно.
2. Далее, для каждого значения s вы устанавливаете значение переменной n равным 50.
3. Затем начинается цикл "while s > 0:", который будет выполняться до тех пор, пока значение переменной s больше 0.
4. Внутри цикла вы делите значение переменной s на 2 с использованием оператора "//" для целочисленного деления. Это означает, что результат деления будет целым числом без остатка.
5. Затем вы уменьшаете значение переменной n на 3.
6. После завершения цикла while вы проверяете, равно ли значение переменной n 23. Если это так, вы выводите значение переменной i (вместо i следует использовать переменную s).
7. Если значение n не равно 23, то цикл переходит к следующему значению s в диапазоне.
Теперь давайте разберемся, почему программа выводит 0 вместо 23.
Проблема заключается в том, что вы используете переменную i вместо s в выражении "print(i)", которая не определена в вашей программе. Вместо этого следует использовать переменную s, так как она отвечает за текущее значение в цикле for.
Исправьте ошибку, заменив "print(i)" на "print(s)".
Вот исправленный код:
```python
for s in range(1,1000):
n = 50
while s > 0:
s = s // 2
n = n - 3
if n == 23:
print(s)
break
```
После внесения этого исправления ваша программа должна правильно выводить наименьшее значение переменной s, при котором значение переменной n становится равным 23.
Программа, представленная во фрагменте, пытается определить количество неотрицательных элементов массива a[1..10]. Однако в коде пропущено условие, которое должно быть использовано для проверки каждого элемента массива.
Давайте пройдемся по фрагменту программы шаг за шагом:
1. У нас есть переменные k и i, которые устанавливаются в начальное значение равное 10 и 1 соответственно.
2. Затем идет цикл while, который будет выполняться, пока i меньше или равно 10.
3. Внутри цикла есть условное выражение if, в котором должно быть пропущено условие для проверки каждого элемента массива.
4. После условного оператора if, есть операция вычитания k - 1. Вероятно, это предполагает, что если условие в этом if выполняется, то переменная k должна быть уменьшена на 1.
5. Затем переменная i увеличивается на 1, чтобы перейти к следующему элементу массива.
6. Наконец, у нас есть оператор write, который должен напечатать значение исключительного условия a[i]>0.
Таким образом, чтобы программа правильно работала, пропущенное условие для проверки элементов массива должно быть: a[i]>0.
Полная программа будет выглядеть следующим образом:
k := 10;
i := 1;
while i <= 10 do
begin
if a[i] > 0 then
k := k - 1;
i := i + 1
end;
write (k).
s, s_rej, s2: string;
i: integer;
begin
Write('Введите текст: '); Readln(s);
Write('Введите исключаемые символы ПОДРЯД: '); Readln(s_rej);
s2 := '';
for i := 1 to Length(s) do
if Pos(s[i], s_Rej) = 0 then s2 := s2 + s[i];
Writeln('Обработанный текст: ', s2)
end.
Тестовое решение:
Введите текст: Пример текста, из которого будут исключены гласные буквы
Введите исключаемые символы ПОДРЯД: аеёиоуэюя
Обработанный текст: Прмр ткст, з ктрг бдт склчны глсны бквы
var
s, s2: string;
i: integer;
c:array of string;
begin
Write('Введите текст: '); Readln(s);
s:=Trim(s);
c:=s.Split('-');
s2:=Trim(c[0]);
for i:=1 to Length(c)-1 do
s2:=s2+' - '+Trim(c[i]);
Writeln('Обработанный текст: ', s2)
end.
Тестовое решение:
Введите текст: тестовая -строка - в ней много-много тире в разных- преразных вариантах - и в таком даже
Обработанный текст: тестовая - строка - в ней много - много тире в разных - преразных вариантах - и в таком даже