Pascal: в двумерном массиве поменять местами максимальный и минимальный элементы

Задача в полной мере описана в заголовке.

Суть сводится к следующему:

  1. Заполнить массив
  2. Вывести массив
  3. Найти минимальный элемент
  4. Найти максимальный элемент
  5. Произвести обмен значений по индексам

Continue reading

Модуль (unit) на паскале

Был у меня блог на av-school.ru, который в скором времени, возможно, прекратит свое существование, поэтому я перенесу некоторые полезные посты из того блога в этот.

Задача на паскале была такая:

Написать модуль, подключение которого позволяло бы вставлять\удалять символ в любом месте строки, по указателю, заданному пользователем.

Continue reading

C#: Простые числа методом Решета Эратосфена

Недавно писал уже о нахождении простых чисел методом перебора. Метод конечно работает, но у него есть одна проблема — медленный он.Чуть более быстрый метод — это решето Эратосфена.

Описание алгоритма из Википедии:

Для нахождения всех простых чисел не больше заданного числа n, следуя методу Эратосфена, нужно выполнить следующие шаги:

  1. Выписать подряд все целые числа от двух до n (2, 3, 4, …, n).
  2. Пусть переменная p изначально равна двум — первому простому числу.
  3. Считая от p шагами по p, зачеркнуть в списке все числа от 2p до n кратные p (то есть числа 2p, 3p, 4p, …)
  4. Найти первое не зачеркнутое число, большее чем p, и присвоить значению переменной p это число.
  5. Повторять шаги 3 и 4 до тех пор, пока p не станет больше, чем n

Continue reading

C#: Простые числа методом перебора

Простые числа. Иногда появляется необходимость определить простое ли число или нет.

Если взять теорию, то простое число-это такое число, которое делится только на себя и на единицу.

Для того, что бы узнать, число является или не является простым, нужно либо перебрать все числа до этого числа, либо, по одной из теорем, достаточно перебрать все числа до корня из этого числа.

Continue reading

С++: Быстрая сортировка (qsort, quick sort)

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

Continue reading

Получение списка сайтов кредитных огранизаций России с сайта ЦБ РФ (XML в PHP)

Когда-то была задача получить и обработать список банков России, при этом должна быть надежность и достоверность информации. Информацию нашел на сайте ЦБ РФ, на мое счастье, там очень любят разработчиков и нам предоставляют данные в удобном XML-формате. Таким образом, задача свелась к тому, чтобы просто разобрать (пропарсить) XML и извлечь данные. Я покажу функцию, которая будет печатать список сайтов банков на лист.

[php]

function print_banks_list()
{
$xmlString = file_get_contents(«http://www.cbr.ru/credit/GetAsXML.asp»);
$xml = new SimpleXMLElement($xmlString);
foreach($xml->Bnk as $Bnk)
{
foreach($Bnk->Itm as $Itm)
{
echo($Itm[url] . ‘<br />’);
}
}
return 0;
}

[/php]

Получилась процедура какая-то, а не функция, но внутрь можно вписать хоть что… У меня это работало в паре с MySQL.

И еще такой моментик:

[php]
$Bnk[name]

[/php]

Так можно обратиться к названию банка, правда, оно не всегда бывает в правильной кодировке, но для этого можно использовать функцию iconv, примерно так:

[php]
$bname = iconv(‘UTF-8’, ‘Windows-1251’, $Bnk[name]);
[/php]

В примере он переводит из UTF-8 в Windows-1251.

Pascal, Си/C++, C# Определение совершенного числа

Иногда задают задачи по нахождению совершенного числа.

Как гласит Википедия, Совершенное число это :

натуральное число, равное сумме всех своих собственных делителей (т. е. всех положительных делителей, отличных от самого числа).

Continue reading

C#: Движение элемента формы по кругу

Есть такая задача: Двигать контрол формы по кругу. В моем случае таким элементом стал Picturebox.Сразу оговорюсь, представленный ниже код писал не я :)

[csharp]

private void _cicrcleMotion(PictureBox pic)
{
float DEG2RAD = (float)(3.14159 / 180);
double x, y, degInRad;
for (int i = 0; i < 360; i++)
{
degInRad = i * DEG2RAD;
x = Math.Cos(degInRad) * 100 + 100 + 50;
y = Math.Sin(degInRad) * 100 + 100 + 50;
pic.Left = (int)x;
pic.Top = (int)y;
}
}

[/csharp]

Функция в данном случае принимает PictureBox и крутит его (весьма быстро) по форме.