К. Поляков, 2010 -2012 Программирование на алгоритмическом языке. Часть II Тема 4. Символьные строки.

Презентация:



Advertisements
Похожие презентации
1 Программирование на языке Паскаль Часть II Символьные строки.
Advertisements

Программирование на языке Паскаль Символьные строки.
К. Поляков, Программирование на алгоритмическом языке. Часть II 1. Массивы Массивы 2. Максимальный элемент массива Максимальный элемент массива.
К. Поляков, Программирование на алгоритмическом языке. Часть II 1.МассивыМассивы 2.Максимальный элемент массиваМаксимальный.
К.Ю. Поляков, Е.А. Ерёмин, 2013 Программирование на языке Паскаль § 66. Символьные строки 1.
К. Поляков, Программирование на алгоритмическом языке Тема 1. Введение.
К. Поляков, Программирование на алгоритмическом языке. Часть II Тема 4. Символьные строки.
К. Поляков, Программирование на алгоритмическом языке. Часть II Тема 5. Матрицы.
К. Поляков, Программирование на алгоритмическом языке Тема 7. Алгоритмы-функции.
К. Поляков, Программирование на алгоритмическом языке Тема 4. Циклы.
К. Поляков, Программирование на алгоритмическом языке. Часть III 1.Обработка массивовОбработка массивов 2.Сортировка.
1 Программирование на языке Паскаль Тема 1. Введение.
К. Поляков, Программирование на алгоритмическом языке. Часть II Тема 6. Файлы.
К. Поляков, Программирование на алгоритмическом языке Тема 1. Введение.
1 Программирование на языке Паскаль Тема 1. Введение Кулебякин В.В.
1 Программирование на языке Паскаль Тема 1. Введение.
Строки в Pascal
Урок 6 Turbo Pascal Язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623–1662) и разработан.
1 Программирование на языке Паскаль Тема 1. Введение.
К. Поляков, Программирование на алгоритмическом языке. Часть II Тема 5. Матрицы.
Транксрипт:

К. Поляков, Программирование на алгоритмическом языке. Часть II Тема 4. Символьные строки

Программирование на алгоритмическом языке. Часть II К. Поляков, Чем плох массив символов? 2 симтаб s[1:10] Это массив символов: каждый символ – отдельный объект; массив имеет длину, которая задана при объявлении Что нужно: обрабатывать последовательность символов как единое целое строка должна иметь переменную длину

Программирование на алгоритмическом языке. Часть II К. Поляков, Символьные строки 3 Привет!¤ 1 рабочая часть s[1] s[2] s[3] s[4] лит s Длина строки: n:= длин(s) цел n 2 Объявление строки:

Программирование на алгоритмическом языке. Часть II К. Поляков, Символьные строки 4 Задача: ввести строку с клавиатуры и заменить все буквы «а» на буквы «б». алг Замена а на б нач лит s вывод "Введите строку: " ввод s цел i нц для i от 1 до длин(s) если s[i] = "а" то s[i]:= "б" все кц вывод s кон алг Замена а на б нач лит s вывод "Введите строку: " ввод s цел i нц для i от 1 до длин(s) если s[i] = "а" то s[i]:= "б" все кц вывод s кон длина строки

Программирование на алгоритмическом языке. Часть II К. Поляков, Задания 5 «3»: Ввести символьную строку и заменить все буквы «а» на буквы «б», как заглавные, так и строчные. Пример: Введите строку: ааббссААББСС Результат: ббббссББББСС «4»: Ввести символьную строку и заменить все буквы «а» на буквы «б» и наоборот, как заглавные, так и строчные. Пример: Введите строку: ааббссААББСС Результат: ббаассББААСС

Программирование на алгоритмическом языке. Часть II К. Поляков, Задания 6 «5»: Ввести символьную строку и проверить, является ли она палиндромом (палиндром читается одинаково в обоих направлениях). Пример: Пример: Введите строку: Введите строку: АБВГДЕ КАЗАК Результат: Результат: Не палиндром. Палиндром.

Программирование на алгоритмическом языке. Часть II К. Поляков, Операции со строками 7 Объединение: добавить одну строку в конец другой. Запись нового значения: лит s, s1, s2 s:= "Вася" s1:= "Привет" s2:= "Вася" s := s1 + ", " + s2 + "!" s1:= "Привет" s2:= "Вася" s := s1 + ", " + s2 + "!" | "Привет, Вася!" Подстрока: выделить часть строки в другую строку. s:= " " s1:= s[3:8] s2:= s1[2:4] s:= " " s1:= s[3:8] s2:= s1[2:4] | "345678" | "456"

Программирование на алгоритмическом языке. Часть II К. Поляков, Удаление и вставка 8 Удаление части строки: Вставка в строку: s:= " " s:= удалить(s, 3, 6); s:= " " s:= удалить(s, 3, 6); с 3-его символа 6 штук строка меняется! строка меняется! ' ' '129' s:= " " s:= вставить("ABC", s, 3) s:= вставить( "Q", s, 5 ) s:= " " s:= вставить("ABC", s, 3) s:= вставить( "Q", s, 5 ) куда вставляем что вставляем начиная с 3-его символа '12ABC ' '12ABQC '

Программирование на алгоритмическом языке. Часть II К. Поляков, Поиск в строке ( найти ) 9 Поиск в строке: s:= "Здесь был Вася." n:= найти("е", s) если n > 0 то вывод "Буква е – это s[", n, "]" иначе вывод "Не нашли" все n:= найти("Вася", s) s1:= s[n:n+3] s:= "Здесь был Вася." n:= найти("е", s) если n > 0 то вывод "Буква е – это s[", n, "]" иначе вывод "Не нашли" все n:= найти("Вася", s) s1:= s[n:n+3] s[3] 3 3 n = 11 Особенности: функция найти возвращает номер символа, с которого начинается образец в строке если образец не найден, возвращается -1 поиск с начала (находится первое слово) цел n Вася

Программирование на алгоритмическом языке. Часть II К. Поляков, Примеры 10 s:= "Вася Петя Митя" n:= найти( "Петя", s ) s:= удалить(s, n, 4) s:= вставить("Куку", s, n ) s:= "Вася Петя Митя" n:= найти( "Петя", s ) s:= удалить(s, n, 4) s:= вставить("Куку", s, n ) 'Вася Куку Митя' s:= "Вася Петя Митя" n:= длин( s ) s1:= s[1:4] s2:= s[11:14] s3:= s[6:9] s:= s3 + s1 + s2 n:= длин( s ) s:= "Вася Петя Митя" n:= длин( s ) s1:= s[1:4] s2:= s[11:14] s3:= s[6:9] s:= s3 + s1 + s2 n:= длин( s ) 'Вася Митя' 14 'Вася' 'Митя' 'Петя' 'ПетяВасяМитя'

Программирование на алгоритмическом языке. Часть II К. Поляков, Пример решения задачи 11 Задача: Ввести имя, отчество и фамилию. Преобразовать их к формату «фамилия-инициалы». Пример: Введите имя, отчество и фамилию: Василий Алибабаевич Хрюндиков Результат: Хрюндиков В.А. Алгоритм: найти первый пробел и выделить имя удалить имя с пробелом из основной строки найти первый пробел и выделить отчество удалить отчество с пробелом из основной строки «сцепить» фамилию, первые буквы имени и фамилии, точки, пробелы…

Программирование на алгоритмическом языке. Часть II К. Поляков, Программа 12 использовать Строки алг ФИО нач лит s, имя, отчество цел n вывод "Введите имя, отчество и фамилию" ввод s n:= найти(" ", s); имя:= s[1:n-1] | вырезать имя s:= удалить(s, 1, n) n:= найти(" ", s) отчество:= s[1:n-1] | вырезать отчество s:= удалить(s, 1, n) | осталась фамилия s:= s + " " + имя[1] + "." + отчество[1] + "." вывод s кон использовать Строки алг ФИО нач лит s, имя, отчество цел n вывод "Введите имя, отчество и фамилию" ввод s n:= найти(" ", s); имя:= s[1:n-1] | вырезать имя s:= удалить(s, 1, n) n:= найти(" ", s) отчество:= s[1:n-1] | вырезать отчество s:= удалить(s, 1, n) | осталась фамилия s:= s + " " + имя[1] + "." + отчество[1] + "." вывод s кон

