С клавиатуры вводится строка удалить из нее каждое слово нечетной длины

Обновлено: 17.05.2024

В статье представлены задачи различных типов: подсчет частоты появления символа в строке; поиск подстроки в строке, замена найденной подстроки на другую строку; выделение слов из строки, нахождение числа слов в строке, нахождение минимальной (максимальной) длины слова в строке; сравнение и сортировка строк и др.

Все приведенные программы написаны на языке программирования PascalABC.

С помощью функции копирования и операции конкатенации составить из частей слова “информатика” слово “торт”.

var s, ns: string;

Подсчитать, сколько раз среди символов заданной строки встречается буква “а”.

for i:=1 to length(s) do

if s[i]='а' then k:=k+1;

writeln('Буква “а” встречается ', k, ' раз(а)');

Найти долю пробелов в строке A.

for i:=1 to length(a) do

if a[i]=' ' then k:=k+1;

writeln('Доля пробелов в строке ', d);

Заменить все буквы “а” на буквы “б” в заданной строке.

for i:=1 to length(s) do

Из заданной строки получить новую, повторив каждый символ дважды.

var s, ns: string;

for i:=1 to l do begin

for i:=1 to 2*l do write(ns[i]);

Дано слово. Вывести слово, содержащее те же символы, но расположенные в обратном порядке.

for i:=length(s) downto 1 do write(s[i]);

Проверить, является ли заданное слово палиндромом.

i, l, m, k: integer;

if k=1 then writeln('Слово “', s, '” не палиндром')

else writeln('Слово “', s, '” палиндром');

Строка X состоит из нескольких предложений, каждое из которых кончается точкой, восклицательным или вопросительным знаком. Определить количество предложений в строке X.

for i:=1 to length(x) do

writeln('В строке ', k, ' предложений');

Проверить правильность расстановки скобок в формуле. Расстановку считать правильной, если число открывающих скобок равно числу закрывающих скобок.

i, ko, kz: integer;

for i:=1 to length(f) do begin

if f[i]='(' then ko:=ko+1;

if f[i]=')' then kz:=kz+1;

if ko=kz then writeln('Правильная расстановка скобок')

else writeln('Неправильная расстановка скобок');

Проверить правильность расстановки скобок в формуле. Учитывать порядок скобок.

Способ 1

until (k<0) or (i>length(f));

if k=0 then writeln('Правильная расстановка скобок')

else writeln('Неправильная расстановка скобок');

Способ 2

for i:=1 to length(f) do begin

if (k=0) and (z=0) then

writeln('Правильная расстановка скобок')

writeln('Неправильная расстановка скобок');

В заданной строке подсчитать количество букв латинского алфавита.

write('Введите строку символов: ');

for i:=1 to length(s) do

writeln('В строке “', s, '” ', k, ' латинских букв');

Подсчитать количество цифр в заданной строке.

write('Введите строку символов: ');

for i:=1 to length(s) do

for j:=1 to 10 do

if s[i]=c[j] then k:=k+1;

writeln('В строке “', s, '” ', k, ' цифр');

Из заданной строки получить новую, удалив из нее все пробелы.

var s, ns: string;

for i:=1 to length(s) do

if s[i]<>' ' then begin

for i:=1 to k do write(ns[i]);

Из заданной строки получить новую, удалив все буквы латинского алфавита.

var s, ns: string;

for i:=1 to length(s) do

if (s[i]<'A') or (s[i]>'Z') and (s[i]<'a') or (s[i]>'z') then begin

for i:=1 to k do write(ns[i]);

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

for i:=1 to length(t) do

if copy(t, i, length(f))=f then k:=k+1;

writeln('Фрагмент “', f, '” встречается в тексте ', k, ' раз(а)');

Проверить, является ли частью данного слова слово “сок”. Ответ должен быть “да” или “нет”.

for i:=1 to length(s) do

if copy(s, i, 3)='сок' then f:=1;

if f=1 then writeln('да')

В заданной строке всюду “1999” заменить на “2000”.

