Главная Обратная связь Поможем написать вашу работу!

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






Системные процедуры и функции обработки строк



Процедура Delete (Var S: string; Pos, N: integer) – удаляет из строки S подстроку, содержащую N символов, начиная с позиции Pos.

Например,

S:= ABCL+FGR;

Delete (S, 3, 4);

После выполнения этих операторов строка S = ABGR.

Процедура Insert (Fragment: string; Var S: string; Pos: integer) – вставляет в строку S подстроку Fragment, начиная с позиции Pos.

Например,

Fragment:= ABCD;

S:= abefg;

Insert (Fragment, S, 3);

Результатом выполнения этой процедуры будет строка
S = abABCDefg’.

Процедура Str (X; Var S: string) – преобразует числовое значение X в строковое и присваивает результат строке S, причём можно переводить числа как целые, так и вещественные.

Например:

X:= 2321;

Y:= 76.854;

Str (X, S1);

Str (Y:8:3, S2); {без форматного преобразования результат будет выдан в форме с плавающей точкой}

 

В результате выполнения этих операторов S1= 2321,
S2=
76.854’.

Процедура Val (S: string; Var X; Var ErrCode: integer) – переводит строковое значение S в значение числовой переменной X целого или вещественного типа, если данная строка действительно отвечает правилам записи чисел. Строка S не должна содержать незначащих пробелов в начале и в конце. Значение переменной ErrCod равно нулю, если при преобразовании не обнаружено ошибок, в противном случае значение ErrCod равно номеру позиции первого ошибочного символа.

Например,

S1:= 5621;

S2:= -89.543’;

S3:= 246.56 + 0.45’;

Val (S1, X, Cod1);

Val (S2, Y, Cod2);

Val (S3, Z, Cod3);

Результатом выполнения этой последовательности операторов будут значения:

X = 5621, Cod1 = 0; Y = -89.543, Cod2 = 0; Cod3 = 4;

В последнем операторе выдан только код ошибки, так как разделительным знаком между целой и дробной частями является точка, а не запятая.

Функция Pos (Fragment, S: string): byte – возвращает номер первого элемента, с которого начинается первое вхождение подстроки Fragment в строку S. Если такой подстроки нет, то результат равен нулю.

Например:

Frag_1 = CD;



Frag_2:= DA;

S:= ABCDabcCD;

k1:= Pos (Frag_1, S);

k2:= Pos (Frag_2, S);

Переменная k1 равна 3, так как первое появление подстрока ‘CD’ начинается с третьей позиции строки S. Значение переменной k2 равно 0, так как такой подстроки нет.

Функция Copy (S: string; Pos, N: integer): string – копирует N символов строки S, начиная с позиции Pos. Если Pos больше длины строки S, то результатом будет пробел, при Pos большем 255 выдаётся ошибка.

Например,

S1:= Весна идёт, весне дорогу!;

Frag_1:= Copy (S1, 13, 13);

Frag_2:= Copy (S, 9, 3);

Значением переменной Frag_1 будет строка ‘весне дорогу!’, а переменной Frag_2 будет присвоено значение ‘ёт,’.

Функция Concat (S1, S2, …, Sn): string – выполняет сцепление (слияние) строк S1, S2, …, Sn аналогично операции сцепления (+).

Функция Length (S: string): byte – выдаёт текущую длину строки.

Например,

Var S1: string;

S2: string[5];

S1:= a+bsin (x);

S2:= aa dd7 cc bbb;

L1:= Length (S1);

L2:= Length (S2);

В результате получим L1 = 9, а L2 = 5, так как по объявлению количество символов в строке S2 не должно быть больше 5.

Процедура Insert (Fragment: string; Var S: string; Pos: integer) – вставляет в строку S подстроку Fragment, начиная с позиции Pos.

Например,

 

S1:= У Егорки;

S2:= отговорки!; {строка начинается с пробела}

Insert (S1, S2, 1);

Insert ( всегда, S2, 9); {строка ‘ всегда’ тоже начинается с пробела}



В результате выполнения последовательности этих операторов будет сформирована строка S2 = У Егорки всегда отговорки!’.

 

 

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 8

HАИМЕНОВАНИЕ:Множества

1.ЦЕЛЬ РАБОТЫ: Научится работать с множествами

2.ПОДГОТОВКА К ЗАНЯТИЮ:

2.1. Изучить предложенную литературу.

2.2. Подготовить бланк отчёта.

3.ЛИТЕРАТУРА:

3.1 Белов В.В., Чистякова В.И. Программирование в Delphi: процедурное, объектно-ориентированное, визуальное. Учебное пособие. – М.: Горячая линия – Телеком, 2009

3.2 Голицына О.Л., Попов И.И. Основы алгоритмизации и программирования. – Форум, 2010

3.3Семакин И.Г., Шестаков А.П. Основы алгоритмизации и программирования. – М.: Издательский центр «Академия», 2008

3.4Семакин И.Г., Шестаков А.П. Основы программирования. – М.: Издательский центр «Академия», 2008

 

4. ПЕРЕЧЕНЬ ОБОРУДОВАНИЯ И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ:
4.1. Персональный IBM PC.

5.ЗАДАНИЕ:

5.1 Составьте программу решения задачи: Вычислить значения отношений:

А) [2]<>[2, 2, 2]; Б) [4, 5, 6]=[5, 4, 6]; В) [2, 3, 5, 7]<=[1..9]; Г) [3, 6..8]>=[2..7, 9]

5.2 Составьте программу решения задачи: Вычислить значения выражений:

А) [1, 3, 5]+[2, 4]; Б) [1, 3, 5]*[2, 4]; В) [1, 3, 5]-[2, 4]; Г) [1..8]-[3..6]

5.3 Составьте программу решения задачи: Из множества целых чисел 1..20 выделить: 1) множество чисел, делящихся на 6 без остатка; 2) множество чисел, делящихся на 2 или на 3 без остатка. Вывести содержимое этих множеств на экран.

5.4 Составьте программу решения задачи: Ввести строку символов, состоящую из латинских букв, цифр и пробелов. Осуществить проверку правильности введенных символов.

5.5 Составьте программу решения задачи: Определить количество гласных букв в предложении, введенном с клавиатуры



6. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ:

6.1 По предложенной литературе изучить необходимый материал;

6.2 Выполнить задания практического занятия и записать листинг программы;

6.3 Дать ответы на контрольные вопросы;

7. СОДЕРЖАНИЕ ОТЧЕТА:

7.1 Наименование и цель работы

7.2 Код программы

7.3 Записать результат (листинг) выполненых заданий.

7.4 Ответы на контрольные вопросы

7.5 Вывод о проделанной работе

 

8. КОНТРОЛЬНЫЕ ВОПРОСЫ:

8.1 Множеством называется?

8.2 Пересечение множеств?

8.3 Разность множеств?

8.4 Операции отношений?

ПРИЛОЖЕНИЕ:

В языке Паскаль типом-множеством называется множество различных сочетаний элементов исходного (базового) типа. Число элементов исходного множества в Turbo-Pascal не может быть больше 256, а порядковые номера элементов должны находиться в пределах от 0 до 255.

Для объявления типа-множества используются зарезервированные слова set of, после которых указываются элементы этого множества, как правило в виде перечисления или диапазона. Объявить тип-множество можно в разделе программы Type или при объявлении переменной в разделе Var. Например:

Type

Lat=set of 'A'..'Z'; {множество прописных латинских букв}

Oper=set of (Plus, Minus, Mult, Divide) {множество знаков арифметических операций}

Chisla=set of 12..27; {множество чисел от 12 до 27}

Digit=set of '0'..'9'; {множество символов-цифр}

После определения типа-множества можно объявить переменные или типизированные константы этого типа.

Var l: Lat; c1,c2: chisla; op: Oper; d: Digit;

g: set of ('а', 'я', 'о', 'ё', 'у', 'ю', 'э', 'е', 'ы', 'и' );

В операциях над множествами могут участвовать переменные типа-множество, константы и конструкторы множеств.

Для множеств определены следующие операции.

+ объединение множеств;

- разность множеств;

* пересечение множеств;

= проверка эквивалентности двух множеств;

<> проверка неэквивалентности двух множеств;

<= проверка, является ли левое множество подмножеством правого;

>= проверка, является ли правое множество подмножеством левого;

in проверка принадлежности элемента множеству.

Результатом операций объединения, разности и пересечения является множество. Результатом операций проверки эквивалентности и вхождения будет значение логического типа.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №9

HАИМЕНОВАНИЕ:Составление программ с использованием процедур

1.ЦЕЛЬ РАБОТЫ: Научится использовать процедуры при написание программы

2.ПОДГОТОВКА К ЗАНЯТИЮ:

2.1. Изучить предложенную литературу.

2.2. Подготовить бланк отчёта.

3.ЛИТЕРАТУРА:

3.1 Белов В.В., Чистякова В.И. Программирование в Delphi: процедурное, объектно-ориентированное, визуальное. Учебное пособие. – М.: Горячая линия – Телеком, 2009

3.2 Голицына О.Л., Попов И.И. Основы алгоритмизации и программирования. – Форум, 2010

3.3Семакин И.Г., Шестаков А.П. Основы алгоритмизации и программирования. – М.: Издательский центр «Академия», 2008

3.4Семакин И.Г., Шестаков А.П. Основы программирования. – М.: Издательский центр «Академия», 2008

 

4. ПЕРЕЧЕНЬ ОБОРУДОВАНИЯ И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ:
4.1. Персональный IBM PC.

5.ЗАДАНИЕ:

5.1 Напишите программу вычисления выражения y=(tg(X)+sin(X))*ecos(x) пpи X=3.7. Результат вывести в формате 5:2.

5.2 Напишите программу, которая с помощью функции Chr выведет на экран кодовую таблицу ПЭВМ (ASCII-таблицу). Задержите выведенную информацию на 5с и очистите экран.

5.3 Оформите процедуру Proverka проверки пользователя на право работы с программой. Используйте для этого пароль = SCHOO1. Если пароль неправильный, выйти из программы по Halt.

5.4 Напишите программу, состоящую из трех процедур и основной программы. Первая процедура организует ввод двух целых чисел Х и Y, вторая вычисляет их сумму, третья выводит результат. Используйте эти процедуры в основной программе. Используйте X,Y как глобальные переменные. Эта программа послужит прообразом всех ваших будущих программ, т.к. в ней реализуется принцип работы любой системы: логически выделенные ввод, обработка и вывод результата.

5.5 Составить программу поиска большего из четырех чисел с использованием подпрограммы поиска большего из двух.

5.6 Даны координаты вершин многоугольника (х1,у1, х2,у2,..., х10,у10). Определить его периметр (вычисление расстояния между вершинами оформить подпрограммой).

5.7 Вычислить сумму: 1! + 2! + 3! +...+ n!, используя функцию вычисления факториала числа k!

5.8 Составьте программу вычисления числа сочетаний из N по М. Число сочетаний определяется по формуле N!/(M!*(N—М)!), где N — количество элементов перебора. Используйте подпрограмму вычисления факториала.

5.9 Даны действительные числа s,t. Составить программу вычисления выражения f(t,—2s,1.17) + f(2.2,t, s—t) , где f(a,b,c) = (2a—b—sin(c))/(5+|c|).

5.10 Составьте программу вычисления суммы квадратов простых чисел, лежащих в интервале (M,N).

6. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ:

6.1 По предложенной литературе изучить необходимый материал;

6.2 Выполнить задания практического занятия и записать листинг программы;

6.3 Дать ответы на контрольные вопросы;

7. СОДЕРЖАНИЕ ОТЧЕТА:

7.1 Наименование и цель работы

7.2 Код программы

7.3 Записать результат (листинг) выполненых заданий.

7.4 Ответы на контрольные вопросы

7.5 Вывод о проделанной работе

 

8. КОНТРОЛЬНЫЕ ВОПРОСЫ:

8.1 Что называется параметром, и каково его назначение? Формальные, фактические параметры, их взаимосвязь.

8.2 Каковы отличия параметров-значений от параметров-переменных, особенности их описания и применения.

8.3 Чем отличаются локальные и глобальные параметры? Какова область их действия?

 

ПРИЛОЖЕНИЕ:

Процедуры

Процедуры описываются в специальном разделе описательной части программы вслед за разделом переменных. Любая процедура состоит, аналогично программе, из заголовка процедуры и тела процедуры.

Заголовок процедуры представляет собой:

PROCEDURE < и м я> (список параметров);

где PROCEDURE – служебное слово;

имя – имя процедуры, определяемое в соответствии с правилами построения идентификаторов;

список параметров - перечень имен для обозначения исходных данных и результатов работы процедуры с указанием их типов.

Задача. Составить программу вычисления степени Z=am, где m любое целое (положительное или отрицательное) число и ‘a’ не равно нулю. Для решения использовать процедуру с параметром.

учитывая, что 1/(a)-m = (1/a)-m и используя процедуру с параметром составим программу:

Программа решения задачи имеет вид:

program step; {заголовок программы}

var {описание переменных}

m:integer; {показатель степени}

a,z:real; { число, результат }

procedure step1 (n:integer; x:real;var y:real); {заголовок процедуры}

var

i:integer;

begin {операторная часть процедуры}

y:=1;

for i:=1 to n do {цикл для вычисление степени}

y:=y*x; {цикл для вычисление степени}

end; {конец процедуры}

begin

writeln (' Введите a,m '); {вывод сообщения}

readln (a,m); {ввод с клавиатуры значений в массив}

If m=0 then z:=1 {проверка условия, выполнение оператора}

else if m>0 then step1(m,a,z) {иначе проверка условия, выполнение оператора}

else step1(-m,1/a,z); {иначе выполнение оператора}

writeln (a:4:2,' в степени ',m:3,' равно ',z:4:2); {вывод результата}

end. {конец программы}

 


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №10

HАИМЕНОВАНИЕ:Составление программ с использованием функций

1.ЦЕЛЬ РАБОТЫ: Научится использовать функции при написание программы

2.ПОДГОТОВКА К ЗАНЯТИЮ:

2.1. Изучить предложенную литературу.

2.2. Подготовить бланк отчёта.

3.ЛИТЕРАТУРА:

3.1 Белов В.В., Чистякова В.И. Программирование в Delphi: процедурное, объектно-ориентированное, визуальное. Учебное пособие. – М.: Горячая линия – Телеком, 2009

3.2 Голицына О.Л., Попов И.И. Основы алгоритмизации и программирования. – Форум, 2010

3.3Семакин И.Г., Шестаков А.П. Основы алгоритмизации и программирования. – М.: Издательский центр «Академия», 2008

3.4Семакин И.Г., Шестаков А.П. Основы программирования. – М.: Издательский центр «Академия», 2008

 

4. ПЕРЕЧЕНЬ ОБОРУДОВАНИЯ И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ:
4.1. Персональный IBM PC.

5.ЗАДАНИЕ:

5.1 Напишите программу, которая выведет на экран 10 строк по 5 случайных чисел в диапазоне 0..36.

5.2 Напишите программу, которая по значениям двух катетов вычисляет гипотенузу и площадь треугольника.

5.3 Напишите функцию возведения в степень по формуле: АB = Exp(Ln(A)*B) и используйте ее в программе для возведения в 4-ю степень вещественного числа 2,87.

5.4 Напишите программу вычисления площади поверхности и длины экватора на основе известного радиуса планет солнечной системы. Форму планет будем считать шаром. Вычисление площади и длины экватора оформите отдельными функциями.

5.5 Определить НОД трех натуральных чисел.

6. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ:

6.1 По предложенной литературе изучить необходимый материал;

6.2 Выполнить задания практического занятия и записать листинг программы;

6.3 Дать ответы на контрольные вопросы;

7. СОДЕРЖАНИЕ ОТЧЕТА:

7.1 Наименование и цель работы

7.2 Код программы

7.3 Записать результат (листинг) выполненых заданий.

7.4 Ответы на контрольные вопросы

7.5 Вывод о проделанной работе

 

8. КОНТРОЛЬНЫЕ ВОПРОСЫ:

8.1 Что называется подпрограммой? В чем состоит сходство и различие подпрограмм-процедур и подпрограмм-функций в языке Турбо Паскаль?

8.2 В чем различие между стандартными и определенными пользователем подпрограммами? Приведите примеры.

8.3 Опишите последовательность событий при вызове процедуры или функции.

8.4 Каковы особенности параметров-процедур и параметров-функций?

ПРИЛОЖЕНИЕ:

Функция –это подпрограмма, результат выполнения которой есть единственное скалярное значение, присваиваемое имени этой функции. Функция является частным случаем процедур. Отличия процедуры от функции:

- результат выполнения функции – одно значение, а процедуры одно или несколько;

- результат выполнения функции передается в основную программу как значение имени этой функции, а результаты выполнения процедуры – как значение ее параметров.

Заголовок функции представляет собой:

FUNCTION < и м я> : тип;

где FUNCTION – служебное слово;

имя – имя функции;

тип - тип результата значения, которое должно приобретать имя функции

ПРИМЕР

ЗАГОЛОВОК ФУНКЦИИ.

FUNCTION F ( N: REAL): REAL;

ВЫЗОВ ФУНКЦИИ.

PER: = F (K);


Просмотров 612

Эта страница нарушает авторские права




allrefrs.ru - 2021 год. Все права принадлежат их авторам!