Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка по информатике, часть 2

.pdf
Скачиваний:
24
Добавлен:
30.03.2015
Размер:
525.19 Кб
Скачать

READ(N);

FOR I:=1 TO N DO begin

r:=1/sqr(i);

s:=s+r;

end; WRITELN('Сумма=',s:6:2);

END.

Пример 2. Вычислить значения

двух функций F1(x)=tg(x) и

Вывод S

F2(x)=sin(x) в n точках,

 

равномерно распределенных на

 

интервале a ≤ x ≤ b, где a=-π/4, b=π.

Конец

 

Для реализации данной задачи разработа-

 

на СА (pис. 4) и следующая программа:

 

Program Lab3;

Const а = -pi/4; b = pi;

Var F1, F2, x, dx: real; {dx - шаг изменения х} 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.

Начало

Ввод N

S=0

i=1, N

r =1/i2

S=S + r

Рис.3

Начало

Ввод

a,b,N

ax=| b-a | / (n-1),

х=а

i=1, N

F1=tgx, F2=sinx

Вывод i,x,F1,F2

x= x + dx

Конец

 

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

Рис. 4

 

Для заданных с клавиатуры значений переменных x и n вычислить

1.

X = 1 + 1/2 + 1/3 + ... + 1/10.

2. Z = 2. 4. 6. 8. ... .20.

3.

Y = –x + 4x – 9x + ... – 81 x..

4. Y = x + x/3 + x/5 + ... + x/17.

5.

Y = n! = 1. 2 . 3 .....n.

6. Y = 1 – 3 + 32 – 3 3 + . . . + 310.

11

20

10

7. Y= x2/(2i–1).

8. Z = Π (x+i)/i.

i =5

1=2

15

 

9. Y= x2/i.

10. Y = 1 + x/2 + x2/4 + x3/6 + ... + xi/2i + ... + x9 /18 .

i=1

 

 

10

11. Y=1+x2/1!+x4/2!+x6/3!+…+x

20/10!=I+ x2i/i!.

i=1

12.Y = 1 – x +x 3/3! –x 5/5!+ ...+(–1) n x2n–1 /(2n–1)!+ ... +x 11/11!.

13.е = 1 + 1/1! + 1/2! + ... + 1/n! + ... (сравнить результат со значением функции EXP(1), определенной в Паскале).

14. π = 4(1–1/3+1/5–1/7+…+(–1) n/(2n+1)+…) ( результаты сравнить с определенным в языке Паскаль числом Pi).

15.Y = arctg x = x–x 3/3 +x5/5– ... +(–1) n x2n+1/(2n+1)+ ... (|х|<1).

16.Z = LN(1+x) = x – x 2/2 + x3/3 – ... + (–1) n–1 xn/n + ... (|x|<1).

17.S = x – x 3/3! + x5/5! – ... +(–1) n x2n+1/(2n+1)! + ... .

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

z = cos(nx+a) sin(nx–a), где n=1,2,...,5, a и x вещественные числа.

19. Вычислить сумму четных и сумму нечетных чисел натурального ряда от 1 до N.

n

20. Найти сумму факториала M= i !.

i=1

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

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

№ п/п

a

b

n

F1(х)

 

 

 

 

F2(х)

1

0

2π

20

sin x

 

cos x

sin x

+

cos x –1

2

1

2

18

1+2x+5

 

 

 

(x–1) 3

3

–1

5

15

4e–|x| –1

 

 

 

 

cos x

4

–2

5

| x+10|5

 

 

 

 

e–(x+5)

5

0

π

14

2 sin 2x +1

(x+5)

3

 

2

16

 

 

(1+sin x)

 

 

 

2–cos x

 

 

 

 

 

 

 

 

 

 

 

6

π

π

 

 

 

 

 

 

x 4 + 4

7

–1

3

20

2–x /100

20/(1+x2)

8

–4

4

20

x3e2x

 

e

x

sin x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

1

3

12

 

e x − 1

 

 

 

x ln2 x

10

1

4

1/(1+

 

 

 

)

 

 

 

 

2x/(1–4 x)

 

 

x

 

 

 

15

5–3 cos x

 

 

 

 

 

 

 

11

0

2π

1 + sin 2 x

12

π

π

20

|sinx|+|cosx|

|sin x|

 

– |cos x|

13

0

π

20

e–x +cos2x

 

 

 

 

 

 

e –2x

14

1

2

18

e–x lg

 

 

x + 1

 

 

 

 

x + sin x

 

 

 

 

x cos x/2

 

 

 

 

+

 

 

e –x

15

2

4

16

3 x

 

2

16

2

4

2x lg x – 3 x lg x

 

 

 

 

ctg x

17

0

5

12

3

–x

/50

 

 

 

 

 

x e

 

–x

+ln x

 

 

 

 

 

 

 

 

 

 

 

18

1

2

10

e2x 3

x

 

– sin x

10/(2+x2)

 

 

 

16

2x arctg x – 5

 

 

 

 

 

 

 

 

e axx

19

3

4

x + 1

 

 

 

 

 

20

1

3

18

1.5 arctg x

е2x lg x – 3 3x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

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

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

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

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

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

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

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

Для СА (рис.5) решения данной задачи программа может быть следующей:

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.

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

Начертите структурную схему алгоритма, напишите и отладьте программу для табуляции следующих функций:

1. S = ae–x sin ax+

ay

при –1 <= x <=1 с шагом 0.2,

a = 0.75,

1<=y <=5 с шагом 1.5.

Начало

а=0,1

а≤0,3;х=0,5

х≤0,9

y=tg( x/4)

Вывод a, x, y

х=х+а

а=а+0,1

Конец

Рис.5

13

2. Z = 5 a . x . y 2 + 1,3 sin(x–a) a = 1.9,

3. S = t + 1 e2 t ycos(t–a) a = –2.1,

4. Z = bx t + b (tx+2.1)

 

b = 3.5,

5.

, x2 ex2 / 2 ,

Z=

e x 2 / a − 1

6.sin ax – lg(a2 + x2 ) ,

Y= a cos2(px), 2 – sin ax,

7. Z= ln(a+x2/ a ) ,

2e2x ,

8.a(ex+2a+e–(x–3a) ,

Z = sin x,

a + a cos(x+3a),

9.–a e x–3a ,

Z= –a(1+ln(x–3a)),

10.– (x+3a) 2 – 2a,

Y = a cos(x+3a) – 3a, a ex,

11.

Z=

a(x–a) 3/2,

 

 

a/2(ex/a+e–x/a ),

 

 

.

12.

 

xa x2 +1 ,

Y = a cos x, (a x2 + 1)x,

13.(sin2x +a)2 ea sinX , Z = tg(x/4),

14.tg(a2 +sin px),

Y = a sin(p– cos px), lg x,

15. Z= ecos x –a sin 2(px), a x2 – cos px,

при 2 <=x <=5 с шагом 0.5, –1< =y<=1 с шагом 0.5.

при 1<=t<=2 с шагом 0.2, 2<= y<=3 с шагом 0.3.

при 1<= x<=2 с шагом 0.2, 0<= t<=1 с шагом 0.2.

если 0 <= x <= 2, если 2 < x <= 3.6,

если 0.1 <=x <= 0.4,

если 0.4 < x <= 1.2, если 1.2 < x <=1.6,

если 0 <=x <= 2, если 2 < x <= 3.6,

если 0.1 <= x < 0.5, если x = 0.5, если 0.5 < x <= 1.5,

если 0 < x<= 3, если 3 < x <= 4,

если –1

<=x <= 0,

если

0

< x < 1,

если

 

x = 1,

если 1 <= x <= 2.5, если 2.5 < x <= 4,

если 0.5 <= x < 1.5, если x = 1.5, если 1.5 < x <= 3,

если 0.1<=x<= 0.5, если 0.5 < x <=0.9,

если 0 <= x <= 1, если 1 < x <= 2, если 2 < x < 3,

если 0.5 <= x <= 1.5 если 1.5 < x <= 2

a = 0.5; 0.75, шаг dx=a/2.

a = 1.0; 1.5, шаг dx=a/5.

a=1.0; 1.3; 1.6, шаг dx=a/4.

a = 2; 2.1, шаг dx=a/10.

a = 1; 1.5, шаг dx=a/2.

a = 0.7; 1, dx=(a+0.2)/2.

a = 0.5; 1.0, шаг dx=a/2.

a=0.1; 0.2; 0.3, шаг dx=2a.

a=0.1;0.2;0.3, шаг dx=a.

a=0.5; 0.75; 1; шаг dx=a/4.

a=0.1;0.7;1.3, шаг dx= a/4.

14

16.

1/x,

если 0.1

<= x <= 0.4

 

 

Y =

ln(x2+ ax),

если 0.4 < x <= 1.2

 

a = 1.0; 1.5,

 

x2,

если 1.2

< x < 1.6

 

шаг dx = a/5.

 

 

17.Дана непустая последовательность различных натуральных чисел, за которой следует нуль (признак конца последовательности). Определить порядковый номер наименьшего из них и его значение.

18.Найти первый отрицательный член последовательности cos (ctg), где n =

=1,2,3,... . Напечатать его номер и значение. Распечатать всю последовательность

19.Вычислить наибольший общий делитель (k) натуральных чисел d и f. Оператор FOR не использовать.

20.Дан ряд неотрицательных вещественных чисел. Определить, сколько из них больше своих «соседей»: предыдущего и последующего чисел. Признаком окончания ряда чисел считать появление отрицательного числа.

Задание 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) при a ≤ x ≤ b,

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

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

Начало

n= 14, a = 0.6π b = 0.7π

dx = | (a-b)\n |, x = a

x

y1 = tg x , y2 = ctg x

Вывод x, y1, y2

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 = x+dx,

x>b

Конец

Рис.6

15

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 (рис. 7).

 

 

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.

Начало

E =10-5,s=0, i=1

i

R = 1/i2

s = s+r, i = i+1

r≤E

Конец

Рис.7

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

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

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

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

1. Вычислить приближенное значение z = arctg x и сравнить с

x – x 3/3 + x5/5 – ... + (–1) nx2n+1/(2n+1) + ... (|х|<1),

прекращая вычисления, когда

очередной член по абсолютной величине будет меньше eps=0.00001.

2. Вычислить y = x – x 2/2 + x3/3 – ... + (–1) n–1 xn/n + ...

с точностью eps=0.00001,

где |x|<1. Сравнить результат с вычисленным через стандартную функцию значением y = LN(1+x).

3. Вычислить y = 1 + x/1! + x2/2! + ... + xn/n! + ... с точностью eps=0.00001 и срав-

нить результат с вычисленным через стандартную функцию значением y = ЕXP(x).

16

4. Вычислить y = sin x = x x3/3! +x5/5! ...+ (1)nx2n+1/(2n+1)!+... с точностью eps=0.00001.

5.Вычислить y = 1 x2/2! + x4/4! ... + (1)nx2n/(2n)! + ... с точностью eps = 0.0001 и сравнить результат с вычисленным через стандартную функцию значением y = cos (x).

6.Найти произведение цифр заданного натурального числа.

7.Определить число, получаемое выписыванием в обратном порядке цифр заданного натурального числа.

8.Определить номер первого из чисел sin x, sin(sin x), sin(sin(sin x)), ... ,

меньшего по модулю 10–3 .

9.Дана непустая последовательность различных целых чисел, за которой следует нуль. Определить порядковый номер и величину наибольшего среди отрицательных чисел этой последовательности.

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

11.Дана непустая последовательность положительных целых чисел, за которой следует отрицательное число (это признак конца последовательности). Вычислить среднее геометрическое этих чисел.

12.Дана непустая последовательность ненулевых целых чисел, за которой следует нуль. Определить, сколько раз в этой последовательности меняется знак.

13.Числа Фибоначчи (fn) определяются формулами

f0 = f1 = 1; f n = f n–1 + f n–2 при n = 2,3,... .

Вычислить сумму всех чисел Фибоначчи, которые не превосходят 1000.

14. Дана непустая последовательность положительных вещественных чисел х1, х2, х3,..., за которыми следует отрицательное число. Вычислить величину

х1 + 2х2 + ... + (N–1)x N–1 + N хN, где N заранее не известно.

15.Вычислить длины окружностей, площади кругов и объемы шаров для ряда заданных радиусов. Признаком окончания счета является нулевое значение радиуса.

16.Определить, есть ли среди цифр заданного числа одинаковые.

17.Определить, является ли заданное натуральное число палиндромом, т. е. таким, десятичная запись которого читается одинаково слева направо и справа налево.

18.Вычислить наименьшее общее кратное натуральных чисел a и b.

19.Дано число L. Определить первый отрицательный член последовательности

х1, х2, х3,..., где х1= L, xi = tg(xi–1 ).

20. Определить, является ли заданное натуральное число совершенным, т.е. равным сумме всех своих (положительных) делителей, кроме самого этого числа (например, совершенное число 6=1+2+3).

Задание 3 (программа 5_3)

Модифицировать программу 4_1 с использованием оператора цикла REPEAT ...

UNTIL и сравнить результаты с полученными в работе 4.

17

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

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

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

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

последовательно.

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

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

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

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

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.

Если элементы массива вводятся с клавиатуры, то СА имеет вид (рис.8,б) и текст программы изменится:

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.

18

Начало

 

Начало

 

 

 

 

 

 

 

 

 

Задание

 

Ввод

массива А

 

а1

 

 

 

 

 

min = a1 ,

 

min=a1 ,

n = 1

 

n=1

 

 

 

 

 

 

 

 

 

 

i=2,10

 

i = 2,10

 

Нет

 

Ввод

Вывод

ai<min

 

 

аi

min, n

 

Да

 

 

 

min=ai ,

 

Нет

Конец

n=i

 

min >ai

 

 

 

 

 

Да

 

Вывод

 

min=ai ,

 

 

n=i

 

min, n

 

 

 

 

 

Конец

 

b)

a)

Рис.8

 

Задание 1

Начертить структурную схему алгоритма, написать и отладить программу для одной из следующих задач. В программе 6_1 исходные массивы задать типизированными константами. В программе 6_2 элементы исходных массивов ввести через оператор ввода.

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

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

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

4.Дано 12 вещественных чисел. Найти порядковый номер того из них, которое наиболее близко к какому-нибудь заданному целому числу Х.

5.Дана последовательность из 15 целых чисел. Определить количество отрицательных чисел в ней и максимальное число подряд следующих отрицательных чисел.

19

6. Дано 15 целых чисел. Найти наибольшее из них. Определить, сколько из чисел принимает наибольшее значение.

7. Дано целое n>1 и вещественные числа x1,x2,..,xn. Вычислить математическое ожидание и дисперсию по формулам

n

 

n

M=

x i / n , D= (xi M )2 /( N − 1) .

i =

1

i=1

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

9.Даны два одномерных массива А и В. Вычислить элементы массива С по

правилу: если аi и bi различны, то сi присвоить их сумму, при одинаковых аi, bi в сi переписать соответствующий элемент массива А.

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

11.Дано 10 вещественных чисел. Определить, образуют ли они возрастающую последовательность.

12.Дан массив X из n чисел (6<n<10). Вычислить:

y = x1 – x 2 + x3 – ...– x n–1 +xn .

13. Дано 18 чисел. Определить, количество элементов, отличное от последнего числа.

14.Дано 12 чисел. Напечатать сначала все отрицательные из них, а затем все остальные.

15.Сформировать одномерный массив из 15 простых чисел.

16.Дано восемь натуральных чисел. Найти их наибольший общий делитель.

17.Дана последовательность натуральных чисел. Вычислить сумму тех из них,

порядковые номера (индексы) которых простые числа.

18. Дан массив из 20 натуральных чисел. Вычислить сумму тех из них, порядковые номера которых числа Фибоначчи, определяемые формулами

f0 = f1=1; fn =fn–1 + fn–2 при n=1,2,3,... .

19. Дан массив X из n чисел. Вычислить:

y= xn(xn+xn–1 )(xn + xn–1 + xn–2 )...(xn + ... + x1) .

20.Дано 24 целых числа. Распечатать их в обратном порядке по шесть чисел

встроке.

Задание 2 (программа 6_3)

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

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

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

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

20