Файл: 1. Лекции Паскаль (Часть 1).doc

Добавлен: 19.10.2018

Просмотров: 4458

Скачиваний: 10

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Оглавление

1.Стандартные типы данных

1.1.Структура программы

1.2.Описание стандартных типов данных

Целый тип

Вещественный тип

Символьный тип

Булевский тип

Перечисляемый тип

1.3.Выражения

Лабораторная работа №1

Вычисление выражений с использованием стандартных функций

Лабораторная работа № 1.

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

Постановка задачи

Описание используемых стандартных функций.

Программы № 15.а

Программы № 15.б

Варианты заданий

2. Операторы языка.

2.1. Составной и пустой операторы.

2.2.Условный оператор.

2.3.Операторы повторений.

2.4.Оператор выбора

2.5.Практические задания.

Лабораторная работа № 2

Решение уравнений и неравенств с использованием условного оператора.

Лабораторная работа № 2, вариант № 8.

Решение уравнений и неравенств с использованием условного оператора.

Варианты заданий

Лабораторная работа № 3.

Построение таблиц функций.

Лабораторная работа № 3, вариант № 8.

Построение таблиц функций.

Варианты заданий

Лабораторная работа № 4.

Организация циклов в программе.

Лабораторная работа № 4, вариант № 8.

Организация циклов в программе.

Варианты заданий

3.Численные методы.

3.1.Метод итераций

3.2.Метод Ньютона

3.3. Метод половинного деления.

Лабораторная работа № 5

Решение нелинейных уравнений.

Лабораторная работа № 5, вариант № 3.

Решение нелинейных уравнений методом итераций.

Описание метода итераций:

Текст программы.

Распечатка результатов работы программы в следующем виде:

Лабораторная работа № 5, вариант № 3.

Решение нелинейных уравнений методом Ньютона.

Описание метода Ньютона:

Блок-схема метода Ньютона:

Текст программы.

Распечатка результатов работы программы в следующем виде:

Лабораторная работа № 5, вариант № 3.

Решение нелинейных уравнений методом половинного деления.

Описание метода половинного деления:

Блок-схема метода половинного деления:

Текст программы.

Распечатка результатов работы программы в следующем виде:

Метод Монте-Карло (метод статистических испытаний)

5. Массивы.

5.1. Процедуры и функции.

5.2. Одномерные массивы.

5.2.1. Описание массивов.

5.2.2. Классы задач по обработке массивов.

5.2.2.1. Однотипная обработка всех или указанных элементов массивов.

5.2.2.2. Задачи, в результате решения которых изменяется структура массива.

5.2.2.3. Обработка нескольких массивов одновременно.

5.2.2.4. Поисковые задачи для массивов.

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

5.2.2.5.1. Сортировка вставкой

5.2.2.5.2. Сортировка выбором

5.2.2.5.3. Сортировка обменом («пузырьковая сортировка»)

5.2.2.5.4. Сортировка фон Неймана (слиянием)

5.2.2.5.5. Шейкер-сортировка

5.3. Двумерные массивы.

5.3.1. Описание двумерных массивов.

5.3.2. Сортировка двумерных массивов

Лабораторная работа № 4.

Работа с массивами чисел.

Образец выполнения задания.

Лабораторная работа № 4.

Работа с массивами чисел.

Варианты заданий.

6. Обработка строк.

6.1. Функции обработки строк.

6.2. Процедуры обработки строк.

Лабораторная работа № 7.

Обработка строк.

Лабораторная работа № 7, вариант № 8.

Обработка строк.

7. Комбинированные типы. Оператор присоединения

7.1. Записи

7.2. Оператор присоединения

Лабораторная работа № 8.

Работа с комбинированными типами данных.

Лабораторная работа № 8, вариант № 8.

Работа с комбинированными типами данных.

8. Множественные типы данных.

8.1. Множества.

Лабораторная работа № 9.

Работа с множественными типами данных.

Лабораторная работа № 9, вариант № 3.

Работа с множественными типами данных.

Варианты заданий.

Лабораторная работа № 10.

Операции над множествами.

Лабораторная работа № 10.

Операции над множествами.

Варианты заданий.


Лабораторная работа №1

Вычисление выражений с использованием стандартных функций

Цель задания:
  1. Изучение порядка действий при вычислении выражений.

  2. Приобретение навыков в записи выражений на языке ТР и использование стандартных функций.

Постановка задачи
  1. Для задания (а) найти значение функции Y(X) при заданном X. Затем возвести полученное значение в квадрат, т.е. найти Y1=Y(X), и вычислить абсолютное значение Y1.

  2. Для задания (б) записать выражение, зависящее от координат точки X1 и Y1 и принимающее значение TRUE, если точка принадлежит заштрихованной области, и FALSE, если не принадлежит. Для исследуемой точки вычислить полученное выражение.

  3. Результаты всех вычислений вывести на печать.

Содержание отчета

1. Постановка задачи для конкретного варианта.

2. Описание используемых стандартных функций.

3. Текст программы.

4. Распечатка результатов выполнения программы.

Образец выполнения задания.

Лабораторная работа № 1.

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

Постановка задачи

  1. Найти значение функции Y(X) = 1+ x cos(x) + sin(x) при X= 2.346. Затем возвести полученное значение в квадрат, т.е. найти Y1=Y(X), и вычислить абсолютное значение ABS(Y1).


  1. Записать выражение, зависящее от координат точки М(-0.8; 0.9) и принимающее значение TRUE, если точка принадлежит заштрихованной области, и FALSE, если не принадлежит. Для исследуемой точки вычислить полученное выражение.

Y





-1 1 x




-1


  1. Результаты всех вычислений вывести на печать.

Описание используемых стандартных функций.


Стандартные функции, возвращают вещественный результат при вещественном или целом аргументе:

  • Cos(r), вычисляет косинус аргумента r.

  • Sin(r), вычисляет синус аргумента r.

  • Abs(r), вычисляет абсолютную величену аргумента r.


Текст программы № 15.а


program lab1{ вариант №15.a};

const x=2.346;

var y:real;

begin

writeln('Вычислим значение функции Y=1+cos^2(x)+sin^3(x) при x=2.346');

y:=1+x*cos(x)*cos(x)+sin(x)*sin(x)*sin(x);

writeln('Y=',y);

writeln('Y^2=',y*y);

writeln('ABC(Y^2)',abs(y*y));

end.


Текст программы № 15.б


program lab1{ вариант №15.b};

const x0=-0.8;

y0=0.9;

r=1;

var pro:boolean;

begin

pro:=(x0*x0+y0*y0<=r*r) and ((x0+1<=y0) or (abs(x0)-1>=y0));

writeln('Точка с координатами М(',x0:0:1,'.',y0:0:1,')');

if pro then writeln('Принадлежит заштрихованной области.')

else writeln('Не принадлежит заштрихованной области.');

end.

Распечатка результатов выполнения программы.

Программы № 15.а


Y=2.5135058366E+00

Y^2=6.3177115909E+00

ABS(Y^2)=6.3177115909E+00


Программы № 15.б


Точка с координатами M(-0.8,0.9)

Не принадлежит заштрихованной области.


Варианты заданий

1) а) Y=sin(x)+x при х = 5.137

б) Координаты исследуемой точки: (3; 2) Область (I четверть)

Y

3




5 X

2) а) Y= x+2 при x = 0.675


б) Координаты исследуемой точки: (1.5; 0.5) Область (III четверть)

Y

-7

-1 X

3) а) Y=x - cos arcsin x при х=0.051

б) Координаты исследуемой точки: (0.1; 0.3) Область (квадрат):

2 Y





-2 2 X


-2

4) а) Y= при х = 7.873

б) Координаты исследуемой точки: (0.6; 2.5) Область (окружность):

1 Y





-1 1 X



-1

5) а) Y= tg x - ( 5 - x) при х = -3.777

б) Координаты исследуемой точки: (-0.7; 0.2) Область ( I и IV четверть):

Y

1




1 X


-1

6) а) Y=25x при х = 25.144

б) Координаты исследуемой точки: (-0.3; -0.5) Область (III четверть):

Y




-1 X



-1

7) a) Y= + ctg arctg x при х = -5.113

б) Координаты исследуемой точки: (2.5; 3) Область (между окружностью и квадратом):

1 Y





-1 1 X



-1

8) a) Y= при х = 10.237

б) Координаты исследуемой точки: (-1; -5) Область (вся область определения):

1 Y





-1 1 X



-1

9) a) Y= sin x при х = 1.031

б ) Координаты исследуемой точки: (-5; 5) Область (I и II четверть):

1 Y





-1 1 X

10) a) Y= при х = 11.131

б) Координаты исследуемой точки: (-5; 7) Область (I четверть, ниже диагонали прямоугольника)

1 Y


2 X

11) a) Y= 2 x cos(x) +1 при х = 34.211

б) Координаты исследуемой точки: (1; -3) Область (I, II, IV четверти):

1 Y





-1 1 X


-1

12) a) Y= при х = -12.333

б) Координаты исследуемой точки: (-0.5; 0.5) Область (II, IV четверти):

1 Y





-1 1 X



-1

13) a) Y = при х = -3.449

б) Координаты исследуемой точки: (0.5; 1) Область (вся область определения):

1 Y




-1 1 X


-1

14) a) Y= при х = -45.276

б) Координаты исследуемой точки: (0.75; -0.75) Область (вся область определения):

1 Y




-1 1 X


-1

15) a) Y= при х = 3.778

б ) Координаты исследуемой точки: (3; 2) Область (I, II, III четверти ):

1 Y





-1 5 X


-1

16) a) Y= arcsin x+x при х = -0.671

б) Координаты исследуемой точки: (1.5; 0.5) Область (II, IV четверти):

Y


1



-7 5 X


-2


17) a) Y= cos arctg x при х = -0.692

б) Координаты исследуемой точки: (0.2; 0.9) Область (II, III четверти):

Y

3




-2 X


-10

18) a) Y= 7 arcctg x при х = 0.276

б) Координаты исследуемой точки: (0.75; -0.3) Область (II, III, IV четверти):

5 Y





-5 3 X

-1

19) а) Y= 5 x при х = 28.954

б) Координаты исследуемой точки: (0.2; 0.45) Область (вся область определения):

Y

5




-2 2 X

-3

20) a) Y= 2 при х = 4.741

б) Координаты исследуемой точки: (0.4; -2.5) Область (I, III, IV четверти):

5 Y





-4 4 X

-4

21) a) Y= при х = 2.312

б) Координаты исследуемой точки: (0.0; 0.0) Область (I, II, III четверти):

Y

1




-2 1 X



-1

22) a) Y= 1+ при х = -0.387

б) Координаты исследуемой точки: (1; 1.5) Область (пересечение окружностей):

Y

1




-2 -1 1 X


-1


23) a) Y= ch при х = 4.352

б) Координаты исследуемой точки: (-0.5; 0.9) Область (I, IV четверти, пересечение oкружности и треугольника):

Y

1



1 2 X


-1

24) a) Y = arcsin x + x при x = 0.112

б) Координаты исследуемой точки: (1.5; 0.0) Область (окружность, но не треугольник):

1 Y



-1 1 X


-1



2. Операторы языка.

2.1. Составной и пустой операторы.


Составной оператор — это последовательность произвольных операторов программы, заключенная в операторные скобки — зарезервированные слова BEGIN ... END [17]. Характер входящих операторов в данный момент может быть различным. Также ТР допускает любую глубину вложенности составных операторов.

2.2.Условный оператор.

Условный оператор имеет следующий вид:

IF <условие> THEN <оператор1> ELSE <оператор2>, где IF, THEN, ELSE — зарезервированные слова;

<условие> — выражение логического типа;

<оператор1>, <оператор2> — операторы языка ТР.

Выполнение этого оператора начинается с проверки условия. Если оно истинно (=TRUE), то выполняется <оператор1>, иначе (значение выражения = FALSE) выполняется <оператор2>. Часть ELSE может быть опущена, тогда оператор выполняется только при значении выражения =TRUE, иначе он пропускается. Операторы повторений.

2.3.Операторы повторений.

Счетный оператор цикла (вариант 1):

FOR <пар_цикла>:= <нач_значение> TO <кон_значение> DO <операторы>, где FOR, TO, DO — зарезервированные слова;

<пар_цикла> — параметр цикла (переменная типа integer);


<нач_значение> — начальное значение <пар_цик>;

<кон_значение> — конечное значение <пар_цик>;

<операторы> — произвольные операторы языка ТР.

Выполнение оператора начинается с вычисления начального значения. Выполняется присваивание <параметр цикла>:=<начальное значение>.

Затем циклически выполняется:

  1. Если параметр цикла меньше или равен конечному значению, то переход к п.2, иначе оператор заканчивает работу.

  2. Выполнение операторов после слова DO.

  3. <пар_цик> увеличивается на 1.

Счетный оператор цикла (вариант 2):

FOR <пар_цикла>:= <нач_значение> DOWNTO <кон_значение> DO <операторы>, где FOR, TO, DO — зарезервированные слова;

<пар_цикла> — параметр цикла (переменная типа integer);

<нач_значение> — начальное значение <пар_цик>;

<кон_значение> — конечное значение <пар_цик>;

<операторы> — произвольные операторы языка ТР.

Выполнение оператора начинается с вычисления начального значения. Выполняется присваивание <параметр цикла>:=<начальное значение>.

Затем циклически выполняется:

  1. Если параметр цикла меньше или равен конечному значению, то переход к п.2, иначе оператор заканчивает работу.

  2. Выполнение операторов после слова DO.

  3. <пар_цик> уменьшается на 1.

Оператор цикла с предусловием:

WHILE <условие> DO <операторы>, где WHILE, DO — зарезервированные слова ( пока выполняется условие, делать);

<условие> — выражение логического типа;

<операторы> — операторы языка ТР.

Пока значение выражения <условие> равно TRUE, выполняются <операторы>. Если условие FALSE, то выполнение оператора заканчивается.

Здесь оператор выполняется до тех пор, пока логическое выражение TRUE. Для того чтобы цикл завершился, оператор в теле цикла должен в некоторый момент изменить значение логического условия. Оператор может быть любым оператором Паскаля, в том числе оператором цикла. В последнем случае цикл называется вложенным. Если тело цикла содержит более одного оператора, то он оформляется как составной оператор.


Оператор цикла с постусловием:

REPEAT <тело цикла> UNTIL <условие>, где REPEAT, UNTIL — зарезервированные слова ( повторять до тех пор, пока не будет выполнено условие);

<тело цикла> — операторы языка ТР;

<условие> — выражение логического типа.

Оператор выполняется хотя бы один раз. Затем проверяется условие. Если его значение FALSE, то <тело цикла> повторяется, иначе оператор заканчивает работу.

Здесь оператор выполняется до тех пор, пока логическое выражение FALSE. В теле цикла можно указывать несколько любых операторов Паскаля без дополнительных операторных скобок. Для выхода из цикл необходимо, чтобы операторы тела цикла изменили значение логического условия на TRUE. Тело цикла этого оператора выполняется хотя бы один раз.

2.4.Оператор выбора


CASE <кл_выб> OF <сп_выб> ELSE <оператор> END, где CASE, OF, ELSE, END — зарезервированные слова (случай, из, иначе, конец);


<кл_выб> — ключ выбора (выражение любого порядкового типа);

<оператор> — оператор языка ТР;

<сп_выб> — список выбора: одна или несколько конструкций вида:

<константа_выбора>: <оператор>;

<константа_ выбора> — константа того же типа, что

и <кл_выб>;

<оператор> — произвольный оператор языка ТР.

Часть ELSE может отсутствовать. Оператор начинается с вычисления значения <кл_выб>. Затем в списке выбора отыскивается значение константы, равное вычисленному значению. Если поиск удачен, то выполняются соответствующие операторы, после чего оператор завершает работу. Если в результате поиска нужное значение не было найдено, то выполняется оператор после слова ELSE. В случае отсутствия части ELSE, оператор ничего не выполняет и заканчивает работу.

2.5.Практические задания.

Лабораторная работа № 2

Решение уравнений и неравенств с использованием условного оператора.

Цель задания:
  1. Получение навыков в использовании условного оператора в программе.

  2. Знакомство с задачами, для решения которых используются условные операторы.

Постановка задачи:
  1. Составить программу решения уравнения (системы уравнений, неравенства, системы неравенств).

  2. Напечатать исходные данные и результаты.

Содержание отчета:
  1. Постановка задачи.

  2. Текст программы.

  3. Распечатка исходных данных и результатов выполнения программы.

  4. Для результатов должен быть напечатан соответствующий текст.


Образец выполнения задания.

Лабораторная работа № 2, вариант № 8.

Решение уравнений и неравенств с использованием условного оператора.


Постановка задачи.

Составить программу решения системы неравенств:

Напечатать исходные данные и результаты.


Текст программы.


program lab2{ вариант № 8};

var n,a1,a2,b1,b2:integer;

r1,r2:real;

begin

writeln('Решим систему неравенств:');

writeln(' -');

writeln('| A1X+B1<0');

writeln('| A2X+B2<0');

writeln(' -');

write('Введите a1=');

readln(a1);

write(' Введите a2=');

readln(a2);

write(' Введите b1=');

readln(b1);

write(' Введите b2=');

readln(b2);

writeln(' -');

writeln('| ',a1,'X+(',b1,')<0');

writeln('| ',a2,'X+(',b2,')<0');

writeln(' -');

r1:=((-b1)/a1);

r2:=((-b2)/a2);

if (r1<0) and (r2<0)

then case r1<r2 of

false:writeln('Ответ: X<',r1:3:2);

true:writeln('Ответ: X<',r2:3:2);

end

else case r1>r2 of

false:writeln('Ответ: X<',r1:3:2);

true:writeln('Ответ: X<',r2:3:2);

end;

end.


Распечатка исходных данных и результатов выполнения программы.
Для результатов должен быть напечатан соответствующий текст.

Рещить систему неравенств:


При а1=2, а2=4, b1=-1, b2=6,


При заданных параметрах систма неравенств имеет вид:

Ответ: X<-1.50 .


Варианты заданий

1) 2) 3)


4) 5) 6)


7) 8) 9)


10) 11) 12)


13)

Лабораторная работа № 3.

Построение таблиц функций.


Цель задания:

Получение навыков в использовании оператора цикла с параметром.

Постановка задачи:

Составить программу вычисления значений функции F(x) на отрезке [A, B] в точках Xi = A + iH, где H = (B - A)/M, M — заданное целое число. Значение шага Н должно вычисляться один раз.