Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR1-3.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
499.71 Кб
Скачать

Лабораторная работа №3 Тема: Циклические структуры. Программирование циклических алгоритмов. Задание 1

Указание к выполнению: задание 1 выполняется в тетради по вариантам с необходимыми пояснениями.

Вариант 1

Найти ошибки в следующем фрагменте программы: y:=0; for x:=0.1 to 0.9 do y:=y+sin(x);

Вариант 2

Определить значение переменной S после выполнения следующих операторов: s:=0; i:=0;

While i<5 do i:=i+1; s:=s+1/i;

Вариант 3

Сколько раз будет выполняться тело цикла? k:=0;

For i:=1 to k+3 do k:=k+1;

Вариант 4

Найти ошибки в следующем фрагменте программы:

k:=81; y:=1; for i:=1 to sqrt(k) do y:=y*2;

Вариант 5

Определить значение переменной S после выполнения следующих операторов: s:=0; i:=1;

While i>1 do begin s:=s+1/i; i:=i-1 end;

Вариант 6

Сколько раз будет выполняться тело цикла? p:=4; repeat p:=p*0.1 until p<0.0001;

Вариант 7

Найти ошибки в следующем фрагменте программы: k:=0; for i:=1 to 9 do k:=k+sqr(i); k:=k*i;

Вариант 8

Определить значение переменной S после выполнения следующих операторов: s:=0; n:=10;

For i:=2 to n do s:=s+100 div i;

Вариант 9

Сколько раз будет выполняться тело цикла? k:=r; s:=0;

For i:=k to r do s:=s+sqr(i);

Вариант 10

Найти ошибки в следующем фрагменте программы: k:=1; for i:=1 to 64 do begin i:=i*2; k:=k+i end;

Вариант 11

Определить значение переменной S после выполнения следующих операторов: s:=1; n:=1;

For i:=2 to n do s:=s+1/i;

Вариант 12

Сколько раз будет выполняться тело цикла? a:=1; b:=1; while a+b<8 do begin a:=a+1; b:=b+2 end;

Вариант 13

Найти ошибки в следующем фрагменте программы: a:=1; b:=3; h:=0.2;

for x:=a to b do begin writeln(x, sin(x)); x:=x+h end;

Вариант 14

Определить значение переменной S после выполнения следующих операторов: s:=0; i:=1; repeat s:=s+ i mod 3; i:=i+1; until i>=7;

Вариант 15

Сколько раз будет выполняться тело цикла? k:=5; r:=15;

for i:=k+1 to r-1 do writeln(i);

Задание 2

Задание: составить программу решения задачи.

Указание к выполнению: см. предыдущую лабораторную работу.

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

Задача: вычислить сумму членов гармонического ряда с общим членом an=1/n, превышающих заданное число  (0<<1).

  1. Для решения данной задачи мне потребуются следующие переменные: E для хранения заданного числа, меньшего 1, тип этой переменной real; S для вычисления суммы, т.к. суммировать будем дроби, то тип этой переменной будет real; N для обозначения знаменателя очередного слагаемого, эта переменная будет принимать только натуральные значения, поэтому ее тип определим как word.

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

  3. В результате выполнения программы на экран должно быть выведено значение переменной S.

  4. Ход решения задачи:

  • ввод значения E

  • зададим начальные значения S=0 и N=1

  • т.к. мы заранее не знаем сколько слагаемых нужно суммировать, то организуем цикл по условию. Пока 1/N>E повторяем следующие действия: а) к сумме прибавляем очередное слагаемое S:=S+1/N; б) увеличиваем значение знаменателя на единицу N:=N+1

  • вывод значения переменной S

  1. Проверим правильность составленного алгоритма решения задачи для тестового значения E=0.3. Проследим ход решения задачи:

    • начальные значения S=0, N=1

    • проверяем условие выполнения цикла: 1/1>0.3 ? Да. Значит, выполняем следующие действия: а) S=S+1/N=0+1/1=1 б) увеличиваем знаменатель на 1 N=N+1=1+1=2

    • снова проверяем условие выполнения цикла: 1/2>0.3 ? Да. Значит, выполняем следующие действия: а) S=S+1/N=1+1/2=1.5 б) увеличиваем знаменатель на 1 N=N+1=2+1=3

    • снова проверяем условие выполнения цикла: 1/3>0.3 ? Да. Значит, выполняем следующие действия: а) S=S+1/N=1.5+1/3=1.83333 б) увеличиваем знаменатель на 1 N=N+1=3+1=4

    • снова проверяем условие выполнения цикла: 1/4>0.3 ? Нет. Значит, прекращаем выполнение цикла

    • В результате выполнения программы должно быть напечатано значение 1.8333333.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]