Смекни!
smekni.com

Методические рекомендации по организации изучения дисциплины (стр. 8 из 9)



3 способ: восстановим в середине отрезка AB перпендикуляр до пересечения с графиком функции f(x). Проведем через найденную точку отрезок, параллельный AB.




Для нахождения приближенного значения определенного интеграла разобъем отрезок AB на две равные части (величину 2 обозначим через n). В середине каждого отрезка восстановим перпендикуляры и построим соответствующие прямоугольники. Вычислим площадь S1.



Т.к. выполнив вычисления один раз не возможно оценить их точность, то продолжим разбиение отрезка AB (n=4).


После проведенных вычислений можно оценить полученную точность, которая равна |S1-S2|. Если точность оказывается достаточной, то последнее вычисленное значение S2 будет считаться значением определенного интеграла. Если точность не достаточна, то последнее разбиение считается начальным, т.е. S1=S2 и количество разбиений увеличивается вдвое, т.е. n=2*n.


5.6. Использование библиотек стандартных процедур в программах. Модуль Crt. Текстовые режимы использования экрана.

Язык программирования Паскаль содержит ряд предопределенных процедур, разделенных по темам на несколько библиотек (модулей). Файлы с библиотеками процедур имеют расширение tpu и хранятся в папке units основной директории tp.
Подключение библиотек к программе производится сразу за заголовком программы. Для этого используется служебное слово uses. За ним перечисляются через запятую имена файлов библиотек.
Модуль Crt содержит процедуры и функции, испльзующиеся для работы на текстовом экране. Примером процедуры этого модуля может служить очистка экрана clrscr. Процедуры этого модуля всегда работают в активном окне. Окном считается прямоугольная область, определяемая координатами верхнего левого и нижнего правого угла. По умолчанию активным окном является экран. Размеры экрана, по умолчанию, - 80x25 знакомест.
Заданный по умолчанию режим экрана можно изменить, используюя процедуру textmode (<константа режима>). Константа 0 задает черно/белый режим с размером экрана 40x25.
1 - цветной режим 40x25
2 - черно/белый режим 80x25
3 - цветной режим 80x25
7 - черно/белый режим и монохромный дисплей
256 - загружаемый шрифт - 43 строки в EGA и 50 строк в VGA.

Процедуры этого модуля могут обеспечивать работу со звуком. Частоту звука определяет процедура sound (<число герц>). Длительность звука регулируется процедурой delay (<длительность звука в мс.>) и процедурой nosound - отключение звука.
Короткий звуковой сигнал можно обеспечить, используя символ #7 в списке вывода оператора write. В списке вывода также можно использовать еще 4 специальных символа:
#8 - смещение курсора влево на одну позицию
#10 - сдвиг курсора на одну строку вниз
#13 - перемещение курсора на левую границу окна
Комбинация #13#10 соответствует нажатию клавиши Enter.

Для активирования нового окна следует определить его границы. Для этого используется процедура window (x1, y1, x2, y2). Координаты x1, y1, x2, y2 - абсолютные, все остальные координаты в окне - относительные, а точкой отсчета считается верхний левый угол окна. В пределах окна курсор можно переместить на овую позицию, используя процедуру gotoxy (x, y). Если x, y выходят за пределы окна, то процедура игнорируется. Для изменения цветовой гаммы окна используются следующие процедуры:
textbackground (<…>) - изменяет цвет фона; в качестве аргументов выступают числа 0..7
textcolor (<…>) - изменяет цвет текста; в качестве аргументов выступают числа 0..15.
Для организации мерцающих цветов текста к константе цвета необходимо прибавить 128.

Лекция 7-10. Структурированные типы данных


Традиционно к структурированным типам данных в языке Pascal относят массивы, множества и записи. Иногда структурированным считают строковый тип. На самом деле строки занимают промежуточное положение между простыми и структурированными типами, но т.к. большинство их свойств реализуются как свойства сложных данных, то строки рассматриваются как структурированный тип.


Массивы.

Объявление переменной массива происходит в разделе var. При этом используется зарезервированное слово array, указывается тип массива и его размерность перечислением индексов, а также объявляется тип данных в массиве.
Пример 1:


Пример 2:
var masiv: array ['a'..'z'] of integer;
Для обращения к элементу массива в Pascal-программе указывается имя массива и в квадратных скобках индексы элемента.
Пример 1:
a [2,4]
а) ввести значение:
read (A[2,4]);
б) изменить значение:
A[2,4]:=5;
в) сообщить значение:
write (A[2,4]);

Пример 2:
masiv ['b'];
masiv['b']:=47*24;

Задача ввода элементов массива.
а) линейного:


program vvod;
var A: array [1..10] of integer;
i:integer;
begin
for i:=1 to 10 do
read (A[i]);
end.



б) двумерного:




program vvod;
const n=5; m=7;
var A: array [1..n,1..m] of real;
i,j: integer;
begin
for i:=1 to n do
for j:=1 to m do
read (A[i,j]);
end.



Задача 2: найти минимальный элемент в массиве:





program min;
const n=10;
var i: byte;
a: array [1..n] of real;
min: real;
begin
for i:=1 to n do read (A[i]);
min:=A[1];
for i:=1 to n do
if min>A[i] then min:=A[i];
write (min);
end.



Сортировка массивов.

Сортировкой называется процесс расположения элементов массива в порядке убывания (возрастания) из значений.
Пример :


Алгоритм выполнения сортировки называется методом сортировки. К наиболее распространенным методам относятся:
  1. Простым выбором
  2. Простой перестановкой
  3. Пузырьковый метод
  1. На каждом шаге находится минимальный (максимальный) неотсортированной части. Он меняется с первым элементом в неотсортированной части, после чего отсортированная часть увеличивается на один элемент. На первом шаге весь массив считается неотсортированным. Сортировка заканчивается за (n-1) шаг.
    Пример: 241795

1 шаг: 1 | 42795
2 шаг: 12 | 4795
3 шаг: 124 | 795
4 шаг: 1245 | 97
5 шаг: 124579

  1. На каждом шаге массив делится на отсортированную и неотсортированную части. Первый элемент из неотсортированной части сравнивается с каждым элементом отсортированной части, начиная с последнего. Если найден элемент, больший сравниваемого, то они меняются местами. Шаг закончен когда просмотрены все отсортированные элементы. Сортировка закончена когда просмотрены все неосортированные элементы. На первом шаге отсортироованным считается первый элемент.
    Пример: 2 | 41795

1 шаг: 24 | 1795
2 шаг: 21 | 4795
124 | 795
3 шаг: 1247 | 95
4 шаг: 12479 | 5
124759
124579

  1. На каждом шаге сравниваются все соседние элементы. В случае необходимости они меняются местами. Сортировка считается законченной за nn действий или на шаге, когда не выполнено ни одной перестановки.
    Пример: 241795

1 шаг: 214795 true
2 шаг: 124579 true
3 шаг: 124579 false


Строковый тип данных.

Переменная типа строка предназначена для обработки цепочек символов. Каждый символ является элементом типа char. Строки могут вводиться с помощью стандартных операторов read/readln и выводиться стандартными операторами write/writeln.
Объявляются переменные типа строка в разделе var. При объявлении указываются идентификатор переменной, зарезервированное слово string и, в квадратных скобках, целое число - максимально возможная длина строки. Наибольшая длина строки составляет 256 символов. Если переменная имеет значение с максимальной длиной строки, то при объявлении переменной ограничиваются зарезервированным словом.
Пример:
var
identificator_1: string;
identificator_2: string[20];
identificator_3: string[255];
Значение строкового типа также как и значение типа char при записи внутри программы заключаются в апострофы.
Пример:
identificator_1:='это - компьютер';
identificator_1[1]:='э';
Простейшая операция которую Pascal позволяет выполнить со строками - это операция конкатенации, или сцепления, или объединения строк в операторе присваивания. Операция записывается с помощью знака "+".
Пример:
identificator_1:='это' + '-' + 'компьютер';

Для обработки строковых данных используется ряд встроенных функций:
1) Length (L) - определяет длину строки, являющуюся значением переменной L. Значение, возвращаемое этой функцией является целочисленным и отображает реальную длину строки, т.е. может не совпадать со значением длины строки, объявленным при декларации.
Пример 1:
var
L: string[15];
A: byte;
Begin
L:='Урок';
A:=length(L);
Write(A);
End.

Пример 2:
Begin
write(length('Урок'));
End.
2) Upcase (C) - преобразует любой символ в прописной. Переменная C может иметь значение типа char, либо являться одним элементом из строки. Русские символы обрабатываться этой функцией не могут.
3) Copy (L, A, B) - позволяет копировать фрагмент строки являющейся значением переменной L, начиная с позиции A в количестве B, где A и B - целые числа, причем значение A не превышает длины строки L, а значение B не превышает (длина строки L - A). Если эти правила нарушены, то ошибки компиляции не произойдет, но возможно совершение логической ошибки в программе.
4) Pos (L, M) - возвращает результат целочисленного типа, являющийся номером позиции, с которой строка L входит в строку M. Если строки L нет в строке M, то результат - 0.
5) Insert (L, M, A) - вставляет строку L в строку M, начиная с позиции с номером A. Фактически, вставка производится перед указанной позицией.
6) Delete (L, A, B) - удаляет из строки L B символов, начиная с позиции A.
Если номера позиций в функциях Insert и Delete не соответствуют длине рассматриваемых строк, то произойдет ошибка компиляции.
Пример 1: переставить буквы введенного слова в противоположном порядке. Например, ввели "урок", получили - "кору":


Пример 2: изменить введенное значение строковой переменной на слово, записанное теми же символами, но в обратном порядке. Новую переменную не использовать:

Пример 3: сравнение слов в Pascal.