0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 22
1

Создайте функцию, которая принимает число в виде строки, а возвращает само число

01.04.2014, 22:35. Показов 7763. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Может для кого то это очень просто, но у меня возникло непонимание.
Задание выглядит так:
1. Создайте массив из трёх значений: "два", "один", "три".
2. Создайте функцию, которая принимает число в виде строки, а возвращает само число.
3. Создайте массив из 100 элементов. Значение каждого элемента должно высчитываться по правилу:
(номер итерации*х), где х - число, возвращаемое функцией, созданной во 2 пункте. Параметр для функции - это элемент массива, созданного в 1 пункте, где индекс равен остатку от деления на 3 номера итерации.
4. Выведите получившийся массив используя цикл
PHP
1
for
.
5. Создайте ассоциативный массив, где ключи - "один","два","три", и значения 1,2,3.
6. Создайте массив как в 3 пункте, но без использования функции и с использованием массива из 5 пункта.
7. Выведите массив 7 пункта используя цикл
PHP
1
while
.
8. убедитесь, что массивы 4 и 5 пункта одинаковы.

Я начал делать так:
1.
PHP
1
$mas=array('два', 'один', 'три');
2.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
 function chislo($x) {
    if ($x=='один') {
        $x=1;
        return $x;
    } else if ($x=='два') {
        $x=2;
        return $x;
    } else if ($x=='три') {
        $x=3;
        return $x;
    }
}
3. а вот здесь не до конца понял задание и застопорился, примерно понял, что надо типа такого -

PHP
1
2
3
for ($i=0; $i<100; $i++) {
    $mas1[]=($i+1)*chislo($mas[остаток от деления на три номера итерации]);
}
- не могу понять, как вычислять остаток, три номера итерации это первые три итерации 1, 2, 3? что делить на эти три номера?

Подскажите решение этого задания, буду признателен, если сразу по всем пунктам... и укажите на допущенные мной ошибки
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.04.2014, 22:35
Ответы с готовыми решениями:

Создайте функцию, которая принимает в качестве аргумента целое число и возвращает число Люка с таким номером
1. Создайте функцию, которая принимает в качестве аргумента целое число и возвращает число Люка с...

Напишите функцию которая принимает целое беззнаковое число и возвращает true, если число четное и false
2. Напишите функцию которая принимает целое беззнаковое число и возвращает true, если число четное...

Создать функцию которая принимает число и диапазона потом возвращает информацию о том лежит ли число в этом диапазоне
Здравствуйте,помогите пожалуйста с задачей - функция принимает число А и диапазон X Y, возвращает...

Написать функцию, которая получает аргументом натуральное число и возвращает его в виде строки
Написать функцию, которая получает аргументом натуральное число и возвращает его в виде строки 5 =...

10
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
01.04.2014, 23:09 2
Цитата Сообщение от arh Посмотреть сообщение
не могу понять, как вычислять остаток, три номера итерации это первые три итерации 1, 2, 3? что делить на эти три номера?
Остаток от деления вычисляется оператором %. Номер итерации в вашем случае это $i. Соответственно остаток от деления на 3 для него это $i % 3.

Только я нигде не вижу в задании, что к номеру итерации нужно единицу прибавлять. Думаю это лишнее.

Возможно что-то вроде этого:
PHP
1
2
3
for ($i=0; $i<100; $i++) {
    $mas1[]=$i*chislo($mas[$i%3]);
}
0
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 22
02.04.2014, 19:50  [ТС] 3
насчёт $i+1 вы правы, просто я чего то подумал что надо начинать с умножения на 1, а вот с $mas[$i%3] не могу согласиться, по скольку в условии написано - индекс равен остатку от деления на 3 номера итерации.
разве в условии указано, что остаток целочисленного деления текущего номера итерации на четвёртый номер итерации (имею ввиду, если первый номер итерации равен 0). может в условии какая то опечатка?
0
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
02.04.2014, 20:26 4
функцию
PHP
1
2
3
4
5
6
7
8
9
10
11
12
function chislo($x) {
    if ($x=='один') {
        $x=1;
        return $x;
    } else if ($x=='два') {
        $x=2;
        return $x;
    } else if ($x=='три') {
        $x=3;
        return $x;
    }
}
можно и нужно укоротить -
PHP
1
2
3
4
5
6
function chislo($x) {
    if ($x=='один')$x=1;
    else if ($x=='два')$x=2;
    else if ($x=='три')$x=3;
    return $x;
}
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
03.04.2014, 05:38 5
Цитата Сообщение от arh Посмотреть сообщение
насчёт $i+1 вы правы, просто я чего то подумал что надо начинать с умножения на 1, а вот с $mas[$i%3] не могу согласиться, по скольку в условии написано - индекс равен остатку от деления на 3 номера итерации.
разве в условии указано, что остаток целочисленного деления текущего номера итерации на четвёртый номер итерации (имею ввиду, если первый номер итерации равен 0). может в условии какая то опечатка?
В условии опечаток нет и я все правильно написал. А что написали Вы в этом сообщении мне совершенно не понятно. Попробую объяснить:
Код
0%3 = 0
1%3 = 1
2%3 = 2
3%3 = 0
4%3 = 1
...
И так далее. Здесь первое число - это как раз и есть номер итерации цикла ($i). После знака = у нас получается индекс массива. Таким образом мы перебираем все 3 элемента массива. Когда доходим до крайнего начинаем с начала...
1
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 22
05.04.2014, 12:20  [ТС] 6
теперь дошло, просто условие - "индекс равен остатку от деления на 3 номера итерации" мне было бы понятней, если бы звучало - остатку от деления номера итерации на 3, потому как думал что надо делить на "три номера итерации".
Спасибо
0
pav1uxa
05.04.2014, 13:31
  #7

Не по теме:

Цитата Сообщение от arh Посмотреть сообщение
потому как думал что надо делить на "три номера итерации".
:D:D

0
0 / 0 / 0
Регистрация: 07.10.2016
Сообщений: 11
07.10.2016, 22:08 8
привет,
я вообще засыпался на данном задании (((
хотел сделать второе задание иначе - с помощью ассоциативного массива, но не понимаю как правильно оформить
PHP
1
2
3
4
5
6
    function number($a) {
    $massiv_3 = array("ноль" => 0, "один" => 1, "два" => 2);
    $b = $massiv_3[$a];
    return $b;
    }
    $a = "два";
как вывести результат на экран и правильно ли вообще написана программа?
0
Эксперт PHP
4898 / 3898 / 1615
Регистрация: 24.04.2014
Сообщений: 11,403
07.10.2016, 22:35 9
PHP
1
2
3
4
5
function number($a) {
    static $numbers = array("ноль" => 0, "один" => 1, "два" => 2);
    return $numbers[$a];
}
echo number("два");
1
0 / 0 / 0
Регистрация: 07.10.2016
Сообщений: 11
08.10.2016, 01:28 10
как всё замудрённо, признателен за помощь, я б сам до этого ещё долго додумывал - не нашёл нормального описания "словечек" function, return и правильного вызова функции (number("два")) что такое почитать, чтоб так же "щёлкать" php?
в примере пришлось "опустить" static - я его еще не проходил. Теперь начну штурмовать третье задание
0
Эксперт PHP
4898 / 3898 / 1615
Регистрация: 24.04.2014
Сообщений: 11,403
08.10.2016, 07:18 11
https://secure.php.net/manual/ru/langref.php
1
08.10.2016, 07:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2016, 07:18
Помогаю со студенческими работами здесь

Написать функцию, которая принимает число, а возвращает его факториал
Написать функцию, в которую передают число х, а возвращает х! (факториал этого числа)(Консольное...

Реализовать функцию, которая принимает массив, а также число n, и возвращает индекс
Реализовать функцию, которая принимает массив (плюс его длину) , а также число n, и возвращает...

Подскажите ,как написать функцию которая принимает число int а возвращает Boolean?
подскажите ,как написать функцию которая принимает число int а возвращает Boolean?

Создайте логическую функцию, которая принимает в качестве аргумента число и проверяет, является ли оно автоморфным
5. Число называется автоморфным, если оно равно последним цифрам своего квадрата. Например,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru