Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Какой браузер Вы предпочитаете?

Internet Explorer
Mozilla Firefox
Opera
Netscape
Chrome
Другой


Результаты
Другие опросы

Всего голосов: 1673
Комментарии: 10

Error: Incorrect password!
Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Книги-online



Лабораторная работа №5

Лабораторная работа 5

Теоретический материал Справочник по процедурам и функциям


Цель работы: познакомить с понятием "стринг" и выработать навыки работы с символьной информацией в языке программирования Pascal научиться использовать строки символов и множества при решении задач.

Общие сведения

Переменные типа String аналогичны массивам типа Char. Их отличием является то, что число символов (длина строки) может динамически меняться в интервале от единицы до заданного верхнего значения. Перед выполнением работы необходимо ознакомиться с правилами описания и использования строк, допустимых операций над ними, соответствующими стандартными процедурами и функциями.

Примеры

Пример1. Дан текст, слова в котором, могут разделяться пробелами, запятыми, точками и т.д. Требуется напечатать все слова с удвоенной буквой "н".
Этапы решения задачи:
  • Разобьем задачу на несколько блоков
    а) Формирование тела программы, объявление переменных;
    б) Ввод текста;
    в) Очистка текста от "ненужных" символов до первого слова;
    г) Вычисление длины первого слова;
    д) Поиск в слове буквы "н";
    е) Подсчет стоящих рядом букв "н";
    ж) Печать найденного слова;
    з) Удаление первого слова;
    и) Если текст не закончился возвращение к пункту (в).
  • Реализуем эти блоки на Паскале
  • a)
    program example1; var st, st1:string; i,j,k,n:integer; flag:boolean; const znak=[' ','.',',',':',';','!','?']; begin end. Назначение переменных: t- содержит введенный текст st1 - хранит первое слово текста i,j,k,n - вспомогательные переменные flag - указывает, что данное слово искомое б) writeln('Введите текст'); readln(st); в) repeat while st[1] in znak do delete(st,1,1); г) i:=1 while (not (st[i] in znak)) and (i0) and (not flag) do begin е) j:=pos('н',st1); n:=j; k:=0; while st1[n]='н' do begin inc(n); inc(k); end; if k=2 then flag:= true; delete(st1,j,k) end; ж) if flag then writeln(copy(st,1,i-1)); з) delete(st,1,i); и) until st=''; Приведем программу целиком: program example1; var st, st1:string; i,j,k,n:integer; flag:boolean; const znak=[' ','.',',',':',';','!','?']; begin writeln('Введите текст'); readln(st); repeat while st[1] in znak do delete(st,1,1); i:=1; while (not (st[i] in znak)) and (i0) and (not flag) do begin j:=pos('н',st1); n:=j; k:=0; while st1[n]='н' do begin inc(n); inc(k); end; if k=2 then flag:= true; delete(st1,j,k) end; if flag then writeln(copy(st,1,i-1)); delete(st,1,i); until st=''; readln; end.

    Контрольные вопросы

  • Как описываются строковые переменные?
  • Какая максимальная длина строки допустима в Pascal?
  • Какие операции допустимы над строковыми данными?
  • В чем отличие строковой переменной от массива символов?
  • Какие стандартные процедуры и функции для работы со строками вы знаете?
  • Что выведет функция Copy(x,Pos(' ',x)+1,18), если x='Сила есть - ума не надо'?
  • Чему равно значение x[0] после присваивания x:='вопрос'?

  • Задания

    Обработка текста: В следующих заданиях под словом "текст" понимается строка символов, слова в которой, разделены пробелами, ",",".","!","?",";",":" (одним или несколькими).
  • Дан текст. а) Подсчитать количество слов в данной строке. б) Подсчитать количество букв а в последнем слове данной строки. в) Найти количество слов, начинающихся с буквы б. г) Найти количество слов, у которых первый и последний символы совпадают между собой. д) Найти длину самого короткого слова.
  • Составить программу циклической перестановки букв в словах текста так, что i-я буква слова становится i+1-ой, а последняя - первой.
  • В каждом слове текста замените "а" на букву "е", если "а" стоит на четном месте, и заменить букву "б" на сочетание "ак", если "б" стоит на нечетном месте.
  • Гжатск получил новое название - город Гагарин. А в рязанской областной типографии еще не просохли гранки небольшой книги о родине первого космонавта. Конечно, книгу нужно было переделать... Написать программу, осуществляющую в некотором тексте замену слова "Гжатск" словом "Гагарин" (учесть, что слова имеют разную длину!)
  • Дан текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв; между соседними словами - не менее одного пробела. Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них по следующему правилу: 1) перенести первую букву в конец слова; 2) перенести последнюю букву в начало слова.
  • Отредактировать заданное предложения текста, удаляя из него все слова с нечетными номерами и переворачивая слова с четными номерами. Например, HOW DO YOU DO -> OD OD
  • Дан текст. Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них по следующему правилу: 1) оставить в слове только первые вхождения каждой буквы; 2) если слово нечетной длины, то удалить его среднюю букву
  • Написать программу для подсчета суммы мест, на которых в словах текста стоит заданная буква.
  • Составить таблицу слов данного текста, начинающихся с буквы "А", с указанием числа повторений каждого слова.
  • Составить программу для вычеркивания из слов текста всех букв, стоящих на нечетных местах после буквы "а". Задачи на смекалку
  • Составить программы для перевода арабских чисел в римские и для обратной операции. Например, 255 = CCLV = сто + сто + пятьдесят + пять Замечание. Подобными алгоритмами перевода чисел из одной системы в другую мы пользуемся по нескольку раз на дню, когда ведем денежные расчеты. Сумма денег - это арабское число, которому соответствует определенный набор банкнот и монет (аналоги римских цифр).
  • Автоморфными называются числа, которые содержатся в последних разрядах их квадрата. Например:, 52=25, 252=625. Составить программу для нахождения нескольких автоморфных чисел.
  • Подсчитать, сколько букв надо исправить в слове Х, чтобы получилось слово Y (Х,Y - слова одинаковой длины).
  • Какое минимальное число букв необходимо заменить в слове X с тем, чтобы оно стало перевертышем?
  • Составить программу для подсчета числа одинаковых букв в словах X и Y равной длины, стоящих на одних и тех же местах.
  • Задано определенное количество конкретных сочетаний букв (например, УЩ, ЮЩ и др.). Определить, сколько таких групп символов содержится в тексте, вводимом с клавиатуры.
  • С клавиатуры вводится текст. Подсчитать и вывести на печать количество слов текста, начинающихся с гласной.
  • Для запоминания числа p иногда используют "магические" фразы, например: "это я знаю и помню прекрасно Пи многие знаки мне лишни напрасны" или "кто и шутя и скоро пожелаетъ Пи узнать число ужъ знаетъ". Число букв в каждом слове любой из данных фраз представляет собою некоторую цифру числа : "это"-3, "я"-1, "знаю"-4 и т.д. Составить программу, которая по указанному алгоритму будет выводить на печать число, используя любой текст.
  • Для заданного текста определить длину содержащейся в нем максимальной серии символов, отличных от латинских букв.
  • Записать программу, выясняющую, можно ли из букв слова X составить слово Y.

  • Задачи повышенной сложности
  • Зашифровать введенную с клавиатуры строку, поменяв местами первый символ со вторым, третий с четвертым и т. д. Затем провести дополнительную шифровку результата смещением кода. Провести дешифровку.
  • Составить процедуру создания текстового окна, окаймленного рамкой из псевдографических символов. В параметры процедуры ввести координаты левого верхнего угла, размеры и цвет окна, а также цвет рамки.
  • Составить программу, организующую перемещение текстового окна 8х8 по экрану. См. задачу 2. Движение начинается по нажатию клавиши и заканчивается либо по нажатию клавиши, либо при достижении окном края экрана. Варианты движения: а) из левого верхнего угла в правый нижний угол. При неточном "попадании" в нижний угол смещать окно по одной из сторон до точной остановки в углу. б)из левого нижнего угла в правый верхний. в) из центра экрана к одной из боковых сторон. При достижении края размер окна по направлению движения должен уменьшаться до минимального.
  • Назад На главную     Учебник по языку Pascal          Лабораторные работы по программированию          bookdelphi bookdelphi


    Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


    .


    книги по программированию исходники компоненты шаблоны сайтов C++ PHP Delphi скачать