1. Разработать подробный алгоритм построения 4х графиков на одном экране.
(4 функции для построения графиков придумать самостоятельно)
2. Алгоритм представить в содержательном виде, или в виде блок схемы, или в виде программного кода.
Решение:
Для разработки программы был выбран язык Delphi(Object Pascal).
Для разработки интерфейса использован кроссплатформенный фреймворк FMX (Fire-Monkey), что позволяет перекомпиляцией проекта получать рабочие бинарные файлы для следующих платформ: Windows32, Windows64, MacOS, Android, iOS.
Программа позволяет настроить область отображения графика, и параметры осей, кроме того область просмотра можно перемещать с помощью мыши.
Ниже находится система двух линейных уравнений. Напишите программу, которая выводит в консоль значения x и y по заданным переменным a1,b1,c1,a2,b2,c2 с использованием формул Крамера (т.е. через определители)
Решение:
Формулы для 2х неизвестных:
js код:
<p><inputtype="text"id="a1"oninput="Change(event)"placeholder="0"pattern="^[+-]?[\d]+($|[\.][\d]+|([\.][\d]+[Ee]|[Ee])[+-]?\d+)$"size="8">X +
<inputtype="text"id="b1"oninput="Change(event)"placeholder="0"pattern="^[+-]?[\d]+($|[\.][\d]+|([\.][\d]+[Ee]|[Ee])[+-]?\d+)$"size="8">Y =
<inputtype="text"id="c1"oninput="Change(event)"placeholder="0"pattern="^[+-]?[\d]+($|[\.][\d]+|([\.][\d]+[Ee]|[Ee])[+-]?\d+)$"size="8"><div style="height: 4px;"></div><inputtype="text"id="a2"oninput="Change(event)"placeholder="0"pattern="^[+-]?[\d]+($|[\.][\d]+|([\.][\d]+[Ee]|[Ee])[+-]?\d+)$"size="8">X +
<inputtype="text"id="b2"oninput="Change(event)"placeholder="0"pattern="^[+-]?[\d]+($|[\.][\d]+|([\.][\d]+[Ee]|[Ee])[+-]?\d+)$"size="8">Y =
<inputtype="text"id="c2"oninput="Change(event)"placeholder="0"pattern="^[+-]?[\d]+($|[\.][\d]+|([\.][\d]+[Ee]|[Ee])[+-]?\d+)$"size="8"><div style="height: 4px;"></div><br>X = <spanid="X">Please enter data!</span><br>Y = <spanid="Y">Please enter data!</span></p><script>function Disp(X, Y)
{
const Fail = 'Solive not found!';
document.getElementById('X').innerHTML = !isNaN(X) ? X : Fail;
document.getElementById('Y').innerHTML = !isNaN(Y) ? Y : Fail;
}
function Det2x2(Array)
{
return Array[0] * Array[3] - Array[1] * Array[2];
}
function Change(e)
{
let a1 = document.getElementById('a1').value;
let b1 = document.getElementById('b1').value;
let c1 = document.getElementById('c1').value;
let a2 = document.getElementById('a2').value;
let b2 = document.getElementById('b2').value;
let c2 = document.getElementById('c2').value;
let Det = Det2x2([a1, b1, a2, b2]);
let X = Det2x2([c1, b1, c2, b2]) / Det;
let Y = Det2x2([a1, c1, a2, c2]) / Det;
Disp(X, Y);
}
</script>
Почему после вычисления выражений "let a = Math.sqrt(33)" получается undefined?
Судя по всему возврат значений операторами let\var просто не предусмотрен, доказательством этого является код: a = let b = 3 Вызывающий ошибку интерпретации:
Возьмите
за основу любой учебник по близкому вам иностранному языку и
"технологизируйте" какой-либо пример или часть объяснения, создав
анимацию в формате GIF
Разработать RegExp позволяющее определить валидность строки, параметры валидности:
Строка должна начинаться с 0 или 1, и состоять из последовательности трех или четырех 0 и 1, продолжение строки может состоять из любых символов.
Примеры:
101 - Валидна
1010 - Валидна
10100 - Не валидна
101-101 - Валидна
2111 - Не валидна
Был разработан следующий RegExp:
^[10]{3,4}([^10]+.*|[^10]*)$
Проверить правильность RegExp можно используя INPUT расположенный ниже, который окрашиваться в красный или зеленый цвет в зависимости от валидности введенной строки.
Задание:
Напишите программу, которая выводит все подмножества множества {a, b, c, d} Решение:
Был выбран язык Delphi/Object Pascal из-за наличия встроенной работы с множествами.
Для того чтобы отобразить SVG код введенный в textarea, был написан код который по таймеру преобразует SVG код введенный в textarea в base64 и подставляет в document.body.style.backgroundImage с соответствующим mime type: "data:image/svg+xml;base64". Преобразование в base64 необходимо чтобы некоторые символы не ломали загрузку изображения, пример: задание цвета с помощью конструкции #RRGGBB - символ '#'.
Drag and drop"окна" редактирования сделан с помощью JavaScript по причине того что установка атрибута draggable='true' не заставляла работать Drag and drop должным образом в используемом браузере - FireFox.
При быстром перемещении "окна" возможна потеря курсора, проблему можно решить функциями захвата мыши setCapture\releaseCapture от которых, к сожалению, пришлось отказаться, по причине того что реализованы они только в FireFox.
В магазине iStore семь сотрудников, которые дежурят у стенда парами. Сколько вариантов пар существует?
Решение:
С(n, k) = n! / (k! * (n - k)!)
- количество сочетаний из n по к.
C(7, 2) = 7! / (2! * (7 - 2)!) = 5040 / (2 * 120) = 21
Задача 3. Склад
На складе компьютерного магазина представлено 6 цветов сменных бамперов для смартфона. В период акции к каждому смартфону прилагается по 2 разноцветных бампера. Сколько может быть вариантов цветовых сочетаний для смартфона?
Решение:
С(n, k) = n! / (k! * (n - k)!)
- количество сочетаний из n по к.
C(6, 2) = 6! / (2! * (6 - 2)!) = 720 / (2 * 24) = 15
тело цикло выполняется m + ( m - 1) + ( m - 2 ) + ... + ( m - (n - 1) ) раз
Выведите формулу для этой суммы.
[Если m=n то это просто 1+2+...+n (ранее мы выводили это "диагоналями")]
Возможный исходный код(Object Pascal):
program MPlus;
{$APPTYPE CONSOLE}
{$R *.res}
uses System.SysUtils;
var Count: Integer = 0; m, n: Integer; i, j: Integer;
begin writeln('Enter m, n:'); readln(m, n);
for i := 1 to m do for j := i to n do Inc(Count);
writeln('Count = ', Count); end.
Возможны 3 варианта:
m=n
m<n
m>n
При m=n, Count = (n * (n + 1)) / 2 При m<n, Count = (m * (m + 1)) / 2 При m>n, Count = (n * (n + 1)) / 2 + (m - n) * n
Упростим: При m<=n, Count = (m * (m + 1)) / 2 При m>n, Count = (n * (n + 1)) / 2 + (m - n) * n
Итоговая формула:
В виде исходного кода: function MPlus(n, m: Integer): Integer; begin if n >= m then Result := (m * (m + 1)) div 2 else Result := (n * (n + 1)) div 2 + (m - n) * n; end;
Модем,
передающий информацию со скоростью 128000 бит/с, передал файл с
несжатой стереофонической музыкой за 5 минуты и 30 секунд. Укажите
продолжительность (в секундах) записанной в этот файл композиции, если
известно, что она была оцифрована с частотой дискретизации 22000 Гц и
256 уровнями квантования. В ответе укажите целое число.