- •С Кафедра моп эвм истема программирования Borland Pascal Методическая разработка к лабораторным работам фавт
- •Интерфейс системы
- •Меню и команды
- •Пункт File
- •Пункт Edit
- •Пункт Search
- •Пункт Run
- •Пункт Compile
- •Пункт Debug
- •Пункт Options
- •Пункт Window
- •Пункт Help
- •Страница Compiler Options окна свойств проекта
- •??? Страница Directories окна свойств проекта
- •??? Страница Preferences окна свойств проекта
- •Файлы проекта
- •Основные приемы работы в системе Паскаль Создание новой программы
- •Работа с уже созданной программой
- •Использование средств отладки
- •Пошаговое выполнение программы
- •Просмотр значений переменных
- •Использование точек останова
- •Порядок выполнения работы
- •If f then writeln('существует');
- •Var описание_переменных;
- •If условие then оператор1 else оператор2
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Оператор цикла с убывающим параметром
- •Контрольные вопросы
- •Var список_имен_массивов: array [тип_индекса1,тип_индекса2...] of базовый_тип;
- •Варианты заданий
- •Контрольные вопросы
- •Var список_имен_переменных:string[максимальная_длина_строки];
- •Var список_имен_переменных:string;
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 6. Использование процедур Основные сведения
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 7. Использование функций Основные сведения
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 8. Работа с текстовыми файлами Основные сведения
- •Var имя_файловой_переменной : text;
- •Пример выполнения
- •I : integer; {счетчик символов текущей строки выходного файла}
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 9. Работа с типизированными файлами и записями Основные сведения
- •Var имя_файловой_переменной : file of тип_записи_файла;
- •Var имя_переменной_записи:имя_типа_записи;
- •Пример выполнения
- •ICurs: integer {курс }
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 10. Использование данных ссылочного типа Основные сведения
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 11. Создание и использование модулей Основные сведения
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Литература
- •Содержание
Контрольные вопросы
Описать переменную Y как переменную, принимающие только целочисленные значения в диапазоне от 20 до 35.
Можно ли задать переменную ограниченного типа, принимающую ограниченные значения на отрезке [2.7, 5.7] ?
Какие из приведенных ниже описаний массивов являются неправильными и почему ?
а) var A: array[1..20] of real;
б) type MAS=array[‘A’..’D’];
var A: MAS;
в) var A: array[integer] of char;
г) type SITY=(Taganrog, RostovDon, Moscow);
var A: array[SITY] of real;
var B: array[SITY,2] of boolean;
var B: array[SITY,1..4] of integer;
д) var A: array[1..5, 1..7] of real;
е) var A: array[10,10] of integer;
Сколько элементов содержит каждый правильно описанный массив предыдущего пункта ?
Могут ли элементы массива быть различных типов ?
Как осуществляется доступ к элементам массива ?
Лабораторная работа 5. Обработка символьных строк
Основные сведения
Описание строковых переменных
Var список_имен_переменных:string[максимальная_длина_строки];
или
Var список_имен_переменных:string;
Максимальная длина строки не может быть больше 255.
Операции над данными типа STRING
операции отношения <, <=, >, >=, =, <> (сравнение лексикографическое);
конкатенация (сцепление) +;
доступ к символу строки: переменная[номер_символа_в_строке].
Стандартные функции для обработки строк
length(S:string):byte – возвращает текущую длину строки S,
concat(S1,S2,..SN:string):string – возвращает сцепление строк S1...SN.
copy(S:string; START, LEN:integer):string – возвращает подстроку S длиной LEN, начинающуюся с позиции START.
delete(var S:string; START,LEN:integer) удаляет в S подстроку длиной LEN, начинающуюся с позиции START.
insert(var S:string; SUBS:string; START:integer) вставляет в S подстроку SUBS, начиная с позиции START.
pos(SUBS,S:string):byte ищет первое вхождение подстроки SUBS в строку S и возвращает номер символа S, с которого это вхождение начинается. Нуль, если нет ни одного вхождения.
str(X; var S:string) преобразует число X в строку S.
val(S:string; var X; var E:integer) преобразует строку цифр S в значение числовой переменной X, E – код возникшей при преобразовании ошибки.
Пример выполнения
Дана строка символов, содержащая русские слова, разделенные пробелами. Найти слово, в котором больше всего различных гласных, и слово, в котором меньше всего различных согласных.
program PRIMER;
var S,SGL,SSG,S1,S2:string;
F:boolean;
I,J,K,MAXGL,MINSG:integer;
begin
repeat {Ввод строки}
writeln('Введите строку');
readln(S)
until length(S)<>0;
S1:=''; {Слово с макс. кол-вом гласных }
S2:=''; {Слово с мин. кол-вом согласных }
MAXGL:=0; {Максимальное количество гласных }
MINSG:=LENGTH(S); {Минимальное количество согласных}
J:=1; {Пропуск начальных пробелов }
while S[J]=' ' do
J:=J+1;
for I:=J to length(S) do {Найти первый пробел между словами}
if S[I]=' ' then break;
repeat
SGL:=''; Строка неповторяющихся гласных
SSG:=''; Строка неповторяющихся согласных
for K:=J to I-1 do
case S[K] of
'А','а','Е','е','И','и','О','о','У','у',
'Ы','ы','Э','э','Ю','ю','Я','я':
if pos(S[K],SGL)=0 then SGL:=SGL+S[K]; {Добавление новой гласной}
'Б','б','В','в','Г','г','Д','д','Ж','ж','З','з',
'К','к','Л','л','М','м','Н','н','П','п','Р','р',
'С','с','Т','т','Ф','ф','Х','х','Ц','ц','Ч','ч',
'Ш','ш','Щ','щ','Ъ','ъ','Ь','ь':
if pos(S[K],SSG)=0 then SSG:=SSG+S[K];{Добавление новой согласной}
end; { case S[K] of }
if length(SGL)>MAXGL then begin
{Обновить S1}
S1:=copy(S,J,I-J);
MAXGL:=length(SGL)
end;
if length(SSG)<MINSG then begin
{Обновить S2}
S2:=copy(S,J,I-J);
MINSG:=length(SSG)
end;
J:=I;
while S[J]=' ' do J:=J+1; {Пропуск нескольких пробелов между словами }
while S[I]=' ' do I:=I+1; {Поиск следующего пробела-разделителя}
for I:=I+1 to length(S) do if S[I]=' ' then break;
until J=I;
writeln('Исходная строка');
writeln(S);
writeln('Слово с макс.количеством неповторяющихся гласных :',S1);
writeln('Слово с мин.количеством неповторяющихся согласных:',S2)
end.
