Задачки для новичков

safrash

Новичок
Задачки для новичков

При изучении языка с нуля для закрепления пройденного материала необходимо практически чего то перебрать руками. Даже если это задача по выводу какой либо строчки.
1. Приобретаешь опыт по избежанию неправильного синтаксиса.
2. Откладываются в памяти функции из мануала, которые применил.
3. Изучаешь язык "от простого к сложному".
Неправильно было бы пытаться составлять свои функции, классы, не зная, как отобразиться тот или иной символ при выводе, или как сработает цикл.
Поиск в сети в надежде найти такие упражнения меня удручил за их отсутствием, или я плохо искал. Поэтому мною принято решение при изучении темы составить пару мелких упражнений с применением функций из мануала. И по мере изучения материала усложнять их или добавлять новые. Кстати, эта методология может положить начало новому проекту, желающие - добро пожаловать. Вот одна из них:
PHP:
<title>PHP.Основы языка. Урок 13. HTML-формы.</title>
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
echo '<p><b>Введите слово длиной не более 10 символов</b>';

echo '<form name="" action="http://localhost/urok13.php" method="get">
<INPUT type="text" name="Slovo[]" value="">
<input type="submit" value="Send"><br>';

list($slovo)=$_GET['Slovo'];
$num=strlen($slovo);
		if($num<10&&$num!=0){
		echo "Вами \"$slovo\" введено правильно";
		}
			if($num>10){
			echo "\"$slovo\" имеет более 10 символов, повторите попытку";
			}
				if($num==0){
				echo "Надо написать словечко";
				}

echo '</form>';
Что скажут старожилы?
 

Фанат

oncle terrible
Команда форума
можно узнать смысл конструкции list($slovo)=$_GET['Slovo'];
и почему каждый if пишется с отступом?

-~{}~ 20.04.07 00:44:

а, понял.
а почему поле называется Slovo[]?

-~{}~ 20.04.07 00:44:

почему стоит ~E_NOTICE????
 

Vladson

Сильнобухер
>>> опыт по избежанию неправильного синтаксиса.
В данном примере пожалуй наоборот :)
 

Фанат

oncle terrible
Команда форума
плюс к тому
при выводе формы будет писать что надо написать словечко - некрасиво.
форма закрывается непонятно, где.
почему вообще закрывающий тег пишется отдельным эхом - непонятно
а в остальном - более-менее
 

safrash

Новичок
Krishna
По-моему, "урок" мало относится к HTML-формам
Здесь начинается изучение HTML-форм, предварительно пройдя материал по темам: переменные, строки и их отображение, массивы.
Фанат
а почему поле называется Slovo[]?
Здесь дается понять обучаемому, что ХТМЛ форма - это массив, где "name" - ключ(индекс), в данном случае 'Slovo', а значением элемента его будет служить значение value="", которое введет юзер.

почему стоит ~E_NOTICE????
У меня Денвер рекомендует так делать, не знаю правильно это или нет?
 

Фанат

oncle terrible
Команда форума
Здесь дается понять обучаемому, что ХТМЛ форма - это массив, где "name" - ключ(индекс), в данном случае 'Slovo', а значением элемента его будет служить значение value="", которое введет юзер.
бред какой-то.
если ключ(индекс), в данном случае 'Slovo', то почему у тебя написано не 'Slovo', а 'Slovo[]'?
почему для того, чтобы дать понять, что форма это массив, надо писать имя с квадратными скобками?
У меня Денвер рекомендует так делать, не знаю правильно это или нет?
во-первых, денвыер таких глупостей не рекомендует.
во-вторых, это не не правильно. это преступление.
никогда больше так не делай. E_ALL, и только
 

safrash

Новичок
Vladson
опыт по избежанию неправильного синтаксиса.
В данном примере пожалуй наоборот
Что неправильно, конкретно?

-~{}~ 20.04.07 02:58:

если ключ(индекс), в данном случае 'Slovo', то почему у тебя написано не 'Slovo', а 'Slovo[]'?
Как только убираем [] $_GET не принимает Slovo. В чём причина?

-~{}~ 20.04.07 03:00:

Автор оригинала: Фанат
бред какой-то.
если ключ(индекс), в данном случае 'Slovo', то почему у тебя написано не 'Slovo', а 'Slovo[]'?
почему для того, чтобы дать понять, что форма это массив, надо писать имя с квадратными скобками?
Как только убираем [] $_GET не принимает Slovo. В чём причина?
 

$cooter

Новичок
safrash
А если я введу слово ровно с 10 символов? Что будет тогда?
 

Фанат

oncle terrible
Команда форума
Как только убираем [] $_GET не принимает Slovo. В чём причина?
в том, что у тебя галлюцинации. массив $_GET прекрасно принимает Slovo
а вот ты, как не умел работать с массивами, и не понимал, что это такое - так и не понимаешь до сих пор.
и получить элемент массива для тебя - ужасно сложная задача
 

safrash

Новичок
Привет новички и все, кто им желает помочь! Есть пер-ая, надо вычислить её квадрат, её кв.корень и корень из 10*на неё. Поль-ся мат. ф-ями и выводим в табл виде. Вот как я сделал, что можете предложить по выводу на неск. стр-иц. Думаю, надо применять массивы. Да, забыл. Вывод должен быть с шагом $n+0.01(таб из известного мат-го справ-ка)

<?php
for($i=1.00;$i<=10.00;$i=$i+0.01){
$n=round($i,3); //п-ая, которую возводим
$sqrt=sqrt($n); //получаем корень кв-ый
$q=$n*$n; //получаем квадрат её
$ten_sqrt=sqrt($n*10); //получаем пер-ая*10 и извлек кв кор
$n_sqrt=round($sqrt,3); //выводим три знака после зап для корня
$n_q=round($q,3); //выводим три знака для квадрата
$ten_sqrt_new=round($ten_sqrt,3);
echo "<table width='250' style='border-collapse: collapse; border: 1px solid #808080'>";
echo "<tr><td>$n</td>";
echo "<center><td>$n_q</td>";
echo "<td>$n_sqrt</td>";
echo "<td>$ten_sqrt_new</td></tr>";
echo "</table>";
}
 

ksnk

прохожий
Вот так, imho, значительно более наглядно. Да до вывода в несколько страниц от этого кода существенно ближе.
PHP:
$tpl=array(
   'head'=>"<table width='250' style='border-collapse: collapse; border: 1px solid #808080'>" 
  ,'rec'=>"<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>"
  ,'bot'=>"</table>"
);
printf($tpl['head']);
printf($tpl['rec'],'n','n<sup>2</sup>','sqrt(n)','sqrt(n*10)');
for($i=1.00;$i<=10.00;$i=$i+0.01){
  printf($tpl['rec'],
     round($i,3),
     round($i*$i,3),
     round(sqrt($i),3),
     round(sqrt($i*10),3));
}
printf($tpl['bot']);
-~{}~ 22.04.07 10:28:

Хотя, возможно, массивы и printf для "новичка" окажутся слишком сложны :)
 

safrash

Новичок
Автор оригинала: ksnk
Вот так, imho, значительно более наглядно.
Спасибо. все ясно, не понятен знак %s:)

Почему во время загрузки стр-цы, если пустая форма пер-ся
Undefined index: first in z:\home\localhost\www\urok16.php on line 20

-~{}~ 22.04.07 17:00:

Спасибо, дельная ссылка, буду изучать:)
 

safrash

Новичок
Есть два массива, оба с целыми числами, значения каждого меняются с определенным шагом. После объединения ключ нового начинается с 0, а нужно с 1. Как добиться?
 
Сверху