Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 532

Нужно создать код с циклом FOR

25.02.2018, 17:43. Показов 984. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Есть код, который создает рандомные цифры. Всего рандомных цифр 2(123,321). Как сделать, чтобы если 1-ое рандомное число <= 2-ого, то пересоздать рандомные числа. Это надо делать, пока 1-ое число не будет больше 2-ого.
Читал про цикл for, но к сожалению не до понял.
Я новичок в программировании, поэтому желательно с примерами.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.02.2018, 17:43
Ответы с готовыми решениями:

Нужно условие с циклом прописать, невыходит что-то(
ребят, строго не судите я новичок! в общем есть вот такая часть кода по выводу категорий на сайте : &lt;ul&gt; &lt;?php...

Пытаюсь переписать код с циклом for, в код с циклом while, но не совсем получается
Возникло пару вопросов: #include &lt;iostream&gt; using namespace std; int main () { for (int i = 0; i&lt;=10; i++) cout...

Переделать код содержащий в себе цикл с параметром, в код с циклом с ПРЕДУСЛОВИЕМ (while do)
Program Sum_Del; Var N, I, Sum_Max, Sum, K, Ch : Integer; Begin Write('Введите число N: '); ReadLn(N); Sum_Max := 1; Ch := 1;...

27
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
26.02.2018, 08:00
А зачем здесь for? Я бы использовал while:

PHP
1
2
3
4
5
6
$a = 999;
$b = 100;
while ($a >= $b){
$a = rand(100, 999);
$b = rand(100, 999);
}
0
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 532
26.02.2018, 08:21  [ТС]
А мне надо, чтобы цикл повторялся, пока условие не будет истинной. А если условие истинно, то продолжить выполнение.
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
26.02.2018, 09:47
Риназ, кто мешает?
PHP
1
2
3
4
5
6
7
$r = true;
 
while($r)
{
    if(...)
        $r = false;
}
Или так:

PHP
1
2
3
4
5
while(true)
{
    if(...)
        break; // выход из цикла
}
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
26.02.2018, 09:56
Цитата Сообщение от Риназ Посмотреть сообщение
Всего рандомных цифр 2(123,321). Как сделать, чтобы если 1-ое рандомное число <= 2-ого, то пересоздать рандомные числа
Не проще ли их поменять местами?
0
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 532
26.02.2018, 10:00  [ТС]
123,321 - это я к примеру. Они одинаковые.
PHP
1
2
3
4
<?
$a=mt_rand(100,999);
$b=mt_rand(100,999);
?>
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
26.02.2018, 10:03
PHP
1
2
$b = mt_rand(100, 998);
$a = mt_rand($b+1, 999);
И тогда $a будет больше чем $b всегда
0
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 532
26.02.2018, 15:16  [ТС]
Спасибо, попробую!

Добавлено через 5 часов 10 минут
Это конечно не по теме, но все равно. Как сделать, чтобы и на сессии и на капче были одинаковые символы? А то сессия опаздывает(я знаю, что так и должно быть).
0
26.02.2018, 17:07

Не по теме:

Цитата Сообщение от Риназ Посмотреть сообщение
Как сделать, чтобы и на сессии и на капче были одинаковые символы? А то сессия опаздывает(я знаю, что так и должно быть).
как в том анекдоте: "Вам шашечки или ехать"?
Можешь объяснить зачем тебе это нужно, для чего?

0
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 532
26.02.2018, 17:24  [ТС]
Jewbacabra, для капчи.
0
26.02.2018, 17:34

Не по теме:

Риназ, и зачем это для капчи надо. Я уже по шагам объяснил принцип работы капчи. И там нигде нету "опаздывающих" сессий.

0
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 532
26.02.2018, 17:37  [ТС]
Jewbacabra, я же сказал, я это знаю. Это мне для другого (это связано с капчей).
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
26.02.2018, 17:43
Цитата Сообщение от Риназ Посмотреть сообщение
Как сделать, чтобы и на сессии и на капче были одинаковые символы?
Если буквально, то так:
PHP
1
2
3
session_start();
$_SESSION['captcha']="abc";
header("Location: vivid.php?captcha=abc");
Ну и соответственно на странице vivid.php
PHP
1
$_SESSION['captcha']==$_GET['captcha'];
0
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 532
26.02.2018, 17:46  [ТС]
sasha0012, как я уже говорил в самом начале, я новичок. Не могли бы подсказать куда это ставить?

Добавлено через 31 секунду
И зачем нужен ридирект?
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
26.02.2018, 18:05
Цитата Сообщение от Риназ Посмотреть сообщение
куда это ставить
Не нужно это никуда ставить, это бессмысленный код. Скорее всего Вам нужно реализовать стандартную проверку по каптчи. Принцип такой: на главной странице стоит форма с полем для ввода текста, при загрузки страницы выводим генерированный текст в виде картинки которая создаётся в отдельном файле и там-же создаётся сессия с новым текстом, вот пример такой страницы captcha.php:
Кликните здесь для просмотра всего текста
<?php

$letters = '0123456789abcdefgkijlmnopqrstuvwxyz'; // алфавит

$caplen = 6; //длина текста
$width = 120; $height = 40; //ширина и высота картинки
$font = 'comic.ttf';//шрифт текста
$fontsize = 14;// размер текста

header('Content-type: image/png'); //тип возвращаемого содержимого (картинка в формате PNG)

$im = imagecreatetruecolor($width, $height); //создаёт новое изображение
imagesavealpha($im, true); //устанавливает прозрачность изображения
$bg = imagecolorallocatealpha($im, 0, 0, 0, 127); //идентификатор цвета для изображения
imagefill($im, 0, 0, $bg); //выполняет заливку цветом

putenv( 'GDFONTPATH=' . realpath('.') ); //проверяет путь до файла со шрифтами

$captcha = '';//обнуляем текст
for ($i = 0; $i < $caplen; $i++)
{
$captcha .= $letters[ rand(0, strlen($letters)-1) ]; // дописываем случайный символ из алфавила
$x = ($width - 20) / $caplen * $i + 10;//растояние между символами
$x = rand($x, $x+4);//случайное смещение
$y = $height - ( ($height - $fontsize) / 2 ); // координата Y
$curcolor = imagecolorallocate( $im, rand(0, 100), rand(0, 100), rand(0, 100) );//цвет для текущей буквы
$angle = rand(-25, 25);//случайный угол наклона
imagettftext($im, $fontsize, $angle, $x, $y, $curcolor, $font, $captcha[$i]); //вывод текста
}

// открываем сессию для сохранения сгенерированного текста
session_start();
$_SESSION['capcha'] = $captcha;

imagepng($im); //выводим изображение
imagedestroy($im);//отчищаем память

?>
Далее выводим это изображение на странице с формой:
HTML5
1
<img src = "captcha.php" width="120" height="30" />
После отправки формы, на странице обработчике, проверяем символы которые занес пользователь со значением сессии, если они одинаковы значит проверка пройдена.
0
26.02.2018, 18:10

Не по теме:

Цитата Сообщение от Риназ Посмотреть сообщение
я же сказал, я это знаю
Тогда в чем проблема? Звучит как я знаю что 2 * 2 = 4, как сделать чтобы было 5?

0
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 532
26.02.2018, 18:28  [ТС]
Я хочу сделать кнопочную капчу, т.е ответ не надо никуда вводит, а нажать на правильный результат.

Добавлено через 2 минуты
Чтобы нажать на правильный ответ, его название должен быть ответом.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
26.02.2018, 18:30
Цитата Сообщение от Риназ Посмотреть сообщение
Я хочу сделать кнопочную капчу, т.е ответ не надо никуда вводит, а нажать на правильный результат.
с этого и надо было начинать
Тут следует делать наоборот: на самой странице генерировать результат и помещать его в сессию. При запросе картинке брать значение из сессии.
0
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 532
26.02.2018, 18:43  [ТС]
Я пробовал генерировать код на самой странице, но не получился. Не могли бы какой нибудь пример?
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
26.02.2018, 18:53
Самое простое это:
PHP
1
2
3
4
5
6
session_start();
$captcha = mt_rand(100,1000);
$_SESSION['captcha']=$captcha;
$checkbox_true = $captcha;
$checkbox_false = mt_rand(100,1000);
$checkbox_false2 = mt_rand(100,1000);
Соответственно в форме 3 чекбокса и в обработчике проверяем если сессия равна значению выбранного чекбокса, то пройдено.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.02.2018, 18:53
Помогаю со студенческими работами здесь

Нужно создать код задачи через консоль
Дан одномерный массив целых чисел.Написать процедуру,которая заменяет всее элементы со значинием больше К,на сумму всех отрицательных...

Нужно создать код задачи через консоль
дано натуральное число n.Проверить упорядочены ли цифры по убывания,сделать только с помощью вложенных циклов.

Нужно создать код задачи через консоль
проверить попадает ли точка М(х,y) в указанную область (х и у вещественные)

Нужно создать код задачи используя консоль
Дано целое число N (&gt;0). Найти сумму n² + (n+1)² + ((n+2)² + … +(2*n)²...

Нужно создать код задачи через консоль
Админ,пропусти скрин пожалуйста. Вложение удалено.


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru