для i от 1 до n выполнять
Sn = Sn + i
Программа:
$sn = 0;
echo “<BR>До какого числа суммировать:”;
// ввод $n
for ($i = 1; $i <= $n; $i++)
{
$sn += $i;
}
echo “<BR>Сумма чисел от 1 до $n равна $sn”;
3. Рассортировать элементы заданного случайным образом целочисленного вектора vector[n] методом обменной сортировки (пузырька):
// инициализация генератора случайных чисел:
mt_srand(time() + (double)microtime()*1000000);
echo "<BR>Введите нижнюю границу:";
// ввод $vector_min
echo "<BR>Введите верхнюю границу:";
// ввод $vector_max
echo "<BR>Введите размер вектора:";
// ввод $n
echo "<BR>Исходный вектор:<BR>";
// получение случайного числа в диапазоне
// от vector_min до vector_max
for ($i=0; $i < $n; $i++)
{
$vector[$i]=mt_rand($vector_min, $vector_max);
echo $vector[$i], ‘ ‘;
}
echo "<BR><BR>";
for ($m = $n-2; $m >= 0; $m--)
for ($i = 0; $i <= $m; $i++)
if ($vector[$i] > $vector[$i+1])
{
$temp = $vector[$i];
$vector[$i] = $vector[$i+1];
$vector[$i+1] = $temp;
}
echo "<BR>Отсортированный вектор:<BR>";
for ($i=0; $i < $n; $i++)
{
echo $vector[$i], ‘ ‘;
}
echo "<BR><BR>";
4. Рассортировать элементы заданного случайным образом целочисленного вектора vector[n] методом Шелла (обменная сортировка с убывающим шагом). В этом случае массив делится на группы по два элемента и производится сортировка в каждой группе: максимальный элемент ставится на второе место. После этого массив делится на группы по четыре элемента, и они снова сортируются. Количество элементов в сортируемой группе удваивается до тех пор, пока не остается одна группа, включающая все элементы массива, которая и сортируется окончательно:
// инициализация генератора случайных чисел:
mt_srand(time() + (double)microtime()*1000000);
echo "<BR>Введите нижнюю границу:";
// ввод $vector_min
echo "<BR>Введите верхнюю границу:";
// ввод $vector_max
echo "<BR>Введите размер вектора:";
// ввод $n
echo "<BR>Исходный вектор:<BR>";
// получение случайного числа в диапазоне
// от vector_min до vector_max
for ($i=0; $i < $n; $i++)
{
$vector[$i]=mt_rand($vector_min, $vector_max);
echo $vector[$i], ‘ ‘;
}
echo "<BR><BR>";
$i1 = $n-1;
while ($i1 >= 1)
{
$i1 /= 2;
$i2 = $n - $i1;
Do
{
$per = true;
for ($i = 0; $i <= $i2; $i++)
{
$i3 = $i + $i1;
if ($vector[$i] > $vector[$i3])
{
$temp = $vector[$i];
$vector[$i] = $vector[$i3];
$vector[$i3] = $temp;
$per = false;
} // if ($vector[$i] > $vector[$i3])
} // for ($i=0; $i<=$i2; $i++)
} // do
while (!per);
} // while ($i1>=1)
echo "<BR>Отсортированный вектор:<BR>";
for ($i=0; $i < $n; $i++)
{
echo $vector[$i], ‘ ‘;
}
echo "<BR><BR>";
Дата добавления: 2015-08-26; просмотров: 506;