SQL: Обертка на RAND()

В SQL есть функция RAND() которая может генерировать псевдослучайные числа.  Например такой запрос:

Select Rand()

Вернет:

rand

Дальше можно немного модифицировать выборку. Скажем, нам нужно, что бы выбиралось целое число от 0 до 100, тогда запрос будет таким:

SELECT FLOOR(100*RAND());

Ну и если от 10 до 100, то таким:

SELECT FLOOR(100*RAND()+10);

В языке SQL поддерживаются функции, так почему бы не написать обертку на Rand, которая будет генерировать числа от и до нужных нам границ?

Continue reading

C++: Найти сумму простых делителей

Задача:

Дана последовательность из целых чисел. 0 — конец последовательности. Для каждого числа найти сумму его простых делителей. Оформить функцией определение суммы простых делителей числа.

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

Continue reading

C++: Одинаковы ли цифры в числе

В некоторых задачах требуется определить, одинаковые ли цифры в числе или нет. Сделать это можно при помощи следующей функции:

bool isOnesNumber(int N)
{
	int d=0, dold =0;
	dold = N % 10;
	while (N != 0)
	{
		d = N % 10;
		if (d != dold)
		{
			return false;
		}
		N = N / 10;
		dold = d;
	}
	return true;
}

Continue reading

C++: четное число

Функция простая, но кому-то возможно сократит время, поиска или решения задачи.

Из Википедии, четное число, то число, которое делится без остатка на 2.

Функция на си:

bool is_even_number(int a)
{
	return a % 2 == 0;
}

Возвращает true, если число четное и false в противном случае.

C++: Заполнить матрицу так, чтобы на диагоналях были случайные числа, а остальные-нули

Задача:

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

Задача похожа на предыдущую, с той лишь разницей, что нужно заполнять и побочную диагональ. Для этого я так же воспользуюсь функцией из набора, которая возвращает true, если элемент матрицы (массива) стоит на диагонали. В этот раз на любой из них. Continue reading

С++: Является ли символ большой буквой?

Еще одна функция-помогалка в дополнение к функции, которая проверяет символ на число — это функция проверки на большую английскую букву. Таковая функция мне сегодня потребовалась. Вот она:

bool isCappital(char ch)
{
    return (ch >= 'A' && ch <= 'Z');
}

Принцип работы такой же, как и у «проверки числа». Так же можно реализовать функции, которые проверяли бы на буквы, на определенные символы.

PHP: Правильный сдвиг часов

Несколько дней назад понадобилось написать скрипт, который учитывал бы время с каким-либо интервалом. Время определить удалось, но возникла проблема как задать точность. Например время определилось как 0 часов. Тогда при точности +- 2 будет интервал от -2 до 2 часов. Но что такое минус 2 часа? Такого не бывает! Для исправления этой ситуации потребовалось написать функцию, которая бы правильно считала время.
[code lang=»c»]
function TimeChange($hour, $shift)
{
if ($shift + $hour > 24)
{
return abs($hour + $shift) — 24;
}
else if ($shift + $hour < 0)
{
return 24 — abs($hour + $shift);
}
else
{
if ($shift + $hour == 24)
return 0;
return $shift + $hour;
}
}[/code]
Функция принимает текущий час (24-часовой формат) и число, на которое нужно сдвинуть часы.

 

C++: Число слов в строке

Пользователь вводит строку, нужно посчитать, сколько в ней слов.

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

Continue reading

С++: Числа Фиббоначи (рекурсия и не рекурсия)

Задание:

Написать программу, которая реализует рекурсивную и нерекурсивную функцию, которая выводит на экран число Фиббоначи с индексом N
Последовательность Фиббоначи: x[n]=x[n-2]+x[n-1],x[0]=0;x[1]=1;

Continue reading