Составить программу на паскале: решение кубических уравнений по схеме горнера. если что прочитайте в интернете. я над этой программой сижу 2 недели не могу сделать я так понял за ваше решение 99
// begin var L:=new List<fraction>; // вынужденное: метод иногда дает дубликаты (var a0, var an):=(abs(Self.First),abs(Self.Last)); for var p:=1 to a0 do begin if a0 mod p<>0 then continue; for var q:=1 to an do begin if an mod q<>0 then continue; var g:=Self.First; (var f, var t):=(g,p); foreach var k in Self.Skip(1) do begin var r:=k*t; (f,g,t):=(f*q+r,-g*q+r,t*p); end; if f=0 then L.Add((p,q)); if g=0 then L.Add((-p,q)) end end; Result:=L end;
function RedFrac(Self:fraction):fraction; extensionmethod; begin (var p,var q):=Self; var s:=sign(p*q); (p,q):=(abs(p),abs(q)); (var a,var b):=(p,q); while b<>0 do begin a:=a mod b; Swap(a,b) end; Result:=(s*p div a,q div a) end;
function Beautify(Self:sequence of fraction):sequence of string; extensionmethod; begin Result:=Self.Select(e->e.RedFrac).Distinct.OrderBy(x->x[0]/x[1]). Select(e->e[0]+(e[1]<>1?'/'+e[1]:'')) end;
begin ReadArrInteger(4).RatFact.Beautify.Println end.
Для того чтобы записать функцию по данным схемам и построить комбинаторную диаграмму, нам понадобится использовать символы и логические операции. Давайте рассмотрим каждую схему по отдельности.
Схема 1:
Эта схема представляет собой логическую операцию "ИЛИ". Для ее записи мы будем использовать символ "+". В данном случае, логическое значение переменной будет равно 1 только в том случае, если хотя бы одна из начальных переменных равна 1.
Таким образом, функция, соответствующая этой схеме, будет выглядеть следующим образом:
f = a + b
Комбинаторная диаграмма для этой схемы будет состоять из двух квадратов, соответствующих переменным a и b, и объединенных в одно множество символом "+".
Схема 2:
Эта схема представляет собой логическую операцию "И". Для записи этой операции мы будем использовать символ умножения "∙". В данном случае, значение функции будет равно 1 только в том случае, если обе начальные переменные равны 1.
Таким образом, функция, соответствующая этой схеме, будет выглядеть следующим образом:
g = a ∙ b
Комбинаторная диаграмма для этой схемы будет состоять из двух кругов, соответствующих переменным a и b, и объединенных в одно закрашенное множество символом "∙".
Итак, мы записали функции и построили комбинаторные диаграммы для двух данных схем. Ниже приведены окончательные ответы:
Функция для схемы 1: f = a + b
Комбинаторная диаграмма для схемы 1:
Функция для схемы 2: g = a ∙ b
Комбинаторная диаграмма для схемы 2:
Надеюсь, это поможет вам понять, как записать функцию и построить комбинаторную диаграмму по данным схемам. Если у вас возникнут еще вопросы, пожалуйста, не стесняйтесь задавать их.
Добрый день! Рад, что вы обратились со своим вопросом. Давайте разберем каждую часть его и пошагово решим.
1. Рисунок размером 20×30 пикселей закодирован в режиме истинного цвета. Определите информационный объём рисунка.
Для начала нужно найти количество пикселей в этом рисунке. Из условия задачи известно, что размер рисунка составляет 20×30 пикселей. Чтобы найти общее количество пикселей, нужно перемножить значения ширины и высоты: 20 × 30 = 600 пикселей.
Дальше нам известно, что на 1 пиксель выделяется бита = байта. Таким образом, на каждый пиксель тратится 1 байт.
Теперь, чтобы найти информационный объем рисунка, нужно просто умножить общее количество пикселей на количество байтов на 1 пиксель: 600 пикселей × 1 байт = 600 байтов.
Итак, информационный объем рисунка составляет 600 байтов.
2. Рисунок размером 10×15 см кодируется с разрешением 300 ppi. Оцените количество пикселей в этом рисунке.
По заданию известно, что ширина рисунка составляет 10 см, а высота - 15 см. Также известно разрешение рисунка - 300 ppi (пикселей на дюйм).
Чтобы найти количество пикселей в каждом измерении, нужно умножить размер рисунка в сантиметрах на разрешение в пикселях на каждый дюйм:
Ширина: 10 см × 300 пикселей/дюйм = 3000 пикселей.
Высота: 15 см × 300 пикселей/дюйм = 4500 пикселей.
Теперь, чтобы найти общее количество пикселей в рисунке, нужно перемножить количество пикселей в каждом измерении: 3000 пикселей × 4500 пикселей = 13 500 000 пикселей.
Итак, в рисунке размером 10×15 см кодируется 13 500 000 пикселей.
Надеюсь, что ответы на ваши вопросы были понятны и достаточно подробны. Если у вас есть еще какие-либо вопросы, не стесняйтесь задавать!
begin
var L:=new List<fraction>; // вынужденное: метод иногда дает дубликаты
(var a0, var an):=(abs(Self.First),abs(Self.Last));
for var p:=1 to a0 do begin
if a0 mod p<>0 then continue;
for var q:=1 to an do begin
if an mod q<>0 then continue;
var g:=Self.First; (var f, var t):=(g,p);
foreach var k in Self.Skip(1) do begin
var r:=k*t; (f,g,t):=(f*q+r,-g*q+r,t*p);
end;
if f=0 then L.Add((p,q));
if g=0 then L.Add((-p,q))
end
end;
Result:=L
end;
function RedFrac(Self:fraction):fraction; extensionmethod;
begin
(var p,var q):=Self;
var s:=sign(p*q);
(p,q):=(abs(p),abs(q));
(var a,var b):=(p,q);
while b<>0 do begin a:=a mod b; Swap(a,b) end;
Result:=(s*p div a,q div a)
end;
function Beautify(Self:sequence of fraction):sequence of string;
extensionmethod;
begin
Result:=Self.Select(e->e.RedFrac).Distinct.OrderBy(x->x[0]/x[1]).
Select(e->e[0]+(e[1]<>1?'/'+e[1]:''))
end;
begin
ReadArrInteger(4).RatFact.Beautify.Println
end.
Примеры
1) -36x³+3x²+14x+3 = 0
3 14 3 -36
-1/3 3/4
2) (x-1)(x+2)(x+3/5) = 0; 5x³+8x²-7x-6 = 0
-6 -7 8 5
-2 -3/5 1