• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Программа На С++

  • Автор темы 123123123
  • Дата начала
Статус
Закрыто для дальнейших ответов.
1

123123123

Программу нужно выполнить на языке С++ в среде Visual Studio 2010.
Преподаватель дал образец решения задачи.
Вот он:

#include "stdafx.h"
#include <iostream>
#include <conio.h>
using std::cout;
using std::endl;
using std::cin;
int _tmain(int argc, _TCHAR* argv[])
{
int n=100;
unsigned int x1=9;
unsigned int x2=0;
for (int i=0; i<n; i++);
{
if (i % 20 == 0) cout<<"\n";
x1 = (( ~x1<<2 ^ x2<<1*i)*( ~x1<<1 ^ x2<<2*i)+( ~x1<<4 ^ x2<<5*i)) % 37;
x2 = x1;
cout<<""<<x1;
}
cout<<endl;
_getch();
return 0;
}

Это образец.И он у меня почему то не работает.Не знаю в чем причина.Должно быть 5 строк.В них по 20 различных значений от 0 и до 36 включительно(вместе с примером на листочке,который дал преподаватель есть картинка как в итоге должна выглядеть программа).А у меня получается,что программа выдает одно первое число-11 и все.Подскажите что не так?

P.S Моё задание-числа от 0 и до 10.В строке по 4 значения?Но так как сам пример решения задачи не работает,то и моё вариант не срабатывает.
 
1

123123123

"Должно быть 5 строк.В них по 20 различных значений от 0 и до 36 включительно" вот что должно получиться
 
U

Unk

Я все понимаю, но в твоем примере не совсем случайные числа должны выходить. Стандартный рендомизатор нельзя использовать что ли?
 
U

Unk

функция
библиотеки нужные stdlib.h либо cstdlib, для си плюсов
C++:
#include <cstdlib> //<stdlib.h>
#include <iostream>

int main () 
{
int i;
i = rand () % 100; // случайное число от 0 до 100
std::cout << i; // вывод полученого числа
return 0;
}

п.с.
это условно "случайное" число.
 
R

rrrFer

надо еще засунуть в ГСЧ затравку функцией srand :(
но я думаю ТС это не поможет, препод молодец и дал какой-то говнокод без комментариев.

Это образец.И он у меня почему то не работает.
если это образец, и он верно переписан( проверь еще много раз каждый символ), то задачу надо решать чуть не так, ИМХО, его запускать и проверять вообще не надо (это образец, значит он правильный априори)
Не знаю в чем причина.Должно быть 5 строк.В них по 20 различных значений от 0 и до 36 включительно
следи за магическими числами
Код:
int n=100;
/*...*/
for (int i=0; i<n; i++)
{
if (i % 20 == 0) cout<<"\n";
x1 = (( ~x1<<2 ^ x2<<1*i)*( ~x1<<1 ^ x2<<2*i)+( ~x1<<4 ^ x2<<5*i)) % 37;
100 чисел(см первую процитированную строку кода) это 5 строк по 20 символов в строке (см. 5 строку) от 0 до 36(ищи подозрительное магическое число 37 в 7 строке).
P.S Моё задание-числа от 0 и до 10.В строке по 4 значения?
заменяй магические числа на свои и иди сдавай преподу. Я думаю это мог быть его коварный план(дать не работающий код с ляпой и заставить разбираться или чуть подумать над листочком вместо тыканья кнопок мыши).

ЗЫ. Но скорее всего это не коварный план препода, а ваше тотальное не знание языка и невнимательность при переписывании примера. Пока цитировал ваш код нашел ляп.
ЗЫ.ЗЫ. если набирать код в нормальной IDE то ляп тоже станет сразу виден. Еще можно воспользоваться автоматическим форматированием в нормальной IDE (тоже все станет очевидно). Но лучше пройтись по коду отладчиком, все станет не менее очевидно на второй итерации цикла xD.
 
1

123123123

Укажите где ошибка в проги препода. Его программа не работает. Смысл мне менять цифра и подставлять мои,если изначальная прога не работает.Значит и с моими числами она не будет работать-логично?

вот на этом сайте есть эта задача.и там есть фото результата данной проги.У меня этот результат не выходит.уже было написано мной,что выходит только первое значение 11 и все.

 
R

rrrFer

Укажите где ошибка в проги препода.
нет, так не интересно ) там не ошибка, а опечатка, скорее всего ваша. Я указал как вы можете ее найти. Вариант с отладчиком самый простой.
Значит и с моими числами она не будет работать-логично?
логично, но теперь я обязательно дам студентам такие же сломанные программы, этож замечательно их отфильтрует )

Добавлено: а еще, в той версии программы что ты приложил одна пара фигурных скобочек не нужна )
 
U

Unk

r04
А еще не делал? Зряя, у нас методичку по теор. алгоритмов читать не возможно было, ошибки не только в синтаксисе, а еще и в логике.
123123123
На том сайте без ошибок.
 
R

rrrFer

Unk
а точно, вспомнил, нам тоже когда-то методички с ошибками писали )
и даже учебники были со специально сделанными интересными ляпами ) у нас это вроде бы на выч.мат.-е продвигалось особо активно, пока мат. часть не изучишь ошибку не найдешь...но щас то всюду интернеты...в одной книжки ошибка - читаешь другую (студенты не будут особо долго ошибки искать)
видешь вот, подсказал 123 как ошибку найти, а он грит:
Укажите где ошибка в проги препода.
еще бы "Быстро!!!" написал для эффекту )
 
1

123123123

Надо будет напишу.

Реально нужна помощь,а вы помочь не хотите.Зачем тогда вообще писать?

Вы сами задачу копировали в С++?И что?Получилось что-нибудь?Вот лично у меня не выходит.

"На том сайте без ошибок."-это как?глаза разуй.Что написано там и у меня-одно и тоже.

И если тут опечатка-почему просто не указать на неё?Ведь помощи прошу.Ломаетесь как девки какие-то.

Прекрасно.Он увидел 2 ляпа.А указать на них не слабо?

И без вас прекрасно ясно что в программе не все верно раз она е работает как надо.

Вот я и спрашиваю у вас-что именно?Где?
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!