Чат Telegram
Группа ВКонтакте
Новый комментарий

mahasamatman 22.09.2017 в 16:37
<?php

$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$countOfCars = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $countOfCars ++;
}

$averageSpeed = $sumOfSpeeds / $countOfCars;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 22.09.2017 в 16:49

Всё правильно)

vasyaproject 11.10.2017 в 00:19

А я не так делал, просто добавил $index и подсчитал его, это неправильно?

<?php 

$carWeight = [
    905,
    1200,
    1400
];

echo "Вес первой машины $carWeight[0] кг <br>
Вес второй машины $carWeight[1] кг <br>
Вес третьей машины $carWeight[2] кг <br>";

$sumCarWheight = 0;

foreach ($carWeight as $index => $wheight) {
    $sumCarWheight += $wheight;
    $sumCarIndex += $index;
}

echo 'Средний вес машин = ' . $sumCarWheight / $sumCarIndex . 'кг';

?>
vasyaproject 11.10.2017 в 00:30

а нее, это неправильно :( уже сам увидел ошибку, если так, то оно просто складывает не порядковые index, а их числовые значения, надо тогда наверно так $sumCarIndex = $index + 1; или использовать такое $sumCarIndex = ++$index;

<?php 

$carWeight = [
    905,
    1200,
    1400
];

echo "Вес первой машины $carWeight[0] кг <br>
Вес второй машины $carWeight[1] кг <br>
Вес третьей машины $carWeight[2] кг <br>";

$sumCarWheight = 0;

foreach ($carWeight as $index => $wheight) {
    $sumCarWheight += $wheight;
    $sumCarIndex = $index + 1;
}

echo 'Средний вес машин = ' . $sumCarWheight / $sumCarIndex . 'кг';

?>
ivashkevich 11.10.2017 в 17:03

Нет, неправильно. $sumCarIndex - сумма индексов, и она никак не соотносится с числом автомобилей, на которое нужно поделить сумму весов.
Вам просто повезло, что 0 + 1 + 2 = 3.
Если появится ещё один автомобиль то у вас уже будет 0 + 1 + 2 + 3 = 6.

XXX 31.08.2019 в 19:42

Оно все таки подсчитывает количество машин, а не сумму индексов. Даже если их будет больше чем 3. Можете проверить.

<?php
$carsSpeeds = [
    95,
    140,
    78,
    100,
    930
];

foreach ($carsSpeeds as $index => $speed) {
     $sumOfSpeeds  += $speed;
     $sumOfCars = $index + 1;
}
echo 'Количество машин' .' '. $sumOfCars . "<br>" ;
echo 'Средняя скорость движения по трассе: ' . $sumOfSpeeds/$sumOfCars;
ivashkevich 31.08.2019 в 21:02

Не стоит полагаться на индексы для этой задачи. Ведь входной массив может оказаться таким:

$carsSpeeds = [
    5 => 95,
];

Если нужно получить число элементов, нужно их посчитать, а не добывать это число из каких-то посторонних мест.

Если массив придет пустым, скрипт вообще вывалит ошибок. Потому что переменные не проинициализированы начальными значениями перед циклом.

trialex3 22.09.2017 в 23:48
<?php
$carsSpeeds = [
    95,
    140,
    78,
    100,
    39
];
$sumOfSpeed = 0;
foreach ($carsSpeeds as $speed) {
    $sumOfSpeed += $speed;
}
$countOfCars = count($carsSpeeds);

$averageSpeed = $sumOfSpeed / $countOfCars;

echo 'Средняя скорость ' . $countOfCars . ' машин, ' . ' движущихся со скоростями ';
foreach ($carsSpeeds as $speed) {
    echo $speed . ', ';
}
echo 'равняется ' .'~' . (int)$averageSpeed;
?>
ivashkevich 23.09.2017 в 02:48

Вы читали задание?

WarLikeLaux 10.11.2017 в 17:23

enter image description here

ivashkevich 11.11.2017 в 13:52

Непонятно, для чего вам здесь переменная $count, переменные $countOfCars и $sumOfSpeeds нужно определить перед циклом равными нулю. Иначе непонятно, что там за значения.

WarLikeLaux 10.11.2017 в 17:26

Высчитывание среднего арифметического внутри функции, правда с использованием count
enter image description here

ivashkevich 11.11.2017 в 13:49

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

serb2017 15.11.2017 в 11:36
$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
foreach ($carsSpeeds as $index => $speed) {
        $sumOfSpeeds += $speed;
}
$averageSpeed = $sumOfSpeeds / ($index+1);

echo 'Средняя скорость движения по трассе без count: ' . $averageSpeed;
ivashkevich 18.11.2017 в 13:39

Хорошо, но было бы лучше не полагаться на индексы массива, а сделать переменную $count = 0 перед циклом. И затем в каждой итерации увеличивать её на 1. Так будет более надежно. На случай, если какой-нибудь хулиган явно укажет значения индексов в исходном массиве =)

aseke465@gmail.com 08.06.2018 в 12:53

Что неправильно? Найти средний бал семестра

<?php

$balls = [
    '1semestr' => [54,56,78,98,56,87],
    '2semestr' => [54,56,78,98,98],
    '3semestr' => ['1rubejka'=>[56,67,89], '2rubejka' => [76,78,98,90]],
];

?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title><?=$students['student1']?></title>
</head>
<body>
<h1><?
$sum_1sem =0;
$sum_2sem = 0;
$sum_3sem_1rub=0;
$sum_3sem_2rub = 0;
$sum_3sem = 0;
$sum_All=0;
foreach ($balls as $valueAll){
    foreach ($balls as $value_1sem){
        $sum_1sem+=$value_1sem;
        echo $sum_1sem/count($sum_1sem);
    }
    foreach ($balls as $value_2sem){
        $sum_2sem+=$value_2sem;
        echo $sum_1sem/count($sum_1sem);
    }
    foreach ($balls as $value_3sem){
        foreach ($balls as $value_1rub){
            $sum_3sem_1rub+=$value_1rub;
            echo $sum_3sem_1rub/count($sum_3sem_1rub);
        }
        foreach ($balls as $value_2rub){
            $sum_3sem_1rub+=$value_2rub;
            echo $sum_3sem_2rub/count($sum_3sem_2rub);
        }
        $sum_3sem+=$value_3sem;
        echo $sum_3sem/count($sum_3sem);
    }
    $sum_All+=$valueAll;
    echo $sum_All/count($sum_All);
}
?>
</body>
</html>
ivashkevich 08.06.2018 в 13:40

А вы настройте отладчик и сами всё поймёте. Если не получится - подскажу.

SlipKnot 06.07.2018 в 11:10

Домашка:

<?php
$carsSpeeds = [
    120,
    180,
    320
];
foreach ($carsSpeeds as $key => $cars)
{
    $count += $key;
    $speed += $cars;
}
echo 'Общее количество машин - ' . $count . '<br>';
echo 'Средняя скорость по трассе - ' . $speed / $count . ' км/ч<br>';
ivashkevich 06.07.2018 в 18:16

Тут ошибка. Если в массив добавится ещё одна скорость, значение $count станет равным 6, а вам нужно получить число 4.

SlipKnot 09.07.2018 в 03:44

Спасибо за ответ, сам бы не увидел и не догадался. Ну вот вроде исправил, добавил условие, если $keys >= 0, то прибавляем 1 в $count.

<?php
$carsSpeeds = [
    120,
    180,
    320,
    200,
    360
];
$count = 0;
foreach ($carsSpeeds as $key => $cars)
{
   if ($key >= 0) {
       $count += 1;
       $speed += $cars;
   }
}
echo 'Общее количество машин - ' . $count . '<br>';
echo 'Средняя скорость по трассе - ' . $speed / $count . ' км/ч<br>';
ivashkevich 09.07.2018 в 15:56

А для чего вам это условие?

SlipKnot 10.07.2018 в 05:28

Чтобы посчитать количество значений в массиве, только такая конструкция пришла на ум, и она работает) поправьте если не прав.

ivashkevich 10.07.2018 в 16:09

А что будет, если убрать if, но оставить в цикле строки

       $count += 1;
       $speed += $cars;

Что-нибудь изменится?

Kirill123 09.07.2018 в 22:10
$count = 0;
$resultOfSpeeds = 0;
$averageSpeeds = 0;

$carsSpeed = [
    95,
    140,
    78
];

foreach( $carsSpeed as $carSpeed ) {
    $count++;
    $resultOfSpeeds += $carSpeed;
}

$averageSpeeds = $resultOfSpeeds / $count;

echo $averageSpeeds;
ivashkevich 10.07.2018 в 16:09

Отлично!

Kirill123 12.07.2018 в 00:58

:)

Fox-24 13.08.2018 в 13:53

Спс за урок!)

$carsSpeeds = [
    85,
    102,
    70
];

$sumOfSpeeds = 0;

$countOfCars = 0;
foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $countOfCars = $countOfCars+1;
}

$averageSpeed = $sumOfSpeeds / $countOfCars;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 13.08.2018 в 15:27

Отлично! Но вместо

$countOfCars = $countOfCars+1;

лучше

$countOfCars++;
Fox-24 13.08.2018 в 15:28

Хорошо) Спасибо!

stasokulov@gmail.com 12.09.2018 в 00:00
<?php
$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$counter = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $counter++;
}

$averageSpeed = $sumOfSpeeds / $counter;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 22.09.2018 в 10:06

Супер =)

Benya 18.09.2018 в 13:49
<?php

$carSpeeds = [
    95,
    140,
    78
];

$sumOfSpeed = 0;

foreach ($carSpeeds as $speed) {
    $sumOfSpeed +=$speed;
    $i++;

}
$averageSpeed = $sumOfSpeed / $i;

echo 'Средняя скорость движения по трасе:' . $averageSpeed;
ivashkevich 22.09.2018 в 10:06

Отлично!

Bogdan 11.12.2018 в 15:42

получается что если переменная создалась в цикле, то ее область виденья не ограничивается циклом?

ivashkevich 11.12.2018 в 23:03

Нет. В PHP не ограничивается.

virtual2018 20.11.2018 в 16:39
$sumOfSpeeds = 0;
$countOfCars = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $countOfCars++;
}

$averageSpeed = $sumOfSpeeds / $countOfCars;
ivashkevich 20.11.2018 в 23:45

Супер!

Mike 27.11.2018 в 16:38
<?php
$carSpeed = [
    90,
    87,
    115,
    56,
    170,
    10
];
$index=0;
$sumSpeed=0;
foreach ($carSpeed as $speed) {
   $index+=1;
   $sumSpeed+=$speed;

}
$averageSpeed = $sumSpeed / $index;
echo 'количество машин ' . $index . '<br>';
echo 'средняя скорость машин ' . $averageSpeed;
ivashkevich 28.11.2018 в 22:29

Лучше назвать count а не index.

Bogdan 11.12.2018 в 15:39
<?php

$score = 0;
$countOfCars = 0;
$carsSpeeds = [95, 140, 78];
foreach ($carsSpeeds as $index => $value) {
    $countOfCars += 1;
    $score += $carsSpeeds[$index];
}
echo $score / $countOfCars;

может конечно забегаю вперед, но а если цикл двумерный, как пройти по всем индексам? допустим я не знаю что цикл двумерный, и пошел командой foreach, а оно показало Array и все...

ivashkevich 11.12.2018 в 23:07

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

XXX 06.01.2019 в 15:15

<?php

$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$i=0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $i++;

$averageSpeed = $sumOfSpeeds / $i;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 06.01.2019 в 23:11

Отлично!

SashkoUkraine 21.01.2019 в 10:03
$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds;
$carsSpeedsLength = 0;

foreach ($carsSpeeds as $index => $speed) {
    $sumOfSpeeds += $speed;
    $carsSpeedsLength = $index;

}

$avarageSpeed = $sumOfSpeeds / ($carsSpeedsLength + 1);

echo $avarageSpeed;
ivashkevich 21.01.2019 в 10:21

Length? Больше подходит Sum.

SashkoUkraine 21.01.2019 в 10:54

Это ж типа "Длина массива" а не сумма, я так думал.

ivashkevich 21.01.2019 в 21:17

Сорри, все правильно)

volodia.pavloff201343@gmail.com 02.02.2019 в 14:34

в данном случае программа сработает верно, но если например массив выглядит как:
$carsSpeeds = [
'0'=>'95',
'1'=>'140',
'3'=>'78'
];
Ну или другими словами в какой-то момент машина с индексом 2 сойдет с дистанции, весь алгоритм нарушиться.
Да и если просто добавить еще одну машину, все собьется!

Pro100Bah 25.01.2019 в 12:11
<?php
$carsSpeeds = [
    95,
    140,
    78,
    160.5,
    'Стояла на месте, бензин кончился!!!',
    Null
];
var_dump($carsSpeeds);

$sumOfSpeeds = 0;
$sumOfIndex = 0;
foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $sumOfIndex ++;
}
echo 'Сумма скоростей: ' . $sumOfSpeeds . '<br>';

$averageSpeed = $sumOfSpeeds / $sumOfIndex;
echo 'Средняя скорость: ' . $averageSpeed;
ivashkevich 25.01.2019 в 21:32
    'Стояла на месте, бензин кончился!!!',
    Null

Это что за дичь? Будут ошибки же.

Pro100Bah 26.01.2019 в 07:29

Да хотел попробовать , что будет если внести в массив другие типы данных, как он будет считать, просто ради интереса)

ivashkevich 27.01.2019 в 10:46

Ну и как?)

red.shuhov48@gmail.com 25.01.2019 в 17:28
        $carsSpeeds =[
            95,
            140,
            78
        ];

        $countOFCars = 0;

        foreach ($carsSpeeds as $x ){
            $sumOfSpeeds += $x;
            $countOFCars = $countOFCars + 1;
        }

        echo $sumOfSpeeds/$countOFCars;
ivashkevich 25.01.2019 в 21:37

Отлично

Pro100Bah 28.01.2019 в 16:16

Мне кажется или я ошибаюсь, но $sumOfSpeeds переменная не объявлена, хотя считает все верно?

$carsSpeeds = [
    95,
    140,
    78
];

$countOFCars = 0;
$sumOfSpeeds = 0;
foreach ($carsSpeeds as $x) {
    $sumOfSpeeds += $x;
    $countOFCars = $countOFCars + 1;
}

echo $sumOfSpeeds / $countOFCars;

Вот так может быть правильнее? у (red.shuhov48@gmail.com)

ivashkevich 29.01.2019 в 07:13

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

red.shuhov48@gmail.com 29.01.2019 в 10:30

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

ivashkevich 29.01.2019 в 23:33

Всегда объявляйте. Так более явно и наглядно. Иначе можно долго думать о том, где переменная объявлена и какое у неё сейчас значение.

ivashkevich 29.01.2019 в 07:13

Привет. Обрати внимание на комментарии внизу.

alex.evg.ostr 21.02.2019 в 18:01
Так, если схитрить ))
<?php
$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
}

$sizeOfCars = sizeof($carsSpeeds);

$averageSpeed = $sumOfSpeeds / $sizeOfCars;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;

И так , если выполнить задание безусловно

<?php
$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$counter = 0;

foreach ($carsSpeeds as $speed) {
    $counter++;
    $sumOfSpeeds += $speed;
}

$averageSpeed = $sumOfSpeeds / $counter;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 24.02.2019 в 17:32

Отлично!

rashik-2009@yandex.ru 26.02.2019 в 15:41
<?php

$temperature = [
   'morning' => 2,
   'noon' => 5,
   'evening' => 3,
   'night' => 0
];

$sumOftemperatures = 0;
$count = 0;

foreach ($temperature as $value) {
    $sumOftemperatures += $value;
    $countOfvalue = ++$count;
}

$avarageTemperature = $sumOftemperatures / $countOfvalue;

echo 'Среднесуточная температура равна: ' . $avarageTemperature . ' градуса(ов)';

?>
ivashkevich 02.03.2019 в 16:39
$countOfvalue = ++$count;

Так делать не нужно. Достаточно просто:

$count++;
ashfedor 06.03.2019 в 21:37
$sum = 0;
$count = 0;
foreach ($carsSpeds as $sped){
    $sum = $sum + $sped;
    $count += 1;
}

 echo 'средняя скорость ' . $sum / $count;
ivashkevich 08.03.2019 в 18:57

Отлично

babls2332@gmail.com 09.03.2019 в 22:59
<?php
$countOfCars = 0;
$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $countOfCars++;
}

$averageSpeed = $sumOfSpeeds / $countOfCars;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 10.03.2019 в 11:09

Отлично! =)

Grewi 14.03.2019 в 01:14
$carSpeed = [
    45,
    84,
    103,
    55
];
$carSpeedSumm = 0;
$carNumber = 0;
foreach ($carSpeed as $speed) {
    $carSpeedSumm += $speed;
    $carNumber++;
}
$carAverage = $carSpeedSumm / $carNumber;
echo 'Средняя скорость движения по трассе: ' . (int)$carAverage . 'км/ч';
ivashkevich 14.03.2019 в 09:17

$carNumber нужно перед циклом определить, как равную нулю.

Grewi 14.03.2019 в 13:10

Определил переменные равными нулю, но зачем - не совсем понял. Они, вроде бы, правильно определялись в самом цикле?

ivashkevich 17.03.2019 в 22:59

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

lilit 15.03.2019 в 23:48
<?php

$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$countOfCars = 0;
foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $countOfCars ++;
}

$averageSpeed = $sumOfSpeeds /  $countOfCars;

echo $averageSpeed;
ivashkevich 17.03.2019 в 22:59

Отлично

Boodoo 31.03.2019 в 23:52
<?php
    $carsSpeeds = [
        95,
        140,
        78
    ];

    $sumOfSpeeds = 0;
    $count = 0;

    foreach ($carsSpeeds as $v) {
        $sumOfSpeeds += $v;
        $count++;
    }

    $res = $sumOfSpeeds / $count;

    echo $res;
ivashkevich 01.04.2019 в 22:15

Отлично

pavliggs@mail.ru 10.04.2019 в 01:11
<?php
$carsSpeeds = [
    90,
    150,
    125,
    78
];

$sumOfSpeeds = 0;
$countOfCars = 0;

foreach ($carsSpeeds as $carSpeed) {
    $sumOfSpeeds += $carSpeed;
    $countOfCars += 1;
}

$averageSpeed = $sumOfSpeeds / $countOfCars;

echo 'Средняя скорость движения по трассе = ' . $averageSpeed;
ivashkevich 10.04.2019 в 15:20

Ок. Используй в следующий раз ++

artemship 13.04.2019 в 20:26
<?php
$carsSpeeds = [
    80,
    130,
    110,
    44
];
$sumOfSpeeds = 0;
$count = 0;
foreach ($carsSpeeds as $carSpeed) {
    $sumOfSpeeds += $carSpeed;
    $count++;
}
$averageSpeed = $sumOfSpeeds / $count;
echo 'Средняя скорость потока: ' . $averageSpeed;
ivashkevich 14.04.2019 в 00:22

Отлично

che4151999@gmail.com 13.04.2019 в 20:37
<?php
$carsSpeeds = [
    95,
    45,
    122
];
$items = 0;
$sum0fSpeeds = 0;
foreach ($carsSpeeds as $speed) {
$sum0fSpeeds += $speed;
$items++;
}
$averageSpeeds = $sum0fSpeeds/$items;
echo '<p>'.'Average speed on the highway: '. $averageSpeeds;
ivashkevich 14.04.2019 в 00:23

Отлично

Dram 19.04.2019 в 18:15

Не читал комменты, сделал сам. Правильно?

<?php

$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
}

$last = end(array_keys($carsSpeeds));
//$countOfCars = count($carsSpeeds);
$averageSpeed = $sumOfSpeeds / ++$last;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 19.04.2019 в 18:22

Можно проще - увеличивать счётчик на каждом шаге. А так да, формально задачу вы выполнили)

krollik1000000@gmail.com 06.05.2019 в 22:29
$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$sumCars = 0;
foreach ($carsSpeeds as $car=> $speed) {
    $sumOfSpeeds += $speed;
    $sumCars += $car;
}

echo $sumOfSpeeds / $sumCars;
ivashkevich 10.05.2019 в 13:28

Супер!

Moskva 13.05.2019 в 17:35

У тебя на самом деле классные уроки!!
Вот домашка:

$sumofSpeeds = 0;
$countOfCars = 0;
foreach ($carsSpeeds as $carsSpeed){
 $sumofSpeeds += $carsSpeed;
 $countOfCars += 1;
};
echo 'Средняя скорость по трассе = ' . $sumofSpeeds / $countOfCars; 

Всё работает.

ivashkevich 13.05.2019 в 19:01

Отлично!

Bizzzon 05.07.2019 в 12:08
$carsSpeeds = [
    95,
    140,
    78
];
$sumOfSpeeds = 0;
$sumOfCars = 0;
foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $sumOfCars ++;
}
$averageSpeed = $sumOfSpeeds / $sumOfCars;
echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 07.07.2019 в 17:57

Отлично

Reechniy 07.07.2019 в 05:36
<?php
$carSpeeds=[
    12,
    140,
    22,
    79,
    88,
    -9
];
$sumOfSpeeds=0;
$count=0;

foreach($carSpeeds as $speed){
    $sumOfSpeeds+=$speed;
    $count++;
}
$averageSpeed=$sumOfSpeeds/$count;
echo 'Средняя скорость движения автомобилей='.$averageSpeed;
ivashkevich 07.07.2019 в 17:57

Отлично!

kvakazuabr 14.07.2019 в 08:04

завести еще переменную равную 0 и в цикле прибовлять 1 на каждой итерации (++) и сумму скоростей разделить на значение этой переменной

$sumOfSpeeds = 0;
    $cnt = 0;
    foreach ($carsSpeeds as $speed) {
        $sumOfSpeeds += $speed;
        $cnt++;
    }
    echo $sumOfSpeeds/$cnt;
ivashkevich 14.07.2019 в 09:05

Отлично. Достаточно только кода)

AlexxxEy 16.07.2019 в 22:12
print 'Величины скоростей: </br>';
$speeds = [
        23,
        44,
        91
];
$Sum = 0;
foreach ($speeds as $index => $speed){
    echo $index . ' ' . $speed . '</br>';
    echo '</br>';
    $Sum +=$speed;

}
print 'Средняя скорость: ';
print floor($Sum/($index+1));
ivashkevich 17.07.2019 в 04:50

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

Aleks 08.08.2019 в 14:44

Придумайте способ обойтись без использования функции count.

<?php

$carsSpeeds = [
    95,
    140,
    78,
    45,
    46
];
$sumOfSpeeds = 0;
$cycle = 0;
foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $cycle += 1;
}

$averageSpeed = $sumOfSpeeds / $cycle;
echo 'Средняя скорость равна: ' . $averageSpeed;
ivashkevich 08.08.2019 в 16:28

Отлично. Переменную стоило назвать count

lenapetrowa92@gmail.com 12.08.2019 в 20:07
$carSpeeds = [
    9,
    1,
    5,
];
$sumOfSpeeds = 0;
$count =0;
foreach ($carSpeeds as $speed){
$sumOfSpeeds+= $speed;
$count ++;
}
$averageSpeed = $sumOfSpeeds/$count;
echo 'средняя скорость: '. $averageSpeed;
ivashkevich 13.08.2019 в 10:02

Отлично

Vladimir96 12.08.2019 в 20:55
//Домашнее задание
    $arr = [
            75,
            36,
            83,
            4 ];

    $summ = 0;
    foreach ($arr as $value) {
        $summ += $value;
    }

    $insteadCount = 0;
    foreach($arr as $number) {
        if ($number) {
            $insteadCount++;
        }
    }

    $resultDivision = $summ / $insteadCount;

    echo 'Средняя скорость: ' . $resultDivision;
ivashkevich 13.08.2019 в 10:03
$insteadCount = 0;
    foreach($arr as $number) {
        if ($number) {
            $insteadCount++;
        }
    }

Для чего if? Для чего отдельный цикл?

Vladimir96 13.08.2019 в 12:06

В ДЗ нужно было придумать другой способ вместо использования сount, я решил, что функцию count нужно написать самому вручную, это я и сделал, посмотрел что все ок, запустилось, и ушел радоваться)) оказывается реально можно было короче и логичнее все это сделать, вот второй вариант)

$arr = [
            75,
            36,
            83,
            4 ];

    $summ = 0;
    $insteadCount = 0;
    foreach ($arr as $value) {
        $summ += $value;
        $insteadCount++;
    }
    $resultDivision = $summ / $insteadCount;

    echo 'Средняя скорость: ' . $resultDivision;
ivashkevich 13.08.2019 в 19:32

Теперь ОК)

Lasto 21.08.2019 в 15:06
<?php

$auto=['lanrover'=>'140', 'bmw'=>'120','audi'=>'100'];

$numCount=0;
$sumSpeed=0;
foreach ($auto as $speed){
   $sumSpeed  += $speed;
    $numCount ++;

}

echo 'Cредняя скорость' .  $result=$sumSpeed/$numCount;
ivashkevich 22.08.2019 в 06:54

Почему вместо чисел строки?
Для чего здесь переменная result?!

romaartemov1999@gmail.com 25.08.2019 в 18:04
<?php
$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$i = 0; //счетчик итераций цикла

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $i++;
}

$averageSpeed = $sumOfSpeeds / $i;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 26.08.2019 в 07:00

Отлично

Ooleg 25.08.2019 в 20:00
$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$countOfCars = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $countOfCars ++;
}

$averageSpeed = $sumOfSpeeds / $countOfCars;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 26.08.2019 в 07:00

Отлично

Dreft 01.09.2019 в 19:30
<?php
$speeds = [50, 190, 20];
$allSpeeds = 0;
$countCars = 0;
foreach ($speeds as $speed) {
    $allSpeeds += $speed;
    $countCars++;
}
echo "Средняя скорость: " . $allSpeeds / $countCars;
ivashkevich 02.09.2019 в 05:01

Идеально

H3licoptero 21.09.2019 в 14:27
$carsSpeed = [ 1 =>
    100,
    70,
    130,
    140
];

var_dump($carsSpeed);

$sumOfSpeeds = 0;

foreach ($carsSpeed as $countOfCars => $speed) {
    echo '<br>' . $sumOfSpeeds += $speed;
}

var_dump($sumOfSpeeds);

$averageSpeed = $sumOfSpeeds / $countOfCars;

var_dump($averageSpeed);

echo $averageSpeed;

Тяжко, но работает вроде. Думал тоже с инкрементом сделать, но не сообразил сразу, как его задействовать. Предыдущий вариант, Draft'a, действительно крутой. Проверил на своём и не пришлось с индексами мудрить)

$carsSpeed = [
    'Audi' => 100,
    'BMW' => 70,
    'Mazda' => 130,
    'Volkswagen' => 140
];

var_dump($carsSpeed);

$sumOfSpeeds = 0;
$countOfCars = 0;

foreach ($carsSpeed as $speed) {
     $sumOfSpeeds += $speed;
     $countOfCars++;
}

var_dump($sumOfSpeeds);

$averageSpeed = $sumOfSpeeds / $countOfCars;

var_dump($averageSpeed);

echo $averageSpeed;
ivashkevich 21.09.2019 в 16:27

Ага. Второй вариант лучше. На ключи не стоит надеяться

dliashchenko 24.09.2019 в 09:18
<?php
$carsSpeeds = [100, 20, 25, 50, 5];

$sumOfSpeeds = 0;
$sumOfCars = 0;
foreach($carsSpeeds as $speed){
    $sumOfSpeeds +=  $speed;
    $sumOfCars++;
}
$averageSpeed = $sumOfSpeeds / $sumOfCars;

echo "Количество машин: ".$sumOfCars."<br/>";
echo "Сумма скоростей: ".$sumOfSpeeds."<br/>";
echo "Средняя скорость: ".$averageSpeed;

Результат:

Количество машин: 5
Сумма скоростей: 200
Средняя скорость: 40

ivashkevich 24.09.2019 в 10:54

Не стоит завязываться на индексы. Можно просто увеличивать счётчик

prinzplanloser0514@gmail.com 24.09.2019 в 21:55
<?php
$array = [
    95,
    140,
    78
];
$sumOfSpeeds =0;
$countOff=0;
foreach ($array as $speed){
 $sumOfSpeeds+=$speed;
 $countOff=$countOff+1;
 $averageSpeed =$sumOfSpeeds/$countOff;
}
echo $averageSpeed;
ivashkevich 26.09.2019 в 05:33

Вместо

$countOff=$countOff+1;

пиши

$countOff++;
$averageSpeed = $sumOfSpeeds/$countOff;

Средняя скорость пересчитывается в каждой итерации цикла - производится лишняя работа, комп греется, приближая глобальное потепление. Не надо так.

prinzplanloser0514@gmail.com 26.09.2019 в 21:48

Точно,защитники природы точно не обрадуются,спасибо )

zuxarevaalina88@gmail.com 12.10.2019 в 22:42
<?php

$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$quantityOfCars = 0;
foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
}
foreach ($carsSpeeds as $index) {
    $quantityOfCars += 1;}
echo $sumOfSpeeds;
echo ' ';
echo $quantityOfCars;
echo ' ';
$averageSpeed = $sumOfSpeeds / $quantityOfCars;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
?>
ivashkevich 12.10.2019 в 23:01

Для чего два цикла? Во втором index не является индексом, это по-прежнему значение скорости.

zuxarevaalina88@gmail.com 13.10.2019 в 15:49
<?php

$carsSpeeds = [
    95,
    140,
    78
];
$sumOfSpeeds = 0;
$quantityOfCars = 0;
foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $quantityOfCars += 1;
}
echo $sumOfSpeeds;
echo ' ';
echo $quantityOfCars;
echo ' ';
$averageSpeed = $sumOfSpeeds / $quantityOfCars;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
?>
Странно, что ответ одинаковый получился.
ivashkevich 13.10.2019 в 16:50

А что странного? Значения вы считали одни и те же, но в двух местах. Сейчас всё считается за один обход цикла - это более оптимальный вариант. Для увеличения значения на единицу лучше использовать использовать оператор инкремента:

$quantityOfCars++;
zuxarevaalina88@gmail.com 13.10.2019 в 17:07

Вы написали, что индекс не индекс а значение скорости. Ок

ivashkevich 13.10.2019 в 18:32

Вы в вычислениях его не использовали ведь, поэтому это никак на них не влияло.

zuxarevaalina88@gmail.com 13.10.2019 в 20:33

а, да точно, затупила

Evilinside 14.10.2019 в 18:16
<?php
/*
Пусть по трассе едут 3 машины. Сделаем массив, в котором будут содержаться значения скоростей движения этих авто.
 */
$cars = [
     90,
     60,
     75
];
$sumOfSpeed = 0;
$sumOfCars=0;
foreach ($cars as $elem) {
    $sumOfSpeed += $elem;
    $sumOfCars++;
}
echo $sumOfSpeed/$sumOfCars;
ivashkevich 14.10.2019 в 18:23

Отлично!

sar16520 15.10.2019 в 08:24
<?php  

$carsSpeed= [
    100,
    150,
    67,
    200,
    300
];

$sumSpeed = 0;

foreach ($carsSpeed as $speed) {
    $sumSpeed += $speed;
};

$centerSpeed= $sumSpeed / 5;
echo $centerSpeed;

163.4

ivashkevich 15.10.2019 в 10:37

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

sar16520 15.10.2019 в 13:31
<?php 

$carsSpeed= [
    100,
    150,
    67,
    200,
    300,
    100
];

$sumSpeed = 0;
$sumCar = 0;
foreach ($carsSpeed as $speed) {
    $sumSpeed += $speed;
    $sumCar++;
};

$centerSpeed= $sumSpeed / $sumCar;
echo $centerSpeed;

Ааа... Понял) Чет не сразу вспомнил про этого оператора)

ivashkevich 15.10.2019 в 17:17

Отлично

andreskrip 09.11.2019 в 22:55

Просто добавил переменную, к которой каждую итерацию добавляется единица.

$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$countOfCars = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $countOfCars += 1;
}

$averageSpeed = $sumOfSpeeds / $countOfCars;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;

А еще вопрос по уроку: в конце урока для функции count была выделена отдельная переменная $countOfCars = count($carsSpeeds). Нельзя ли сократить код на строку и записать вычисление средней скорости как: $averageSpeed = $sumOfSpeeds / count($carsSpeeds)?

ivashkevich 10.11.2019 в 07:21

Отлично. Можно.

babur 11.11.2019 в 11:28

Здрасьте! Подскажите пож, правильно понимаю ли, что foreach пробегает в массиве n-раз и внутри foreach переменный $count ++ оно у меня читает итерацию ну типа сколько раз пробежал в массиве, потом просто делим на $sumOfSpeeds да?

$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$count = 0;
foreach ($carsSpeeds as $value) {
    $sumOfSpeeds = $sumOfSpeeds + $value;
    $count ++;
}

$averageSpeed = $sumOfSpeeds/$count;

echo $averageSpeed;
ivashkevich 11.11.2019 в 19:47

Всё верно :)

ivanenko_94@mail.ru 15.11.2019 в 21:13

Клевый урок) Зашел на ура)

<?php
   $carsSpeed = [68, 84, 90, 78, 568303];

   $carSumSpeed = 0;
   $allCars = 0;
     foreach ($carsSpeed as $speed) {
$carSumSpeed  += $speed;
$allCars ++;
     };

$srednySpeed = $carSumSpeed / $allCars;
echo $srednySpeed;
?>
ivashkevich 15.11.2019 в 21:25

Отлично. Только с отступами проблема. Ну и переменные принято именовать английскими словами.

ivanenko_94@mail.ru 15.11.2019 в 23:07

понял принял)

YuraG 23.11.2019 в 21:20
$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$countOfCars = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $countOfCars += 1;
}

$averageSpeed = $sumOfSpeeds / $countOfCars;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 24.11.2019 в 20:29

Отлично

kefir4573@yandex.ru 24.12.2019 в 10:50

Есть урок по стилистике написания кода? Смотрю разные уроки и каждый пишет по своему, те же обозначения переменной, кто то использует вместо стиля верблюда, просто нижний прочерк _

Как принято писать в 2019?

ivashkevich 24.12.2019 в 11:11

Уже давно есть PSR. Вам нужны PSR-1 и PSR-2.

eNergy 12.01.2020 в 06:51
<?php

$speedCars = [
  95,
  115,
  87,
  59,
  143
];
$sumOfSpeeds = 0;
$countCars = 0;
foreach ($speedCars as $value) {
    $sumOfSpeeds += $value;
    $countCars++;
}
$averageSpeed = $sumOfSpeeds / $countCars;
echo  'Средняя скорость автомобилей: ' . $averageSpeed;
ivashkevich 12.01.2020 в 15:36

Отлично

vitaliy2x2@gmail.com 15.01.2020 в 11:45
<?php

$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$count = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $count += 1;
}

$averageSpeed = $sumOfSpeeds / $count;

echo 'Количество машин: ' . $count . '<br>' . 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 15.01.2020 в 12:44

Отлично. Привыкайте использовать инкремент вместо $count += 1;

eliz33@yandex.ru 19.02.2020 в 12:34

Я сделал так:
Добавил новую переменную в цикл. При каждой итерации плюс один. В конце разделил на количество итераций.

<?php

$carsSpeeds = [
    95,
    140,
    78,
    154
];

$sumOfSpeeds = 0;
$carsCount = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $carsCount++;
}

$countOfCars = $carsCount;

$averageSpeed = $sumOfSpeeds / $countOfCars;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
?>
ivashkevich 19.02.2020 в 19:20

Отличный алгоритм

serjioG 07.03.2020 в 18:16
<?php
$carsSpeeds = [
        95,
    140,
    78,
    120,
    85,
    250

];
$sumOfSpeeds = 0;
$countOfCars = 0;

foreach ($carsSpeeds as $carSpeed){
    $sumOfSpeeds += $carSpeed;
    $countOfCars ++;

}

$avaregeSpeed = $sumOfSpeeds / $countOfCars;;
echo 'Средняя скорость движения по трассе равна: ' . $avaregeSpeed;
ivashkevich 09.03.2020 в 08:16

Отлично!
Пробел тут ставить не нужно:

$countOfCars ++;
studentDev Patron 09.03.2020 в 10:32
<?php
    $numbArray = [20, 40, 60];
    $numbArrayZeroValue = 0;
    $numbArrayZeroKey = 0;
    foreach($numbArray as $key => $value) {
        $numbArrayZeroKey += $key;
        $numbArrayZeroValue += $value;
    }
    $numbArrayEnd = $numbArrayZeroValue / $numbArrayZeroKey;
    echo $numbArrayEnd . "</br>";
   ?>
ivashkevich 09.03.2020 в 13:49

А чего имена переменных такие? Они должны отражать то, для чего они нужны. Оперируйте терминами предметной области - скорость, сумма скоростей, средняя скорость. Переводите на английский и используйте полученные фразы для именования переменных.

studentDev Patron 09.03.2020 в 14:19

Английский я знаю, так отметить захотелось :3 А так то я знаю что корректные имена нужно указывать :) (изучил тему)...

ivashkevich 09.03.2020 в 13:50
$numbArrayZeroKey += $key;

не очень надёжно. Ключи могут быть и строковыми. Лучше завести отдельную переменную и на каждой итерации увеличивать ее значение на единицу.

studentDev Patron 09.03.2020 в 14:15

Я знаю что ключи могут иметь строковые значения, так отметил... :3

ivashkevich 10.03.2020 в 16:39

А вообще, вам просто повезло, что у вас в примере 3 скорости, а не 4. Иначе бы вы обнаружили, что в переменной numbArrayZeroKey оказалось бы не 4, а 6! В коде явная ошибка, её нужно поправить.

studentDev Patron 09.03.2020 в 14:47
<?php
    function speedFunction(int $x) {
        return $x + 35;
    }
    $speed = [20, 30, 40];
    $speedZero = 0;
    foreach($speed as $speedValue) {
        $speedZero += $speedValue;
    }
    $speedResult = speedFunction(20) + $speedZero;
    echo $speedResult . "</br>"
   ?>

Также прикольно с функцией всё это дело сделать :3

ivashkevich 10.03.2020 в 16:41

СТОП! =)
Что за имена переменных? Почему массив это $arrayFunction? Переделайте на нормальные имена, читать невозможно.

studentDev Patron 11.03.2020 в 14:05

Всё исправил имена! :3

ivashkevich 11.03.2020 в 19:09

Так а что в результате за число-то вообще? Нужно было посчитать среднюю скорость, не воспользовавшись функцией count.
$speedZero - что это за название. СкоростьНоль, дословный перевод. В этом месте:

$speedZero += $speedValue;

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

Evilinside 10.03.2020 в 16:18
<?php
function getAverageSpeed (array $array): float {
    $sumOfSpeedCars = 0;
    $countCars = 0;
    foreach ($array as $speed){
        $sumOfSpeedCars +=$speed;
        $countCars ++;
    }

    return round(($sumOfSpeedCars / $countCars),2);
}

$speedCars = [50, 30, 75];

echo getAverageSpeed($speedCars);
ivashkevich 10.03.2020 в 16:49
$countCars ++;

Пробел тут не нужен.

В остальном отлично!

pollaltermann@gmail.com 12.03.2020 в 13:38
<?php

$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;

foreach ($carsSpeeds as $key => $speed) {
    $sumOfSpeeds += $speed;
    $key += 1;
}
//$countOfCars = count($carsSpeeds);

$averageSpeed = $sumOfSpeeds / $key;
//echo $countOfCars;
echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
?>
ivashkevich 14.03.2020 в 19:53

Не стоит надеяться на ключ массива. Лучше завести отдельную переменную и увеличивать ее в каждой итерации на 1.

qroff 14.03.2020 в 02:21

Зачем определять переменную $sumOfSpeeds равную 0, без нее работает также само

ivashkevich 14.03.2020 в 20:25

Потому что PHP исправляет эту ошибку за вас. Если включить показ ошибок уровня WARNING и NOTICE, то вы увидите ошибку, говорящую о том, что используется неопределенная переменная.

WarLikeLaux 06.04.2020 в 14:15
$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;

foreach ($carsSpeeds as $index => $speed) {
    $sumOfSpeeds += $speed;
}

$averageSpeed = $sumOfSpeeds / ++$index;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 06.04.2020 в 15:59

Некорректно завязываться на индекс. На входе может быть вот такой массив:

$carsSpeeds = [
    95,
    140,
    77 => 78
];

Есть идеи, как решить такую проблему?

Timurik Patron 09.04.2020 в 15:25
$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$countOfCars = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $countOfCars += 1;
}

$averageSpeed = $sumOfSpeeds / $countOfCars;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 09.04.2020 в 15:48

Красота!

mornind@gmail.com 10.04.2020 в 10:33

Придумайте способ обойтись без использования функции count.

function myCount(array $arr)
{
$arrayLength = 0
foreach ($arr as $item) {
    $arrayLength++;
}
return $arrayLength;
}
ivashkevich 10.04.2020 в 13:13

Слишком жестко) Достаточно завести еще одну переменную и внутри цикла увеличивать ее на единицу

mornind@gmail.com 10.04.2020 в 13:16

А я что сделал? :)
Ну разве что завернул это в функцию, а так - вроде ничего больше и не делал, кроме > завести еще одну переменную и внутри цикла увеличивать ее на единицу

ivashkevich 10.04.2020 в 13:22

В том-то и дело, один и тот же массив в результате обходится дважды, а можно это сделать один раз, и без вызова функции.

n.yurasheva 10.04.2020 в 21:01
<?php

$carsSpeeds = [
    95,
    140,
    78
];
$sumOfSpeeds = 0;
$i=0;
foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $i++;
}
$averageSpeed = $sumOfSpeeds / $i;
echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 11.04.2020 в 21:10

Отлично!

777mirosh@mail.ru 13.04.2020 в 17:23

Добрый вечер!

<?php
$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$cCar = 0;
foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $cCar++;
}
$countOfCars = count($carsSpeeds);
$averageSpeed = $sumOfSpeeds / $cCar;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 14.04.2020 в 18:59

Отлично!

Kennard 16.04.2020 в 19:57

Попытался связать это все с html и вводить скорость через браузер

<?php

//через браузер внести скорость 3х машин
// после нажатия кнопки должна быть рассчитана средняя скорость

$carsSpeeds = [
     $a = htmlspecialchars($_POST['firstCar']),
     $b = htmlspecialchars($_POST['secondCar']),
     $c = htmlspecialchars($_POST['thirdCar'])
];

foreach ($carsSpeeds as $value) {
    $summOfSpeed += $value;
    $count++;
}

?>
<form action="" method="post">

Скорость первой машины <input type="number" name="firstCar">
Скорость второй машины <input type="number" name="secondCar">
Скорость третьей машины <input type="number" name="thirdCar">
<input type="submit">

</form>
<?= 'Средняя скорость всех машин: ' . $summOfSpeed / $count; ?>
ivashkevich 17.04.2020 в 09:09
     $a = htmlspecialchars($_POST['firstCar']),

Сначала нужно убдеиться, что такой ключ в массиве действительно есть (isset). Потом убедиться что это число (is_numeric). И только потом его можно использовать в вычислениях.

Kennard 17.04.2020 в 17:16
<?php

//через браузер внести скорость 3х машин
// после нажатия кнопки должна быть рассчитана средняя скорость

$carsSpeeds = [
    $a = htmlspecialchars($_POST['firstCar']),
    $b = htmlspecialchars($_POST['secondCar']),
    $c = htmlspecialchars($_POST['thirdCar'])
];

foreach ($carsSpeeds as $value) {
    if ($value > 0 and is_numeric($value) === true) {
        $count++;
        $summOfSpeed += $value;
    }
}

?>
    <form action="" method="post">

        Скорость первой машины <input type="number" name="firstCar">
        Скорость второй машины <input type="number" name="secondCar">
        Скорость третьей машины <input type="number" name="thirdCar">
        <input type="submit">

    </form>
<?= 'Средняя скорость всех машин: ' . $summOfSpeed / $count; ?>

Не получилось проверить через isset, нашел другое решение.

ivashkevich 18.04.2020 в 05:41

Во-первых, почему вы используете and, а не &&?

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

Если уберете вот эту строку:

        Скорость первой машины <input type="number" name="firstCar">

И отправите форму, будет ошибка!

Developer 17.04.2020 в 17:47
<?php

$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$countOfCars = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $countOfCars++;
}

$averageSpeed = $sumOfSpeeds / $countOfCars;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;

P.S. сидел, думал думал, как выкрутиться необычно. Но в итоге до инкремента не додумался и пришлось подглядеть в коментах(

ivashkevich 18.04.2020 в 05:51

Отлично

tsaruk4356@gmail.com Patron 23.04.2020 в 18:19
<?php
$carsSpeed = [95, 100, 10];
$sumOfSpeed = 0;
$i = 0;
foreach ($carsSpeed as $speed) {
    $sumOfSpeed += $speed;
    $i++;
}
$averageSpeed = $sumOfSpeed / $i;
echo 'Средняя скорость движения по трассе: '. $averageSpeed;
ivashkevich 23.04.2020 в 19:23

Отлично!

kibardosss@gmail.com Patron 24.04.2020 в 00:01
<?php

$carsSpeeds = [
    95,
    140,
    78
];
$sumOfSpeeds = 0;
$a=0;
foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $a++;
}
$averageSpeed = $sumOfSpeeds / $a;
echo 'Средняя скорость движения по трассе ' . $averageSpeed;
ivashkevich 24.04.2020 в 04:55

Можно переменную $a назвать более подходящим именем?

desperatik@mail.ru 24.04.2020 в 20:15
$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;//задаем переменную суммы скоростей
$sumOfCars = 0; //задаем количество элементов (машин)
foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed; //прибавляем на каждом шаге скорость след.машины
    $sumOfCars++; // прибавляем на каждом шаге по 1 авто
}
$averageSpeed = $sumOfSpeeds / $sumOfCars;
echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 24.04.2020 в 20:28

Отлично. Хорошие имена переменных.

Stimi Patron 27.04.2020 в 17:23
<?php
$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$countOfCars = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $countOfCars++;
}

$averageSpeed = $sumOfSpeeds / $countOfCars;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 27.04.2020 в 20:13

Отлично!

janybekova56@mail.ru 28.04.2020 в 15:01
<?php

$carsSpeeds = [
    95,
    140,
    78,
    120,
    40

];
$sumOfSpeeds = 0;
$countOfCars =0;
foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $countOfCars ++;
}

echo 'Средняя скорость на трассе:' . ' ' . $sumOfSpeeds/$countOfCars;

A можно было так сделать?

echo 'Средняя скорость на трассе:' . ' ' . $sumOfSpeeds/5;
ivashkevich 28.04.2020 в 19:26

Отлично.

A можно было так сделать?

Ну а если число скоростей в массиве изменится? Будет не очень.

titelivus 28.04.2020 в 19:13

Без функции count()

<?php

$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$countOfCars = 0;

foreach ($carsSpeeds as $speed) {
    $countOfCars++;
    $sumOfSpeeds += $speed;
}

$averageSpeed = $sumOfSpeeds / $countOfCars;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 28.04.2020 в 19:33

Отлично

Artt Patron 30.04.2020 в 08:47
<?php

$carsSpeeds = [
    140,
    110,
    130,
    118,
    123,
    160
];

$sumOfSpeeds = 0;
$carsQuantity = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $carsQuantity++;
}

$averageSpeed = $sumOfSpeeds / $carsQuantity;

echo 'Cars average speed is: ' . $averageSpeed;
ivashkevich 30.04.2020 в 11:45

Отлично!

$carsQuantity ++;

Пробел тут только не нужен

Sviatoslav Patron 01.05.2020 в 15:47

Мой пример без функции count.

$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $countOfCars++;
}

$averageSpeed = $sumOfSpeeds / $countOfCars;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 02.05.2020 в 15:40

Отлично

Hellbound Patron 04.05.2020 в 20:23
<?php

$carsSpeed = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;

$countOfCars = 0;

foreach ($carsSpeed as $speed) {
    $sumOfSpeeds += $speed;
    $countOfCars ++;
}

$averageSpeed = $sumOfSpeeds / $countOfCars;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 06.05.2020 в 13:37

Отлично

goryaforever@gmail.com Patron 07.05.2020 в 19:58
<?php
    $carsSpeeds = [
        90,
        170,
        100
    ];
    $sumOfSpeeds = 0;
    $cnt = 0;
    foreach ($carsSpeeds as $speed) {
        $sumOfSpeeds  += $speed;
        $cnt++;
    }
    echo('Средняя скорость движения по трассе: ' . ($sumOfSpeeds / $cnt));
ivashkevich 08.05.2020 в 20:18
$sumOfSpeeds  += $speed;

Лишний пробел. В остальном отлично

IePyton Patron 08.05.2020 в 11:56
<?php

$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeed = 0;

foreach ($carsSpeeds as $index => $speed) {
    $sumOfSpeed += $speed;
}

$numberCars = $index + 1;

$averageSpeed = $sumOfSpeed / $numberCars;

echo $averageSpeed;
ivashkevich 08.05.2020 в 20:25

Не стоит полагаться на индексы для этой задачи. Ведь входной массив может оказаться таким:

$carsSpeeds = [
    5 => 95,
];

Если нужно получить число элементов, нужно их посчитать, а не добывать это число из каких-то посторонних мест.

IePyton Patron 09.05.2020 в 11:40

тогда отсчет от 0

<?php

$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeed = 0;
$numberCars = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeed += $speed;
    $numberCars++;
}

$averageSpeed = $sumOfSpeed / $numberCars;

echo $averageSpeed;
ivashkevich 10.05.2020 в 08:56

Отлично

annferny Patron 09.05.2020 в 15:16
<?php

$carsSpeeds = [
    95,
    140,
    78
];

$sumOfSpeeds = 0;
$countOfCars = 0;

foreach ($carsSpeeds as $speed) {
    $sumOfSpeeds += $speed;
    $countOfCars += 1;
}

$averageSpeed = $sumOfSpeeds / $countOfCars;

echo 'Средняя скорость движения по трассе: ' . $averageSpeed;
ivashkevich 10.05.2020 в 09:04
    $countOfCars += 1;

Стоит заменить на

    $countOfCars++;

В остальном отлично

happyviolence Patron 17.05.2020 в 17:49
<?php
$carsSpeeds = [
    95,
    140,
    78,
    20
];
$sumOfSpeed = 0;

foreach ($carsSpeeds as $index => $speed) {
    $sumOfSpeed += $speed;
    $lastIndex = $index + 1;
}

$averageSpeed = $sumOfSpeed / $lastIndex;
echo $averageSpeed;
ivashkevich 18.05.2020 в 06:08

Некорректно завязываться на индекс. На входе может быть вот такой массив:

$carsSpeeds = [
    95,
    140,
    77 => 78
];

Есть идеи, как решить такую проблему?

happyviolence Patron 18.05.2020 в 19:28

блин, точно! Всё гениальное просто! Артём, очень сильно извиняюсь, что сначала выкладываю задачу, а потом лезу в комменты и вижу, что Вы уже указывали на аналогичную ошибку! Исправляюсь:

$carsSpeeds = [
    95,
    140,
    78,
    20
];
$sumOfSpeed = 0;
$amountOfCars = 0;

foreach ($carsSpeeds as $index => $speed) {
    $sumOfSpeed += $speed;
    $amountOfCars++;
}

$averageSpeed = $sumOfSpeed / $amountOfCars;
echo $averageSpeed;
ivashkevich 19.05.2020 в 06:09

сначала выкладываю задачу, а потом лезу в комменты и вижу

Это нормальный подход, не надо ничего менять) На ошибках учатся

happyviolence Patron 19.05.2020 в 21:44

хорошо, спасибо) значит буду учиться)

vqp999qpv@mail.ru 29.05.2020 в 15:47
<?php
$HitsPowers = [
    903,
    815,
    781
];
$party = 0;
$sumOfHit = 0;

foreach ($HitsPowers as $hitPower) {
    $party += 1;
    $sumOfHit += $hitPower;
}

$averageHit = $sumOfHit / $party;
echo 'Средняя скорость удара равна: ' . $averageHit;
ivashkevich 01.06.2020 в 07:23

Имена переменных с маленькой буквы пишутся.

Вместо

$party += 1;

стоит написать

$party++;
vqp999qpv@mail.ru 01.06.2020 в 10:10

Хорошо, подкорректирую, спасибо!)

omeluhin89 03.06.2020 в 15:56

В видео нет звука(

ivashkevich 03.06.2020 в 19:05

Проверьте слух, или колонки, или что там у вас) Всё ок с видео

omeluhin89 06.06.2020 в 15:33

Прошу прощения, странно у меня во всех уроках был звук, а в этом не было. Возможно ПК решил по издеваться)) Сейчас все ок.

ivashkevich 07.06.2020 в 12:59

Хорошо, что не пришлось ничего чинить)

omeluhin89 17.06.2020 в 13:23
<?php
$carsSpeed = [
    95,
    140,
    78,
];
$sumCarsOfSpeed = 0;
$countArray = 0;
foreach ($carsSpeed as $carSpeed) {
    $sumCarsOfSpeed += $carSpeed;
    $countArray++;
}
$averageCarsOfSpeed = $sumCarsOfSpeed / $countArray;

фикс по комментариям

ivashkevich 18.06.2020 в 09:34

Переменную $sumCarsOfSpeed нужно определить до цикла, иначе будет ошибка уровня notice. Включите показ всех ошибок в php.ini

Закрывающий тег ?> в конце файла не нужен.

stg1981.29@gmail.com Patron 28.06.2020 в 14:39

привет!

<?php
$carsSpeeds = [
    95,
    140,
    78,
    60,
    110
];
$carsSpeedsSum = 0;
$counter = 0;
foreach ($carsSpeeds as $speed) {
    $carsSpeedsSum += $speed;
    $counter += 1;
    $average = $carsSpeedsSum / $counter;
}

echo $average;
ivashkevich 29.06.2020 в 11:06

Отлично! Для увеличения на единицу принято использовать оператор инкремента:

$counter++
Логические задачи с собеседований