Примеры поделок от новичков или первый блин комом

AirBitRage

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

Единственное требование, сюда выкладывайте только работающий код
Как именно он работает будем уже обсуждать

Опытные пользователи так же приглашаются для оценки наших «первых блинов». Развёрнутое мнение, с указанием на ошибки подсказками, приветствуется

Решение заняться изучением своего первого языка программирования было принято на прошлой неделе. Изучаю параллельно с работой и личной жизнью, потому об ударных темпах, думаю, речи не будет. На данный момент дошел до циклов, дальше функции.

  1. Итак, первая поделка. Создаю очерёдность языков которые планирую в итоге изучить. Из каждого типа выбираю один язык путём генерации случайного числа.

Языки глубокого уровня программирования

  1. С
  2. С++

Языки со строгой типизацией

  1. Java
  2. C#
  3. Kotlin
  4. SQL

Языки с динамической типизацией

  1. PHP
  2. Python
  3. Ruby

Языки для фронт энда

  1. JavaScript
  2. TypeScript
Код (Text):
  1. <?php
  2. while (!(($a === ‘C’ ^ $a === ‘C++’) && ($b === ‘java’ ^ $b === ‘C#’ ^ $b === ‘Kotlon’ ^ $b === ‘SQL’) && ($c === ‘PHP’ ^ $c === ‘Python’ ^ $c === ‘Ruby’) && ($d === ‘JavaScript’ ^ $d === ‘TypeScript’))) {
  3.     if ($i == 1) {
  4.                 $a=»C»;}
  5.     else if ($i == 2) {
  6.                 $a=»C++»;}
  7.     else if ($i == 3) {
  8.                 $b = ‘java’;}
  9.     else if ($i == 4) {
  10.                 $b = ‘C#’;}
  11.     else if ($i == 5) {
  12.                 $b = ‘Kotlon’;}
  13.     else if ($i == 6) {
  14.                 $b = ‘SQL’;}
  15.     else if ($i == 7) {
  16.                 $c=»PHP»;}
  17.     else if ($i == 8) {
  18.                 $c=»Python»;}
  19.     else if ($i == 9) {
  20.                 $c=»Ruby»;}
  21.     else if ($i == 10) {
  22.                 $d = ‘JavaScript’;}
  23.     else if ($i == 11) {
  24.                 $d = ‘TypeScript’;}
  25.     $i = random_int(0, 13);
  26. }
  27.     echo «Первый — $a<br/>».»Второй — $b<br/>».»Третий — $c<br/>».»Четвёртый — $d<br/>»;
  28. ?>
 

ADSoft

А если 100500 языков будет?
Все что повторяется более двух раз следует автоматизировать.

Сделайте это же код без единого оператора if

 

ADSoft

Ну епт Не дал людям подумать..

 

MouseZver

Да без проблем !

PHP:
  1. 246172726179203d206578706c6f6465202820277
  2. c272c2027437c432b2b7c4a6176617c43234b6f74
  3. 6c6f6e7c53514c7c5048507c507974686f6e7c527
  4. 562797c4a6176615363726970747c54797065536
  5. 3726970742720293b202320d09bd0b5d0bdd18c2
  6. 0d0b1d18bd0bbd0be20d0bfd0b8d181d0b0d182d1
  7. 8c20d0bcd0b0d181d181d0b8d0b20d0a0d0a7368
  8. 7566666c6520282024617272617920293b0d0a0d
  9. 0a666f72656163682028205b2027d09fd0b5d180d
  10. 0b2d18bd0b9272c2027d092d182d0bed180d0bed
  11. 0b9272c2027d0a2d180d0b5d182d0b8d0b9272c2
  12. 027d0a7d0b5d182d0b2d0b5d180d182d18bd0b92
  13. 7205d20415320246b6579203d3e202476616c756
  14. 520290d0a7b0d0a096563686f20227b2476616c75
  15. 657d3a207b2461727261795b246b65795d7d3c62
  16. 723e22202e205048505f454f4c3b0d0a7d
 

AirBitRage

Вот так?)

Код (Text):
  1. <?php
  2.     while (!(($a === ‘C’ ^ $a === ‘C++’) && ($b === ‘java’ ^ $b === ‘C#’ ^ $b === ‘Kotlin’ ^ $b === ‘SQL’) && ($c === ‘PHP’ ^ $c === ‘Python’ ^ $c === ‘Ruby’) && ($d === ‘JavaScript’ ^ $d === ‘TypeScript’))) {
  3.             $i = random_int(0, 13);
  4.         switch ($i) {
  5.             case 1 :
  6.                 $a=»C»;
  7.                     break;
  8.             case 2 :
  9.                 $a=»C++»;
  10.                     break;
  11.             case 3 :
  12.                 $b = ‘java’;
  13.                     break;      
  14.             case 4 :
  15.                 $b = ‘C#’;
  16.                     break;
  17.             case 5 :
  18.                 $b = ‘Kotlin’;
  19.                     break;
  20.             case 6 :
  21.                 $b = ‘SQL’;
  22.                     break;
  23.             case 7 :
  24.                 $c=»PHP»;
  25.                     break;
  26.             case 8 :
  27.                 $c=»Python»;
  28.                     break;
  29.             case 9 :
  30.                 $c=»Ruby»;
  31.                     break;
  32.             case 10 :
  33.                 $d = ‘JavaScript’;
  34.                     break;
  35.             case 11 :
  36.                 $d = ‘TypeScript’;
  37.                     break;
  38.             default:
  39.                     break;
  40.         }
  41.     }
  42. echo «Первый — $a<br/>».»Второй — $b<br/>».»Третий — $c<br/>».»Четвёртый — $d<br/>»;
  43. ?>
 

roboformation

Массивы уже изучали?

PHP:
  1. $langs = [
  2.           «Первый — « => [«C», «C++»],
  3.           «Второй — « => [«Java», «C#», «Kotlin», «SQL»],
  4.           «Третий — « => [«PHP», «Python», «Ruby»],
  5.           «Четвёртый — « => [«JavaScript», «TypeScript»]
  6.       ];
  7.       foreach ($langs as $order => $group) {
  8.           echo $order.$group [array_rand ($group)].«<br>»;
  9.       }
 

ADSoft

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

Уже и ответ подсказали…

 

AirBitRage

Ещё нет. Сегодня начинаю функции и буду двигаться дальше. Может доберусь.
Кстати изучаю по этим видеоурокам

Что не понятно из уроков дополнительно гуглю.

Вы переоценили глубину познаний. Как писал выше, я ещё на стадии изучения языка и в создании этой поделки применял только известные на данный момент инструменты.

 

MouseZver

10:35 — обновим и….
Notice: Undefined variable: sum in … on line 15

Говнокод

 

AirBitRage

Если запускаете на денвере замените random_int на rand.
У меня на убунте работает и так и так, а на денвере почему-то только c rand.

Функции кажись понял

Код (Text):
  1. <?php
  2. $froma = 1;
  3. $to = 11;
  4.  
  5.    roll ($from, $to);
  6.  
  7.    function roll ($a, $b) {
  8.        while (!($l1 == true && $l2 == true && $l3 == true && $l4 == true)) {
  9.          $z1++;
  10.          $i = rand($a, $b);
  11.      
  12.        switch ($i) {
  13.          case 1 :
  14.            $l1 = ‘C’;
  15.              break;
  16.          case 2 :
  17.            $l1 = ‘C++’;
  18.              break;
  19.          case 3 :
  20.            $l2 = ‘java’;
  21.              break;  
  22.          case 4 :
  23.            $l2 = ‘C#’;
  24.              break;
  25.          case 5 :
  26.            $l2 = ‘Kotlin’;
  27.              break;
  28.          case 6 :
  29.            $l2 = ‘SQL’;
  30.              break;
  31.          case 7 :
  32.            $l3 = ‘PHP’;
  33.              break;
  34.          case 8 :
  35.            $l3 = ‘Python’;
  36.              break;
  37.          case 9 :
  38.            $l3 = ‘Ruby’;
  39.              break;
  40.          case 10 :
  41.            $l4 = ‘JavaScript’;
  42.              break;
  43.          case 11 :
  44.            $l4 = ‘TypeScript’;
  45.              break;
  46.          default:
  47.              break;
  48.        }
  49.      }
  50.      echo «Количество итераций: $z1<br/>».»Первый язык — $l1<br/>».»Второй язык — $l2<br/>».»Третий язык — $l3<br/>».»Четвёртый язык — $l4<hr/>»;
  51.    }
  52. ?>
 

MouseZver

Стоп…
Подожди дарагой…

Прочти сначала этот текст:

А потом свой:

И расскажи нам, сладкий, к чему ты это написал ??

 

ADSoft

Денвер давно умер, не занимайтесь некрофилией

 

AirBitRage

С тобой всё ок? Я о фамильярности и нездоровой тяге к эпитетам.
Можно было и нормально объяснить.

Код (Text):
  1. <?php
  2. $a = «не»;
  3. $b = «будь»;
  4. $c = «таким»;
  5. $d = «душнилой»;
  6.     while (!(($a === ‘C’ ^ $a === ‘C++’) && ($b === ‘java’ ^ $b === ‘C#’ ^ $b === ‘Kotlin’ ^ $b === ‘SQL’) && ($c === ‘PHP’ ^ $c === ‘Python’ ^ $c === ‘Ruby’) && ($d === ‘JavaScript’ ^ $d === ‘TypeScript’))) {
  7.             $i = random_int(0, 13);
  8.         switch ($i) {
  9.             case 1 :
  10.                 $a=»C»;
  11.                     break;
  12.             case 2 :
  13.                 $a=»C++»;
  14.                     break;
  15.             case 3 :
  16.                 $b = ‘java’;
  17.                     break;    
  18.             case 4 :
  19.                 $b = ‘C#’;
  20.                     break;
  21.             case 5 :
  22.                 $b = ‘Kotlin’;
  23.                     break;
  24.             case 6 :
  25.                 $b = ‘SQL’;
  26.                     break;
  27.             case 7 :
  28.                 $c=»PHP»;
  29.                     break;
  30.             case 8 :
  31.                 $c=»Python»;
  32.                     break;
  33.             case 9 :
  34.                 $c=»Ruby»;
  35.                     break;
  36.             case 10 :
  37.                 $d = ‘JavaScript’;
  38.                     break;
  39.             case 11 :
  40.                 $d = ‘TypeScript’;
  41.                     break;
  42.             default:
  43.                     break;
  44.         }
  45.     }
  46. echo «Первый — $a<br/>».»Второй — $b<br/>».»Третий — $c<br/>».»Четвёртый — $d<hr/>»;
  47. ?>

А что ещё живо?

 

ADSoft

для винды OpenServer
P.S — имеет ли смысл выкладывать какие-то поделки не изучив язык хотя-бы на 80%, хотя-бы основные возможности, структуры….

Ерунда ж какая то получается…. не изучив умножение — будете показывать программу, которая сложением вычисляет 5*20, не изучив циклы — 100500 раз писать одно и то-же, не изучив массивы — одну из основополагающих структур почти в любом ЯП — пытаться реализовать их тоннами кода?

А некоторые «страждущие и ищущие» на форумах, не посмотрят что писал новичок.. типа — о работает… возьму себе… не понимая, что так не нужно делать.

….Может лучше не поделки будете делать а какие-то задачи на конкретные темы, изучив их предварительно и спрашивая вопросы — если появились таковые??

 

AirBitRage

Благодарю.

Если честно, таким образом я прорименяю изученный материал, чтоб лучше закрепился, конкретно сейчас целью не является написание эталонного кода. Разумеется если такой контент здесь не нужен и только мешает я могу упражняться «в стол».

Тут даже не знаю что ответит. Брать что попало не посмотрев даже на название темы или написанное жирным шрифтом в её начале…
К тому же roboformation показал прекрасный пример как ту же задачу нужно решать правильно. Я как раз прошел массивы и смог оценить его код (пусть он немного и отличается от того что был в обучении).

Буду благодарен если посоветуете толковый ресурс с таковыми. Я здесь же нашел ссылку на https://www.codewars.com/ но там со старта задачи немного сложнее чем то с чем я сейчас могу справится.

Опять же повторюсь, язык я изучаю параллельно с работой и семъёй и уделять больше 1,5—2 часов в день не всегда получается. Если таким образом проходит весь материал без практики, уже к средине забуду то что изучал вначале.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *