<h3>PascalABC.NET 3.4.2, сборка 1864 от 11.11.2018</h3><h3>Внимание! Если программа не работает, обновите версию!</h3>
begin
var a := SeqRandom(10000, -10, 10).Where(t -> t.IsEven)
.Take(15).ToArray;
a.Println;
a.Where(t -> t < 0).Count.Println;
a.Transform(t -> t < 0 ? 0 : t);
a.Println
end.
<h2>Пример</h2><h3>-6 10 2 4 -2 -4 2 2 10 -10 -6 -8 -8 2 -6</h3><h3>8 </h3><h3>0 10 2 4 0 0 2 2 10 0 0 0 0 2 0</h3>
Оттуда:
Сложение двух чисел тривиально — достаточно поставить 1 между ними и стереть крайний правый символ у Q. Программа вычитания состоит из последовательного затирания крайних левых меток у Q и правых у P:
1. 0 - стираем левый символ у Q
2. →
3. ? 5, 4
4. Stop - стоп если затерли Q=0
5. ←
6. ? 7, 5 - цикл поиска P
7. 0 - стираем правый символ у P
8. →
9. ? 1, 8 - ищем Q
Отметим, что номер команды перехода не указывается, если переход происходит на следующую по порядку строку (для наглядности текста) . В 6-ой строке возможно зацикливание, если Q > P (вы можете добавить проверку сами)
<span>****только вам нужно сдвинуться в начало строки и учесть пустую клетку-т. е. еще один проскок каретки</span>
<em><u /></em><u />Версия языка не указана, поэтому сделал в самой последней и в самой старой, которая нашлась.<em><u>
// PascalABC.Net 3.0</u></em>
function F(a, b, x: double):= (1 + Power(a, x)) / ((b - x) * Power(sin(x), 3));
const
a = 3.45; b = 1.62;
var
x := 0.1; xe := 3.1; h := 0.15;
y, xn, yn, xp, yp: double;
begin
yp := MaxDouble; yn := yp;
repeat
y := F(a, b, x);
if y > 0 then
begin if y < yp then begin yp := y;xp := x end end
else
if y < 0 then
begin if y < yn then begin yn := y;xn := x end end;
x += h;
until x > xe;
Writeln('Минимальное отрицательное ', yn, ' при х=', xn);
Writeln('Минимальное положительное ', yp, ' при х=', xp)
end.
<em><u>Тестовое решение:</u></em>
Минимальное отрицательное -446219.37704747 при х=3.1
Минимальное положительное 11.837734702392 при х=0.85
<em><u>{ Borland Pascal 7.01 }</u></em>
{$G+} {$N+}
uses Crt;
function F(a,b,x:double):double;
begin
F:=(1+exp(x*ln(a)))/((b-x)*exp(3*ln(sin(x))))
end;
const
a = 3.45; b = 1.62;
var
x,xe,h,y,xn,yn,xp,yp:double;
begin
ClrScr;
x := 0.1; xe := 3.1; h := 0.15;
yp := 1E308; yn := yp;
repeat
y := F(a, b, x);
if y > 0 then
begin if y < yp then begin yp := y; xp := x end end
else
if y < 0 then
begin if y < yn then begin yn := y; xn := x end end;
x := x + h;
until x > xe;
Writeln('Минимальное отрицательное ', yn, ' при х=', xn);
Writeln('Минимальное положительное ', yp, ' при х=', xp);
ReadKey
end.
<em><u>Тестовое решение:</u></em>
Минимальное отрицательное -4.46219377047470E+0005 при х= 3.10000000000000E+0000
Минимальное положительное 1.18377347023920E+0001 при х= 8.50000000000000E-0001
#include <iostream>
#include <string>
using namespace std;
string dectobin(int num) // функция для перевода
{
string result; // строка для результата
for (; num!=0; num>>=1) // цикл со сдвигом вправо на 1 бит (работает быстрее чем деление на 2,
//но также делит)
result.insert(0, num&1 ? "1" : "0"); // вставка цифры в начало строки (1 если последний бит 1, 0 если 0)
return result; // возврат результата
}
int main(int argc, char *argv[])
{
// тут думаю понятно, ввод данных и вызов функции
int num;
cout<<"Enter number: ";
cin>>num;
cout<<dectobin(num);
return 0;
}