IPB

Здравствуйте, гость ( Вход | Регистрация )

26 страниц V  « < 22 23 24 25 26 >  
Reply to this topicStart new topic
> Языки программирования
tolich
сообщение 29 May 2012, 09:11
Сообщение #461

😸🧡✊✌️
Сообщений: 16 400
Спасибо сказали: 3242 раза




Быстрое вычисление квадратного корня.
Программа вводит целое число value, зачем вычисляет целую часть его квадратного корня root, а также сухой остаток числа rest=value-root*root и выводит их.
CODE
// assumed that sizeof(uint)==4
// and byte is 8 bits
#include <iostream>

using namespace std;

typedef unsigned uint;

uint sqrt(uint value, uint &rest)
{
uint root=0; rest=0;
for(uint i=0; i<16; ++i){
rest=(rest<<2)|(value>>30)&3;
value<<=2; (root<<=1)|=1;
if(root<=rest){
rest-=root; ++root;
}
else{
--root;
}
}
return root>>1;
}

int main()
{
unsigned value,rest;
cin>>value;
cout<<"root of "<<value<<" is "<<sqrt(value,rest);
cout<<". rest="<<rest<<endl;
return 0;
}


--------------------
Я слежу за тобой!
* tolic.narod.ru

Цитата
Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел.
Борис "Бонус" Репетур, "От винта!", выпуск 38.


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
IvanSav
сообщение 29 May 2012, 13:37
Сообщение #462

VCMI developer
Сообщений: 377
Спасибо сказали: 690 раз




Цитата(tolich @ 29 May 2012, 08:11) *
// assumed that sizeof(uint)==4

Мой больной мозг потребовал исправить это досадное недоразумение.
CODE
#include <iostream>
#include <type_traits>
#include <cassert>
#include <cstdint>

using namespace std;

template<typename numeric>
numeric sqrt(numeric value, numeric &rest)
{
typedef unsigned uint;
static_assert(std::is_integral<numeric>::value, "This function will only work with integral types!");
static_assert(std::is_unsigned<numeric>::value, "This function will only work with unsigned types!");
constexpr uint bits = sizeof(numeric) * 8;

numeric root=0;
rest=0;

for(uint i = 0; i < bits/2; ++i)
{
rest= rest << 2 | value >> (bits - 2);
value <<= 2;
root <<= 1;
root |= 1;

if(root<=rest)
{
rest-=root; ++root;
}
else
{
--root;
}
}
return root>>1;
}

template<typename numeric>
numeric sqrt(numeric value)
{
numeric rest;
return sqrt(value, rest);
}

void test()
{
assert(sqrt<uint8_t>((200)) == 14);
assert(sqrt<uint16_t>(9999) == 99);
assert(sqrt<uint16_t>(10000) == 100);
assert(sqrt<uint16_t>(10001) == 100);
assert(sqrt<uint32_t>(1000*1000 + 500) == 1000);
assert(sqrt<uint64_t>(1000ll*1000*1000*1000) == 1000*1000);
std::cout << "Tests passed!\n";
}

int main()
{
test();
}


--------------------
Слава Україні!


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 29 May 2012, 13:53
Сообщение #463

😸🧡✊✌️
Сообщений: 16 400
Спасибо сказали: 3242 раза




Увы, мой MSVC6 не имеет в комплекте таких несомненно полезных файлов, как 'type_traits' и 'cstdint'.


--------------------
Я слежу за тобой!
* tolic.narod.ru

Цитата
Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел.
Борис "Бонус" Репетур, "От винта!", выпуск 38.
Go to the top of the pageAdd Nick
 
+Quote Post
IvanSav
сообщение 29 May 2012, 13:58
Сообщение #464

VCMI developer
Сообщений: 377
Спасибо сказали: 690 раз




Есть такое. У студии все очень печально с поддержкой c++11: http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport
В принципе если повыкидывать проверки различные - должно заработать и там. А в этом виде все работает отлично в моих gcc и clang.


--------------------
Слава Україні!
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 29 May 2012, 13:59
Сообщение #465

😸🧡✊✌️
Сообщений: 16 400
Спасибо сказали: 3242 раза




Кстати, основная идея, пока не реализованная — расчет дробной части этого самого корня для использования в качестве гаммы для шифрования. Просто квадратный корень — простейшее иррацианальное число (т.е., практически случайное), которое генерируется на базе простенького и короткого ключа.


--------------------
Я слежу за тобой!
* tolic.narod.ru

Цитата
Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел.
Борис "Бонус" Репетур, "От винта!", выпуск 38.


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Эроласт
сообщение 13 Jul 2012, 21:14
Сообщение #466

Зануда
Сообщений: 2 237
Спасибо сказали: 2894 раза




А где голосовалка? huh.gif
Go to the top of the pageAdd Nick
 
+Quote Post
ChASnock
сообщение 14 Jul 2012, 22:14
Сообщение #467

Geoff Snock | 茶スノック
Сообщений: 533
Спасибо сказали: 248 раз




Кончилась давно.


--------------------
гномов сопротивляются заклинанию!

Цитата
Фейспалмы свои себе в сракотан засуньте, если больше сказать нечего.


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
packa
сообщение 24 Oct 2012, 21:27
Сообщение #468

Immortal
Сообщений: 3 301
Спасибо сказали: 2643 раза




Кто нормально знаком со scheme (racket) ?
Нужна помощь)


--------------------
Удалено Администрацией. Браузеры жаловались на вредоносное ПО.
Ссылка на оригинальное изображение: http://herоeslibrary.nеt/Site_images/admin.jpg
Ссылка на сайт по нажатию баннера: http://herоeslibrary.nеt

(ссылки содержат кириллические символы вместо оригинальных)

Видишь бяку, - упрости! (с) кто-то из выдающихся математиков)
Учи матан & Сходи с ума (с) архидедус
Go to the top of the pageAdd Nick
 
+Quote Post
packa
сообщение 24 Oct 2012, 22:21
Сообщение #469

Immortal
Сообщений: 3 301
Спасибо сказали: 2643 раза




Вот этот зверь кому интересно:
Код
#lang scheme
(define (fsum n)
(define (step sum cur) (if (= cur n) sum (step (if (= 0 (remainder n cur) ) (+ sum cur) (+ sum 0)) (+ cur 1))))
(step 0 1))

display (fsum 10)


Выводит сумму всех делителей не включая само число.


--------------------
Удалено Администрацией. Браузеры жаловались на вредоносное ПО.
Ссылка на оригинальное изображение: http://herоeslibrary.nеt/Site_images/admin.jpg
Ссылка на сайт по нажатию баннера: http://herоeslibrary.nеt

(ссылки содержат кириллические символы вместо оригинальных)

Видишь бяку, - упрости! (с) кто-то из выдающихся математиков)
Учи матан & Сходи с ума (с) архидедус


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
gamecreator
сообщение 24 Oct 2012, 22:51
Сообщение #470

Яблочный произвол!
Сообщений: 11 080
Спасибо сказали: 3988 раз




эти лиспообразные языки скоро захватят мир


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
feanor
сообщение 24 Oct 2012, 23:13
Сообщение #471

laughed as one fey
Сообщений: 12 167
Спасибо сказали: 20596 раз




Доо, они ждали этого долгие полвека.


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Shurup
сообщение 25 Oct 2012, 11:43 (Сообщение отредактировал Shurup - 25 Oct 2012, 11:44)
Сообщение #472

Щирий українець
Сообщений: 1 456
Спасибо сказали: 3026 раз




Не захватят. Из-за того, что визуально трудновоспринимаемы. Останутся уделом гиков.
Кто захватит - так это JS.
Код
    function fsum(n){
        function step(sum, cur){
            if (cur == n)
                return sum;
            else {
                if(n % cur){
                    return step (sum, cur+1);
                }else{
                    return step (sum+cur, cur+1)
                }
            }
        }
        return step(0,1);
    }
    alert(fsum(32));

ну или при желании можно сократить до трудночитаемого
Код
    function fsum(n){return function step(sum, cur){return (cur == n)? sum: step(sum + (n % cur? 0 : cur), cur+1);}(0,1);}
    alert(fsum(32));
Go to the top of the pageAdd Nick
 
+Quote Post
packa
сообщение 29 Apr 2013, 15:58
Сообщение #473

Immortal
Сообщений: 3 301
Спасибо сказали: 2643 раза




вопрос такой:
есть некоторая программа на scheme, которая обрабатывает данные из файла и результат записывает в тот же файл. Также есть программа на с++, которая по данным из файла выводит на экран информацию (например пусть будет графическая оболочка морского боя, а в файле координаты кораблей и инфа подбит/жив)

Как можно организовать подобный симбиоз?
а если это в реальном времени, то вообще шикарно!


--------------------
Удалено Администрацией. Браузеры жаловались на вредоносное ПО.
Ссылка на оригинальное изображение: http://herоeslibrary.nеt/Site_images/admin.jpg
Ссылка на сайт по нажатию баннера: http://herоeslibrary.nеt

(ссылки содержат кириллические символы вместо оригинальных)

Видишь бяку, - упрости! (с) кто-то из выдающихся математиков)
Учи матан & Сходи с ума (с) архидедус
Go to the top of the pageAdd Nick
 
+Quote Post
ChASnock
сообщение 30 Apr 2013, 14:49
Сообщение #474

Geoff Snock | 茶スノック
Сообщений: 533
Спасибо сказали: 248 раз






--------------------
гномов сопротивляются заклинанию!

Цитата
Фейспалмы свои себе в сракотан засуньте, если больше сказать нечего.
Go to the top of the pageAdd Nick
 
+Quote Post
packa
сообщение 30 Apr 2013, 17:34
Сообщение #475

Immortal
Сообщений: 3 301
Спасибо сказали: 2643 раза




Если и УИ писать на скиме, то зачем тогда Си вообще нужен?) Вся соль в том, чтобы движок на скиме, УИ на Сишке.
(я правильно понял что УИ = интерфейс?) )


--------------------
Удалено Администрацией. Браузеры жаловались на вредоносное ПО.
Ссылка на оригинальное изображение: http://herоeslibrary.nеt/Site_images/admin.jpg
Ссылка на сайт по нажатию баннера: http://herоeslibrary.nеt

(ссылки содержат кириллические символы вместо оригинальных)

Видишь бяку, - упрости! (с) кто-то из выдающихся математиков)
Учи матан & Сходи с ума (с) архидедус
Go to the top of the pageAdd Nick
 
+Quote Post
gamecreator
сообщение 02 May 2013, 15:57
Сообщение #476

Яблочный произвол!
Сообщений: 11 080
Спасибо сказали: 3988 раз




Цитата(packa @ 30 Apr 2013, 16:34) *
(я правильно понял что УИ = интерфейс?) )
да. user interface


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Vizit0r
сообщение 26 Jun 2013, 12:50
Сообщение #477

Immortal
Сообщений: 1 437
Спасибо сказали: 2149 раз




кто-то сталкивался с импортом методов из длл на питоне, в частности методов с параметром или возвр. значением НЕ simple type, например struct (record в дельфах) и им подобным ?


Go to the top of the pageAdd Nick
 
+Quote Post
hippocamus
сообщение 01 Aug 2013, 20:35
Сообщение #478

допустим, мяў
Сообщений: 24 070
Спасибо сказали: 13377 раз




Американские программисты о русских программистах

Что думают зарубежные коллеги о наших программерах:
Русские программисты никогда не читают руководств и редко пользуются online подсказкой - они легко понимают новые программы, потому как они ранее уже испробовали все программы подобного рода.

Русские программисты никогда не платят за софт. Они или крэкают его или покупают wonderful CD (не стал переводить - так красивше) за 5 баксов с кучей софта. В любом крупном городе России.

Русские программисты всегда используют самые последние разработки в программном обеспечении - самые последнии версии лучших программ - потому как не надо за них платить.

Русские программисты очень любят поэкспериментировать с железом. Они разберут ваш компьютер и соберут его обратно в течение нескольких минут. Они помнят установки джамперов на большинстве материнских плат, винтах и других устройствах. Они никогда не забывают какие прерывания и адреса памяти используются в настоящее время в их компьютере.

Русские программисты апгрейдят свой компьютер до тех пор, пока не останется никаких свободных прерываний, места для добавочной памяти или не останется ни одного свободного слота. Если они не могут апгрейдить дальше свой компьютер, они покупают еще один и соединяют оба сеткой.

Русские программисты программируют на всех уровнях, и на процессорных кодах тоже, таблицы которых у них находятся постоянно на рабочем столе. Они помнят назубок список функций прерывания 21h.

Русские программисты помнят всю раскладку английской и русской клавиатуры. Вы можете спросить посреди ночи, какая клавиша находится между A и L, вы будете удивлены ответом: "Какую из семи назвать?"

Русские программисты ненавидят Майкрософт и Майкрософтовские программы, но используют их.

Русские программисты предпочитают Borland, а Microsoft компиляторы инсталлируют только из-за того, что в них хороший help для Windows API.

Русские программисты в Интернете чувствуют себя очень комфортно. Они предпочитают всегда быть online, хотя бы просто потому, что может срочно что-то понадобиться.

Русские программисты всегда в настроении попрограммировать.

Есть два вида Русских программистов - первые ненавидят Windows и программируют под Unix, вторые ненавидят Windows и программируют под них. Макинтошевские программисты - не настоящие программисты - им больше подходит название - "юзеры".

Русские программисты нелюбят "кодировать" чью-то другую идею. Каждая программа пишется персонально.

Русские программисты всегда имеют копии Doom, Duke Nukem и Quake на их жестком диске. Они могут играть ночи напролет по сетке в Deathmatch.

Русские программисты никогда не используют джойстик. Клавиатура - вот главное оружие.

Русские программисты никогда не сдаются. Они могут вылавливать баги из их программы забыв о сне и еде.

Жены Русских программистов несчастны, потому как им не уделяется внимания, пока в доме есть хоть один компьютер.

Русским программистам недоплачивают. Но и не существует суммы в мире, способной успокоить их желания.

Начальники не любят Русских программистов. А кто любит умника, который все знает?

Русские программисты не любят использовать шаблоны. Их программы - это индивидуально написанные произведения с большой долей импровизации. Причем, Русский программист старается во всю, чтобы побыстрее запустить программу и увидеть ее в работе.


--------------------
Вокруг столько фильмов, книг, музыки - а природа какая невероятная!
Если тебе скучно жить - ты совсем дурак. (Татьяна Черниговская)


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Septimus
сообщение 01 Oct 2013, 19:17
Сообщение #479

Летсплеер
Сообщений: 2 273
Спасибо сказали: 1844 раза




Ребят, короче проблема у меня (точнее, не совсем у меня, но все же) возникла такая трабла: сам я Паскаль уже заметно подзабыл (щас-то мы уже Delphi проходим), а моему другу надо пару задач решить. Поможете две задачки написать?
1. Опр-ть макс. знач-ия для каждого столбца каждой из трех матриц А (4x5), B (5x7), C (3x4).
2. Изм-ть матрицу, прибавляя к каждому отр. элементу пред. элемент той же строки. К первому элементу, если он отрицателен, прибавить последний элемент данной строки.


--------------------
Канал на YouTube - http://youtube.com/user/Septimus1993
Форум - http://septimus.5nx.ru
Группа ВКонтакте - http://vk.com/septimus1993
Go to the top of the pageAdd Nick
 
+Quote Post
Guevara-chan
сообщение 22 Dec 2013, 18:15 (Сообщение отредактировал Guevara-chan - 22 Dec 2013, 19:07)
Сообщение #480

•●Revolucionario●•
Сообщений: 2 467
Спасибо сказали: 5936 раз




В порядке написания лабораторных работ за знакомую познакомилась с GNUтым Fortran'ом. Это - жесть. Кровельная. Луженая. Вот у кого стоит, если не сложно, проверьте на явные ошибки вывода (NaN, ******** и тому подобное):

Код
!! Компилировать с ключом -cpp, пожалуйста.
Program Uno !! Essential ?
!!{ -Preprocessing-
#define ArrowTip() Trim(Span(IChar('-'), 4))
#define DelimOut() Out(Trim(Span(IChar('='), 61)))
#define Equals(ValName, Value) ValName // " = " // FStr(Value)
#define Fn17(X) Testfn(Real(X), m, NotSoJ, k)
#define FStr(Value) Trim(StrF(Value))
#define IntStr(Value) Trim(Str(Value))
#define RequestVar(VarName, LB, HB) AskNumber("Укажите " // VarName // ": ", Real(LB), Real(HB))
#define Out(Text) Call TypeOut(Text // New_Line('A'))
!!}

!!{ -Structurization-
Type :: PointF
Real :: X, Y
End Type PointF

Parameter (JStart = 1)  !! Исходное значение итератора.
Character*(*),Parameter :: PosPrefix = ", достигнуто на узле #"
!!}

!!{ -Variables & Array-
Real :: h=.0, hReal=.0, Accum=.0, Umax=.0, Umin=.0, Aver=.0, AverSqr=.0, PShare=.0, NShare=.0, Bias=.0, m=.0, NotSoJ= .0, k = .0
Integer :: A=0, B=0, N=0, J=0, Jmin=0, Jmax=0, Total=0
Type(PointF), Allocatable :: Graph(:)
!!}
!!{ Main code
!! -Initialization-
Out(ArrowTip()//"> Задание #1, вариант 17 <"//ArrowTip()// New_Line('A'))           !! Заголовочная строка.
m = RequestVar("коэфф-т m", 1, 4)                                                   !! Ввод коэффициента m.
NotSoJ = RequestVar("коэфф-т j", 1, 4)                                              !! Ввод коэффициента j.
k = RequestVar("коэфф-т k", 1, 4)                                                   !! Ввод коэффициента k.
A = 0; B = 1; N = RequestVar("количество исследуемых узлов на отрезке", 50, 1000)   !! Первичные данные рассчетов.
h = 0.0 + (b - a) / (N - 1.0) !! Коэффициент шага.
Allocate (Graph(1:N))         !! Массив данных функции.
hReal = Real(b - a) / N       !! Коэффициент для рассчета удельных долей и среднеквадратичного.
J = JStart; Jmax = J; Jmin = J; Total = N - JStart + 1 !! Итератор и производные.
Accum = Fn17(a); Umax = Accum; Umin = Accum            !! Выходные данные.

!! -Data refactoring-
Do J = JStart, N
Graph(J)%X = A + (J - 1) * h  !! Значение псевдоабсциссы.
Graph(J)%Y = Fn17(Graph(J)%X) !! Значение ординаты.
Aver = Aver + Graph(J)%Y      !! Заранее считаем среднюю для оптимизации.
End Do; Aver = Aver / Total   !! Досчитываем среднюю.

!! -Result calulation-
Do J = JStart, N; Accum = Graph(J)%Y     !! Считываем значение функции на указанной точке.
If      (Accum > Umax) Then; Umax = Accum; Jmax = J !! Проверяем максимальное значение.
Else If (Accum < Umin) Then; Umin = Accum; Jmin = J !! ...и минимальное, да.
End If; AverSqr = AverSqr + Accum * Accum           !! Считаем сумму на средний квадрат
Bias = Bias + (Accum - Aver) ** 2                   !! Считаем квадратичное отклонение от среднего значения.
If (Accum > 0) Then; PShare = PShare + hReal        !! Считаем положительные значния.
Else If (Accum < 0) Then; NShare = NShare + hReal   !! Считаем отрицательные значения.
End If; End Do; AverSqr = AverSqr / Total           !! Досчитываем средний квадрат.

!! -Final Output-
DelimOut()
Out(Equals("Максимальное значение фи-и",Umax) // PosPrefix // IntStr(JMax))
Out(Equals("Минимальное значение фи-и", Umin) // PosPrefix // IntStr(JMin))
Out(Equals("Среднее значение функции", Aver))
Out(Equals("Средний квадрат ф-ии", AverSqr))
Out(Equals("Среднеквадратичное значение", Sqrt(AverSqr)))
Out(Equals("Доли положит. и отрицат. значений", PShare) // " / " // FStr(NShare))
Out(Equals("Среднеквадратичное отклонение от среднего", Sqrt(hReal * Bias)))
!!}

contains !! Почему здесь ? Да потому, что GNU - это лучшее, что было создано человечеством.
!!{ -functionality-
Real Function AskNumber(Request, LowBound, HiBound)     !! Формализованный запрос числа.
Character*(*) Request; Real LowBound, HiBound           !! Подготавливаем запрос.
Do; call TypeOut(Request); Read*,AskNumber             !! Ожидаем ввод и после преоверяем результаты:
If (AskNumber < LowBound .OR. AskNumber > HiBound) Then !! Проверяем границы ввода и если вдруг - рапортуем ошибку.
Out("ERROR: предпол. значение между " // FStr(Lowbound) // " и " // FStr(HiBound) // " !") !! Error goes there.
Else; Return; End If; End Do                            !! ...Иначе - мирно заканчиваем и выходим.
End Function

Real Function TestFn(X, m, j, k) !! Исследуемая функция.
Real X, m, j, k; TestFN = ASin(X ** m) - (1 - X ** J) ** k
End Function TestFn

Subroutine TypeOut(Text)         !! Абстрактизированный вывод текста.
Character*(*) Text; Write(*,"(A)", advance="no")Text
End Subroutine

Character(255) Function Span(Char, Length) !! Компиляция последовательности из указанных символов.
Integer Char, Length, I; Span = "";Do I=1, Length; Span(I:I+1) = AChar(Char); End Do
End Function

Character(15) Function StrF(Val) !! Фортран - это сила, друзья мои. Вы не знали ?
Real, intent(in) :: Val; StrF = ""; write (StrF,"(F10.4)") Val; StrF = adjustl(StrF)
End Function

Character(15) Function Str(Val)  !! ...Сила, вот как есть - сила.
Integer, intent(in) :: Val; Str = ""; write (Str, *) Val; Str = adjustl(Str)
End Function
!!}
End Program Uno


--------------------
life MOV.I #life+1, *life
האם יש זמן לעצור ?
Go to the top of the pageAdd Nick
 
+Quote Post

26 страниц V  « < 22 23 24 25 26 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 6 August 2025 - 15:35
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика