
Вопрос задан 28.03.2021 в 04:47.
Предмет Информатика.
Спрашивает Шайхеева Маша.
Помогите пожауйста написать программу, которая выводит на экран значения функции y=f(x). Аргумент x
принимает значения от x1 до x2 с шагом дельто x, а цикл организуется с помощью оператора repeat. a) y=2x; b)y=x/3+9; c) y=x-4; d) y= x/8-6. ( это 4 программы, помогите решить хотя бы 1, чтобы я смогла разобраться с этой темой))

Ответы на вопрос

Отвечает Правдивец Елизавета.
Давайте сделаем так:
Опишем 4 функции в программе. Когда надо - вытащим нужную... ОК?
uses Crt;
var x1, x2 , dx, y: real;
i: integer;
function f1 (x:real):real;
begin
f1:=2*x;
end;
function f2 (x: real):real;
begin
f2:=x/3+9;
end;
function f3 (x:real):real;
begin
f3:=x-4;
end;
function f4 (x: real):real;
begin
f4:=x/8-6;
end;
begin
ClrScr;
Write(' x1 = '); ReadLn(x1);
Write(' x2 = '); ReadLn(x2);
Write (' dx = '); ReadLn(dx);
i:=1;
repeat
WriteLn(f1(i):6:3);
i:=i+1;
until i>x2;
ReadLn;
end.
Например, задавая х1= -10
х2= 10
dx = 1 получаем значения для первой функции
Записав WriteLn (f3(i):6:3); - получаем значения для третьей функции и так далее....
Опишем 4 функции в программе. Когда надо - вытащим нужную... ОК?
uses Crt;
var x1, x2 , dx, y: real;
i: integer;
function f1 (x:real):real;
begin
f1:=2*x;
end;
function f2 (x: real):real;
begin
f2:=x/3+9;
end;
function f3 (x:real):real;
begin
f3:=x-4;
end;
function f4 (x: real):real;
begin
f4:=x/8-6;
end;
begin
ClrScr;
Write(' x1 = '); ReadLn(x1);
Write(' x2 = '); ReadLn(x2);
Write (' dx = '); ReadLn(dx);
i:=1;
repeat
WriteLn(f1(i):6:3);
i:=i+1;
until i>x2;
ReadLn;
end.
Например, задавая х1= -10
х2= 10
dx = 1 получаем значения для первой функции
Записав WriteLn (f3(i):6:3); - получаем значения для третьей функции и так далее....



Отвечает Крутик Лиза.
Чтобы не загромождать программу, предполагаем без поверки, что x2>x1 и dx>0. Либо, x2<x1 и dx<0. В любых иных вариантах программа зациклится.
В приведенной программе описана функция для подвопроса а); прочие варианты закомментированы. Для получения других вариантов достаточно закомментировать строку y:=2*x; и снять комментарий с нужной строки.
function f(x:real):real;
begin
f:=2*x;
{
f:=x/3+9;
f:=x-4;
f:=x/8-6;
}
end;
var
x,x1,x2,dx,y:real;
begin
Writeln('Введите начальное значение, шаг табуляции, конечное значение');
Read(x1,dx,x2);
x:=x1;
repeat
y:=f(x);
Writeln('x=',x,', y=',y);
x:=x+dx
until x>x2+dx/2 { +dx/2 - это защита от накопления погрешности }
end.
Тестовое решение:
Введите начальное значение, шаг табуляции, конечное значение
0 0.33 3.3
x=0, y=0
x=0.33, y=0.66
x=0.66, y=1.32
x=0.99, y=1.98
x=1.32, y=2.64
x=1.65, y=3.3
x=1.98, y=3.96
x=2.31, y=4.62
x=2.64, y=5.28
x=2.97, y=5.94
x=3.3, y=6.6
Сомневающиеся в пользе "довеска" dx/2 в последней формуле, могут попробовать выполнить этот же контрольный пример, изменив предпоследнюю строку на более привычное until x>x2. И убедиться, что решение для х=3.3 пропадет.
В приведенной программе описана функция для подвопроса а); прочие варианты закомментированы. Для получения других вариантов достаточно закомментировать строку y:=2*x; и снять комментарий с нужной строки.
function f(x:real):real;
begin
f:=2*x;
{
f:=x/3+9;
f:=x-4;
f:=x/8-6;
}
end;
var
x,x1,x2,dx,y:real;
begin
Writeln('Введите начальное значение, шаг табуляции, конечное значение');
Read(x1,dx,x2);
x:=x1;
repeat
y:=f(x);
Writeln('x=',x,', y=',y);
x:=x+dx
until x>x2+dx/2 { +dx/2 - это защита от накопления погрешности }
end.
Тестовое решение:
Введите начальное значение, шаг табуляции, конечное значение
0 0.33 3.3
x=0, y=0
x=0.33, y=0.66
x=0.66, y=1.32
x=0.99, y=1.98
x=1.32, y=2.64
x=1.65, y=3.3
x=1.98, y=3.96
x=2.31, y=4.62
x=2.64, y=5.28
x=2.97, y=5.94
x=3.3, y=6.6
Сомневающиеся в пользе "довеска" dx/2 в последней формуле, могут попробовать выполнить этот же контрольный пример, изменив предпоследнюю строку на более привычное until x>x2. И убедиться, что решение для х=3.3 пропадет.



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Конечно, я помогу вам написать программу на языке программирования Python для вывода значений функции y=f(x). Ниже приведен пример программы для функции y=2x. Вы можете изменить значения функции и аргументов, чтобы адаптировать программу для других функций.
python# определение функции
def f(x):
return 2 * x
# ввод значений аргументов
x1 = float(input("Введите значение x1: "))
x2 = float(input("Введите значение x2: "))
delta_x = float(input("Введите значение дельта x: "))
# вычисление и вывод значений функции
x = x1
while x <= x2:
y = f(x)
print("x = {}, y = {}".format(x, y))
x += delta_x
В этой программе функция f(x)
определяется с помощью ключевого слова def
, которое указывает на определение функции. Затем программа запрашивает значения аргументов x1, x2 и дельта x с помощью функции input()
. Далее в цикле while
вычисляются значения функции y
для каждого значения аргумента x
в заданном диапазоне. Результат выводится на экран с помощью функции print()
.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili