Processing math: 0%

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

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

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

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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. Даны целые положительные числа N_1 и N_2 и строки S_1 и S_2. Получить из этих строк новую строку, содержащую первые N_1 символов строки S_1 и последние N_2 символов строки S_2 (в указанном порядке).

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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 пара соседствующих букв ‘но’ или ‘он’. Помогите, пожалуйста, нужен код на Паскале.

Добавить комментарий для Irena Отменить ответ

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