i, n: integer; {i - пеpеменная цикла}

Begin

writeln ('введите число точек N');

read(n);

dx: = abs(b-a)/(n-1);

x:=a;

writeln (' _____________________________');

writeln ('| I | X | F1 | F2 |');

writeln ('|---|---|-|-|');

for i:=1 to n do {опеpатоp цикла}

begin

F2:=sin(x);

F1:=F2/cos(x); {вычисление: tg x}

writeln('|', i:3,' |', x:8:3,'|', f1:8:4,' |', f2:8:4,' |');

x:=x+dx;

end;

writeln('|________________________|);

End.

Задание 2 (программа 3_2)

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

не а≤x≤b точках. Результаты оформить в виде таблицы.

п/п

a

b

n

F1(х)

F2(х)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

1

-1

-2

0

-

-1

-4

1

1

0

-

0

1

2

2

2

5

5

3

4

3

4

2

2

4

20

18

15

14

16

20

20

12

15

20

20

18

16

12

10

sinx·cosx

1+2x+5

4e-|x|-1

| x+10|5

2·sin2x +1

2-cos x

2-x/100

x3e2x

1/(1+)

5-3 cos x

|sinx|+|cosx|

e-x+cos2x

e-x lg

x cos x/2

sin x + cos x -1

(x-1)3

cos x

e-(x+5)

(x+5)3(1+sin2x)

20/(1+x2)

ex sin x

x ln2 x

2x/(1-4x)

|sin x| - |cos x|

e -2x

x + sin x

+ e –x

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

Программирование циклических алгоритмов с предусловием

Цель работы: научиться разрабатывать и отлаживать программы с неразветвленными и разветвленными циклами, управляемыми условиями.

Структура оператора цикла с предусловием (с предварительной про­веркой условия):

WHILE <условие_выполнения> DO <оператор>;

НЕ нашли? Не то? Что вы ищете?

пока делать

где <условие> - это любое логическое выражение, <оператор> - это про­извольный оператор Турбо Паскаля, в том числе и составной.

Пример. Для трех значений а = 0.1, 0.2,0.3 протабулировать функцию y=a. tg(x/4) при изменении аргумента x на интервале [0.5,0.9] с шагом, равным a.

Program a4_1;

var

a, x,y:real;

begin

writeln('---');

writeln(' a | x | y |');

writeln('---');

a:=0.1;

while a<=0.31 do

begin

writeln(a:5:2);

x:=0.5;

while x<=0.91 do

begin

y:=a*sin(x/4)/cos(x/4);

writeln(x:12:2,' | ', y:10:2);

x:=x+a;

end;

writeln('---');

a:=a+0.1

end;

end.

Задание 2 (программа 4_2)

Модифицировать (изменить) программу 3_2 для вычисления функций F1(x) и F2(x) с применением вместо счетного цикла оператора цикла с предусловием. Выполнить ее и сравнить результаты с полученными в пре­дыдущей работе.

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

Программирование циклических алгоритмов с постусловием

Стpуктуpа оператора цикла с постусловием

REPEAT <оператор 1>;

(повторять)

<оператор 2>;

...

<оператор N>

UNTIL <условие окончания цикла>;

(до тех поp, пока)

Пример. Вычислить 15 значений функций y1(x) = tg(x) ; и y2(x) = ctg(x) при axb,

a=0.6*Pi, b=0.7*Pi.

Для вычислений разработана следующая программа:

Program Lab5;

Const n = 14;

a = 0.6*Pi;

b = 0.7*Pi;

Var x, y1, y2, dx: real;

Begin

dx:=abs((a-b)/n);

x:=a;

Repeat

y1:=sin(x)/cos(x);

y2:=1/y1;

writeln('x=', x:6:4,' y1= ', y1:7:4,' y2=', y2:7:4);

x:=x+dx

Until x>b;

End.

Пример 2. Вычислить сумму элементов s = 1+1/4+1/9+1/16+... c точностью до

E = 0.00001

PROGRAM sum;

CONST

E=0.00001; {точность}

VAR

s, r: REAL; {s - сумма, r – слагаемое}

i:INTEGER; {i - счетчик слагаемых}

BEGIN

s:=0;

i:=1;

REPEAT

r:=1/sqr(i); {вычисление слагаемого}

s:=s+r;

i:=i+1 {счет слагаемых}

UNTIL r<E; {сравнение слагаемого с Е}

WRITELN ('Сумма=',s:9:5); {вывод суммы}

END.

Задание 1 (программа 5_1)

Модифицировать программу 3_2 для вычис­ления функций F1(x) и F2 (x) с применением опе­ратора цикла с постусловием. Выполнить ее и сравнить результа-ты с полученными ранее.

Лабораторная работа 6

Программирование алгоритмов обработки одномерных массивов

Цель работы: научиться разрабатывать и отлаживать программы с использованием регулярных типов (векторов).

Массив - упорядоченная структура однотипных данных, хранящихся последовательно.

Массив обязательно имеет размеры, определяющие, сколько в нем хранится элементов. Описывается в разделе TYPE (или VAR). Структура описания одномерного массива:

<имя>=ARRAY[диапазон_индексов] OF <базовый_тип>;

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

Пример. Найти значение и номер наименьшего элемента в одномерном массиве. При задании элементов исходного массива типизированной константой используется следующая программа:

Program lr6_1;

const a: array[1..10] of integer=(5,2,7,1,8,3,4,5,6,6);

var i, min, n: integer;

begin

min:=a[1]; n:=1;

for i:=2 to 10 do

if a[i]<min then begin

min:=a[i];

n:=i;

end;

writeln('минимальный элемент равен ',min, ' n=',n);

end.

Если элементы массива вводятся с клавиатуры, то текст программы изменится:

program lr6_2;

var a: array[1..10] of integer;

i, min, n: integer;

begin

read(a[1]);

min:=a[1]; n:=1;

for i:=2 to 10 do begin

read(a[i]);

if a[i]<min then begin

min:=a[i]; n:=i;

end;

end;

writeln('минимальный элемент равен ', min, ' n=',n);

end.

Задание 1

Написать и отладить прог­рамму для одной из следующих задач.

1. Дан массив из N чисел (8<N<12). Вычислить их среднее геомет­рическое значение.

2. Дан массив из N чисел (10<N<15). Найти максимальное значение.

3. Дано 20 чисел. Найти их среднее арифметические значение.

4. Дана последовательность из 15 целых чисел. Определить коли­чество отрицательных чисел в ней.

5. Дано 15 целых чисел. Найти минимальное из них.

6. Дан массив из N чисел (8<N<12). Вычислить сумму элементов с нечетными индексами.

7. Дано 10 вещественных чисел. Вычислить разность между макси­мальным и минимальным из них.

8. Дан целый массив из 10 чисел. Найти максимальный отрицательный элемент.

9. Задан массив из восьми вещественных чисел. Определить количество положительных чисел.

10. Дан массив из 10 целых чисел. Найти сумму четных элементов этого массива.

11. Дан массив из 12 вещественных чисел. Найти сумму тех элементов этого массива, индексы которых чётные.

12. Дано 10 целых чисел. Найти произведение отрицательных чисел.

13. Дан целый массив [i1, i2, …, i10]. Найти максимальный отрицательный элемент и его индекс.

14. Найти сумму положительных элементов вещественного вектора X из 15 элементов.

15. Найти сумму элементов одномерного массива B размером 10. Разделить каждый элемент исходного массива на полученное значение.

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

Программирование алгоритмов обработки двумерных массивов

Цель работы: научиться разрабатывать и отлаживать программы с использованием матриц.

Описание двумерного массива (матрицы):

TYPE

<имя>= ARRAY[диап1,диап2] OF <базовый_тип>;

где [диап] - диапазон для одного индекса.

Пример. Вычислить суммы элементов в столбцах двумерного числового массива

А размером [1..3,1..4].

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

Program lr7_1;

CONST a: array[1..3,1..4] of integer = ((1,2,3,4),(1,2,3,4),(1,2,3,4));

VAR

s: array[1..4] of integer; {массив сумм}

i, j: integer;

BEGIN

for j:=1 to 4 do

begin

s[j]:=0;

for i:=1 to 3 do

s[j]:=s[j]+a[i, j];

write(' s[',j,']=',s[j])

end;

END.

Задание 1 (программа 7_1)

1. Даны матрицы A, B: array [1..4,1..4] of real. Вычислить матрицу С поэлементным сложением соответствующих элементов матриц А и В.

2. Дана матрица B: array [1..5,1..5] of integer. Элементы главной диагонали этой матрицы заменить на 0.

3. Даны матрица A: array [1..4,1..4] of real и константа К. Вычис­лить матрицу С=А*К.

4. Дана матрица A: array [1..6,1..6] of integer и переменная Х. Нечётные элементы матрицы А заменить на Х.

5. Дана двумерная матрица D(5;6) вещественных чисел. Найти сумму тех элементов матрицы, индексы которых чётные.

6. Дана двумерная матрица J(5;7) целых чисел. Найти произведение чётных элементов этой матрицы.

7. Дана двумерная матрица J(5;7) вещественных чисел. Найти сумму отрицательных элементов этой матрицы.

8. Дана квадратная матрица J(6;6) натуральных чисел. Найти произведение элементов главной диагонали этой матрицы.

9. Дана двумерная матрица K(6;7) целых чисел. Найти сумму элементов пятой строки этой матрицы.

10. Даны матрицы A, B: array [1..5,1..5] of real. Вычислить матрицу С согласно выражению С=А +1.5·В.

11. Дана матрица А(6,6). Определить максимальный элемент матрицы и номер строки и столбца этого элемента.

12. Дана квадратная матрица D(6;6) натуральных чисел. Найти сумму элементов главной диагонали этой матрицы.

13. Дана квадратная матрица M(8;8) вещественных чисел и переменная K. Элементы матрицы, расположенные выше главной диагонали, заменить на x.

14. Дана двумерная матрица T(4;5) целых чисел. Найти среднее арифметическое элементов этой матрицы.

15. Дан двумерный массив D(4;5) целых чисел. Найти сумму тех элементов массива, которые делятся на 6 и не делятся на 7.

Порядок выполнения лабораторных работ

1. Изучить теоретические сведения по теме.

2. Подготовить текст программы и набрать его в окне редактора ТП.

3. Откомпилировать программу (F9) и исправить синтаксические ошибки (прил. 3)

4. Выполнить программу для реальных исходных данных (Ctrl+F9).

5. Просмотреть результаты (Alt+F5) и записать в тетрадь.

Приложение 3

Сообщение об ошибках

Сообщения об ошибках периода компиляции

1. Out of memory (Выход за границы памяти). Компилятору не хватает памяти. Для устранения ошибки рекомендуется удалить из памяти ранее загруженные, но не используемые в данный момент программы, или указать,

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4