Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите, пожалуйста, с задачей

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Только изучаю php. Не знаю, как решить такое
Вишенка
Отправлено: 10 Июня, 2017 - 22:37:07
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Июнь 2017  


Помог: 0 раз(а)




Числа вводятся с клавиатуры до тех пор, пока не встретятся идущие подряд три отрицательных числа. Написать программу, печатающую те тройки чисел, которые могут быть длинами сторон равнобедренного треугольника.
Помогите написать код Огорчение Проблема с осуществлением этого ввода чисел и сохранением введённых данных
 
 Top
Vladimir Kheifets
Отправлено: 14 Июня, 2017 - 19:37:50
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




Вишенка пишет:
Числа вводятся с клавиатуры до тех пор, пока не встретятся идущие подряд три отрицательных числа. Написать программу, печатающую те тройки чисел, которые могут быть длинами сторон равнобедренного треугольника.
Помогите написать код Огорчение Проблема с осуществлением этого ввода чисел и сохранением введённых данных


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

Откровенно говоря, мне не нравится идея вводить данные "пока не встретяться идущие подряд три отрицательных числа".
Думаю, что правильнее поставить кнопку для окончания вввода данных.
Так я и сделал, однако три отрицальных числа также обрабатываются.
Ещё есть две кнопки. Одна для дополнения чисел, а вторая для удаления смаркированных чисел.
Если что-то будет непонятно, спрашивайте.
Удачи!


Можете посмотреть здесь:

https://www[dot]alto-booking[dot]com/tes[dot][dot][dot]/InputNumber.php

Код:

PHP:
скопировать код в буфер обмена
  1. <?
  2. if(isset($_POST))
  3. {
  4.         $NumberArr=preg_split("/\D+/",$_POST['NumberPack']);
  5.         $k=count($NumberArr);
  6. }
  7. else $k=0;
  8. ?>
  9. <html>
  10. <head>
  11. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  12. <style>
  13. select{height:300px; width:100px}
  14. </style>
  15. <title>Demo</title>
  16. <script>
  17.         var kMn=0;
  18.         function addNumber(){
  19.                 s=document.getElementById("NumberList");
  20.                 n=document.getElementById("Number").value;
  21.                 if(parseInt(n)<0)
  22.                 {
  23.                         kMn++;
  24.                         if(kMn>2)
  25.                         {
  26.                                 OptionToArr("NumberList");
  27.                                 return;
  28.                         }
  29.                 }
  30.                 else
  31.                 {
  32.                         kMn=0;
  33.                         o = document.createElement("option");
  34.                         o.text = n;
  35.                         o.value = n;
  36.                         s.add(o);
  37.                 }
  38.         }
  39.         //--------------------------------------------
  40.         function removeNumber(){
  41.                 s = document.getElementById("NumberList");
  42.                 s.remove(s.selectedIndex);
  43.         }
  44.         //--------------------------------------------
  45.         function OptionToArr(obj){
  46.         var NumberArr = new Array();
  47.                 s = document.getElementById(obj);
  48.                 k = s.length;
  49.                 if(k<3)
  50.                 {
  51.                         alert("Ошибка! Вы должны ввести не меньше трёх чисел!");
  52.                         return;
  53.                 }
  54.                 for (i=0; i<k; i++)
  55.                 {
  56.                         NumberArr[i] = s.options[i].text;
  57.                 }
  58.  
  59.                 //------------------------------
  60.                 debug="";
  61.                 buf="";
  62.                 for (i=0; i<k; i++)
  63.                 {
  64.                         debug+=(i+1)+": "+NumberArr[i]+"\n";
  65.                         buf+=NumberArr[i]+";";
  66.                 }
  67.                 alert("Количество введеных данных: "+k+"\nВы ввели числа:\n"+debug);           
  68.                 //------------------------------
  69.                 f=document.Myform;
  70.                 f.NumberPack.value=buf.substring(0,buf.length-1);
  71.                 f.submit();
  72.         }
  73. </script>
  74. </head>
  75. <body>
  76. <form action="" method="post" name="Myform" id="Myform" >
  77. <table width="293" border="1">
  78.   <tr>
  79.     <td width="144" valign="top"><input name="Number"  id="Number" type="text"  onClick="this.value=''" /></td>
  80.         <td width="38" valign="top">
  81.         <input type="button" name="add" id="add" value=">>>"  onclick="addNumber()"/>        <input type="button" name="remove" id="remove" value="<<<"  onclick="removeNumber()"/>
  82.         <br />    </td>
  83.     <td width="89">
  84.         <select name="NumberList" size="50" multiple="multiple" id="NumberList" >
  85.     <?
  86.         if($k>0)
  87.         {
  88.                 foreach($NumberArr as $v)
  89.                 {
  90.                         if($v>0)echo "<option>$v</option>\n";
  91.                 }
  92.         }
  93.         ?>
  94.         </select>
  95.         </td>
  96. </tr>
  97.  
  98. <tr>
  99.     <td height="47" colspan="3" align="center" valign="middle">
  100.       <input type="button" name="end" id="end" value="Обработка данных"  onClick="OptionToArr('NumberList')"/>
  101.     </td>
  102. </tr>
  103. </table>
  104. <input name="NumberPack"  type="hidden" value="">
  105. </form>
  106. <?
  107. if($k>0)
  108. {
  109.         echo "<hr>Количество введеных данных: ".$k."<br>Вы ввели числа:<br>";
  110.         foreach($NumberArr as $v)
  111.         {
  112.                 echo "$v<br>";
  113.         }
  114.         sort($NumberArr);
  115.         $i=0;
  116.         $iP=0;
  117.         $iNP=0;
  118.         $NumberArrP=array();
  119.         $NumberArrNP=array();
  120.         while ($i<$k)
  121.         {
  122.        if($i+1<$k)
  123.        {
  124.           if($NumberArr[$i]==$NumberArr[$i+1])
  125.           {
  126.                  $NumberArrP[$iP]=$NumberArr[$i];
  127.                  $i=$i+2;
  128.                  $iP++;
  129.           }
  130.           else
  131.           {
  132.              $NumberArrNP[$iNP]=$NumberArr[$i];
  133.                  $iNP++;
  134.                  $i++;
  135.           }
  136.        }
  137.        else
  138.        {
  139.                 $NumberArrNP[$iNP]=$NumberArr[$i];
  140.                 $iNP++;
  141.                 $i++;
  142.        }
  143.         }
  144.         echo "<hr>";
  145.         foreach($NumberArrP as $v1)
  146.         {
  147.                 echo "Длины сторон трегольника: $v1<br>";
  148.                 foreach($NumberArrNP as $v2)
  149.                 {
  150.                    if($v2<2*$v1)
  151.                    {
  152.                       echo "Длина основания трегольника: $v2<br>";
  153.                    }
  154.                 }
  155.         echo "<hr>";
  156.         }
  157.  
  158. }
  159. ?>
  160. </body>
  161. </html>

(Отредактировано автором: 14 Июня, 2017 - 19:49:35)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB