С клавиатуры вводится строка удалить из нее каждое слово нечетной длины
В статье представлены задачи различных типов: подсчет частоты появления символа в строке; поиск подстроки в строке, замена найденной подстроки на другую строку; выделение слов из строки, нахождение числа слов в строке, нахождение минимальной (максимальной) длины слова в строке; сравнение и сортировка строк и др.
Все приведенные программы написаны на языке программирования 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
Читайте также: