Задача №12 Сравнение массивов

Задача из списка

<?php
/*Даны два массива по 20 элементов каждый (заполните случайными числами, так чтобы  
среди элементов массива при очередном запуске программы могли встретиться и 
отрицательные и положительные числа).
Сравните каждый 3-ий элемент 1-ого массива с каждый 2-ым элементов 2-ого массива - 
сравнение проводите пока не закончится та выборка, которая короче.*/
echo "Задача №12" . "<br>";
function CompareArrays($N){
    $arr1 = array();
    $arr2 = array();
    $step1 = 3;
    $step2 = 2;
    $position1 = $step1-1;
    $position2 = $step2-1;
    $result = array();
    $counter = 0;
    for($count = 0; $count < $N; $count++){
        $arr1[$count] = rand(-9, 9);
        $arr2[$count] = rand(-9, 9);
    }
    do{
        if($arr1[$position1] > $arr2[$position2]){
            $result[$counter++] = $arr1[$position1] . " больше " . $arr2[$position2];
        }elseif($arr1[$position1] < $arr2[$position2]){
            $result[$counter++] = $arr1[$position1] . " меньше " . $arr2[$position2];
        }else{
            $result[$counter++] = $arr1[$position1] . " равно " . $arr2[$position2];
        }
        $position1 += $step1;
        $position2 += $step2;
    }while($position1 < $N && $position2 < $N);
    return $result;
}
$arr = CompareArrays(20);
foreach($arr as $number){
    echo $number . "<br>";
}
?>

Key Words for FKN + antitotal forum (CS VSU):

vedro-compota's picture

Приведите в комментариях декомпозированный вариант -- вынесите получение случайного массива в отдельную функцию (всегда старайтесь проводить декомпозицию, это здорово улучшает читаемость и много что ещё)

_____________
матфак вгу и остальная классика =)

Voronve's picture

<?php
echo "Задача №12" . "<br>";
function CompareArrays($N)
{
    $arr1 = array();
    $arr2 = array();
    $step1 = 3;
    $step2 = 2;
    $position1 = $step1-1;
    $position2 = $step2-1;
    $result = array();
    $counter = 0;
    
    $arr1 = GetRandomMass($N);
    $arr2 = GetRandomMass($N);
    do{
        if($arr1[$position1] > $arr2[$position2]){
            $result[$counter++] = 
            $arr1[$position1] . " больше " . $arr2[$position2];
        }elseif($arr1[$position1] < $arr2[$position2]){
            $result[$counter++] = 
            $arr1[$position1] . " меньше " . $arr2[$position2];
        }else{
            $result[$counter++] = 
            $arr1[$position1] . " равно " . $arr2[$position2];
        }
        $position1 += $step1;
        $position2 += $step2;
    }while($position1 < $N && $position2 < $N);
    return $result;
}
    
function GetRandomMass($lenght)
{
    for($count = 0; $count < $lenght; $count++){
        $mass[$count] = rand(-9, 9);
    }
    return $mass;
}
    
$arr = CompareArrays(20);
foreach($arr as $number){
    echo $number . "<br>";
}
?>
vedro-compota's picture

засчитано.

_____________
матфак вгу и остальная классика =)