Этот урок набрал набрал достаточно большое количество
комментариев и дальнейшее его комментирование отключено.
Если вы хотели убедиться в правильности выполнения ДЗ или у вас возник вопрос по уроку,
посмотрите ранее добавленные комментарии, кликнув по кнопке ниже. Скорее всего вы найдете там то, что искали.
Если это не помогло - задайте вопрос в чате в телеграме - https://t.me/php_zone
Мне кажется здесь не нужны двойные ковычки, если код написан таким способом, читал что двойные ковычки работают медленнее на 30-40%, а если уж двойные ставить, то можно в них же и определять переменную. Или это не корректно?
Они работают медленнее именно из-за того что внутри двойных кавычек происходит поиск переменных, а внутри одинарных - нет.
Простой пример:
$x = 2;
echo "x = $x"; //выведет x = 2
echo 'x = $x'; //выведет x = $x
Зависит от ситуации, если в строке нужно вывести переменную - то можно использовать двойные. Если же это просто строка - то только одинарные, чтобы не тратить ресурсы на поиск переменных в такой строке.
echo "Замена а и b с помошью переменной с<br/>";
$a=3;
$b=5;
echo "a=$a b=$b<br/>";
$c=$a;
$a=$b;
$b=$c;
echo "a=$a b=$b<br/>";
echo "Замена a и b без помощи переменных<br>";
$a=3;
$b=5;
echo "a=$a b=$b<br>";
$a=$a*$b;
$b=$a/$b;
$a=$a/$b;
echo "a=$a b=$b";
Зачем что-то суммировать и вычитать? Можно просто временно положить в $c значение $a, в $a присвоить $b, в $b положить значение из $c.
Сложение и вычитание могут понадобиться для второй задачи, но не для первой. Это лишнее усложнение.
P.S. в HTML по-правильному после тега <h1> должен идти <h2>, а "внутри" уже <h3>. То есть должен соблюдаться порядок вложенности. Можете почитать об этом в уроке про заголовки.
Смотрите. В начале мы имеем 2 переменные - $a и $b. Мы должны написать какой-то код, который поменяет значения в этих переменных местами. То есть должно получиться вот так:
<?php
$a = 5;
$b = 9;
// ... здесь нужно придумать что написать
echo $a; // выведет 9
echo $b; // выведет 5
При этом код должен получиться таким, чтобы начальные значения можно было изменить, и это не сломало бы программу.
Ну вот, прекрасное решение! =)
Из замечаний - строки склеиваются с помощью символа "." (точка). И в некоторых местах можно было их вообще не разбивать:
<?php
// Начальные значения переменных
$a = 3;
$b = 5;
// Вывод
echo "Пока что переменная А равняется $a, а переменная B равняется $b.<br>";
// Если мы хотим изменить переменную, то сделаем так:
$c = $a + $b;
$a = $c - $a;
$b = $c - $b;
echo "Теперь переменная А равняется $a, а переменная B равняется $b.";
//Если мы хотим изменить переменную без использования переменной С, то сделаем так:
$a = $b + $a;
$b = $a - $b;
$a = $a - $b;
echo "Теперь переменная А равняется $a, а переменная B равняется $b.";
В первом варианте конечно можно и так, но почему-то первое что хочется сделать это сложить или вычесть =))
// Если мы хотим изменить переменную, то сделаем так:
$c = $a;
$a = $b;
$b = $c;
echo "Теперь переменная А равняется $a, а переменная B равняется $b.";
<?php
$a = 3;
$b = 5;
echo "Исходные данные для первой задачи a = ".$a." b = ".$b.'<br>';
$c = $a;
$a = $b;
$b = $c;
echo "Результат решения a = ".$a." b = ".$b.'<br>';
$a = 2;
$b = 7;
echo "Исходные данные для второй задачи a = ".$a." b = ".$b.'<br>';
$b = $a + $b;
$a = $b - $a;
$b = $b - $a;
echo "Результат решения a = ".$a." b = ".$b.'<br>';
echo "P.S: чужие решения рекомендую спрятать за спойлер";
Имя переменной должно начинаться с маленькой буквы, а следующие слова, содержащиеся в её имени, должны начинаться с большой буквы.
...Давно такие правила? ...
а как же $_ ?
Ну вообще в названиях переменных можно использовать нижний прочерк, и даже цифры (только цифра не должна быть первой). И это не то чтобы правила, это просто стандарты, ничего не мешает их не придерживаться, но так можно усложнить жизнь себе, а тем более другим людям, если будешь с ними работать над проектом. Собственно для этого их и придумали. И на счет "$_", в этом плане я точно ничего сказать не могу, но вроде бы такое именование могут использовать в каких нибудь системных переменных (например $_POST, $_GET, при работе с формами и не только), или как там они называются, сам толком не знаю что это, лишь приблизительно догадываюсь. А начинаются они с нижнего прочерка, дабы с меньшей вероятностью программист мог случайно ее переопределить (по крайней мере мне так кажется, если что гугл всегда в помощь!:) ).
Я не совсем понял как без третей переменной это сделать, поэтому схитрил и подсмотрел комментарии. Я думал что если переопределить одну переменную, то потеряется информация о ней, но не подумал, что в нее как раз можно записать информацию двух переменных, которую легко извлечь с помощью второй переменной, она выступает чем то вроде "ключа". Я просто был удивлен насколько это простое и гениальное решение. А я думал, что хорошо знаю математику, хехе
Для чего вы используете третью переменную и проделываете арифметические операции? Можно ведь просто в нее положить значение одной из переменных. Именно вторым способом и нужно было делать с помощью третьей переменной.
Во втором способе код не должен ломаться при изменении на входе $a и $b. Для этого вместо числа 2 достаточно будет использовать значение одной из переменных. Посмотрите решение выше.
<?php
echo 'Задание 1 : поменять значения переменных а и в при помощи третей переменной с'.'<br>'.'<br>';
// начальные значения переменных
$a = 3;
$b = 5;
echo ' значение переменной а = '.$a.'<br>';
echo ' значение переменной b = '.$b.'<br>'.'<br>';
// значения переменных в итоге
$c = $b;
$b = $a;
$a = $c;
echo 'переменная a = '.$a.'<br>';
echo 'переменная b = '.$b.'<br>'.'<br>';
echo 'Задание 2 : поменять значения переменных а и в без использования переменной с'.'<br>'.'<br>';
// начальные значения переменных
$a = 3;
$b = 5;
echo ' значение переменной а = '.$a.'<br>';
echo ' значение переменной b = '.$b.'<br>'.'<br>';
// вариант 1
echo ' вариант 1:'.'<br>';
$b = $a + $b;
$a =$b - $a;
$b = $b - $a;
// значения переменных в итоге
echo 'переменная a = '.$a.'<br>';
echo 'переменная b = '.$b.'<br>'.'<br>';
// вариант 2
// начальные значения переменных
$a = 3;
$b = 5;
echo ' вариант 2:'.'<br>';
$a = $b - $a;
$b =$b - $a;
$a = $b + $a;
// значения переменных в итоге
echo 'переменная a = '.$a.'<br>';
echo 'переменная b = '.$b.'<br>';
/*Присвойте переменным $a и $b значения 3 и 5 соответственно. С помощью третьей переменной $c поменяйте значения этих переменных (в $a будет 5, а в $b будет 3)*/
$a = 3;
$b = 5;
echo $a . "<br>";
echo $b . "<br>";
$c= $a + $b;
echo $c . "<br>";
$a = $c - $a;
$b = $c - $b;
echo $a . "<br>";
echo $b . "<br>";
/*Проделайте тоже самое, но без использования третьей переменной, при условии что в качестве значений могут быть только целые числа*/
$a = $b + $a;
$b = $a - $b;
$a = $a - $b;
Неправильно, вы выводите текст, что якобы значение переменной а равно ... $b! Здесь должно выводиться значение переменной $a.
Значения ни в первом, ни во втором задании не изменились.
$a=3;
$b=5;
$c=$a;
$a=$b;
$b=$c;
echo 'Первый вариант: <br>';
echo '$a=', $a, '<br>';
echo '$b=', $b, '<br>';
Кажется поняла. Такое простое с виду задание, а такие сложности... Что дальше будет!
Прочитал комментарии и понял, что от меня требовалось. Слишком сложно для моего ореха) Все последующие уроки вообще черт ногу сломит, но надеюсь пойму)))
<html>
<head>
<title>Меняем значение перемнных</title>
</head>
<body>
<h1>Изменение значения переменных между собой</h1>
<h2>С использованием переменной С</h2>
<?php
$a = 3;
$b = 5;
echo "a = $a<br>" , "b = $b<br>";
$c = $b;
$b = $a;
echo "a = $c<br>" , "b = $b<br><hr>";
echo "<h2>Без использования переменной С</h2>";
$a = 3;
$b = 5;
echo "a = $a<br>" , "b = $b<br>";
$a = $a * $b;
$b = $a / $b;
$a = $a / $b;
echo "a = $a<br>" , "b = $b";
?>
</body>
</html>
у меня вот так получилось
$a=3;
$b=5;
$c=$a+$b;//8
$a=$c-$a;//5
$b=$c-$b;//3
Без третьей переменной
$a=3;
$b=5;
$a=$a+$b-$a;//5
$b=$a+$b-$b;//3
Скажите пожалуйста можно ли так делать и правильно ли?
Если поменять исходные числа на другие, то ничего не будет работать. По сути это тоже самое, что просто присвоить переменным новые значения, подогнанные под ответ.
Снова неверно. Первое условие: Код должен получиться таким, чтобы при изменении начальных значений переменных, он продолжал работать.
У вас если 3 и 5 заменить на 5 и 10 ничего не будет работать. И там не нужна никакая арифметика.
Присвойте переменным $a и $b значения 3 и 5 соответственно. С помощью третьей переменной $c поменяйте значения этих переменных (в $a будет 5, а в $b будет 3) Ответ:
Привет! А почему у тебя Notice выводится в таком необычном виде (много различных данных и все цветное), у меня просто черными буквами: Notice: Undefined variable: Y in F:\OSpanel\путь... on line 9
Полный бред) перечитайте задание. В конце переменные должны поменяться значениями. У вас же они имеют одинаковое значение. А в переменной $c вообще бесполезная строка.
В целом всё хорошо, но в решении без третьей переменной лишние действия. Достаточно сумму переменных присвоить только одной из переменных. И затем всего 2 шага.
Во втором задании не выполняется самое главное условие ДЗ: Код должен получиться таким, чтобы при изменении начальных значений переменных, он продолжал работать.
Если вместо $a я изначально поставлю 10, то всё сломается. А алгоритм должен продолжать работать.
И не надо здесь вёрстки пока, пишите только PHP-код.
Не понял, как сделать второе задание и решил его загуглить.
Как должен работать этот пример, я не очень понимаю, потому что для меня он выглядит так:
$v = $v + +(зачем второй плюс)$d - $d =(всм равно) $v
Почитайте о приоритетах операторов и всё поймёте. А более простое решение можете найти в комментариях к этому уроку от других учеников. Советую ознакомиться. Для конкатенации используется точка, а не запятая!
Первое задание делается без всякой арифметики. Представьте, что у вас есть 3 стакана. В одном - молоко, во втором - сок, третий - пуст. С помощью третьего вам нужно поменять содержимое первого и второго стаканов.
p.s. Первое задание сначала сделал с вычислениями, но потом увидел в комментариях что нужно без них, особенно помог комментарий со стаканами, но пришлось подглядеть, не сразу понял.
Привет! Сначала задача ввела в ступор и я начал колдовать какие то арифметические схемы, как оказалось все проще (честно поглядел в коменты, но не запоминал и не копировал, просто осмотрелся, потом пошел попил чай и забыл что смотрел =)) а потом сел кодить свое и вот, что получилось с раза 50-го) может я дурачок? =))) было сложно но прикольно и я понял что делаю)))
<?php
echo 'Вывод переменных a и b <br>';
$a = 3;
$b = 5;
echo $a;
echo '<br>';
echo $b;
echo '<br><br>Вывод переменных a и b не используя доп переменную c<br>';
$a = 3;
$b = 5;
$a = $a + 2;
$b = $b - 2;
echo $a;
echo '<br>';
echo $b;
echo '<br><br>Вывод переменных a и b используя доп переменную c<br>';
$a = 3;
$b = 5;
$c = $a;
$a = $b;
$b = $c;
echo $a;
echo '<br>';
echo $b;
Проделайте тоже самое, но без использования третьей переменной, при условии что в качестве значений могут быть только целые числа (каюсь не разглядел слова о значении и не так понял задание).
echo 'Вывод переменных a и b не используя доп переменную c<br>';
$a = 3;
$b = 5;
$a = $a + $b;
$b = $a - $b;
$a = $a - $b;
echo $a;
echo '<br>';
echo $b;
<?php
echo 'Присвойте переменным $a и $b значения 3 и 5 соответственно.<br> С помощью третьей переменной $c поменяйте значения этих переменных (в $a будет 5, а в $b будет 3)
<br>Проделайте тоже самое, но без использования третьей переменной, при условии что в качестве значений могут быть только целые числа <br>';
echo 'Часть1. Задаем a и b <br>';
//Присвойте переменным $a и $b значения 3 и 5 соответственно.
$a=5;
$b=3;
//выводим
echo 'a='.$a.'<br>';
echo 'b='.$b.'<br>';
//С помощью третьей переменной $c поменяйте значения этих переменных (в $a будет 5, а в $b будет 3)
echo 'Меняем a и b через c <br>';
$c=$b;
$b=$a;
$a=$c;
echo 'a='.$a.'<br>';
echo 'b='.$b.'<br>';
//Проделайте тоже самое, но без использования третьей переменной, при условии что в качестве значений могут быть только целые числа
echo 'Часть2. Задаем a и b <br>';
//Присвойте переменным $a и $b значения 3 и 5 соответственно.
$a=5;
$b=3;
//выводим
echo 'a='.$a.'<br>';
echo 'b='.$b.'<br>';
echo 'Меняем a и b без c <br>';
$b=$a+$b;
$a=$b-$a;
$b=$b-$a;
echo 'a='.$a.'<br>';
echo 'b='.$b.'<br>';
В задаче с третьей переменной не нужно никакой арифметики. Представьте что у вас есть 2 стакана - один с водой, другой с молоком. С помощью третьего стакана поменяйте содержимое первых двух. Теперь тоже самое в коде сделайте)
В задаче без третьей переменной не выполнено самое первое условие домашки.
<?php
echo '1) Решение с переменной:', '<p>';
echo 'Дано: ', '<br>';
echo 'a = ',$a = 3, '<br>';
echo 'b = ',$b = 5, '<br>';
echo 'c = ',$c = 8, '<br>';
echo '<p>';
echo 'Решение: ', '<p>';
echo 'а меняем на b, за счёт вычета из переменной c переменной a, и получаем: a = ', $a = $c - $a, '<br>';
echo 'b меняем на a, путём вычета из переменной c переменной b, и получаем: b = ', $b = $c - $b, '<br>';
echo '<p>';
echo '2) Решение без переменной:', '<p>';
echo 'Дано: ', '<p>';
echo 'a = ',$a = 3, '<br>';
echo 'b = ',$b = 5, '<br>';
echo '<p>';
echo 'Присвоим переменной a значение 15, путём перемножения a и b: теперь a = ', $a = $a * $b, '<br>';
echo 'Присвоим переменной b предыдущее значение a = 3, путём деления текущего значения a = 15 на значение переменной b = 5: теперь b = ', $b = $a / $b, '<br>';
echo 'Присвоим переменной a предыдущее значение b = 5, за счёт деления текущего значения a = 15 на новое значение b = 3: теперь a = ', $a = $a / $b, '<br>';
<?php
echo "Решить с использованием третьей переменной","<br/>";
$a=98;
$b=33;
$c=$a*$a;
$a=$b+$a;
$b=$c-$b;
echo $c,"<br>",$a,"<br>",$b,"<br/>";
echo "Решить без использования третьей переменной","<br/>";
$a=250;
$b=700;
$a=$a+$b;
$b=$b-$a;
echo $a,"<br>",$b;
В решении с третьей переменной не нужно никакой арифметики. Представьте что у вас есть 3 стакана. В одном молоко, в другом вода, третий пустой. Поменяйте содержимое первых двух, используя третий. То же самое и здесь.
В решении с третьей переменной не нужно никакой арифметики. Представьте что у вас есть 3 стакана. В одном молоко, в другом вода, третий пустой. Поменяйте содержимое первых двух, используя третий. То же самое и здесь.
Доброго дня. Спасибо за курс. Маленькая неточность: в рекомендуемом способе именования переменных используется отдельная разновидность СamelCase - lowerСamelCase :-)
Оформляйте код (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте, пожалуйста. А потом ответьте мне на этот комментарий.
В решении с третьей переменной не нужно никакой арифметики. Представьте что у вас есть 3 стакана. В одном молоко, в другом вода, третий пустой. Поменяйте содержимое первых двух, используя третий. То же самое и здесь.
В решении с третьей переменной не нужно никакой арифметики. Представьте что у вас есть 3 стакана. В одном молоко, в другом вода, третий пустой. Поменяйте содержимое первых двух, используя третий. То же самое и здесь.
В решении с третьей переменной не нужно никакой арифметики. Представьте что у вас есть 3 стакана. В одном молоко, в другом вода, третий пустой. Поменяйте содержимое первых двух, используя третий. То же самое и здесь.
И не нужно пока никаких тегов. Только логика и вывод, если требуется.
В решении с третьей переменной не нужно никакой арифметики. Представьте что у вас есть 3 стакана. В одном молоко, в другом вода, третий пустой. Поменяйте содержимое первых двух, используя третий. То же самое и здесь.
Во втором решении опять значения не поменялись. Вы просто вывели результат после первого изменения.
Но не пойму почему у меня 11 в итоге, ведь по условию 3 должно получиться ведь и $b= 5 и $a вывел как равное 5, в чем ошибка? А всё вьехал я сумму в скобки не поставил
Оформляйте код (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте, пожалуйста. А потом ответьте мне на этот комментарий. Проверю домашку после этого.
1 Задание.
$а=3;
$b=5;
$c = $a;
$a = $b;
$b = $c;
Можно сказать переписала, ради интереса пошарила в интернете и поняла, что в общем то, это единственный способ, ну если только не хочешь усложнить себе все.
2 задание
$a = 1;
$b = 2;
list($a, $b) = [$b, $a];
В этом задании так же как и в прошлом, решила поподробнее изучить ( может и не стоит конечно) и наткнулась на List. Не уверенна в правильности выполнения задания....
Оформляйте код (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте, пожалуйста. А потом ответьте мне на этот комментарий. Проверю домашку после этого.
Можно сказать переписала, ради интереса пошарила в интернете и поняла, что в общем то, это единственный способ, ну если только не хочешь усложнить себе все.
2 задание
$a=3;
$b=5;
list($a,$b)=[$b, $a]
В этом задании так же как и в прошлом, решила поподробнее изучить ( может и не стоит конечно) и наткнулась на List. Не уверенна в правильности выполнения задания....
<?php
echo "Задание:Присвойте переменным $a и $b значения 3 и 5 соответственно.
С помощью третьей переменной $c поменяйте значения этих переменных (в $a будет 5, а в $b будет 3)
Проделайте тоже самое, но без использования третьей переменной, при условии что в качестве значений могут быть только целые числа <hr> ";
$a = 3; // нужно 5;
$b = 5; // нужно 3;
echo "Переменная a = $a <br>";
echo "Переменная b = $b <br>";
$c = $a; // c = 3;
$a = $b; // a = 5;
$b = $c;
echo "Заменяем значения a и b с помощью переменной <strong> c </strong> <br>";
echo "Переменная a = $a <br>";
echo "Переменная b = $b";
echo "<hr>";
echo "Решение без переменной <strong> c </strong> <br>";
$a = 3;
$b = 5;
$a = $a + $b; // a = 8;
$b = $a - $b; // b = 3;
$a = $a - $b; // a = 5;
echo "Переменная а = $a <br>";
echo "Переменная b = $b ";
?>
Не совсем корректно написано задание. Я думал, что нужно чтоб всегда получались значения переменной а равное 5, а переменной б равное 3.
Судя по результату стоило бы написать что в результате нужно получить значение переменной а равное значению переменной б и значение б равное значению а.
Да и еще не сказано ни слова как вывести на экран строку типа: "имя переменной = сама переменная"
Думал сначала что будет так написано: 'a =' $a;, но выдает ошибку.
Погуглив нашел, что правильно так: 'a = ' .$a; - т.е. чтоб точку перед переменной, насколько я понял, если ее не поставить, программа считает, что ты объявил новую переменную, если поставил, то берется старая переменная.
На счет корректности - спасибо за замечание, сегодня подумаю как лучше написать.
Для вывода отладочной информации достаточно было использовать var_dump().
P.S. Извините за долгий ответ, дальше будет быстрее.
Как-то материал не тянет для новичка. Как и комментарии.
Первое что не ясно - может ли переменная принимать значения равные себе же с арифметическим действием, или нет.
То есть $a = $a + 2; будет работать или нет?
Домашнее задание не сможет нормально выполнить человек, который впервые сталкивается с PHP.
Нужно оформить код в комментарии (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте ваш комментарий, пожалуйста. А потом ответьте мне на этот комментарий. После этого проверю вашу домашнюю работу.
В решении с третьей переменной не нужно никакой арифметики. Представьте что у вас есть 3 стакана. В одном молоко, в другом вода, третий пустой. Поменяйте содержимое первых двух, используя третий. То же самое и здесь.
Отлично. Но нужно оформить код в комментарии (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте ваш комментарий, пожалуйста.
<?php
$var = 2 + 3;
echo "Значение параметра $var";
?>
<br>
<br>
<?php
//Начальные значения переменных
$a = 3;
$b = 2;
//Надо поменять значение переменных a и b местами. Вариант №1
echo "Переменная А равняется $a, а переменная B равняется $b<br><br>";
$c=$a+$b;
$b=$c-$b;
$a=$c-$a;
echo "Теперь: переменная А равняется $a, а переменная B равняется $b<br>";
?>
Отлично! А ещё можно за счёт сложения/вычитания решить задачу:
И так тоже можно =)
Отличный вариант домашнего задания!
Мне кажется здесь не нужны двойные ковычки, если код написан таким способом, читал что двойные ковычки работают медленнее на 30-40%, а если уж двойные ставить, то можно в них же и определять переменную. Или это не корректно?
Они работают медленнее именно из-за того что внутри двойных кавычек происходит поиск переменных, а внутри одинарных - нет.
Простой пример:
Зависит от ситуации, если в строке нужно вывести переменную - то можно использовать двойные. Если же это просто строка - то только одинарные, чтобы не тратить ресурсы на поиск переменных в такой строке.
Вот моё решение
Отлично :)
Верно! =)
На экране:
Начальные значения
a=2 b=5
Конечные значения
a=5 b=2
Очень хорошо, этот вариант еще не предлагали)
Зачем что-то суммировать и вычитать? Можно просто временно положить в $c значение $a, в $a присвоить $b, в $b положить значение из $c.
Сложение и вычитание могут понадобиться для второй задачи, но не для первой. Это лишнее усложнение.
P.S. в HTML по-правильному после тега <h1> должен идти <h2>, а "внутри" уже <h3>. То есть должен соблюдаться порядок вложенности. Можете почитать об этом в уроке про заголовки.
Просто меняем местами, верно? Не вычисляем )
Отлично, что сказать :)
Я изучил д/з других пользователей и решил вот так:
Ну вот, прекрасное решение!=)
Через переменную
Без переменной
P.S: В начале каждого кода <br> делал одном файле :)
Отлично)
После того как выполнила, посмотрела, что прислали другие. Наверное, что-то я сделала не так, но все же пришлю свой вариант, чтобы вы побъяснили.
Смотрите. В начале мы имеем 2 переменные - $a и $b. Мы должны написать какой-то код, который поменяет значения в этих переменных местами. То есть должно получиться вот так:
При этом код должен получиться таким, чтобы начальные значения можно было изменить, и это не сломало бы программу.
ага, думаю поняла )) я не думала, что переменной можно присвоить выражение, которое содержит ее же. попытка номер 2 ))
Ну вот, прекрасное решение! =)
Из замечаний - строки склеиваются с помощью символа "." (точка). И в некоторых местах можно было их вообще не разбивать:
Спасибо за урок:)
В первом варианте конечно можно и так, но почему-то первое что хочется сделать это сложить или вычесть =))
Отлично! Именно в таком варианте и ожидалось =)
Отлично!
Хорошо, но скобки - лишнее.
ДЗ
Отлично!
Отлично!
Отлично!
получилось вот так..
понравилось решение:
Отлично! Да, решение изящное)
Супер!
Хорошо. В первом случае не нужно присваивать изначально в $c 0
Супер!
Ок. А второе?
Отлично!
Ну вообще в названиях переменных можно использовать нижний прочерк, и даже цифры (только цифра не должна быть первой). И это не то чтобы правила, это просто стандарты, ничего не мешает их не придерживаться, но так можно усложнить жизнь себе, а тем более другим людям, если будешь с ними работать над проектом. Собственно для этого их и придумали. И на счет "$_", в этом плане я точно ничего сказать не могу, но вроде бы такое именование могут использовать в каких нибудь системных переменных (например $_POST, $_GET, при работе с формами и не только), или как там они называются, сам толком не знаю что это, лишь приблизительно догадываюсь. А начинаются они с нижнего прочерка, дабы с меньшей вероятностью программист мог случайно ее переопределить (по крайней мере мне так кажется, если что гугл всегда в помощь!:) ).
Давно. Так называются только служебные переменные, встроенные в PHP.
Я не совсем понял как без третей переменной это сделать, поэтому схитрил и подсмотрел комментарии. Я думал что если переопределить одну переменную, то потеряется информация о ней, но не подумал, что в нее как раз можно записать информацию двух переменных, которую легко извлечь с помощью второй переменной, она выступает чем то вроде "ключа". Я просто был удивлен насколько это простое и гениальное решение. А я думал, что хорошо знаю математику, хехе
Да, решение простое =)
Для чего вы используете третью переменную и проделываете арифметические операции? Можно ведь просто в нее положить значение одной из переменных.
Я так понимаю можно умножать еще (делить, вычитать), да?
Так же тоже работает? То есть можно спрятать в третью переменную изначальное значение, а затем изменить его, да?
Для чего вы используете третью переменную и проделываете арифметические операции? Можно ведь просто в нее положить значение одной из переменных. Именно вторым способом и нужно было делать с помощью третьей переменной.
ааа... что-то я тупанула с заданием.
вот ответ на второе:
$a = 3;
$b = 5;
$a = $a + $b;
$b = $a - $b;
$a = $a - $b;
echo $a, $b;
Отлично!
Немного странно вышел второй способ, но в описании не было указано как именно нужно присвоить значения. Так что, вроде, законно)
Во втором способе код не должен ломаться при изменении на входе $a и $b. Для этого вместо числа 2 достаточно будет использовать значение одной из переменных. Посмотрите решение выше.
Второе задание - ок. Первое - усложнено. Можно проще:
Отлично!
Ха! Посмотрел потом в комментариях выше, переназначить с помощью третьей переменной выглядит изящнее, чем с арифметическими действиями. Класс! )))
Конечно, не стоит лишний раз усложнять. Нужно обходиться без математики, там где это возможно, используя простую логику.
Отлично
Первое решение какое-то сложное. Можно просто:
Отлично. Закрывающий тег не нужен, если код не находится внутри HTML-кода
Отлично!
Первое решение какое-то сложное. Можно просто:
После операций в переменных должны поменяться значения.
Первое задание делается проще, взгляните на решения выше.
Первое переделала. Почитала комментарии и стало ясно, что не так поняла задание. В обоих задания переменные поменяли значение.
Неправильно, вы выводите текст, что якобы значение переменной а равно ... $b! Здесь должно выводиться значение переменной $a.
Значения ни в первом, ни во втором задании не изменились.
Теперь первое ок
Хорошо
Просто $c писать не надо - это бессмысленно.
Первое решение какое-то сложное. Можно просто:
Получилось)))) , но думал долго...
Отлично! Закрывающий тег в конце не нужен
А почему не нужен?
https://php.net/basic-syntax.instruction-separation
Код должен получиться таким, чтобы при изменении начальных значений переменных он продолжал работать.
Прочитал комментарии и понял, что от меня требовалось. Слишком сложно для моего ореха) Все последующие уроки вообще черт ногу сломит, но надеюсь пойму)))
Хорошо. Значит просто нужно подольше разбираться. Со временем разгонитесь, не переживайте.
Второе решение неправильное. В результате в $a будет 5, а в переменной $b тоже будет 5. Ознакомьтесь с другими решениями выше.
можно еще использовать оператор сдвига:
Если поменять исходные числа на другие, то ничего не будет работать. По сути это тоже самое, что просто присвоить переменным новые значения, подогнанные под ответ.
да, все верно, надоели просто арифметические действия, решила похардкодить)
А чтобы, например, с переменными работало, я применила оператор XOR:
А вы лёгких путей не ищете :)
мне и психолог так говорит )))
<?php
// Решение с использованием переменной
$a = 3;
$b = 5;
$c = $a;
$a = $b;
$b = $c;
//Решение без использования переменной
$a = 3;
$b = 5;
$arr = array($a , $b);
$arr = array($b , $a);
Ок. Только используйте новый синтаксис для массивов - []
Что-то сложно. Ознакомьтесь с решениями выше
Интересное решение, можете его прокомментировать или указать в каком уроке раскрывается данный подход
P.S.думаю здесь многие задавались таким вопросом
Это не тема текущего уровня. Массивы через несколько уроков будут.
Не выполнено главное условие:
с начала нарешал так, что с изменением переменных все летело в известном направлении, потом коменты почитал и понял, что лох.
Отлично
Решение с использованием третьей переменной не требует математических операций.
Самое главное условие не выполняется: Код должен получиться таким, чтобы при изменении начальных значений переменных, он продолжал работать.
Отлично!
ничего нового)
В решении с переменной $c не выполнено первое условие домашнего задания.
невнимательно делал
Снова неверно. Первое условие:
Код должен получиться таким, чтобы при изменении начальных значений переменных, он продолжал работать.
У вас если 3 и 5 заменить на 5 и 10 ничего не будет работать. И там не нужна никакая арифметика.
Отлично!
Присвойте переменным $a и $b значения 3 и 5 соответственно. С помощью третьей переменной $c поменяйте значения этих переменных (в $a будет 5, а в $b будет 3)
Ответ:
Для чего тут арифметика? Просто положите одну из переменных в $c, и поменяйте с её помощью.
Проделайте тоже самое, но без использования третьей переменной, при условии что в качестве значений могут быть только целые числа
Ответ:
Отлично
Отлично
Супер
Попробовал второе задание решить немного иначе)
А вы знаете толк в извращениях) ок)
Надеюсь все верно
Имена переменных в PHP всегда должны писаться с маленькой буквы.
Ок
Через переменную сделал так:
Код должен работать, даже если начальные значения изменятся. В алгоритме не должно быть чисел.
Без переменной
Код должен работать, даже если начальные значения изменятся. В алгоритме не должно быть чисел.
А зачем с третьей переменной математика?
Отлично
Ок. Не надо пока усложнять код домашних заданий. У вас ещё будет возможность проявить креатив)
Супер!
В задаче с третьей переменной не нужнк арифметика. Посмотри предыдущие решения.
Отлично
Что-то, совсем не относящееся к дз.
Привет! А почему у тебя Notice выводится в таком необычном виде (много различных данных и все цветное), у меня просто черными буквами: Notice: Undefined variable: Y in F:\OSpanel\путь... on line 9
А это мы потом xdebug настроим через несколько уроков и у тебя такие же будут.
Решение с использованием переменной слишком усложнено. Посмотрите другие решения, всё гораздо проще.
Должны измениться значения переменных. А не вывести их в другом порядке. Оформление здесь не нужно.
понял, сейчас переделаю
Отлично
Отлично!
Это вообще про что? Перечитайте ДЗ.
Отлично
Решение не выполняет главного условия задачи. При изменении начальных значений на 2 и 5 код перестанет работать.
При использовании третьей переменной не нужно никаких арифметических действий. Используйте третью переменную как временное хранилище.
решение с переменной
и без переменной
Решение с использованием третьей переменной делается гораздо проще. Не понимаю, зачем все усложняют
Супер!
Отлично. А без третьей переменной?
Закрывающий тег ?> не нужен
поправил:)
С переменной не нужно никакой арифметики. Посмотрите другие решения, всё проще.
Теперь отлично
Отлично
В решении с использованием переменной не нужно никакой арифметики. Посмотрите другие комментарии.
Отлично!
Во-первых, в данном задании ни к чему было применять HTML. Во-вторых, должны измениться сами значения переменных.
Полный бред) перечитайте задание. В конце переменные должны поменяться значениями. У вас же они имеют одинаковое значение. А в переменной $c вообще бесполезная строка.
Во втором заданий у меня так получилось,ничего?
Код ведь абсолютно нерабочий. Зачем вы его скинули на проверку?
Отлично!
В целом всё хорошо, но в решении без третьей переменной лишние действия. Достаточно сумму переменных присвоить только одной из переменных. И затем всего 2 шага.
Супер! Закрывающий тег ?> здесь не нужен
Супер
Во втором задании не выполняется самое главное условие ДЗ: Код должен получиться таким, чтобы при изменении начальных значений переменных, он продолжал работать.
Если вместо $a я изначально поставлю 10, то всё сломается. А алгоритм должен продолжать работать.
И не надо здесь вёрстки пока, пишите только PHP-код.
Понял, спасибо
Пожалуйста. Второе задание будете исправлять?
Отлично. Не нужно пока усложнять код вёрсткой. Пишите минимально необходимый алгоритм, описанный в ДЗ.
Такого будет достаточно
Бред. Значения переменных не изменились.
Это прекрасное отношение к людям, которые пришли к тебе чему-то научиться...
Сорян если обидел этим словом, для меня оно не несёт чего-то плохого, ну бред и бред, что с него взять :D
Теперь отлично
Не понял, как сделать второе задание и решил его загуглить.
Как должен работать этот пример, я не очень понимаю, потому что для меня он выглядит так:
$v = $v + +(зачем второй плюс)$d - $d =(всм равно) $v
Почитайте о приоритетах операторов и всё поймёте. А более простое решение можете найти в комментариях к этому уроку от других учеников. Советую ознакомиться. Для конкатенации используется точка, а не запятая!
Отлично
echo 'чет как то я подтупливаю маленько, но вроде получилось';
Первое задание делается без всякой арифметики. Представьте, что у вас есть 3 стакана. В одном - молоко, во втором - сок, третий - пуст. С помощью третьего вам нужно поменять содержимое первого и второго стаканов.
Как то так.
В первом задании не нужно никакой арифметики
Не выполнено самое первое правило: Код должен получиться таким, чтобы при изменении начальных значений переменных, он продолжал работать.
Отлично
Отлично. Не надо пока вёрстку, только код.
Здравствуйте.Решил показать свой вариант:
$a = 3;
$b = 5;
В решении с третьей переменной не нужно никакой арифметики
С переменной $c:
Без переменной $c:
Отлично
Отлично
С третьей переменной не нужно никаких арифметических действий. Посмотрите решения других учеников в комментариях.
Теперь норм. Только выводить значения переменных стоило все же после окончания смены значений.
p.s. Первое задание сначала сделал с вычислениями, но потом увидел в комментариях что нужно без них, особенно помог комментарий со стаканами, но пришлось подглядеть, не сразу понял.
Во втором решении значения переменных не изменились, вы только вывели результат каких-то вычислений.
Исправлено
Теперь норм. Можно не писать в следующих домашках все так детально.
Мне так гораздо проще и понятнее.
Окей
Супер!
Отлично!
Супер! А вот закрывающий тег ?> в конце файла ставить не нужно. Просьба это запомнить и в следующих домашках его не ставить.
Вот дз:
Не забывайте оформлять код, это первая кнопка в редакторе комментариев. Оформил пока за вас.
Домашка отлично сделана
Хорошо
Привет! Сначала задача ввела в ступор и я начал колдовать какие то арифметические схемы, как оказалось все проще (честно поглядел в коменты, но не запоминал и не копировал, просто осмотрелся, потом пошел попил чай и забыл что смотрел =)) а потом сел кодить свое и вот, что получилось с раза 50-го) может я дурачок? =))) было сложно но прикольно и я понял что делаю)))
Вариант с третьей переменной ок. С двумя - не ок. Не выполнено самое первое условие.
Проделайте тоже самое, но без использования третьей переменной, при условии что в качестве значений могут быть только целые числа (каюсь не разглядел слова о значении и не так понял задание).
переписал =)
Теперь отлично
Отлично
В задаче с третьей переменной не нужно никакой арифметики. Представьте что у вас есть 2 стакана - один с водой, другой с молоком. С помощью третьего стакана поменяйте содержимое первых двух. Теперь тоже самое в коде сделайте)
В задаче без третьей переменной не выполнено самое первое условие домашки.
Отлично!
Отлично
В решении с переменной не нужно никакой арифметики.
Отлично!
Отлично
Супер! Просто и понятно
Отлично! Не забывайт оформлять код. Первая кнопка в редакторе комментариев.
Оба решения неверны. Перечитайте задание
Отлично!
Код рабочий, это хорошо. Но зачем столько всего наворочено лишнего?
Так гораздо проще и понятнее, учтите при решении следующих домашек это :)
Супер! Коротко и ясно
Отлично
Отлично!
Ок.
?> В конце файла не ставится
В решении с третьей переменной не нужно никакой арифметики. Представьте что у вас есть 3 стакана. В одном молоко, в другом вода, третий пустой. Поменяйте содержимое первых двух, используя третий. То же самое и здесь.
Перемудрил))
Отлично. Видимо сначала второе задание обдумывали)
Отлично!
В решении с третьей переменной не нужно никакой арифметики. Представьте что у вас есть 3 стакана. В одном молоко, в другом вода, третий пустой. Поменяйте содержимое первых двух, используя третий. То же самое и здесь.
Отлично!
$a = 3;
$b = 5;
$c = 5;
$a = $c;
$c = 3;
$b = $c;
?>
$a = 3;
$b = 5;
$a = $b;
$b = 3;
?>
Не выполнено самое первое условие домашки.
Оформляйте код (в редакторе комментариев самая первая кнопка).
Закрывающий тег ?> в конце не нужен.
Отлично
Не нужно столько писанины не по делу. Все решение укладывается в 6 строк кода. По алгоритму замечаний нет.
Закрывающий тег ?> в конце не нужен.
Отлично!
Не выполнено самое первое условие домашки.
Доброго дня. Спасибо за курс. Маленькая неточность: в рекомендуемом способе именования переменных используется отдельная разновидность СamelCase - lowerСamelCase :-)
Спасибо, поправил
Отлично
Предлагаю следующую вариацию решения с использованием XOR
Оформляйте код (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте, пожалуйста. А потом ответьте мне на этот комментарий.
О, да, так лучше. Спасибо!
Отличная домашка)
Закрывающий тег ?> в конце файла не нужен.
И отступы лишние перед echo
А для чего условие?
Результат:
Изначальная сумма
A = 3
B = 5
Новая сумма
A = 5
B = 3
Изначальная сумма
A = 3
B = 5
Новая сумма
A = 5
B = 3
Не выполнено самое первое условие домашки.
анный способ легко позволяет выполнить поставленную задачу. Почему-то, многие даже не знают, что так можно решить эту задачу.
Все хорошо, однако в 1С нет xor. Разработчики решили, что он там не нужен. Ну и бог с ним. Ре
a=3;
b=5;
a=a+b;
b=a-b;// здесь уже будет 3
a=a-b; // а теперь равно 5
Как видите, простая математика упростила нам жизнь. Ничего сложного здесь нет. К слову, так можно делать и в других языках.
Решение должно быть на языке PHP
Закрывающий тег ?> в конце файла не нужен.
В остальном - отлично
Понял, хорошо
Это что ещё за шутки?) Зачем в одну строку всё? Как это читать?
Аналогично. Оформите код как следует. И к одному уроку оставляйте один комментарий, мне так удобнее будет проверять
В решении с третьей переменной не нужно никакой арифметики. Представьте что у вас есть 3 стакана. В одном молоко, в другом вода, третий пустой. Поменяйте содержимое первых двух, используя третий. То же самое и здесь.
Интересное задание, мне понравилось! Второй пункт упражнения направляет рассуждать и вспоминать математику )
Отлично
Почему вместо чисел строки? И пробелы с двух сторон от = нужно ставить.
Отлично
В решении с третьей переменной не нужно никакой арифметики. Представьте что у вас есть 3 стакана. В одном молоко, в другом вода, третий пустой. Поменяйте содержимое первых двух, используя третий. То же самое и здесь.
Мое решение задания:
В решении с третьей переменной не нужно никакой арифметики. Представьте что у вас есть 3 стакана. В одном молоко, в другом вода, третий пустой. Поменяйте содержимое первых двух, используя третий. То же самое и здесь.
И не нужно пока никаких тегов. Только логика и вывод, если требуется.
Отлично
Значения переменных не изменились.
В решении с третьей переменной не нужно никакой арифметики. Представьте что у вас есть 3 стакана. В одном молоко, в другом вода, третий пустой. Поменяйте содержимое первых двух, используя третий. То же самое и здесь.
Во втором решении опять значения не поменялись. Вы просто вывели результат после первого изменения.
Теперь отлично
аллилуйя)))
а вот как то так можно?
Значения переменных не изменились, а это условие задачи. Так что нет
Как то так? Я подсмотрел.
Именно так. Понятно, как это работает?
Теперь то да.
Спасибо.
Не за что)
Отлично
Но не пойму почему у меня 11 в итоге, ведь по условию 3 должно получиться ведь и $b= 5 и $a вывел как равное 5, в чем ошибка? А всё вьехал я сумму в скобки не поставил
Весь этот код можно уместить в 2 раза меньше по строкам, если убрать ненужные <br>.
Второе задание не работает.
А в таком виде правильно? Я исправил последнее задание , я в условии забыл скобки поставить.
Это подгон под ответ. Не выполняется самое первое условие задачи.
К примеру на числах 8 и 6 уже не работает.
У меня такое решение
<?php
// с использованием переменной $c
$a=3;
$b=5;
$c=$a+$b;//$c = 8;
$b=$c-$b;//$b = 3;
$a= $c-$a;// $a = 5;
echo $a,'<br>', $b;
// без переменной $c;
echo '<br>';
$a = 3;
$b = 5;
$a=3+5;//$a = 8;
$b = $a-$b;// $b=3;
$a= $a-$b;
echo $a, '<br>', $b;
Оформляйте код (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте, пожалуйста. А потом ответьте мне на этот комментарий. Проверю домашку после этого.
Не нужно лепить всё в одну строку, это невозможно читать
Хорошо, допустим, я не знаю английский язык. Как мне давать осмысленные имена переменным? Тупик, получается.
google translate уже лет как 10 точно существует)
Отлично.
Закрывающий тег ?> в конце файла не нужен.
Супер!
Отлично
P.S. Очень долго мучился, чтобы заставить браузер выводить ответ для проверки)
Закрывающий тег ?> в конце файла не нужен.
1 Задание.
$а=3;
$b=5;
$c = $a;
$a = $b;
$b = $c;
Можно сказать переписала, ради интереса пошарила в интернете и поняла, что в общем то, это единственный способ, ну если только не хочешь усложнить себе все.
2 задание
$a = 1;
$b = 2;
list($a, $b) = [$b, $a];
В этом задании так же как и в прошлом, решила поподробнее изучить ( может и не стоит конечно) и наткнулась на List. Не уверенна в правильности выполнения задания....
Оформляйте код (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте, пожалуйста. А потом ответьте мне на этот комментарий. Проверю домашку после этого.
1 Задание:
Можно сказать переписала, ради интереса пошарила в интернете и поняла, что в общем то, это единственный способ, ну если только не хочешь усложнить себе все.
2 задание
В этом задании так же как и в прошлом, решила поподробнее изучить ( может и не стоит конечно) и наткнулась на List. Не уверенна в правильности выполнения задания....
Отлично, только list уже устарел, используйте следующую конструкцию:
А еще рекомендую ознакомиться с другими решениями в комментариях, можно по-другому решить
Отлично
Отлично!
Отлично! Но можно чуть проще писать? Самого кода тут не больше 5 строк для каждого из вариантов. Комментарии излишни)
Не совсем корректно написано задание. Я думал, что нужно чтоб всегда получались значения переменной а равное 5, а переменной б равное 3.
Судя по результату стоило бы написать что в результате нужно получить значение переменной а равное значению переменной б и значение б равное значению а.
Да и еще не сказано ни слова как вывести на экран строку типа: "имя переменной = сама переменная"
Думал сначала что будет так написано: 'a =' $a;, но выдает ошибку.
Погуглив нашел, что правильно так: 'a = ' .$a; - т.е. чтоб точку перед переменной, насколько я понял, если ее не поставить, программа считает, что ты объявил новую переменную, если поставил, то берется старая переменная.
На счет корректности - спасибо за замечание, сегодня подумаю как лучше написать.
Для вывода отладочной информации достаточно было использовать var_dump().
P.S. Извините за долгий ответ, дальше будет быстрее.
Супер!
Отлично
Всё хорошо. Только не нужно несколько выражений в одну строку записывать.
спасибо за совет, учту на будущее
Отлично!
Как-то материал не тянет для новичка. Как и комментарии.
Первое что не ясно - может ли переменная принимать значения равные себе же с арифметическим действием, или нет.
То есть $a = $a + 2; будет работать или нет?
Домашнее задание не сможет нормально выполнить человек, который впервые сталкивается с PHP.
Да, будет. Сначала выполняется правая часть выражения (относительно знака равно). Затем результат этого выражения будет присвоен левой части.
Отлично!
1 задача:
2 задача:
Нужно оформить код в комментарии (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте ваш комментарий, пожалуйста. А потом ответьте мне на этот комментарий. После этого проверю вашу домашнюю работу.
Отлично
Отлично
Отлично
Отлично
Отлично
Отлично
Не выполнено главное условие: Код должен получиться таким, чтобы при изменении начальных значений переменных, он продолжал работать.
Отлично
В решении с третьей переменной не нужно никакой арифметики. Представьте что у вас есть 3 стакана. В одном молоко, в другом вода, третий пустой. Поменяйте содержимое первых двух, используя третий. То же самое и здесь.
Отлично
Отлично. Но нужно оформить код в комментарии (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте ваш комментарий, пожалуйста.
Нужно оформить код. Самая первая кнопка в редакторе комментариев
Я извиняюсь, первая кнопка в редакторе комментариев? Это где? У меня VS Code...
Здесь. На сайте. По клику на карандаш возле комментария.
А понятно)) спасибо...
Отлично
А зачем здесь математические вычисления, можно просто положить значение из a или b в c