Главная страница
Навигация по странице:

  • Delete

  • 6.3. Примеры алгоритмов и программ обработки строк

  • Program

  • Delete (

  • While

  • 2 Алгоритмы работы с величинами для ЭВМ

  • 3 Программирование на алгоритмическом языке . 17 3.1 Линейные алгоритмы . 17 3.2 Алгоритмы с ветвящейся структурой . 20 3.3 Вопросы и упражнения . 234 Язык Паскаль

  • 6 Работа со строковыми переменными

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

  • Сёмов Основы разработки алгоритмов и программ. Учебное пособие для студентов факультета дистанционных форм обучения миигаик москва 2020 2 Рецензенты


    Скачать 391.34 Kb.
    НазваниеУчебное пособие для студентов факультета дистанционных форм обучения миигаик москва 2020 2 Рецензенты
    Дата15.12.2022
    Размер391.34 Kb.
    Формат файлаpdf
    Имя файлаСёмов Основы разработки алгоритмов и программ.pdf
    ТипУчебное пособие
    #846031
    страница6 из 6
    1   2   3   4   5   6
    Copy (s : string; Index : integer; Count : integer) : string;
    Функция возвращает подстроку, выделенную из исходной строки S, длиной Count символов, начиная с символа с номером Index.
    3. Pos (Substr, s : string) : byte
    Функция производит поиск в строке S подстроки Substr. Результатом функции является номер позиции подстроки в исходной строке. Если подстрока не найдена функция возвращает значение 0.
    4. Delete (Var s : string; Index, Count : integer);
    Процедура производит удаление из строки-параметра S подстроки длиной Count символов, начиная с символа с номером Index.
    5. Insert (Source : string; Var S : string; Index : integer);
    Процедура предназначена для вставки строки Source в строку S, начиная с символа с номером Index.
    6.3. Примеры алгоритмов и программ обработки строк
    При составлении программы обработки строки строку рассматривают как одномерный массив символов. Приведем несколько программ обработки текста. В качестве полезного упражнения рекомендуем по каждой программе составить блок-схему алгоритма. В программах для простоты будем считать, что длина вводимого текста не превосходит 255 символов и весь текст можно ввести в одну строковую переменную.
    Задача 1. Удалить все начальные и все конечные пробелы в тексте, а также все лишние
    пробелы между словами текста. Между словами должно быть не более одного пробела.
    Текст, полученный после такой обработки, назовем стандартным. Программа имеет вид
    Program Standart_Str;
    Var S : string;
    i : integer;
    Begin
    Writeln (‘ Введите текст ‘)
    Readln ( S );
    While S[ 1 ] = ‘ ‘ do
    { Пока S[1] = пробелу}
    Delete ( s , 1 ,1 );
    { В цикле избавились от начальных пробелов}
    While S [ Length ( S )] = ‘ ‘ do
    { Пока S[ последний] = пробелу}
    Delete ( S , Length ( S ) ,1 );
    {В цикле избавились от концевых пробелов}

    81
    i := 1;
    While i < Length ( S ) do
    Begin
    While ( S[ i ] = ‘ ‘ ) and ( S[ i +1] = ‘ ‘ ) do
    Delete ( S , i+1, 1 ); { В этом вложенном цикле среди найденных нескольких, стоящих рядом пробелов, удалили все кроме первого}
    i := i + 1; {Перешли в следующую позицию, для поиска следующего набора из двух или более пробелов}
    End;
    Writeln ( S );
    End.
    Задача 2. В стандартном тексте подсчитать количество слов.
    Нетрудно сообразить, что количество слов будет на 1 больше количества разделяющих их пробелов. Подсчетом пробелов программа и займется.
    Program Kol_ slov;
    Var S : string;
    i , l , k : integer;
    Begin
    Writeln (‘ Введите стандартный текст ‘)
    Readln ( S );
    l := Length ( S ) ;
    k := 0;
    for i := 1 to l do
    If S[ i ] = ‘ ‘ then
    k := k + 1;
    k := k + 1;
    Writeln ( ‘ текст состоит из ‘ , K ,Слов ‘ );
    End .

    82
    Задача 3. Программа должна определить является ли введенное слово полиндромом.
    Полиндром – слово, которое читается одинаково с начала до конца и с конца до начала. Для простоты будем считать, что слово вводится либо только строчными либо только заглавными буквами. Например: казак, АЛЛА.
    Program Polindrom;
    Var S : string;
    i , m , k : integer;
    Begin
    Writeln (‘ Введите слово ‘)
    Readln ( S );
    m := Length ( S ) div 2 ; {Количество пар символов, равноудаленных от начала и конца слова}
    k := 1; {Предполагаем, что слово – полиндром}
    for i := 1 to m do
    if S [ i ] < > S [Length ( S ) + 1 - i ] then
    k := 0 ;{Если найдется хотя бы одна пара не равных равноудаленных от начала и конца слова символов, то k будет равна 0}
    if k = 1 then
    Writeln ( ‘ Слово - полиндром ‘ );
    else
    Writeln ( ‘ Слово – не полиндром ‘ );
    End.

    83
    Задача 4. Определить количество разных вхождений заданной подстроки в заданную строку. Два вхождения разные, если они не имеют общих символов.
    Program Kol_SubS_v_Str;
    Var S , Sdubl , SubS: string;
    k , x : integer;
    Begin
    Writeln (‘ Введите текст ‘)
    Readln ( S );
    Writeln (‘ Введите подстроку ‘)
    Readln ( SubS );
    Sdubl := S; {Делаем копию S}
    k := 0 ; { Обнуление счетчика вхождений}
    x := Pos( SubS, Sdubl );
    While x > 0 do
    Begin
    k := k + 1; {Раз нашли вхождение увеличиваем счетчик на 1}
    Delete ( Sdubl , 1 , x + Length(SubS) - 1 ); { Удалили начало строки по последний символ найденного вхождения включительно}
    x := Pos( SubS, Sdubl );{ Поиск следующего вхождения в урезанной строке}
    End;
    Writeln ( ‘ Количество найденных вхождений = ’ , k );
    End.

    84
    Рекомендуемая литература
    1. Информатика: алгоритмизация и программирование. Учеб. пособие / В. В. Гаврилова,
    А. А. Кудлаев, А. М. Сёмов ;-М. : МИИГАиК, 2010.-82 с.: ил.
    2. Информатика. Технология программирования. Алгоритмы обработки массивов. Учеб.
    пособие / А. А. Кудлаев;-М. :МИИГАиК, 2019.-44 с.: ил
    3. Информатика. Базовый курс. 2-е издание / Под ред. С.В. Симоновича. – СПб.: Питер,
    2009.-640с.: ил.
    4. Князева М.Д. Алгоритмика: от алгоритма к программе. Учебное пособие -М.: КУДИЦ-
    ОБРАЗ, 2006.-192 с.: ил.
    5. Могилев А.В. Информатика: учеб. пособие для студ. пед. вузов / А.В. Могилев, Н.И.
    Пак, Е.К. Хеннер ; под ред. Е.К. Хеннера. – 6-е изд., стер. – М.: Издательский центр
    «Академия», 2008.-848 с.: ил

    85
    Содержание
    1 Алгоритм и его свойства
    3 1.1 Понятие алгоритма .
    3 1.2
    Свойства алгоритма .
    4
    2 Алгоритмы работы с величинами для ЭВМ
    7 2.1 Типы данных .
    7 2.2 Система команд (алгоритмических действий) ЭВМ..
    .
    .
    7 2.3 Блок–схемы алгоритмов
    11 2.4 Вопросы и упражнения
    15
    3 Программирование на алгоритмическом языке .
    17 3.1 Линейные алгоритмы .
    17 3.2 Алгоритмы с ветвящейся структурой .
    20 3.3 Вопросы и упражнения .
    23
    4 Язык Паскаль
    26 4.1 Основные элементы языка .
    26 4.2 Подробнее о типах данных .
    29 4.3 Преобразование типов и действия над ними .
    31 4.4 Арифметические операции ..
    32 4.5 Программирование диалога с компьютером .
    33 4.6 Вопросы и упражнения .
    34 4.7 Логические переменные и выражения .
    35 4.8 Оператор ветвления .
    38 4.9 Оператор выбора
    41 4.10 Вопросы и упражнения .
    43 4.11 Технология решения задач на ЭВМ. Программирование циклов 43 4.12 Операторы циклов .
    48 4.13 Алгоритм Евклида .
    50 4.14 Оператор цикла с постусловием .
    53 4.15 Вопросы и упражнения .
    55
    5 Работа с массивами в Паскале
    56 5.1 Понятие массива
    56 5.2 Одномерные массивы. .
    .
    .
    .
    .
    .
    56 5.3 Двумерные массивы .
    57

    86 5.4 Примеры алгоритмов и программ обработки одномерных массивов 59 5.5 Примеры алгоритмов и программ обработки двумерных массивов 69
    6 Работа со строковыми переменными.
    78 6.1 Строковые переменные
    78 6.2 Операции со строковыми переменными .
    78 6.3 Примеры алгоритмов и программ обработки строк .
    80
    Рекомендуемая литература .
    . . . . 84
    1   2   3   4   5   6


    написать администратору сайта