- •Www.Msta.Ru
- •Москва – 2005
- •1 Цель и задачи дисциплины
- •2 Тематическое содержание программы
- •3 Перечень рекомендуемых лабораторных работ
- •4 Экзаменационные вопросы по дисциплине
- •1. Введение
- •Var a,d: integer; X: real; d: string;.
- •2. Простейшие операторы языка
- •3. Организация ветвлений
- •Var a,b,c: real;
- •4. Логические функции
- •5. Организация циклов
- •Program p5_2; {другой вариант}
- •Var X,y: real;
- •С помощью этого оператора гораздо проще решить пример 5-2 (program p5_2). Оператор цикла с постусловием:
- •6. Массивы
- •Var X,z: array [1..8] of real;
- •Var I,j: integer;
- •Var n,I,j:integer; s,y,sr:real; X: array [1..10,1..5] of real;
- •Var n,I,j,st,kl,k:integer;
- •7. Символьные данные
- •Var n:integer;y:string;
- •Var X:string[1]; d:string; I:integer;
- •8. Записи
- •Var X:vr; y:array [1..5] of vr;
- •9. Файлы
- •Ввод и вывод информации для типизированных и текстовых файлов производится процедурами:
- •X,y:real;
- •X,y:real; I:integer;
- •Im: string[4];
- •I: integer;
- •Im: string[4];
- •I: integer;
- •10. Подпрограммы
- •11. Графика
- •Var d,I,m,rx,ry:integer;
- •Var d,m,rx,ry:integer;
- •X,y,xn,xk,ymin,ymax,dx:real; msy,msx:real;
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.
Здания для самостоятельного решения
1. В символьной строке Х удалить лишние (начальные, конечные и сдвоенные) пробелы.
2. В Х подсчитать число вхождений слова ‘его’.
3. В Х поменять порядок символов на обратный.
4. В Х напечатать самое длинное слово.
5. В Х подсчитать число вхождений всех встречающихся знаков.
6. В Х подсчитать число вхождений произвольного символа.
7. В Х в каждом слове поменять порядок символов на обратный.
8. В Х расположить слова в порядке увеличения их длины.
9. Имеется строка Х длиной ≤N, предназначенная для вывода. Выровнять при печати X к правой границе так, чтобы строка занимала все N позиций. Выравнивание производить за счет равномерного увеличения числа пробелов между словами.
10. Зашифровать строку Х, заменив каждый символ, на символ, следующий за данным по алфавиту (буква А заменяется на Б и т.д., буква Я заменяется на А). Расшифровать полученный текст.
11. Написать программу формирования числа (до 1000 руб.) в сумму прописью (например, 103=‘сто три рубля’).
12. В строке Х имеются открывающиеся и закрывающиеся скобки (включая вложенные). Выяснить, правильно ли они расставлены. Если есть ошибки – сообщить об этом конкретно, включая номер позиции, где она обнаружена.
13. В строка Х содержит любые русские и латинские символы (как заглавные, так и строчные), цифры и знаки препинания. Преобразовать все символы Х в строчные. Результат занести в Y.
14. Пусть имеется таблица работников бригады со столбцами: Имя, Отработано дней, Зарплата. Отсортировать любым методом таблицу по алфавиту. Для упрощения будем считать, что имена не превышают 8-ми символов, содержат только заглавные буквы и не имеют буквы Ё (эта буква в кодовой таблице русских символов находится не на месте).
15. Отсортировать таблицу по алфавиту, где для имен допускаются любые буквы русского алфавита, включая Ё и ё. Сложность здесь заключается как раз в этих буквах. Их коды 240 и 241, т.е. самые большие среди русских букв, в виду чего сравнивать слова придется не целиком, а побуквенно. В случае, если встретилась буква Ё и ё, в программе они должны считаться большими букв Е/е и меньшими Ж/ж.
16. Написать программу, которая из заданной даты (в диапазоне 1900..2100) формирует следующую. Исходная дата задается в форме текстовой строки вида ‘дд.мм.гггг’, например ’06.04.2002’. Подсказка: признаком високосного года является кратность года числу 4. Исключением являются года с двумя нулями на конце, число сотен в которых не кратно 4 (например, 1800, 1900, 2100).
17. Написать программу, которая от заданной даты (диапазон 1900..2100) находит новую, отстоящую от данной на М месяцев. Если в новом месяце такой даты нет, берется последний день нового месяца.
18. Написать программу, которая от заданной даты (1900..2100), находит новую, отстоящую от данной на Х дней.