Вопрос задан 19.09.2018 в 20:41. Предмет Информатика. Спрашивает Смолянинова Татьяна.

Помогите, пожалуйста, решить в Паскаль АВС две задачи.. Дана строка, состоящая из фамилий,

разделенных одним или несколькими пробелами. 1. Сколько фамилий начинаются и заканчиваются на одну букву? 2. Удалить из строки фамилии, длина которых четна.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Мирошниченко Юлия.

program ryazantsev;

var str, newstr: string;

pos,i,k:integer;

begin

newstr:='';

Writeln ('Введите строку с фамилиями');

Readln(str);

for i:=1 to Length(str) do begin

if str[i]=' ' then continue;

if (i=1) or (str[i-1]=' ') then pos:=i

else if (i=Length(str)) or (str[i+1]=' ') then begin

if LowerCase(str[i])=LowerCase(str[pos]) then k:=k+1;

if (i-pos+1) mod 2 <> 0 then newstr:=newstr+Copy(str, pos, i-pos+1)+' '

end

end;

writeln('Количество фамилий начинающихся и заканчивающихся на одну букву: ', k);

writeln('Новая строка: ', newstr)

end.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Задача 1: Сколько фамилий начинаются и заканчиваются на одну букву?

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

Вот пример решения на языке Паскаль:

```pascal program CountNames; var inputString: string; names: array of string; i, count: integer; begin // Ввод строки с фамилиями writeln('Введите строку с фамилиями:'); readln(inputString); // Разделение строки на фамилии names := inputString.Split(' '); // Подсчет фамилий, начинающихся и заканчивающихся на одну букву count := 0; for i := 0 to Length(names) - 1 do begin if (Length(names[i]) > 0) and (names[i][1] = names[i][Length(names[i])]) then count := count + 1; end; // Вывод результата writeln('Количество фамилий, начинающихся и заканчивающихся на одну букву: ', count); end. ```

Задача 2: Удалить из строки фамилии, длина которых четна

Для решения этой задачи вам потребуется разделить строку на отдельные фамилии и проверить, является ли длина каждой фамилии четной. Затем нужно удалить из строки фамилии, удовлетворяющие этому условию.

Вот пример решения на языке Паскаль:

```pascal program RemoveNames; var inputString: string; names: array of string; i: integer; begin // Ввод строки с фамилиями writeln('Введите строку с фамилиями:'); readln(inputString); // Разделение строки на фамилии names := inputString.Split(' '); // Удаление фамилий, длина которых четна for i := Length(names) - 1 downto 0 do begin if Length(names[i]) mod 2 = 0 then Delete(inputString, Pos(names[i], inputString), Length(names[i]) + 1); end; // Вывод результата writeln('Измененная строка: ', inputString); end. ```

Обратите внимание, что в обоих примерах используется функция `Split`, которая разделяет строку на подстроки по заданному разделителю. Эта функция может быть не доступна во всех версиях Паскаля, поэтому вам может потребоваться использовать альтернативный способ разделения строки на фамилии.

Помните, что приведенные примеры решений могут быть оптимизированы и доработаны в зависимости от конкретных требований и ограничений вашей задачи.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос