- •Запись выражений и операторов план
- •Запись выражений
- •Использование функций и операторов
- •Литература
- •Введение
- •1. Запись выражений
- •Задание № 1. Запись выражений
- •Задание № 2. Арифметические операции с целыми числами
- •2. Использование функций и операторов
- •If Условие then Оператор_1 else Оператор_2;
- •If Условие then Оператор;
- •Задание № 3. Использование стандартных функций
- •Задание № 4. Использование условных операторов
- •Задание № 5. Использование операторов цикла
- •Контрольные вопросы
- •Задание на самостоятельную работу
Задание № 4. Использование условных операторов
Разработайте консольную программу решения системы неравенств:
Исходные данные – коэффициенты a1, b1, a2, b2 целого типа и вводятся с клавиатуры. Результат вещественного типа и выводится на экран.
Для ввода используются следующие значения: a1=2, b1=-1, а2=4, b2=6.
Листинг программы должен иметь примерно следующий вид:
program Zadanie_8;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
a1,a2,b1,b2: integer; // Описание исходных коэффициентов
r1,r2: real; // Описание выходных результатов
begin
writeln('Vvedite a1=');
readln(a1); // Ввести a1 и нажать Enter
writeln('Vvedite b1=');
readln(b1); // Ввести b1 и нажать Enter
writeln('Vvedite a2=');
readln(a2); // Ввести a2 и нажать Enter
writeln('Vvedite b2=');
readln(b2); // Ввести b2 и нажать Enter
r1:=-b1/a1; // Вычисление результатов
r2:=-b2/a2;
if (r1<0) and (r2<0) // Условный оператор
then case r1<=r2 of // Оператор выбора
false: writeln('Otvet: X<',r1:3:2);
true: writeln('Otvet: X<',r2:3:2);
end
else case r1>r2 of
false: writeln('Otvet: X<',r1:3:2);
true: writeln('Otvet: X<',r2:3:2);
end;
readln
end.
В условный оператор включен оператор выбора, который в зависимости от того, какое из значений результатов меньше (или больше) выбирает путь вывода результата на экран.
Откомпилируйте и выполните программу. При наличии ошибок, исправьте их.
При отсутствии ошибок вы должны получить результат, представленный на рис. 3.
Сохраните проект программы в папке \Мои документы\ЛЗ-21\Задание-04 под именем Zadanie_8.
Задание № 5. Использование операторов цикла
Разработайте консольную программу вычисления таблицы значений функций и на отрезке [a, b] в точках xi=a+ih, где h = (b – a)/m, m — заданное целое число. Значение шага h должно вычисляться один раз. Для этого:
Введите вещественные переменные a,b,h,x,y,z и объявите их Real.
Введите целые переменные m, i и объявите их Integer.
Организуйте ввод с клавиатуры исходного значения m=20.
Вычислите начальную и конечную точки отрезка: a=-/2; b=/2, используя стандартную функцию Pi.
Вычислите шаг изменения аргумента по формуле h=(b–a)/m.
Организуйте в цикле со счетчиком вычисление заданных функций и их выдачу на экран в виде таблицы.
Не забудьте в теле цикла изменять значение аргумента x.
В эту же программу включите блок, вычисляющий сумму бесконечного ряда:
, где - факториал числа.
Вычисления прекратить, когда очередное значение an , где - заданная точность вычислений. Общий член ряда рассчитывается по формуле:
, n = 1, 2, 3, ….
Для определения суммы членов ряда следует использовать рекуррентную формулу, позволяющую находить текущий член ряда через ранее определенные:
, n = 1, 2, 3, …, причем a0=1.
При составлении программы считать, что точность задана =10-4 и определяется константой e.
Листинг программы должен иметь примерно следующий вид:
program Zadanie_9;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
e=1.0e-4; // Константа, определяющая точность
var
a,b,h,x,y,z: real; // Переменные первой задачи
m,i: integer;
s,an: real; // Переменные второй задачи
n: integer;
begin
{Первая задача}
writeln('Vvesdite znachenie m=');
readln(m); // Введите значения m и нажмите Enter
a:=-Pi/2; // Вычисление нижней границы интервала
b:=-a; // Вычисление верхней границы интервала
h:=(b-a)/m; // Вычисление шага изменения аргумента
x:=a; // Присвоение начального значения аргумента
for i:=1 to m+1 do // Цикл со счетчиком
begin
y:=1+x*sqr(cos(x))+sqr(sin(x))*sin(x); // Вычисление функций
z:=sqrt(abs(y));
writeln('x=',x:7:4,' y=', y:7:4,' z=',z:7:4);
x:=x+h; // Переход к следующему значению аргумента
end;
writeln;
{Вторая задача}
s:=0; // Обнуление суммы
an:=1; // Вычисление первого члена суммы
n:=1; // Начальное значение переменной цикла
while an>e do // Цикл с предусловием
begin
s:=s+an; // Накопление суммы
n:=n+1; // Изменение переменной цикла
an:=an*(exp(n*(ln(n/(n+1))))); // Вычисление очередного члена суммы
end;
writeln('Summa ',n,' elementov ravna =',s:9:6);
readln
end.
О ткомпилируйте и выполните программу. При наличии ошибок, исправьте их.
При отсутствии ошибок вы должны получить результат, представленный на рис. 4.
Сохраните проект программы в папке \Мои документы\ЛЗ-21\Задание-05 под именем Zadanie_9.
Посмотрите, как изменятся результаты, если задать значения m=10 и e=1.0e-8.
Самостоятельно составьте программу решения второй задачи, но используя оператор цикла с постусловием (repeat ... until).