Циклические вычисления на заданное число повторений.
Цель лабораторной работы: изучение концепций и освоение технологии структурного программирования, приобретение навыков структурного программирования на языке Турбо Паскаль циклических вычислений на заданное число повторений.
Задание на программирование: используя технологию структурного программирования разработать программу решения индивидуальной задачи, содержащую 3 вида циклических управляющих структур: Цикл - Пока (с предусловием), Цикл - До (с постусловием), Цикл - Для (с параметром).
Порядок выполнения работы:
1) Получить у преподавателя индивидуальное задание. Выполнить постановку задачи: сформулировать условие, определить входные и выходные данные.
2) Разработать математическую модель.
3) Построить схему алгоритма, последовательно используя для решения задачи все три циклические управляющие структуры (операторы while, repeat…until, for).
4) Составить программу на языке Турбо Паскаль.
5) Входные данныевводить с клавиатуры по запросу.
6) Выходные данные выводить на экран в развернутой форме с пояснениями.
7) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов, в том числе с ошибочными входными данными.
8) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, текст программы, контрольные примеры.
Варианты индивидуальных заданий
1.
Для заданного значения m вычислить
Значения вводятся с клавиатуры, а вычисляется по формуле:
2.
Для заданного значения m вычислить
Значения вводятся с клавиатуры, а вычисляется по формуле:
3.
Для заданного значения m вычислить
Значения вводятся с клавиатуры, а вычисляется по формуле:
4.
Для заданного значения m вычислить
Значения вводятся с клавиатуры, а вычисляется по формуле
5.
Для заданного значения m вычислить
Значения вводятся с клавиатуры, а вычисляется по формуле:
6.
Построить таблицу значений функции при изменении значения аргумента от -2 до 3 с шагом изменения аргумента 0.5.
7.
Построить таблицу значений функции при изменении значения аргумента от -1 до 4 с шагом изменения аргумента 0.5.
8.
Построить таблицу значений функции при изменении значения аргумента от -4 до 1 с шагом изменения аргумента 0.5.
9.
Построить таблицу значений функции при изменении значения аргумента от -3 до 2 с шагом изменения аргумента 0.5.
10.
Построить таблицу значений функции при изменении значения аргумента от -2 до 3 с шагом изменения аргумента 0.5.
11.
Температура по шкале Фаренгейта связана с температурой по шкале Цельсия формулой:
Составить таблицу перевода температуры по шкале Фаренгейта в температуру по шкале Цельсия. Значение температуры по шкале Фаренгейта меняется от до с шагом Температура по шкале Цельсия должна вычисляться с точностью до одного знака после запятой.
12.
Температура по шкале Фаренгейта связана с температурой по шкале Цельсия формулой:
Составить таблицу перевода температуры по шкале Цельсия в температуру по шкале Фаренгейта. Значение температуры по шкале Цельсия меняется от до с шагом Температура по шкале Фаренгейта должна вычисляться с точностью до одного знака после запятой.
13.
С высоты Н падает камень. Построить таблицу расстояний от камня до земли через каждую секунду полета.
14.
Тариф на электропоезде составляет 20 рублей за проезд на одну зону, а на автобусе первая зона стоит 30 рублей, а каждая последующая на 10% дешевле предыдущей. Составьте таблицу для оценки стоимости проезда на расстояние 10 зон.
15.
В начале года ежемесячное потребление овощей и мяса составляет A кг и B кг соответственно. Ежемесячное потребление овощей возрастает в среднем в 1.1 раза, а мяса падает на 3%. Проследить ежемесячное изменение потребления овощей и мяса в течение года.
16.
В начале года стоимость одного килограмма овощей и мяса составляла A руб. и B руб. соответственно. Ежемесячный рост цены на овощи составляет в среднем 3%, на мясо – 5%. Проследить ежемесячное изменение цены овощей и мяса в течение года.
17.
Для введенного с клавиатуры значения m вычислить S:
18.
Для введенного с клавиатуры значения m вычислить P:
19.
Для введенного с клавиатуры значения m вычислить S:
20.
Для введенных с клавиатуры значений m и n вычислить P:
21.
Для введенного с клавиатуры значения m вычислить S:
22.
Для введенных с клавиатуры значений m и n вычислить P:
23.
Для введенных с клавиатуры значений A, B, m и n вычислить S:
24.
Для введенных с клавиатуры значений A, B, n и x вычислить S:
25.
Для введенных с клавиатуры значений A, B, n, m и x вычислить S:
26.
Для введенных с клавиатуры значений A и m вычислить S:
27.
Для введенного с клавиатуры значения m вычислить S:
28.
Для введенного с клавиатуры значения x вычислить S:
29.
Найти сумму всех целых чисел из отрезка (где A и B – целые), которые кратны 5 и не кратны 2.
30.
Найти сумму всех целых чисел из отрезка (где A и B – целые), которые кратны 7, а при делении на 5 не дают остаток 3.
31.
Для введённого с клавиатуры значения N найти (2N)!! по формуле:
(2N)!! = 2 × 4 × 6 ×…× (2N - 2) × (2N).
32.
Для введённого с клавиатуры значения N найти (2N + 1)!! по формуле:
(2N + 1)!! = 1 × 3 × 5 ×…× (2N – 1) × (2N + 1).
33.
Найти сумму всех целых чисел из отрезка (где A и B – целые), которые при делении на 5 дают остаток 3 и не кратны 4.
34.
Найти сумму всех целых чисел из отрезка (где A и B – целые), которые при делении на 7 дают остаток 4 и не кратны 5.
35.
Для заданного значения m вычислить S по формуле:
Значения вводятся с клавиатуры, а вычисляется по формуле:
36.
Для заданного значения m вычислить
Значения вводятся с клавиатуры, а вычисляется по формуле:
37.
Для заданного значения m вычислить S по формуле:
Значения вводятся с клавиатуры, а вычисляется по формуле:
38.
Для заданного значения m вычислить
Значения вводятся с клавиатуры, а вычисляется по формуле:
39.
Для заданного значения m вычислить
Значения вводятся с клавиатуры, а вычисляется по формуле:
40.
Для заданного значения m вычислить S по формуле:
Значения вводятся с клавиатуры, а вычисляется по формуле:
41.
Для заданного значения m вычислить S по формуле:
Значения вводятся с клавиатуры, а вычисляется по формуле:
42.
Для заданного значения m вычислить
Значения вводятся с клавиатуры, а вычисляется по формуле:
43.
Члены последовательностей {Xi} и {Yi} вычисляются по двум рекуррентным формулам. Для введённого с клавиатуры значения m вычислить если
44.
Для заданного значения m вычислить
Значения вводятся с клавиатуры, а вычисляется по формуле:
45.
Для заданного значения m вычислить
Значения вводятся с клавиатуры, а вычисляется по формуле:
46.
Для заданного значения m вычислить
Значения вводятся с клавиатуры, а вычисляется по формуле
47.
Для заданного значения m вычислить
Значения вводятся с клавиатуры, а вычисляется по формуле
48.
Для заданного значения m вычислить
Значения вводятся с клавиатуры, а вычисляется по формуле
49.
Для заданного значения m вычислить
Значения вводятся с клавиатуры, а вычисляется по формуле
50.
Для заданного значения m вычислить
Значения вводятся с клавиатуры, а вычисляется по формуле
Пример программы
Формулировка задания:
Пользуясь рекуррентной формулой Yi = Yi-1 + Yi-3 где i = 3, 4, 5,…, n, для заданного значения n вычислить Yn, если известны Y0, Y1, Y2.
Program Recur_1;
{Пользуясь рекуррентной формулой y(i)=y(i-1)+y(i-3)
где i=3,4,...,n для заданного значения n вычислить y(n),
если известны y(0), y(1), y(2).
Входные данные: y(0),
y(1),
y(2) - значения начальных элементов
n - номер искомого значения.
Выходное данное: y(n) - значение элемента с номером n
}
Var
y0, y1, y2, {исходные данные}
y:LongInt; {результат}
a, b, c, {вспомогательные переменные}
i, {номер текущего элемента}
n:Integer; {номер искомого элемента}
Begin
WriteLn('Пользуясь рекуррентной формулой y(i)=y(i-1)+y(i-3)');
WriteLn('где i=3,4,...,n для заданного значения n вычислить y(n),');
WriteLn('если известны y(0), y(1), y(2).');
Write('Задайте значения y(0), y(1) и y(2) -> ');
ReadLn(y0,y1,y2);
Write('Задайте значение n -> ');
ReadLn(n);
a:=y0;
b:=y1;
c:=y2;
{Решение с использованием управляющей структуры While-Do}
i:=3;
While i<=n
Do Begin
y:=y2+y0; {значение очередного элемента последовательности}
y0:=y1;
y1:=y2;
y2:=y;
i:=i+1;
End;
WriteLn('While: значение элемента последовательности y(',n,')=',y);
{Решение с использованием управляющей структуры Repeat-Until}
y0:=a;
y1:=b;
y2:=c;
i:=3;
Repeat
y:=y2+y0; {значение очередного элемента последовательности}
y0:=y1;
y1:=y2;
y2:=y;
i:=i+1;
Until i>n;
WriteLn('Repeat: значение элемента последовательности y(',n,')=',y);
{Решение с использованием управляющей структуры For-To-Do}
y0:=a;
y1:=b;
y2:=c;
For i:=3 To n
Do Begin
y:=y2+y0; {значение очередного элемента последовательности}
y0:=y1;
y1:=y2;
y2:=y;
End;
WriteLn('For: значение элемента последовательности y(',n,')=',y);
ReadLn;
End.
Лабораторная работа №8