[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сделать строки равные по длине
Ctrl Alt Delete
Нужно зашифровать текст с ключом: тескт - $a="Наша строка длиннее, чем сам ключ"; ключ - $b="Вася".
Используя цикл,нужно строку $b сделать такой же длины, как $a. Строка должна получиться вот такая "ВасяВасяВасяВасяВасяВасяВасяВасяВ".



Спустя 6 минут, 42 секунды (25.03.2011 - 14:20) m4a1fox написал(а):
Код в студию....

Спустя 43 секунды (25.03.2011 - 14:20) inpost написал(а):
Ctrl Alt Delete
Выглядит как домашка из школы =)
А какие твои предположения? Как ты пробовал это сделать?

Спустя 3 минуты, 21 секунда (25.03.2011 - 14:24) Ctrl Alt Delete написал(а):
Почти угадал, пробую программировать и в самом начале споткнулся.
$a="Наша строка длиннее, чем сам ключ";
$b="1234";

$x=strlen($a);
echo "$x<br>";

$y=strlen($b);
echo "$y<br>";

$i = 0;

do
{
echo $b[$i];
$i++;
$z=$b[$i];
}
while ($z<=$x);

Спустя 24 минуты, 40 секунд (25.03.2011 - 14:48) djar написал(а):
Замутил :) Обязательно циклом нужно делать?
<?php
$a = "Наша строка длиннее, чем сам ключ";
$b = "Вася";
$len_a = strlen($a);
$len_b = strlen($b);
if ($len_a > $len_b) {
$i = 1;
$end = ceil($len_a/$len_b); //делим одно на другое и округляем до большего
while ($i <= $end) {
$newstr = $newstr.$b;
$i++;
}
}

$newstr = substr($newstr, 0, $len_a);
echo $newstr;
?>

Спустя 12 минут, 55 секунд (25.03.2011 - 15:01) Ctrl Alt Delete написал(а):
А циклом никак нельзя for, while, do while?

Спустя 2 минуты, 4 секунды (25.03.2011 - 15:03) djar написал(а):
Ну так в моём варианте и так цикл)
Но можно не циклом - вместо цикла сделать
$newstr = str_repeat($b,$end);

Пара байт сэкономится)

Спустя 19 минут, 49 секунд (25.03.2011 - 15:23) Ctrl Alt Delete написал(а):
Я пока не знаю команд ceil и str_repeat, не хочу забегать вперед, можно без них как нибудь?

Спустя 4 минуты, 24 секунды (25.03.2011 - 15:28) djar написал(а):
Понятно, для чего я использовал ceil? Я не знаю пока, как по-другому найти частное без остатка. Так можно было бы разделить $len_a на $len_b, убрать остаток, прибавить единицу и идти дальше по коду.

А для чего ты выполняешь это задание?

Спустя 10 минут, 6 секунд (25.03.2011 - 15:38) Ctrl Alt Delete написал(а):
Я решил заняться программированием на php, учусь дома по видеоурокам и там есть такое задание.Хочу идти по порядку, не забегая вперед.Пока прошел массивы и циклы.Нельзя никак с помощью циклов это сделать?

Спустя 9 минут, 4 секунды (25.03.2011 - 15:47) Ctrl Alt Delete написал(а):
Цитата
Понятно, для чего я использовал ceil?


Не понял.

Спустя 5 минут, 25 секунд (25.03.2011 - 15:52) djar написал(а):
Не знаю. Я сам шарю чуть-чуть. Арифметические операции в видеокурсе были? А ответы есть к заданиям? ЦИКЛ в том коде есть. :)
Придумал. Если арифметические операции были, то тогда делаем так:

$end = (($len_a/$len_b) - (($len_a % $len_b) / $len_b)) + 1;

Замудрённый примерчик, но думаю понять можно) % - нахождение остатка от деления

Цитата
Не понял.

Ну, понятно, какую операцию выполняет ceil?

Спустя 6 минут, 1 секунда (25.03.2011 - 15:58) djar написал(а):
Можно упростить - под общий знаменатель сделать. Сразу не сообразил.

$end = ($len_a - ($len_a % $len_b)) / $len_b + 1;

Спустя 1 минута, 46 секунд (25.03.2011 - 16:00) Ctrl Alt Delete написал(а):
Арифметические операции были, "% - нахождение остатка от деления" не было.Я так понял это примерно тоже самое, что и ceil, а зачем их делить друг на драга?

Спустя 6 минут, 22 секунды (25.03.2011 - 16:06) djar написал(а):
Ну нет, % и ceil это не одно и то же. Одна ceil делает почти всё то, что я написал в примере.

Есть две строки, 33 и 4 символа. Вторую нужно дополнить самой собой до 33 символов. Нужно узнать, сколько раз её повторять. 33 делим на 4, получается 8 полных раз. Добавляем ещё 1 раз, чтобы учесть тот случай, когда будет остаток от деления. Хотя можно и не добавлять, а сделать счётчик $i=0.

Спустя 25 минут, 14 секунд (25.03.2011 - 16:32) Ctrl Alt Delete написал(а):
А как со счетчиком?Можешь написать?

Спустя 30 минут (25.03.2011 - 17:02) Snus написал(а):
<?php
$a = 'Наша строка длиннее, чем сам ключ';
$b = 'Вася';
$ac = strlen($a);
$bc = strlen($b);
$c = 0;
for($i = 0; $i < $ac; $i++){
echo $b[$c++];
if($c >= $bc) $c = 0;
}
?>

Спустя 1 час, 33 минуты, 53 секунды (25.03.2011 - 18:35) Ctrl Alt Delete написал(а):
Snus cпасибо это то что нужно, то что я искал!!!

djar Тебе тоже большое спасибо!!!

Спустя 12 дней, 16 часов, 43 минуты, 2 секунды (8.04.2011 - 10:18) tt написал(а):
Ctrl Alt Delete а ты зашифровал и расшифровал?

Спустя 3 дня, 21 минута, 8 секунд (11.04.2011 - 10:40) Guest написал(а):
Да, зашифровал и расшифровал

Спустя 3 минуты, 33 секунды (11.04.2011 - 10:43) Ctrl Alt Delete написал(а):
Цитата (tt @ 8.04.2011 - 10:18)
Ctrl Alt Delete а ты зашифровал и расшифровал?

Да, зашифровал и расшифровал.

Спустя 3 часа, 48 минут, 11 секунд (11.04.2011 - 14:31) tt написал(а):
кто понимает почему выдаёт такое?

код

<html>
<head>
<title>Bob's Auto Parts - Order Results</title>
</head>
<body>
<h3> Bob's Auto Parts </h3>
<h2>Order Results</h2>
<?php
echo " <p>order processed at " ;
//echo date ("H:i, jS F");
echo"<br>";
echo "<p>Your order is as follows:";
echo "<br>";
echo $tireqty." tires<br>";
echo $oilqty." bottles of oil<br>";
echo $sparkqty." spark plugs<br>";
$totalqty = 0 ;
$totalamount = 0.00;
define("TIREPRICE", 100);
define("OILPRICE", 10) ;
define("SPARKPRICE", 4) ;$totalqty = $tireqty + $oilqty + $sparkqty;
$totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE
+ $sparkqty * SPARKPRICE;
$totalamount = number_format($totalamount, 2);
echo "<br>\n";
echo "Items ordered: ".$totalqty."<br>\n";
echo "Subtotal: $".$totalamount."<br>\n";
$taxrate =0.10; // местный налог с продаж составляет 10%
$totalamount = $totalamount * (1 + $taxrate);
$totalamount = number_format($totalamount, 2) ;
echo "Total including tax: $".$totalamount."<br>\n";
?>
</body>
</html>




а вот что выдаёт




Bob's Auto Parts
Order Results
order processed at " ; //echo date ("H:i, jS F"); echo"
"; echo "

Your order is as follows:"; echo "
"; echo $tireqty." tires
"; echo $oilqty." bottles of oil
"; echo $sparkqty." spark plugs
"; $totalqty = 0 ; $totalamount = 0.00; define("TIREPRICE", 100); define("OILPRICE", 10) ; define("SPARKPRICE", 4) ;$totalqty = $tireqty + $oilqty + $sparkqty; $totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE; $totalamount = number_format($totalamount, 2); echo "
\n"; echo "Items ordered: ".$totalqty."
\n"; echo "Subtotal: $".$totalamount."
\n"; $taxrate =0.10; // местный налог с продаж составляет 10% $totalamount = $totalamount * (1 + $taxrate); $totalamount = number_format($totalamount, 2) ; echo "Total including tax: $".$totalamount."
\n"; ?>


Спустя 4 минуты, 5 секунд (11.04.2011 - 14:35) tt написал(а):
код формы для "processorder.php" см. выше

<html>
<body>
<form action="processorder.php" method="post">
<table border="0">
<tr bgcolor="#cccccc">
<td width="150">Item</td>
<td width="15">Quantity</td>
</tr>
<tr>
<td>Tires</td>
<td align="center"><input type="text" name="tireqty" size="3"
maxlength="3"></td>

</tr>
<tr>
<td>Oil</td>
<td align="center"><input type="text" name="oilqty" size="3" maxlength="3"></td>
</tr>
<tr>
<td>Spark Plugs</td>
<td align="center"><input type="text" name="sparkqty" size="3"
maxlength="3"></td>
</tr>
<tr>
<td>How did you find Bob's?</td>

<td><select name="find">
<option value = "a">I'm a regular customer</option>
<option value = "b">TV advertising</option>
<option value = "c">Phone directory</option>
<option value = "d">Word of mouth</option>
</select>
</td>

</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Submit Order"></td>
</tr>
</table>
</form>
</body>
</html>

Спустя 3 минуты, 24 секунды (11.04.2011 - 14:39) Trianon написал(а):
tt
вероятнее всего, это не php-файл, а html-документ.

Не надо сорить в чужих темах.
Зарегистрируйтесь, и создайте свою.

Спустя 1 час, 16 минут, 30 секунд (11.04.2011 - 15:55) tt написал(а):
Ctrl Alt Delete так ты покажи, как ты расшифровал.

а что не в тему то извиняйте.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.