for i:=1 to length(a) do

if copy(a,i,4)='1999' then begin

Ввести с клавиатуры строку, содержащую фамилию, имя и отчество. Слова в строке разделять одним пробелом. Получить новую строку, содержащую фамилию и инициалы.

var s, f, i, o: string;

write('Введите фамилию, имя и отчество: ');

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

for i:=1 to length(s) do

if s[i]=' ' then k:=k+1;

writeln('Количество слов в строке ', k);

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

for i:=1 to length(s) do begin

if (s[i]<>' ') and (f=0) then f:=1;

if (s[i]=' ') and (f=1) then begin

writeln('Количество слов в строке ', k);

Проверить цепочку слов на совпадение первой буквы следующего слова с последней буквой предыдущего слова.

write('Введите слова через пробел: ');

for i:=2 to length(s)-1 do

if f=0 then writeln('Совпадают')

else writeln('Не совпадают');

Определить наименьшую длину слова в заданной строке. Слова считать отделенными друг от друга одним или несколькими пробелами.

<?
$строка = $_POST['Cтрока'];
$слова = explode(' ', $строка);
$новая_строка = '';
foreach ($слова as $слово) if (strlen($новая_строка) > 0) $новая_строка .= ' ';
if (strlen($слово) % 2 == 0 || $слово[0] != 'r') $новая_строка .= $слово;
>
echo $новая_строка;
?>

Новые вопросы в Информатика

Запишите вызов функции квадратного корня от переменной а при условии, что ранее была записана инструкция import math. Ответ запишите без пробелов.​ Б … ыстро пожалуйста.

Составить программу, которая запрашивает у пользователя два целых числа и выводит квадрат суммы (a + b)^2 и сумму квадратов a^2+ b^2 этих чисел. Приме … р работы программы: Введите два числа a = 3 b = 210 квадрат суммы 3 и 2 равен 25 сумма квадратов 3 и 2 равна 13

Все задания сделать в Python. Задание 1: Даны два списка: А и B (M и N - размеры списков вводятся с клавиатуры). Необходимо создать третий массив мин … имально возможного размера, в котором нужно собрать элементы обоих массивов. Задание 2: Даны два списка. Определите, существуют ли в первом массиве такие два элемента, что их сумма равна сумме каких-либо трех элементов второго списка. Задание 3: Удалить в массиве все числа, которые повторяются более двух раз. Задание 4: Удалить в массиве все наибольшие элементы.

Задание сделать в Python. Заполнить два целочисленных списка A[10] и B[10]. Сформировать третий массив X[20], элементы которого будут взяты из A и B в … порядке: а) чередования (a0, b0, a1, b1, a2, b2, …, a9, b9); б) следования (a0, a1, a2,…, a9, b0, b1, b2,…, b9).

Задание сделать в Python. В массиве хранится информация о стоимости 10 марок автомобилей. Определить сумму наиболее дорогого автомобиля и узнать его н … омер. Если таких автомобилей несколько, определить: а) номер первого такого автомобиля; б) номер последнего такого автомобиля.

Задание сделать в Python. Создать список в котором дана температура воздуха за каждый день января. Определить: а) среднюю температуру за месяц; б) ск … олько раз температура воздуха опускалась нижеуказанной метки.

1. Как определить, какой вид информации содернится файле?2. Схолько байт содержит текст последнего абзаца параграфа?3. Какие параметры участвуют в код … ировании звуковой информации?4. Как кодируется пиксел на экране монитора?5. В чем состоит различие и каково назначение форматов RGB, смук. HSB? ​

СРОЧНО. программы паскаль . 50 баллов Написать на языке Паскаль: 1«Введите с клавиатуры вещественное число (радиус окружности). Выведите на экран дл … ину этой окружности и площадь круга, который она описывает» 2«Напишите программу для вычисления дискриминанты квадратного уравнения. Коэффициенты задайте в программе через оператор присваивания. Продумайте алгоритм решения данной задачи.»

Используется представление строки как массива символов. Вначале рассчитывается количество удаляемых символов n.

Пусть введенная строка имеет вид ‘1234567890’, Тогда n=10.

После удаления первого символа: ‘234567890’ и в полученной строке надо удалить второй символ. Результат: ‘24567890’.

В полученной строке надо удалить третий символ.

Таким образом, на каждом шаге цикла необходимо удалять элемент, индекс которого равен значению счетчика. Текст программы:

write('Введите строку:'); readln(s);

if (n mod 2)=0 then n:=n div 2 else n:=(n div 2)+1;

Пример: вывести символы между первым и вторым многоточиями

Задание можно решить разными способами: 1) с использованием встроенных функций обработки строк; 2) просматривая строку как массив символов. Ниже приводится вариант решения с использованием встроенных функций.

Для надежности сохраним исходную строку и скопируем содержимое исходной строки в новую строку s2. Вначале определяется позиция первого двоеточия pos1 (функция Pos). Если pos1=0, то в строке нет двоеточий и работа программы прекращается. Далее удаляем из строки pos1 символов и снова ищем позицию двоеточия (pos2). Если pos2=0, то в строке только одно двоеточие и работа программы прекращается. Если второе двоеточие есть, то в результат записываем (pos2-1) символов, начиная с pos1+1.

str1, str2: string;

pos1, pos2: integer;

writeln('введите строку:'); readln(str1);

if pos1=0 then writeln('строка не содержит двоеточий!')

if pos2=0 then writeln('строка содержит только одно многоточие')

Результат работы программы:

Замена первого вхождения подстроки другой подстрокой

Пусть необходимо заменить первое вхождение подстроки ‘друг’ на подстроку ‘враг’. В приведенном ниже примере замена оформлена функцией Replace. Обратите внимание, что изменяемая строка передается по ссылке (с ключевым словом var), а не по значению.

function Replace(var str:string;substr1,substr2:string): integer;

var p,ls1: integer;

if p = 0 then Replace:=0

Insert(substr2, str, p);

var s:string; n: integer;

s:='друг познается в беде';

Записать строку в обратном порядке

В приведенном ниже примере использовано представление строки как массива символов. В этом случае изменяемую строку не потребовалось передавать по ссылке.

Function Revert(S: string):string;

For i:=length(S) downto 1 do

var str,revstr: string;

Изменение строки: пример использования стандартных функций

Пусть необходимо строку с фамилией, именем и отчеством вида «Перов Иван Васильевич» преобразовать в строку вида «Петров И.В.». Для наглядности предположим, что имя и отчество разделяются только одним пробелом.

Вначале находим позицию первого пробела k (1). В строку s1 копируем k+1 символов (т.е. фамилию и первую букву имени, 2). Находим длину строки s1 (3) и в позиции L+1 добавляем в эту строку точку (4). Далее из исходной строки удаляем k символов (т.е. фамилию и первый пробел) и снова ищем пробел (5,6). Затем копируем (k+1)-ый символ в строку s1 и добавляем точку (7,8,9).

Var s, s1: shortString;

s := 'Дубик Николай Андреевич';

s1:=Copy(s,1,k+1); // 2 'Дубик Н'

Insert('.' , s1 , L+1); // 4 'Дубик Н.'

Delete (s,1,k); // 5 'Николай Андреевич'

Insert(s[k+1] , s1 , L+1); // 8 'Дубик Н.А.'

Работа с файлами

Простейший пример работы с текстовым файлом

В приведенном ниже примере создается текстовый файл с именем «test.txt», в который записываются введенные с клавиатуры строки. Программа заканчивает работу после ввода пустой строки.

Так как создавался текстовый файл, то его содержимое можно просмотреть в любом редакторе типа «Блокнот».

Пример работы с типизированным файлом

В приведенном ниже примере вначале производится запись целых чисел в файл test2.dat, а затем для контроля выполняется чтение из этого файла.

f: file of integer;

for i:=1 to 10 do begin

while not eof(f) do begin

Рекомендуемая литература

До сих пор подавляющее большинство учебников описывают язык программирования Turbo Pascal, хотя среда Turbo Pascal не работает на современных 64-разрядных операционных системах. Однако создатели Free Pascal сознательно создавали интерфейс максимально походим на интерфейс Turbo Pascal, а в опциях программы возможно задать совместимость с Turbo Pascal.

Поэтому практически все учебники по языку Pascal пригодны и для изучения Free Pascal. Приведенные ниже два учебника позволяют ознакомиться с возможностями Free Pascal, отсутствующими в Turbo Pascal.

1. Кетков, Ю. Л. Свободное программное обеспечение. FREE PASCAL для студентов и школьников/ Ю. Л. Кетков, А. Ю. Кетков. — СПб.: БХВ-Петербург, 2011. — 384 с.: ил. + CD-ROM

2. Алексеев Е.Р., Чеснокова О.В., Кучер Т.В. Самоучитель по программированию на Free Pascal и Lazarus. - Донецк.: ДонНТУ, Технопарк ДонНТУ УНИТЕХ, 2011. - 503 с.

Значительное количество примеров и заданий для самостоятельной работы содержится в книгах:

3. Культин Н. Turbo Pascal в задачах и примерах. – СПб.: БXB-Петep6ypr, 2006. – 256 c.

4. Павловская Т.А. Паскаль. Программирование на языке высокого уровня: Учебник для вузов. – СПб.: Питер, 2007. – 339 с.


Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.


Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни.

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим.


Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.

Осваивайте профессию, начните зарабатывать, а платите через год!


Курсы Python Ак­ция! Бес­плат­но!


Станьте хакером на Python за 3 дня


Веб-вёрстка. CSS, HTML и JavaScript



Курс Bootstrap 4


Станьте веб-разработчиком с нуля

Строки в JavaScript представлены в формате Unicode. Строка может быть заключена в одинарные или двойные кавычки. Она может со- держать ноль и более символов. В JavaScript для примитивных значений доступны методы и свойства, поскольку JavaScript, при выполнении методов и свойств, обрабатывает примитивные значения как объекты.

1. Преобразовать строку в массив слов

Напишите функцию stringToarray(str) , которая преобразует строку в массив слов.

2. Удаление указанного количества символов из строки

Напишите функцию delete_characters(str, length) , которая возвращает подстроку, состоящую из указанного количества символов.

3. Вставить тире между словами строки

Напишите функцию insert_dash(str) , которая принимает строку str в качестве аргумента и вставляет тире (-) между словами. При этом все символы строки необходимо перевести в верхний регистр.

4. Сделать первую букву строки прописной

Напишите функцию, которая принимает строку в качестве аргумента и преобразует регистр первого символа строки из нижнего регистра в верхний.

5. Первая буква каждого слова заглавная

Напишите функцию capitalize(str) , которая возвращает строку, в которой каждое слово начинается с заглавной буквы.

6. Смена регистра символов строки

Напишите функцию change_register(str) , которая принимает в качестве аргумента строку и и заменяет регистр каждого символа на противоположный. Например, если вводится «КаЖдЫй ОхОтНиК» , то на выходе должно быть «кАжДыЙ оХоТнИк» .

7. Удалить все не буквенно-цифровые символы

Напишите функцию remove_char(str) , которая возвращает строку, очищенную от всех не буквенно-цифровых символов.

8. Нулевое заполнение строки

Напишите функцию zeros(num, len) , которая дополняет нулями до указаной длины числовое значение с дополнительным знаком «+» или « -« в зависимости от передаваемого аргумента.

9. Сравнение строк без учёта регистра

Напишите функцию comparison(str1, str2) , которая сравнивает строки без учёта регистра символов.

10. Поиск без учета регистра

Напишите функцию insensitive_search(str1, str2) , которая осуществляет поиск подстроки str2 в строке str1 без учёта регистра символов.

11. ВерблюжийРегистр (CamelCase)

Напишите функцию initCap(str) , которая преобразует стиль написания составных слов строки в CamelCase , при котором несколько слов пишутся слитно без пробелов, при этом каждое слово внутри строки пишется с заглавной буквы.

12. Змеиный_регистр (snake_case)

Напишите функцию initSnake(str) , которая преобразует стиль написания составных слов строки из CamelCase в snake_case , при котором несколько слов разделяются символом подчеркивания (_) , причём каждое слово пишется с маленькой буквы.

13. Повторить строку n раз

Напишите функцию repeatStr(str, n) , которая вовращает строку повторяемую определённое количество раз.

14. Получить имя файла

Напишите функцию path(pathname) , которая вовращает имя файла (подстрока после последнего символа "\" ) из полного пути к файлу.

15. Заканчивается ли строка символами другой строки

Создайте метод объекта String endsWith() , который сравнивает подстроку str1 с окончанием исходной строки str и определяет заканчивается ли строка символами подстроки.

16. Подстрока до/после указанного символа

Напишите функцию getSubstr(str, char, pos) , которая возвращает часть строки, расположенную после или до указанного символа char в зависимости от параметра pos .

17. Вставить подстроку в указанную позицию строки

Напишите функцию insert(str, substr, pos) , которая вставляет подстроку substr в указханную позицию pos строки str . По умолчанию подстрока вставляется в начало строки.

18. Ограничить длину строки

Напишите функцию limitStr(str, n, symb) , которая обрезает строку, если она длиннее указанного количества символов n . Усеченная строка должна заканчиваться троеточием «. » (если не задан параметр symb ) или заданным символом symb .

19. Поделить строку на фрагменты

Напишите функцию cutString(str, n) , которая делит строку на подстроки, состоящие из n символов.

20. Количество вхождений символа в строке

Напишите функцию count(str, stringsearch) , которая возвращает количество символов stringsearch в строке str .

21. Удалить HTML-теги из строки

Напишите функцию cutTegs(str) , которая возвращает строку str , очищенную от всех HTML-тегов.

22. Удалить лишние пробелы из строки

Напишите функцию strip(str) , которая удаляет все лишние пробелы из строки str .

23. Удалить лишние слова из строки

Напишите функцию cutString(str, n) , которая удаляет лишние слова из строки str , оставив в ней n слов.

24. Сортировка символов строки по алфавиту

Напишите функцию alphabetize(str) , которая возвращает строку, отсортировав её символы в алфавитном порядке.

25. Удаление повторяющихся символов из строки

Напишите функцию unique_letters(str) , которая возвращает строку, оставив в ней только уникальные символы, т.е. встречающиеся в строке один раз.

26. Удаление слов-дубликатов из строки

Напишите функцию removeDuplicate(str) , которая возвращает строку, очищенную от слов-дупликатов, т.е. каждое слово должно повторяться не более одного раза.

27. Удалить первое вхождение искомой подстроки

Напишите функцию delete_first_occurrence(str, subst) , которая удаляет из строки str первое вхождение подстроки substr .

28. Заменить все вхождения подстроки

Напишите функцию replaceAll(find, replace, str) , которая заменяет в строке str все вхождение подстроки find на подстроку replace .

29. Преобразовать десятичное значение в hex

Напишите функцию decimalToHexString(number) , которая преобразовывает десятичные значения в их шестнадцатеричный эквивалент hex . Hex (hexadecimal) — обозначение шестнадцатеричной системы счисления.

30. Найти слово в строке

Напишите функцию findWord(word, str) , которая проверяет, существует ли в строке str слова word .

31. Начинается ли строка символами другой строки

Создайте метод объекта String startsWith() , который определяет, начинается ли строка символами другой строки, возвращая, соотвественно, true или false .

32. Преобразование специальных символов в HTML

Напишите функцию convChar(str) , которая преобразовывает специальные символы для их отображения в HTML-коде следующим образом:

33. Удалить символы отличные от ASCII

Напишите функцию remove_no_printed(str) , которая удаляет из строки все символы, которые не относятся к печатаемым символам ASCII

Читайте также: