- •Основные этапы проектирования программ
- •Тема: Числовые типы данных. Выражения. Стандартные функции. Решение задач линейной структуры Числовые типы
- •Выражения и операторы действия
- •Ввод и вывод данных
- •Лабораторная работа №1 Тема: Числовые типы данных. Стандартные функции. Задачи линейной структуры Задание 1
- •Задание 2
- •Указание к выполнению: перед составлением программы необходимо выполнить следующие этапы:
- •Образец выполнения задания
- •Writeln(‘значение искомого выражения равно’, y:8:4); {вывод результата на экран}
- •Образец выполнения задания
- •Тема: Логические выражения. Логический тип. Условный оператор. Оператор выбора. Программирование разветвляющихся алгоритмов
- •Логический тип
- •Условный оператор
- •Оператор выбора
- •Лабораторная работа №2 Тема: Логические выражения. Логический тип. Условный оператор. Оператор выбора. Программирование разветвляющихся алгоритмов
- •Задание 2
- •Образец выполнения задания
- •Текст программы
- •Тема: Циклические структуры. Программирование циклических алгоритмов. Циклы
- •Простой арифметический цикл (цикл с параметром)
- •Арифметический цикл с произвольным шагом
- •Итерационные циклы
- •Оператор цикла с постусловием
- •Оператор цикла с предусловием
- •Лабораторная работа №3 Тема: Циклические структуры. Программирование циклических алгоритмов. Задание 1
- •Текст программы
- •Приложение: работа в среде программирования Паскаль
- •Работа с окнами
- •Редактирование текста программы
- •Пошаговое выполнение программы
- •Как посмотреть результат выполнения программы?
- •Литература
- •Содержание
Лабораторная работа №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).
Для решения данной задачи мне потребуются следующие переменные: E для хранения заданного числа, меньшего 1, тип этой переменной real; S для вычисления суммы, т.к. суммировать будем дроби, то тип этой переменной будет real; N для обозначения знаменателя очередного слагаемого, эта переменная будет принимать только натуральные значения, поэтому ее тип определим как word.
Переменная E является входной переменной, ее значение должно быть определено до начала вычислений. Ввод переменной буду производить с клавиатуры.
В результате выполнения программы на экран должно быть выведено значение переменной S.
Ход решения задачи:
ввод значения E
зададим начальные значения S=0 и N=1
т.к. мы заранее не знаем сколько слагаемых нужно суммировать, то организуем цикл по условию. Пока 1/N>E повторяем следующие действия: а) к сумме прибавляем очередное слагаемое S:=S+1/N; б) увеличиваем значение знаменателя на единицу N:=N+1
вывод значения переменной S
Проверим правильность составленного алгоритма решения задачи для тестового значения 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.