Программирование на алгоритмическом языке. Часть II К. Поляков, Задания 13 «3»: Ввести в одну строку фамилию, имя и отчество, разделив их пробелом. Вывести инициалы и фамилию. Пример: Введите фамилию, имя и отчество: Иванов Петр Семёнович Результат: П.С. Иванов «4»: Ввести имя файла (возможно, без расширения) и изменить его расширение на «.exe ». Пример: Введите имя файла: Введите имя файла: qqq qqq.com Результат: Результат: qqq.exe qqq.exe

Программирование на алгоритмическом языке. Часть II К. Поляков, Задания 14 «5»: Ввести путь к файлу и «разобрать» его, выводя каждую вложенную папку с новой строки Пример: Введите путь к файлу: C:\Мои документы\10-Б\Вася\qq.exe Результат: C: Мои документы 10-Б Вася qq.exe

Программирование на алгоритмическом языке. Часть II К. Поляков, Задачи на обработку строк 15 Задача: с клавиатуры вводится символьная строка, представляющая собой сумму двух целых чисел, например: Вычислить эту сумму: 12+35=47 Алгоритм: 1)найти знак «+» 2)выделить числа слева и справа в отдельные строки 3)перевести строки в числа 4)сложить 5)вывести результат

Программирование на алгоритмическом языке. Часть II К. Поляков, Преобразования «строка»-«число» 16 Из строки в число: s:= "123" N:= лит_в_цел(s, OK) | N = 123 если не OK то вывод "Ошибка!" все s:= " "; X:= лит_в_вещ(s, OK) | X = если не OK то вывод "Ошибка!" все s:= "123" N:= лит_в_цел(s, OK) | N = 123 если не OK то вывод "Ошибка!" все s:= " "; X:= лит_в_вещ(s, OK) | X = если не OK то вывод "Ошибка!" все Из числа в строку: N:= 123 s:= цел_в_лит(N) | "123" X:= s:= вещ_в_лит(X) | " " N:= 123 s:= цел_в_лит(N) | "123" X:= s:= вещ_в_лит(X) | " " цел N, вещ X, лит s, лог OK да или нет

Программирование на алгоритмическом языке. Часть II К. Поляков, Программа 17 использовать Строки алг Калькулятор нач лит s, s1, s2 цел n, n1, n2, sum лог OK вывод "Введите выражение (сумму двух чисел): " ввод s n:= найти("+", s) s1:= s[1:n-1] s2:= s[n+1:длин(s)] n1:= лит_в_цел(s1, OK) n2:= лит_в_цел(s2, OK) sum:= n1 + n2 вывод n1, "+", n2, "=", sum кон использовать Строки алг Калькулятор нач лит s, s1, s2 цел n, n1, n2, sum лог OK вывод "Введите выражение (сумму двух чисел): " ввод s n:= найти("+", s) s1:= s[1:n-1] s2:= s[n+1:длин(s)] n1:= лит_в_цел(s1, OK) n2:= лит_в_цел(s2, OK) sum:= n1 + n2 вывод n1, "+", n2, "=", sum кон слагаемые-строки слагаемые-числа сумма слагаемые-строки слагаемые-числа

Программирование на алгоритмическом языке. Часть II К. Поляков, Задания 18 «3»: Ввести арифметическое выражение: разность двух чисел. Вычислить эту разность. Пример: Ответ: 13 «4»: Ввести арифметическое выражение: сумму трёх чисел. Вычислить эту сумму. Пример: Ответ: 71

Программирование на алгоритмическом языке. Часть II К. Поляков, Задания 19 «5»: Ввести арифметическое выражение c тремя числами, в котором можно использовать сложение и вычитание. Вычислить это выражение. Пример: Пример: Ответ: 71 Ответ: 3 Пример: Ответ: 47 Ответ: -21

Программирование на алгоритмическом языке. Часть II К. Поляков, Задания 20 «6»: Ввести арифметическое выражение c тремя числами, в котором можно использовать сложение, вычитание и умножение. Вычислить это выражение. Пример: Пример: 25+12*3 25*2-34 Ответ: 61 Ответ: 16 Пример: *2*3 Ответ: 47 Ответ: 150