fork(4) download
  1. <?php
  2. //*
  3. //дан текст из нескольких предложений, предложение состоит из русских слов, разделенных пробелами.
  4. //Написать программу, переставляющую слова в предложениях в обратном порядке.
  5. //Знаки препинания в конце предложений (точка, восклицательный знак) можно не сохранять.
  6. //*
  7.  
  8.  
  9. $text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!";
  10. // Другие варианты для тестов
  11. // $text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
  12. // $text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";
  13.  
  14. /* Делает первую букву предложения заглавной */
  15. function makeFirstletterUppercase($text) {
  16. $result = mb_strtoupper(mb_substr($text, 0, 1)) . mb_substr($text, 1);
  17. return $result;
  18. }
  19.  
  20. /* Делает первую букву предложения строчной */
  21. function makeFirstletterLowercase($text) {
  22. $result = mb_strtolower(mb_substr($text, 0, 1)) . mb_substr($text, 1);
  23. return $result;
  24. }
  25.  
  26. /* Переворачивает предложение задом на перед */
  27. function reverseSentence($sentence) {
  28. $words = preg_split('/[ ]/', $sentence, -1, PREG_SPLIT_NO_EMPTY);
  29. $words[0] = makeFirstletterLowercase($words[0]);
  30. $words[count($words)-1] = makeFirstletterUppercase($words[count($words)-1]);
  31. $result = implode(' ', array_reverse($words));
  32. return $result;
  33. }
  34.  
  35. function makeYodaStyleText($text) {
  36.  
  37. $result = '';
  38. $text = preg_replace('/,/', '', $text);
  39. $sentences = preg_split('/[!.?]/', $text, -1, PREG_SPLIT_NO_EMPTY);
  40. foreach ($sentences as $id => $sentence) {
  41. $sentence = reverseSentence($sentence);
  42. $sentence = implode(' ', explode(' ', $sentence));
  43. $result .= $sentence . '. ';
  44. }
  45.  
  46. return $result;
  47. }
  48.  
  49. $yodaText = makeYodaStyleText($text);
  50. echo "Йода говорит: {$yodaText}\n";
  51.  
  52.  
Success #stdin #stdout 0.02s 52432KB
stdin
Standard input is empty
stdout
Йода говорит: Обнаружили нас кажется. Поздно не пока отсюда уходить срочно надо. Скорее же бежим.