Loading [MathJax]/jax/output/SVG/jax.js

Символы и строки: группа String

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

Символы и их коды. Формирование строк

String1. Дан символ C. Вывести его код (то есть номер в кодовой таблице).

Решение задачи, на языке: Паскаль, С++

 

String2. Дано целое число N(32N126). Вывести символ с кодом, равным N.

Решение задачи, на языке: Паскаль

 

String3. Дан символ C. Вывести два символа, первый из которых предшествует символу C в кодовой таблице, а второй следует за символом C.

Решение задачи, на языке: Паскаль

 

String4. Дано целое число N(1N26). Вывести N первых прописных (то есть заглавных) букв латинского алфавита.

Решение задачи, на языке: Паскаль, С++

 

String5. Дано целое число N(1N26). Вывести N последних строчных (то есть маленьких) букв латинского алфавита в обратном порядке (начиная с буквы «z»).

Решение задачи, на языке: Паскаль

 

String6. Дан символ C, изображающий цифру или букву (латинскую или русскую). Если C изображает цифру, то вывести строку «digit», если латинскую букву — вывести строку «lat», если русскую — вывести строку «rus».

Решение задачи, на языке: Паскаль

 

String7. Дана непустая строка. Вывести коды ее первого и последнего символа.

Решение задачи, на языке: Паскаль

 

String8. Дано целое число N(>0) и символ C. Вывести строку длины N, которая состоит из символов C.

Решение задачи, на языке: Паскаль

 

String9. Дано четное число N(>0) и символы C1 и C2. Вывести строку длины N, которая состоит из чередующихся символов C1 и C2, начиная с C1.

Решение задачи, на языке: Паскаль, С++

 

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

Решение задачи, на языке: Паскаль

 

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

Решение задачи, на языке: Паскаль

 

String12. Дана непустая строка S и целое число N(>0). Вывести строку, содержащую символы строки S, между которыми вставлено по N символов «*» (звездочка).

Решение задачи, на языке: Паскаль

 

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

String13. Дана строка. Подсчитать количество содержащихся в ней цифр.

Решение задачи, на языке: Паскаль

 

String14. Дана строка. Подсчитать количество содержащихся в ней прописных латинских букв.

Решение задачи, на языке: Паскаль

 

String15. Дана строка. Подсчитать общее количество содержащихся в ней строчных латинских и русских букв.

Решение задачи, на языке: Паскаль

 

String16. Дана строка. Преобразовать в ней все прописные латинские буквы в строчные.

Решение задачи, на языке: Паскаль

 

String17. Дана строка. Преобразовать в ней все строчные буквы (как латинские, так и русские) в прописные.

Решение задачи, на языке: Паскаль

 

String18. Дана строка. Преобразовать в ней все строчные буквы (как латинские, так и русские) в прописные, а прописные — в строчные.

Решение задачи, на языке: Паскаль, С++

 

String19. Дана строка. Если она представляет собой запись целого числа, то вывести 1, если вещественного (с дробной частью) — вывести 2; если строку нельзя преобразовать в число, то вывести 0. Считать, что дробная часть вещественного числа отделяется от его целой части десятичной точкой «.».

Решение задачи, на языке: Паскаль

 

String20. Дано целое положительное число. Вывести символы, изображающие цифры этого числа (в порядке слева направо).

Решение задачи, на языке: Паскаль

 

String21. Дано целое положительное число. Вывести символы, изображающие цифры этого числа (в порядке справа налево).

Решение задачи, на языке: Паскаль

 

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

Решение задачи, на языке: Паскаль

 

String23. Дана строка, изображающая арифметическое выражение вида «<цифра>±<цифра>±…±<цифра>», где на месте знака операции «±» находится символ «+» или «–» (например, «4+7–2–8»). Вывести значение данного выражения (целое число).

Решение задачи, на языке: Паскаль

 

String24. Дана строка, изображающая двоичную запись целого положительного числа. Вывести строку, изображающую десятичную запись этого же числа.

Решение задачи, на языке: Паскаль

 

String25. Дана строка, изображающая десятичную запись целого положительного числа. Вывести строку, изображающую двоичную запись этого же числа.

Решение задачи, на языке: Паскаль, C++

 

 

Обработка строк с помощью стандартных функций. Поиск и замена

В заданиях, связанных с поиском и заменой подстрок, можно считать, что исходная строка не содержит перекрывающихся вхождений требуемых подстрок. В заданиях String32, String35 и String38, кроме этого, можно также считать, что удаление (в String32 и String35) или замена (в String38) любого вхождения подстроки не приведет к появлению в строке новых вхождений данной подстроки.

String26. Дано целое число N(>0) и строка S. Преобразовать строку S в строку длины N следующим образом: если длина строки S больше N, то отбросить первые символы, если длина строки S меньше N, то в ее начало добавить символы «.» (точка).

Решение задачи, на языке: Паскаль

 

String27. Даны целые положительные числа N1 и N2 и строки S1 и S2. Получить из этих строк новую строку, содержащую первые N1 символов строки S1 и последние N2 символов строки S2 (в указанном порядке).

Решение задачи, на языке: Паскаль, С++

 

String28. Дан символ C и строка S. Удвоить каждое вхождение символа C в строку S.

Решение задачи, на языке: Паскаль

 

String29. Дан символ C и строки S, S0. Перед каждым вхождением символа C в строку S вставить строку S0.

Решение задачи, на языке: Паскаль

 

String30. Дан символ C и строки S, S0. После каждого вхождения символа C в строку S вставить строку S0.

Решение задачи, на языке: Паскаль

 

String31. Даны строки S и S0. Проверить, содержится ли строка S0 в строке S. Если содержится, то вывести True, если не содержится, то вывести False.

Решение задачи, на языке: Паскаль

 

String32. Даны строки S и S0. Найти количество вхождений строки S0 в строку S.

Решение задачи, на языке: Паскаль

 

String33. Даны строки S и S0. Удалить из строки S первую подстроку, совпадающую с S0. Если совпадающих подстрок нет, то вывести строку S без изменений.

Решение задачи, на языке: Паскаль

 

String34. Даны строки S и S0. Удалить из строки S последнюю подстроку, совпадающую с S0. Если совпадающих подстрок нет, то вывести строку S без изменений.

Решение задачи, на языке: Паскаль

 

String35. Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0. Если совпадающих подстрок нет, то вывести строку S без изменений.

Решение задачи, на языке: Паскаль

 

String36. Даны строки S, S1 и S2. Заменить в строке S первое вхождение строки S1 на строку S2.

Решение задачи, на языке: Паскаль

 

String37. Даны строки S, S1 и S2. Заменить в строке S последнее вхождение строки S1 на строку S2.

Решение задачи, на языке: Паскаль

 

String38. Даны строки S, S1 и S2. Заменить в строке S все вхождения строки S1 на строку S2.

Решение задачи, на языке: Паскаль

 

String39. Дана строка, содержащая по крайней мере один символ пробела. Вывести подстроку, расположенную между первым и вторым пробелом исходной строки. Если строка содержит только один пробел, то вывести пустую строку.

Решение задачи, на языке: Паскаль

 

String40. Дана строка, содержащая по крайней мере один символ пробела. Вывести подстроку, расположенную между первым и последним пробелом исходной строки. Если строка содержит только один пробел, то вывести пустую строку.

Решение задачи, на языке: Паскаль

 

 

Анализ и преобразование слов в строке

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

String41. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Найти количество слов в строке.

Решение задачи, на языке: Паскаль, С++

 

String42. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество слов, которые начинаются и заканчиваются одной и той же буквой.

Решение задачи, на языке: Паскаль

 

String43. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество слов, которые содержат хотя бы одну букву «А».

Решение задачи, на языке: Паскаль

 

String44. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество слов, которые содержат ровно три буквы «А».

Решение задачи, на языке: Паскаль

 

String45. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Найти длину самого короткого слова.

Решение задачи, на языке: Паскаль

 

String46. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Найти длину самого длинного слова.

Решение задачи, на языке: Паскаль

 

String47. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним символом «.» (точка). В конце строки точку не ставить.

Решение задачи, на языке: Паскаль

 

String48. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Преобразовать каждое слово в строке, заменив в нем все последующие вхождения его первой буквы на символ «.» (точка). Например, слово «МИНИМУМ» надо преобразовать в «МИНИ.У.». Количество пробелов между словами не изменять.

Решение задачи, на языке: Паскаль

 

String49. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Преобразовать каждое слово в строке, заменив в нем все предыдущие вхождения его последней буквы на символ «.» (точка). Например, слово «МИНИМУМ» надо преобразовать в «.ИНИ.УМ». Количество пробелов между словами не изменять.

Решение задачи, на языке: Паскаль

 

String50. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним пробелом и расположенные в обратном порядке.

Решение задачи, на языке: Паскаль

 

String51. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним пробелом и расположенные в алфавитном порядке.

Решение задачи, на языке: Паскаль, С++

 

String52. Дана строка-предложение на русском языке. Преобразовать строку так, чтобы каждое слово начиналось с заглавной буквы. Словом считать набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки. Слова, не начинающиеся с буквы, не изменять.

Решение задачи, на языке: Паскаль

 

String53. Дана строка-предложение на русском языке. Подсчитать количество содержащихся в строке знаков препинания.

Решение задачи, на языке: Паскаль

 

String54. Дана строка-предложение на русском языке. Подсчитать количество содержащихся в строке гласных букв.

Решение задачи, на языке: Паскаль

 

String55. Дана строка-предложение на русском языке. Вывести самое длинное слово в предложении. Если таких слов несколько, то вывести первое из них. Словом считать набор символов, не содержащий пробелов, знаков препинания и ограниченный пробелами, знаками препинания или началом/концом строки.

Решение задачи, на языке: Паскаль, C++

 

String56. Дана строка-предложение на русском языке. Вывести самое короткое слово в предложении. Если таких слов несколько, то вывести последнее из них. Словом считать набор символов, не содержащий пробелов, знаков препинания и ограниченный пробелами, знаками препинания или началом/концом строки.

Решение задачи, на языке: Паскаль

 

String57. Дана строка-предложение с избыточными пробелами между словами. Преобразовать ее так, чтобы между словами был ровно один пробел.

Решение задачи, на языке: Паскаль

 

 

Дополнительные задания на обработку строк

String58. Дана строка, содержащая полное имя файла, то есть имя диска, список каталогов (путь), собственно имя и расширение. Выделить из этой строки имя файла (без расширения).

Решение задачи, на языке: Паскаль

 

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

Решение задачи, на языке: Паскаль

 

String60. Дана строка, содержащая полное имя файла. Выделить из этой строки название первого каталога (без символов «\»). Если файл содержится в корневом каталоге, то вывести символ «\».

Решение задачи, на языке: Паскаль

 

String61. Дана строка, содержащая полное имя файла. Выделить из этой строки название последнего каталога (без символов «\»). Если файл содержится в корневом каталоге, то вывести символ «\».

Решение задачи, на языке: Паскаль

 

String62. Дана строка-предложение на русском языке. Зашифровать ее, выполнив циклическую замену каждой буквы на следующую за ней в алфавите и сохранив при этом регистр букв («А» перейдет в «Б», «а» — в «б», «Б» — в «В», «я» — в «а» и т. д.). Букву «ё» в алфавите не учитывать («е» должна переходить в «ж»). Знаки препинания и пробелы не изменять.

Решение задачи, на языке: Паскаль

 

String63. Дана строка-предложение на русском языке и число K(0<K<10). Зашифровать строку, выполнив циклическую замену каждой буквы на букву того же регистра, расположенную в алфавите на K-й позиции после шифруемой буквы (например, для K=2 «А» перейдет в «В», «а» — в «в», «Б» — в «Г», «я» — в «б» и т. д.). Букву «ё» в алфавите не учитывать, знаки препинания и пробелы не изменять.

Решение задачи, на языке: Паскаль

 

String64. Дано зашифрованное предложение на русском языке (способ шифрования описан в задании String63) и кодовое смещение K(0<K<10). Расшифровать предложение.

Решение задачи, на языке: Паскаль

 

String65. Дано зашифрованное предложение на русском языке (способ шифрования описан в задании String63) и его расшифрованный первый символ C. Найти кодовое смещение K и расшифровать предложение.

Решение задачи, на языке: Паскаль

 

String66. Дана строка-предложение. Зашифровать ее, поместив вначале все символы, расположенные на четных позициях строки, а затем, в обратном порядке, все символы, расположенные на нечетных позициях (например, строка «Программа» превратится в «ргамамроП»).

Решение задачи, на языке: Паскаль

 

String67. Дано предложение, зашифрованное по правилу, описанному в задании String66. Расшифровать это предложение.

Решение задачи, на языке: Паскаль

 

String68. Дана строка, содержащая цифры и строчные латинские буквы. Если буквы в строке упорядочены по алфавиту, то вывести 0; в противном случае вывести номер первого символа строки, нарушающего алфавитный порядок.

Решение задачи, на языке: Паскаль

 

String69. Дана строка, содержащая латинские буквы и круглые скобки. Если скобки расставлены правильно (то есть каждой открывающей соответствует одна закрывающая), то вывести число 0. В противном случае вывести или номер позиции, в которой расположена первая ошибочная закрывающая скобка, или, если закрывающих скобок не хватает, число 1.

Решение задачи, на языке: Паскаль

 

String70. Дана строка, содержащая латинские буквы и скобки трех видов: «()», «[]», «{}». Если скобки расставлены правильно (то есть каждой открывающей соответствует закрывающая скобка того же вида), то вывести число 0. В противном случае вывести или номер позиции, в которой расположена первая ошибочная скобка, или, если закрывающих скобок не хватает, число 1.

Решение задачи, на языке: Паскаль

 

Если вы хотите выложить решение для задач, но нет решения на нужном языке, или вообще к задаче нет решений. Можете разместить его в виде комментария к данной статье.

Другие задачи по программированию, для проверки своих знаний.

Комментарии:

Комментарии 3

  • Можете написать эту задачу String52 на C++

  • Дана строка символов s1,s2,…sn . Преобразовать символы s1,s2,…sn : если нет символа ‘*’, то оставить строку без изменения, иначе заменить каждый символ, встречающийся после первого вхождения символа ‘*’, на символ ‘-’.

  • Дана бесконечная строка символов s1,…sn. Известно, что первый символ отличен от восклицательного знака и что среди остальных символов есть восклицательный знак. Пусть s1,…,sn- символы данной строки, предшествующие первому восклицательному знаку (n- заранее неизвестно). Выяснить, имеется ли среди s1,…,sn пара соседствующих букв ‘но’ или ‘он’. Помогите, пожалуйста, нужен код на Паскале.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *