Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.23 Mб
Скачать

Занятие №4: Программирование циклических алгоритмов. Вычисление конечных сумм. Вычисление суммы бесконечного ряда. Табулирование функции.

1. Составьте программу, реализующую алгоритм вычисления суммы данного ряда.Записать результат работы программы при заданном значении аргумента.

11.

15

х=2,1

p rogram prac1;

var k:word;

s,x:real;

begin

readln(x,k);

while k>0 do

begin

s:=s+exp(k*x)*sqr(cos(k*x));

dec(k);

end;

writeln(s:0:8);

writeln('Vipolnil Kovrigin Anatoliy');

readln;

end.

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

11.

program prac2;

const dx=0.2;

v ar x,ex:real;

begin

writeln('vvedite diapazon');

readln(x,ex);

if ex<x then

begin

x:=x-ex;

ex:=ex+x;

x:=ex-x;

end;

if x>0 then

while x<=ex do

begin

writeln(x,’ ’,sqr(ln(x)/ln(2)):0:4);

x:=x+dx;

end;

writeln('Vipolnil Kovrigin Anatoliy');

readln;

end.

3. Составить программу для вычисления суммы бесконечного ряда с погрешностью ε.

а) Процесс суммирования прекращается, как только выполнится неравенство ε, где -текущий член ряда суммирования.

b) Процесс суммирования прекращается, как только выполнится неравенство ε, где -текущий член ряда суммирования, а - предыдуий член ряда.

11.

ε=10-4

a )

program prac3;

const e=0.0001;

var i:longint;

s,u:real;

begin

i:=2;

u:=1/(i*sqrt(i));

s:=1-u;

while u>=e do

begin

inc(i);

u:=1/(i*sqrt(i));

s:=s+u;

if u>=e then

begin

inc(i);

u:=1/(i*sqrt(i));

s:=s-u;

end

else break;

end;

writeln(s:0:10);

writeln('Vipolnil Kovrigin Anatoliy');

readln;

end.

б )

program prac3;

const e=0.0001;

label z,z2;

var i:longint;

s,u,u2:real;

begin

i:=2;

u2:=1/(i*sqrt(i));

s:=1-u2;

if s<e then goto z2;

z:

inc(i);

u:=1/(i*sqrt(i));

s:=s+u;

if u2-u>=e then

begin

inc(i);

u2:=1/(i*sqrt(i));

s:=s-u2;

end

else goto z2;

if u-u2>=e then goto z;

z2:

writeln(s:0:10);

writeln('Vipolnil Kovrigin Anatoliy');

readln;

e nd.

Вопросы к лабораторной работе №4

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

Счётчик, нач, кон и шаг – перечисляемые типы.

  1. Какой тип должен иметь параметр цикла в цикле for?

Перечисляемый.

  1. Чему равно значение параметра цикла for после завершения цикла?

Не определено.

  1. Можно ли войти в тело цикла, минуя его заголовок?

Нет.GoTo не работает внутрь циклов и условий.

  1. Допустим ли выход из тела цикла?

Да, командой break или goto к метке вне цикла.

  1. В чём отличие оператора цикла с предусловием while от оператора цикла с постусловием repeat?

Цикл с постусловием выполняется хотя бы 1 раз.

  1. Какие правила необходимо использовать при проектировании программ со структурой циклов с предусловием и постусловием?

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