Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УПП Программирование 2102,2202.doc
Скачиваний:
17
Добавлен:
20.04.2015
Размер:
760.32 Кб
Скачать

Var X:string[1]; d:string; I:integer;

const s:string='абвxyz123ABC'; {тестовый пример}

begin

d:='';

for i:=1 to length(s) do begin {перебор символов в S}

x:=copy(s,i,1); {очередной символ заносится в Х}

{если 'а'<=буква<='п', код уменьшаем на 32}

if (x>='а')and(x<='п') then x:=chr(ord(x[1])-32);

{если 'р'<=буква<='я', код уменьшаем на 80}

if (x>='р')and(x<='я') then x:=chr(ord(x[1])-80);

{латинские преобразуем в заглавные}

if x<'А' then x:=upcase(x[1]);

d:=d+x; {заполнение слова D}

end;

write(d); {результат: 'АБВXYZ123ABC'}

end.

Контрольные задания.

7.1. В символьной строке, содержащей несколько слов, Х удалить лишние (начальные, конечные и сдвоенные) пробелы.

7.2. В Х подсчитать число вхождений слова ‘его’.

7.3. В Х поменять порядок символов на обратный.

7.4. В Х напечатать самое длинное слово.

7.5. В Х подсчитать число вхождений всех встречающихся знаков.

7.6. В Х подсчитать число вхождений произвольного символа.

7.7. В Х в каждом слове поменять порядок символов на обратный.

7.8. В Х расположить слова в порядке увеличения их длины.

7.9. Имеется строка Х длиной ≤N, предназначенная для вывода. Выровнять X к правой границе так, чтобы строка занимала все N позиций. Выравнивание производить за счет равномерного (по возможности) увеличения числа пробелов между словами.

7.10. Зашифровать строку Х, заменив каждый символ, на символ, следующий за данным по алфавиту (буква А заменяется на Б и т.д., буква Я заменяется на А). Расшифровать полученный текст.

7.11. Написать программу формирования числа (до 1000 руб.) в сумму прописью (например, 103=‘сто три рубля’).

7.12. В строке Х имеются открывающиеся и закрывающиеся скобки (включая вложенные). Выяснить, правильно ли они расставлены. Если есть ошибки – сообщить об этом конкретно, включая номер позиции, где она обнаружена.

7.13. Строка Х содержит любые русские и латинские символы (как заглавные, так и строчные), цифры и знаки препинания. Преобра­зовать все символы Х в строчные. Результат занести в Y.

7.14. Пусть имеется таблица работников бригады со столбцами: Имя, Отработано дней, Зарплата. Отсортировать любым методом табли­цу по алфавиту. Для упрощения будем считать, что имена не превышают 8-ми символов, содержат только заглавные буквы и не имеют буквы Ё (эта буква в кодовой таблице русских символов находится не на месте).

7.15. Отсортировать таблицу по алфавиту, где для имен допускаются любые буквы русского алфавита, включая Ё и ё. Сложность здесь заключается как раз в этих буквах. Их коды 240 и 241, т.е. самые большие среди русских букв, в виду чего сравнивать слова придется не целиком, а побуквенно. В случае, если встретилась буква Ё и ё, в программе они должны считаться большими букв Е/е и меньшими Ж/ж.

7.16. Написать программу, которая из заданной даты (в диапазоне 1900..2100) формирует следую­щую дату. Исходная дата задается в фор­ме текстовой строки вида ‘дд.мм.гггг’, например ’06.04.2002’. Подсказка: признаком високосно­го года является кратность года числу 4. Исключением являются года с двумя нулями на конце, число сотен в которых не кратно 4 (например 1800, 1900, 2100).

7.17. Написать программу, которая от заданной даты (диапазон 1900.. 2100) находит новую, отстоящую от данной на М месяцев. Если в новом месяце такой даты нет, берется последний день нового месяца.

7.18. Написать программу, которая от заданной даты (1900..2100), находит новую, отстоящую от данной на Х дней.

8. ЗАПИСИ

Массивы определяют однородную совокупность данных. На прак­тике часто требуется объединять в один объект данные разных типов. Так для хранения сведений о месячной выработке работников бригады понадобятся следующие сведения: Табельный номер, Имя, Дневной тариф, число отработанных Дней. Ясно, что табельный номер должен быть целого типа, имя – строкового, тариф и дни – вещественного. Мы можем объединить эту совокупность данных (они называются полями) в объект, называемый запись (record). Дадим ему, например имя Vr (от слова выработка).

 Первоначально удобно описать тип-запись как тип данных конструк­цией, изображенной ниже.

TYPE имя типа=RECORD

описание элементов записи

END;

Позже с помощью оператора Var можно описать уже конкретные записи данного типа.

Пример. Здесь сначала описан тип записи Vr, состоящей из полей: tab, im, tarif, dn соответствующих типов. Затем в разделе Var описаны уже конкретные (рабочие) записи: X и массив записей Y. Обращаться к элементам записей нужно, используя полное имя (имя записи.имя поля), например x.tarif, x.im. А для массива записей нужно указывать и индекс: y[3].tarif. Записи удобно использовать при работе с файлами.

type vr=record {объявление типа записи}

tab: integer; {табель}

im: string[4]; {имя}

tarif, dn: real

end;