В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
Rifik
Rifik
15.01.2022 02:47 •  Информатика

Сделать программу с разными ввода и вывода (комментарий): задать стороны прямоугольного треугольника и вывести на экран значения площади и периметра

Показать ответ
Ответ:
ирина1523
ирина1523
29.02.2020 04:34
<?php
  $result = array();
  $arr = array ('310'=>0.5, '311'=>0.375, '312'=>0.1);
  
  function rec($str) {
    $sum = 0;
    foreach ($str as $i) #Вычисляем уже имеющуюся сумму
      $sum += $GLOBALS["arr"][$i];
    if ($sum == 1.5)
      $GLOBALS["result"][] = $str;
    if ($sum > 1.5) return;
    foreach ($GLOBALS["arr"] as $key=>$value) {
      $hello = $str; #Не знаю, насколько это легально, но заработало только так...
      $hello[] = $key;
      rec($hello);
    }
  }
  
  if (min(array_values($arr)) <= 0) die(); #Бесконечнная рекурсия должна быть предотвращена
  rec(array());
  
  foreach ($result as &$value) #Переделываем массив массивов в массив строк
    $value = implode(', ', $value);
  unset($value);
  
  print_r($result);
?>
0,0(0 оценок)
Ответ:
dimaprokopovewp06mw2
dimaprokopovewp06mw2
30.07.2021 19:56
Ошибок тут больше одной.
Во-первых, в операторе вывода стоит вызов функции ups, которой в качестве второго аргумента передается неизвестная переменная a. Если имелся в виду символ "а", его надо было заключить в одинарные кавычки.
Во-вторых, в теле функции ups определяется значение n в цикле. Даже, если искомый символ найден и n получит значение позиции этого символа в слове, то если слово просмотрено не полностью, следующий же проход по циклу снова сбросит n в ноль. Следовательно, эта функция будет выдавать верный результат только если искомая буква - последняя в слове.

var
  slovo: string;
  i: integer;

function ups(var s: string; ch: char): integer;
var
  i, n: integer;
begin
  i:=1;
  n:=0;
  while (i<=length(s)) and (n=0) do
    begin
    if s[i] = ch then n := i;
    i:=i+1
    end;
  ups:=n
end;

begin
  writeln('vvedite slovo');
  readln(slovo); writeln('N = ', ups(slovo, 'a'));
end.

Замечание: в языке Паскаль имеется функция Pos, производящая поиск подстроки в строке...
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота