Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Случайные числа

Хотел спросить про генератор случайных чисел в Delphi 7 .
У меня на форме есть кнопка и Мемо при нажатии на кнопку в Мемо пишется случайное число от 11 до 21.

Код Delphi
1
2
3
Randomize;
A:=Randomrange(11,21);
sMemo1.Lines.add('Число '+IntToStr(A));
Проблема в том что эти числа повторяются.Как исправить это?

Код Delphi
1
2
3
4
Randomize;
A:=Randomrange(11,21);
if sMemo1.Lines.IndexOf( IntToStr( A ) )=-1 then
 sMemo1.Lines.add('Число '+IntToStr(A));
такой вариант не помог числа все равно повторяются.
Ответ: Ну есть еще третий вариант брать числи из массива заполненном от 11 до 21 и брать их так чтоб элементы массива не повторялись из которых береш. Тогда и цикл ненужен. Ну это плюс еще немного кода.
Вопрос: Класс очень больших чисел

Добрый день!

В универе нам задали следующее задание: создайте методы для арифметических действий на числами класса verylong (порядок чисел < 10000). Перегрузите соответствтующие операции. Числа могут быть как положительные, так и отрицательные. Также перегрузите операции сравнения долгих чисел.

И дан код-образец, который нужно модифицировать:

Код

// verylong.h
// описатель класса сверхбольших целых чисел
#include <iostream>
#include <string.h> // для strlen()и т. п.
#include <stdlib.h> // для ltoa()
using namespace std;
const int SZ = 1000; // максимальное число разрядов
class verylong
{
private:
char vlstr[SZ]; // число как строка
int vlen; // длина строки verylong
verylong multdigit(const int) const; // прототипы
verylong mult10(const verylong) const;// скрытых
// функций
public:
verylong() : vlen(0) // конструктор без аргументов
{ vlstr[0] = '\0'; }
verylong(const char s[SZ]) // конструктор (1 аргумент)
{ strcpy(vlstr, s); vlen = strlen(s); } // для строки
verylong(const unsigned long n) // конструктор (1 арг.)
{ // для long int
ltoa(n, vlstr, 10); // перевести в строку
strrev(vlstr); // перевернуть ее
vlen = strlen(vlstr); // найти длину
}
void putvl() const; // вывести число
void getvl(); // получить число от пользователя
verylong operator+(const verylong); // сложить числа
verylong operator*(const verylong); // умножить
};


Код

// verylong.cpp
// реализация обработки данных типа verylong
#include "verylong.h" // заголовочный файл для verylong
//---------------------------------------------------------
void verylong::putvl() const // вывод на экран verylong
{
char temp[SZ];
strcpy(temp, vlstr); // создать копию
cout << strrev(temp); // перевернуть копию
} // и вывести ее
//---------------------------------------------------------
void verylong::getvl() // получить сверхбольшое число от
// пользователя
{
cin >> vlstr; // получить строку от пользователя
vlen = strlen(vlstr); // найти ее длину
strrev(vlstr); // перевернуть ее
}
//---------------------------------------------------------
verylong verylong::operator+(const verylong v)
// сложение
{
char temp[SZ];
int j;
// найти самое длинное число
int maxlen = (vlen > v.vlen) ? vlen : v.vlen;
int carry = 0; // установить в 1, если сумма >= 10
for(j = 0; j < maxlen; j++) // и так для каждой позиции
{
int d1 = (j > vlen - 1) ? 0 : vlstr[j]-'0'; // получить
// разряд
int d2 = (j > v.vlen - 1) ? 0 : v.vlstr[j]-'0';// и еще
int digitsum = d1 + d2 + carry; // сложить разряды
if(digitsum >= 10) // если перенос, то
{ digitsum -= 10; carry = 1; } // увеличить сумму на 10
else // установить перенос в 1
carry = 0; // иначе перенос = 0
temp[j] = digitsum + '0';// вставить символ в строку
}
if(carry == 1) // если перенос в конце,
temp[j++] = '1'; // последняя цифра = 1
temp[j] = '\0'; // поставить ограничитель строки
return verylong(temp); // вернуть временный verylong
}
//---------------------------------------------------------
verylong verylong::operator*(const verylong v)// умножение
{ // сверхбольших чисел
verylong pprod; // произведение одного разряда
verylong tempsum; // текущая сумма
for(int j = 0; j < v.vlen; j++)// для каждого разряда аргумента
{
int digit = v.vlstr[j]-'0'; // получить разряд
pprod = multdigit(digit); // умножить текущий на него
for(int k = 0; k < j; k++) // умножить результат на
pprod = mult10(pprod); // степень 10-ти
tempsum = tempsum + pprod; // прибавить произведение к
// текущей сумме
}
return tempsum; // вернуть полученную текущую сумму
}
//---------------------------------------------------------
verylong verylong::mult10(const verylong v) const // умножение аргумента
// на 10
{
char temp[SZ];
for(int j = v.vlen - 1; j >= 0; j--)// сдвинуться на один разряд
temp[j + 1] = v.vlstr[j]; // выше
temp[0] = '0'; // обнулить самый младший разряд
temp[v.vlen + 1] = '\0'; // поставить ограничитель строки
return verylong(temp); // вернуть результат
}
//---------------------------------------------------------
verylong verylong::multdigit(const int d2) const
{ // умножение числа на
char temp[SZ]; // аргумент (цифру)
int j, carry = 0;
for(j = 0; j < vlen; j++) // для каждого разряда
{ // в этом сверхбольшом
int d1 = vlstr[j]-'0'; // получить значение разряда
int digitprod = d1 * d2; // умножить на цифру
digitprod += carry; // добавить старый перенос
if(digitprod >= 10) // если возник новый перенос,
{
carry = digitprod / 10; // переносу присвоить значение старшего разряда
digitprod -= carry * 10;// результату - младшего
}
else
carry = 0; // иначе перенос = 0
temp[j] = digitprod + '0';// вставить символ в строку
}
if(carry != 0) // если на конце перенос,
temp[j++] = carry + '0'; // это последний разряд
temp[j] = '\0'; // поставить ограничитель
return verylong(temp); // вернуть сверхбольшое число
}


Код

// vl_app.cpp
// вычисляет факториалы больших чисел
#include "verylong.h" // заголовочный файл verylong
int main()
{
unsigned long numb, j;
verylong fact = 1; // инициализировать verylong
cout << "\n\nВведите число: ";
cin >> numb; // ввод числа типа long int
for(j = numb; j > 0; j--)// факториал — это numb *
fact = fact * j; // numb-1 * numb-2 *
cout << "Факториал = "; // numb-3 и т. д.
fact.putvl(); // вывести значение факториала
cout << endl;
return 0;
}


Помогите, пожалуйста, решить задачу! Буду очень благодарна за помощь!

Это сообщение отредактировал(а) LittleMonkey - 25.5.2015, 12:53
Ответ:
Добрый день!

В универе нам задали следующее задание: создайте методы для арифметических действий на числами класса verylong (порядок чисел < 10000). Перегрузите соответствтующие операции. Числа могут быть как положительные, так и отрицательные. Также перегрузите операции сравнения долгих чисел.

И дан код-образец, который нужно модифицировать:

Код

// verylong.h
// описатель класса сверхбольших целых чисел
#include <iostream>
#include <string.h> // для strlen()и т. п.
#include <stdlib.h> // для ltoa()
using namespace std;
const int SZ = 1000; // максимальное число разрядов
class verylong
{
private:
char vlstr[SZ]; // число как строка
int vlen; // длина строки verylong
verylong multdigit(const int) const; // прототипы
verylong mult10(const verylong) const;// скрытых
// функций
public:
verylong() : vlen(0) // конструктор без аргументов
{ vlstr[0] = '\0'; }
verylong(const char s[SZ]) // конструктор (1 аргумент)
{ strcpy(vlstr, s); vlen = strlen(s); } // для строки
verylong(const unsigned long n) // конструктор (1 арг.)
{ // для long int
ltoa(n, vlstr, 10); // перевести в строку
strrev(vlstr); // перевернуть ее
vlen = strlen(vlstr); // найти длину
}
void putvl() const; // вывести число
void getvl(); // получить число от пользователя
verylong operator+(const verylong); // сложить числа
verylong operator*(const verylong); // умножить
};


Код

// verylong.cpp
// реализация обработки данных типа verylong
#include "verylong.h" // заголовочный файл для verylong
//---------------------------------------------------------
void verylong::putvl() const // вывод на экран verylong
{
char temp[SZ];
strcpy(temp, vlstr); // создать копию
cout << strrev(temp); // перевернуть копию
} // и вывести ее
//---------------------------------------------------------
void verylong::getvl() // получить сверхбольшое число от
// пользователя
{
cin >> vlstr; // получить строку от пользователя
vlen = strlen(vlstr); // найти ее длину
strrev(vlstr); // перевернуть ее
}
//---------------------------------------------------------
verylong verylong::operator+(const verylong v)
// сложение
{
char temp[SZ];
int j;
// найти самое длинное число
int maxlen = (vlen > v.vlen) ? vlen : v.vlen;
int carry = 0; // установить в 1, если сумма >= 10
for(j = 0; j < maxlen; j++) // и так для каждой позиции
{
int d1 = (j > vlen - 1) ? 0 : vlstr[j]-'0'; // получить
// разряд
int d2 = (j > v.vlen - 1) ? 0 : v.vlstr[j]-'0';// и еще
int digitsum = d1 + d2 + carry; // сложить разряды
if(digitsum >= 10) // если перенос, то
{ digitsum -= 10; carry = 1; } // увеличить сумму на 10
else // установить перенос в 1
carry = 0; // иначе перенос = 0
temp[j] = digitsum + '0';// вставить символ в строку
}
if(carry == 1) // если перенос в конце,
temp[j++] = '1'; // последняя цифра = 1
temp[j] = '\0'; // поставить ограничитель строки
return verylong(temp); // вернуть временный verylong
}
//---------------------------------------------------------
verylong verylong::operator*(const verylong v)// умножение
{ // сверхбольших чисел
verylong pprod; // произведение одного разряда
verylong tempsum; // текущая сумма
for(int j = 0; j < v.vlen; j++)// для каждого разряда аргумента
{
int digit = v.vlstr[j]-'0'; // получить разряд
pprod = multdigit(digit); // умножить текущий на него
for(int k = 0; k < j; k++) // умножить результат на
pprod = mult10(pprod); // степень 10-ти
tempsum = tempsum + pprod; // прибавить произведение к
// текущей сумме
}
return tempsum; // вернуть полученную текущую сумму
}
//---------------------------------------------------------
verylong verylong::mult10(const verylong v) const // умножение аргумента
// на 10
{
char temp[SZ];
for(int j = v.vlen - 1; j >= 0; j--)// сдвинуться на один разряд
temp[j + 1] = v.vlstr[j]; // выше
temp[0] = '0'; // обнулить самый младший разряд
temp[v.vlen + 1] = '\0'; // поставить ограничитель строки
return verylong(temp); // вернуть результат
}
//---------------------------------------------------------
verylong verylong::multdigit(const int d2) const
{ // умножение числа на
char temp[SZ]; // аргумент (цифру)
int j, carry = 0;
for(j = 0; j < vlen; j++) // для каждого разряда
{ // в этом сверхбольшом
int d1 = vlstr[j]-'0'; // получить значение разряда
int digitprod = d1 * d2; // умножить на цифру
digitprod += carry; // добавить старый перенос
if(digitprod >= 10) // если возник новый перенос,
{
carry = digitprod / 10; // переносу присвоить значение старшего разряда
digitprod -= carry * 10;// результату - младшего
}
else
carry = 0; // иначе перенос = 0
temp[j] = digitprod + '0';// вставить символ в строку
}
if(carry != 0) // если на конце перенос,
temp[j++] = carry + '0'; // это последний разряд
temp[j] = '\0'; // поставить ограничитель
return verylong(temp); // вернуть сверхбольшое число
}


Код

// vl_app.cpp
// вычисляет факториалы больших чисел
#include "verylong.h" // заголовочный файл verylong
int main()
{
unsigned long numb, j;
verylong fact = 1; // инициализировать verylong
cout << "\n\nВведите число: ";
cin >> numb; // ввод числа типа long int
for(j = numb; j > 0; j--)// факториал — это numb *
fact = fact * j; // numb-1 * numb-2 *
cout << "Факториал = "; // numb-3 и т. д.
fact.putvl(); // вывести значение факториала
cout << endl;
return 0;
}


Помогите, пожалуйста, решить задачу! Буду очень благодарна за помощь!

Это сообщение отредактировал(а) LittleMonkey - 25.5.2015, 12:53
Вопрос: Вывод введеных чисел

Здравствуйте, уважаемые форумчане! Помогите пожалуйста доделать 1 фичу для кода. Здесь код игры угадай больше меньше, пользователь вводит число и сервер выводит, угадал пользователь задуманное компом число или нет. Нужно сделать так, чтобы если пользователь не угадал число(переменная $hidden_chislo), то в выводе результата появлялась строка с неудачным числом, потом если пользователь опять не угадал, то выведется 2 неугаданных числах и так далее, до тех пор, пока пользователь не угадает число. Когда число угадается, то строка с предложенными числами исчезнет. Заранне благодарю!
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
    $message = "Угадайте число в диапазоне  от 0 до 100!"; //Устанавливаем сообщение по-умолчанию
    
    if (isset($_POST["ugadat"])) 
    { //Если данные были отправлены на сервер
        //В переменную $chislo записываем данные полученные из текстового поля с именем chislo
        $chislo = $_POST["chislo"]; 
        //В переменную $hidden_chislo записываем данные полученные из скрытого поля с именем $hidden_chislo
        $hidden_chislo = $_POST["hidden_chislo"]; 
 
        //Если число из текстового поля меньше загаданного числа, то выводим сообщение
        if ($chislo < $_POST["hidden_chislo"]) { 
            $message = "Загаданное число больше $chislo(загадно $hidden_chislo)";
            echo $count;            
        } 
        //Если число из текстового поля больше загаданного числа, то выводим сообщение
        elseif ($chislo > $_POST["hidden_chislo"]) 
        { 
            $message = "Загаданное число меньше $chislo(загадно $hidden_chislo)";
        } 
        elseif ($chislo == $_POST["hidden_chislo"]) 
        { //Если числа равны, то мы угадали!!
            $message = "Ура! Вы победили! <br> Загаданно новое число!";
            $hidden_chislo = rand(0, 100); //Загадываем новое число!
        }
    } 
    else
    { //Если данные из формы не были отправлены
        $chislo = 0; //Устанавливаем значение текстового поля по-умолчанию 
        $hidden_chislo = rand(0, 100); //Загадываем число
    }
?>
<html>
    <head>
        <title>Игра: Угадай число (больше-меньше)</title>
    </head>
<body>
    <p><div style="float: left; width: 180px; margin-bottom: 4px; text-align: left;padding: 8px 10px;border: 1px solid #70aed4; margin-left: 20px;">
    <h2 style="font-size: 12px;margin: 0; padding: 0;margin-bottom: 7px;"><span style='color:red;'><h2><?php echo $message;?></h2></span></h2>
   
    <form method="post">
        <input type="text" name="chislo" /> 
 
        <input type="submit" name="ugadat" value="Угадать" /><br/>
 
        <input type="hidden" name="hidden_chislo" value="<?php echo $hidden_chislo ?>" />
    </form>
    
    
</body>
</html>
Ответ: Azdeman не помогло к сожалению-данные все равно отправляются + кнопка угадать вообще пропадает(
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
if (isset($_POST["ugadat"])) 
    { //Если данные были отправлены на сервер
        //В переменную $chislo записываем данные полученные из текстового поля с именем chislo
        $chislo = $_POST["chislo"]; 
        //В переменную $hidden_chislo записываем данные полученные из скрытого поля с именем $hidden_chislo
        $hidden_chislo = $_POST["hidden_chislo"]; 
        
        session_start();
        if (!isset($_SESSION['chislo']))
        {
            $_SESSION['chislo'] = array();
        }
        
        if ($chislo < $_POST["hidden_chislo"]) 
        { 
            echo "Загаданное число больше $chislo(загадно $hidden_chislo)";
            
            $_SESSION['chislo'][] = $chislo;
            
            echo "Попытки: "; foreach($_SESSION['chislo'] as $value) echo $value;
            echo "<script>window.location.href='index.php'<script>";
            exit;
        }
        elseif ($chislo > $_POST["hidden_chislo"]) 
        { 
            echo "Загаданное число меньше $chislo(загадно $hidden_chislo)";
            
            $_SESSION['chislo'][] = $chislo;
           
            echo "Попытки: "; foreach($_SESSION['chislo'] as $value) echo $value;
            echo "<script>window.location.href='index.php'<script>";
            exit;
        } 
        elseif ($chislo == $_POST["hidden_chislo"]) 
        { //Если числа равны, то мы угадали!!
            $message = "Ура! Вы победили! <br> Загаданно новое число!";
            unset($_SESSION['chislo']);
            session_destroy();
            $hidden_chislo = rand(0, 100); //Загадываем новое число!
        }
    } 
Вопрос: Повторяющиеся числа

Задачка сложная, сам не могу решить. Есть массив текстбоксов tb, в каждом из них есть, допустим, по 5 не повторяющихся чисел (не повторяющихся только для каждого бокса, а не для всех). Нужно по нажатию кнопки подсчитать во всех боксах САМУЮ ЧАСТО повторяющуюся, допустим, тройку чисел, вывести эти числа, например, в один лэйбл, а во втором лэйбле показать сколько раз эта тройка чисел повторяется, а если нету ничего, то вывести 0. Приведу пример для наглядности. Пять текстбоксов, в каждом введено по пять чисел, через пробел: 1 2 3 4 5, 1 2 3 6 7, 1 2 3 8 9, 15 16 17 18 19, 15 16 17 20 21. Здесь две повторяющиеся тройки чисел 1-2-3 и 15-16-17, но 1-2-3 выпадает чаще, чем другая, точнее 3 раза. Старался попроще привести пример. Понимаю, что задачка сложная, но надеюсь, что поможете. Привести свою часть кода не могу, так как сам новичок в сишарпе и даже не знаю с чего начать, но нужно сделать эту задачу. Заранее большое спасибо.
P.S. Кстати, кто-то может сказать - делай ручками или делай перебором массива. Так и я могу ответить. Хотелось бы на примере кода. Ещё раз заранее спасибо.
Ответ: Спасибо за помощь. Позже проверю как работает.

Добавлено через 5 минут
Спасибо за помощь. Позже проверю как работает. Хотя, я приводил пример с Textbox-ами и хотелось бы пример для Windows Forms, а не для консоли. Но всё равно спасибо, что откликнулись.

Добавлено через 1 час 26 минут
Может кто ещё поможет? Только на примере Windows Forms, а не консоли.

Добавлено через 1 час 19 минут
Этот код не работает, вообще. Он может сравнивать только первые три числа в каждом массиве. Я поменял числа на другие:
C#
1
2
3
4
5
6
var arrays = new List<int[]>();
            arrays.Add(new int[] { 1, 10, 15, 20, 41 });
            arrays.Add(new int[] { 1, 9, 15, 14, 73 });
            arrays.Add(new int[] { 2, 1, 3, 15, 41 });
            arrays.Add(new int[] { 66, 15, 41, 55, 1 });
            arrays.Add(new int[] { 56, 15, 73, 4, 11 });
Здесь только одна тройка чисел, которая повторяется в этих пяти массивах - 1, 15, 41 и она повторяется 3 раза, это визуально можно проверить. Консоль мне выдала результат
C#
1
Most frequently: 1, 10, 15 Count: 1
Этот код не работает (((

Добавлено через 14 часов 35 минут
Может кто поможет разобраться с кодом?
Вопрос: Построчное чтение целых чисел из текстового файла с занесением в массив для анализа

Доброго всем здравия!
Я новичок в С++, и у меня существует большая необходимость в решении следующей задачи:
чтение входного текстового (input.txt) файла, содержащего 6 столбцов и не фиксированное количество сток целых чисел, разделенных знаком табуляции с занесением в динамический массив. Чтение и запись в массив должно выполняться построчно.
Далее, в полученном исходном массиве ищутся строки, в которых первое число находится в диапазоне от 20 до 29 и 2 числа (из оставшихся 4-х) находятся в диапазоне от 1 до 9. Найденная строка чисел заносится в другой массив, который по окончании работы записывается в выходной файл (output.txt) также построчно, с указанием в конце количества полученных строк.

Пример входного файла:
15 2 7 44 8 3
22 15 8 30 2 18
18 3 79 32 28 5
14 44 83 12 6 55
27 3 14 83 55 9

В этом примере 2-я и 5-я строки подпадают под условие анализа, и должны быть занесены в отдельный массив, а затем в файл (output.txt).

На данный момент я смог реализовать только чтение из файла и вывод на экран (в качестве средства тестирования). Однако, чтение произвожу в char, и преобразовать в int никак не получается! Была мысль использовать парсер для поиска строк по условию, подключил Boost, но в синтаксисе Spirit-а пока разобраться не могу... Скорее всего это будет оптимальный вариант, но для меня пока сложновато.

Вот мой код (пишу в VS2015):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "stdafx.h"
#include <fstream>
#include <iostream>
using namespace std;
 
int main()
{
    ifstream fin("c:\\input.txt");
 
    if (fin.is_open()) {
 
        ifstream fin;
        fin.open("c:\\input.txt");
        char ch;
        while (fin.get(ch))
            cout << ch;
        fin.close();
        system("pause");
    }
    else {
        cout << "File not found" << endl;
        system("pause");
    }
 
    return 0;
}
Подскажите пожалуйста пути решения задачи! Буду очень признателен за помощь!!!
Ответ: Уважаемые знатоки и эксперты!!!

Помогите пожалуйста определить направление, в котором двигаться! Задача усложнилась: необходимо в входном массиве чисел найти строки, удовлетворяющие 450 условиям, наподобие того, что было в исходной задаче.

Постараюсь описать условия для поиска:

Пусть D0 - интервал чисел 0 - 9
D1 - 10 - 19
D2 - 20 - 29
D3 - 30 - 39
D4 - 40 - 49

Далее:
P - 2 числа, принадлежащие одному из интервалов D()
PP - 4 числа, принадлежащие двум разным интервалам D()
PPP - 6 чисел, принадлежащие трем разным интервалам D()
Q - 4 числа, принадлежащие одному из интервалов D()
QP - 4 числа одного интервала D() и 2 числа другого интервала D()
S - 6 чисел, принадлежащие одному из интервалов D()
T - 3 числа, принадлежащие одному из интервалов D()
TP - 3 числа одного интервала D() и 2 числа другого интервала D()
TT - 3 числа одного интервала D() и 3 числа другого интервала D()
V - 5 чисел, принадлежащие одному из интервалов D()

Самое интересное!

Пришлось ввести формальную запись для условий. Например:

1D0PP; 1-первое число в строке принадлежит D0, среди оставшихся 5-ти есть 4 числа, принадлежащие двум разным интервалам D() за исключением D0 (в противном случае это будет уже T)

Теперь условия:

1D0PP; 1D0P; 1D0T; 1D0TP; 1D0Q; 1D0V
2D0PP; 2D0TP; 2D0PPP; 2D0P; 2D0QP
3D0TP; 3D0T; 3D0TT
4D0Q; 4D0QP
5D0V
6D0 (это фактически S)

Аналогично для D1, D2, D3 и D4.
Т.е

1D1PP; 1D1P; 1D1T; 1D1TP; 1D1Q; 1D1V
2D1PP; 2D1TP; 2D1PPP; 2D1P; 2D1QP
3D1TP; 3D1T; 3D1TT
4D1Q; 4D1QP
5D1V
6D1
и т.д.

Как мне это видится: D() это фактически лексемы, из которых составлены грамматики в виде вышеописанных условий. Вопрос в том, что я не представляю как это можно описать.

Помогите пожалуйста советом!
Заранее благодарен!
Вопрос: Доделать вывод спирали по числу от пользователя

Помогите пожалуста написать програму на с# в которой пользователь задает любое целое число (оно есть концом масива) и програма строит спираль начиная с нуля или одиницы до етого числа саму частичку кода которая отвечяэт за ввод числа в масив я смог сделать а вот построить спираль не могу.
Вот пример кода для ввода числа в масив
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Snake
{
    class Program
    {
        static void Main(string[] args)
        {
            double a = double.Parse(Console.ReadLine());
            for (int i = 1; i <= a; i = i + 1)
                Console.WriteLine(i);
        }
    }
}
Только на ето хватило моих знаний с#
Помогите!!! Зарание спасибо!!!
Ответ: Aael, Вы спасли меня, спасибо

Добавлено через 2 минуты
Aael, посмотрите на то што я зделал с тем кодом который скидал ниже P.S.(Извините за коменты ето мои роднои язык)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Snake
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("***Програма яка будує спiраль зададаного розмiру з даданим числом закiнчення***");
                Console.WriteLine("Виберiть в яку сторону буде будуватися спiраль (1 - поч. зверху злiва вниз) (2 - поч. зверху злiва на право)");
                Console.WriteLine(" __1__   __2__ ");
                Console.WriteLine(" 1 8 7   1 2 3 ");
                Console.WriteLine(" 2 9 6   8 9 4 ");
                Console.WriteLine(" 3 4 5   7 6 5 ");
                int type = int.Parse(Console.ReadLine()); //Вибираємо тип спіралі
                if (type == 1)
                {
                    Console.WriteLine("Ви вибрали спiраль данного типу");
                    Console.WriteLine(" __1__ ");
                    Console.WriteLine(" 1 8 7 ");
                    Console.WriteLine(" 2 9 6 ");
                    Console.WriteLine(" 3 4 5 ");
                    Console.WriteLine("Введiть розмiр спiралi в форматi вiд 1 до 18(вiд 1x1 до 18х18)");
                    int size = int.Parse(Console.ReadLine()); //Вводимо розмір спіралі NxM
                    Console.WriteLine("Буде побудована спiраль розмiром " + size + "x" + size);
                    Console.WriteLine("Введiть число яким закiнчиться спiраль (max значення {0})", size * size);
                    int finish = int.Parse(Console.ReadLine()); //Число яким закінчується спіраль
                    int start = 1; //Число яким починається спіраль
                    int[,] spiral_nums = new int[start, finish]; //Цикл чисел спіралі від початку до кінця
                    int[,] spiral_build = new int[size, size]; //Цикл який будує спіраль 
                    int row = 0;
                    int col = 0;
                    int dx = 1;
                    int dy = 0;
                    int dirChanges = 0;
                    int visits = size;
                    for (int i = 0; i < spiral_nums.Length; i++)  //Значення {і} означає з якого числа почнеться будуватись спіраль, перші цифри заміняються на нулі в кінці
                    {
                        spiral_build[col, row] = i + 1; /*З якого числа почнеться спіраль (якщо змінити {1} на інше число в умові matrix[col, row] = i + 1)
                                           *Якщо поміняти місцями {col} і {row} в умові (matrix[col, row] = i + 1;) 
                                           *то зміниться напрям за яким будується спіраль (поч. зверху зліва вниз) або (поч. зверху зліва на право)*/
                        if (--visits == 0)
                        {
                            visits = size * (dirChanges % 2) + size * ((dirChanges + 1) % 2) - (dirChanges / 2 - 1) - 2;
                            int temp = dx;
                            dx = -dy;
                            dy = temp;
                            dirChanges++;
                        }
                        col += dx; row += dy; //Як буде будуватись спіраль (поч. зверху зліва вниз)
                    }
                    Console.WriteLine();
                    for (int i = 0; i < size; i++) //будує рядочки
                    {
                        for (int j = 0; j < size; j++) //будує стовпчики
                        {
                            Console.Write(" " + spiral_build[i, j] + " "); // спосіб подачі (робить пробіли між числами)
                        }
                        Console.WriteLine();
                        Console.WriteLine();
                    }
                    Console.ReadKey();
                }
                else if (type == 2)
                {
                    Console.WriteLine("Ви вибрали спiраль данного типу");
                    Console.WriteLine(" __2__ ");
                    Console.WriteLine(" 1 2 3 ");
                    Console.WriteLine(" 8 9 4 ");
                    Console.WriteLine(" 7 6 5 ");
                    Console.WriteLine("***Програма яка будує спiраль зададаного розмiру з даданим числом закiнчення***");
                    Console.WriteLine("Введiть розмiр спiралi в форматi вiд 1 до 18(вiд 1x1 до 18х18)");
                    int size = int.Parse(Console.ReadLine()); //Вводимо розмір спіралі NxM
                    Console.WriteLine("Пpограма будує спiраль розмiром " + size + "x" + size);
                    Console.WriteLine("Введiть число яким закiнчиться спiраль (max значення {0})", size * size);
                    int finish = int.Parse(Console.ReadLine()); //Число яким закінчується спіраль
                    int start = 1; //Число яким починається спіраль
                    int[,] spiral_nums = new int[start, finish]; //Цикл чисел спіралі від початку до кінця
                    int[,] spiral_build = new int[size, size]; //Цикл який будує спіраль 
                    int row = 0;
                    int col = 0;
                    int dx = 1;
                    int dy = 0;
                    int dirChanges = 0;
                    int visits = size;
                    for (int i = 0; i < spiral_nums.Length; i++)  //Значення {і} означає з якого числа почнеться будуватись спіраль, перші цифри заміняються на нулі в кінці
                    {
                        spiral_build[col, row] = i + 1; /*З якого числа почнеться спіраль (якщо змінити {1} на інше число в умові matrix[col, row] = i + 1)
                                           *Якщо поміняти місцями {col} і {row} в умові (matrix[col, row] = i + 1;) 
                                           *то зміниться напрям за яким будується спіраль (поч. зверху зліва вниз) або (поч. зверху зліва на право)*/
                        if (--visits == 0)
                        {
                            visits = size * (dirChanges % 2) + size * ((dirChanges + 1) % 2) - (dirChanges / 2 - 1) - 2;
                            int temp = dx;
                            dx = -dy;
                            dy = temp;
                            dirChanges++;
                        }
                        col += dy; row += dx; //Як буде будуватись спіраль (поч. зверху зліва на право) 
                    }
                    Console.WriteLine();
                    for (int i = 0; i < size; i++) //будує рядочки
                    {
                        for (int j = 0; j < size; j++) //будує стовпчики
                        {
                            Console.Write(" " + spiral_build[i, j] + " "); // спосіб подачі (робить пробіли між числами)
                        }
                        Console.WriteLine();
                        Console.WriteLine();
                    }
                    Console.ReadKey();
                }
                else
                {
                    Console.WriteLine("Введене некоректне число");
                }
            }
            catch
            {
                Console.WriteLine("Помилка");
            }
        }
    }
}
Вопрос: Наименьшее и наибольшее из чисел

Не могли бы помочь перевести в ассемблер данный код
Даны три числа.
Вывести вначале наименьшее, а затем наибольшее из данных чисел. Помогите решать пожалуйста.
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var
c,b,a:integer;
begin
Writeln('Введите первое целое число A=');
readln(a);
Writeln('Введите второе целое число B=');
readln(b);
Writeln('Введите второе целое число C=');
readln(c);
if (A>C)and(A>B) then
begin
if Bthen Writeln(' наименьшее из данных чисел B =',inttostr(B))
else Writeln(' наименьшее из данных чисел C =',inttostr(C));
Writeln(' наибольшее из данных чисел A =',inttostr(a));
end;
if (B>C)and(B>A) then
begin
if Athen Writeln(' наименьшее из данных чисел A =',inttostr(A))
else Writeln(' наименьшее из данных чисел C =',inttostr(C));
Writeln(' наибольшее из данных чисел B =',inttostr(B));
end;
if (C>A)and(C>B) then
begin
if Athen Writeln(' наименьшее из данных чисел A =',inttostr(A))
else Writeln(' наименьшее из данных чисел C =',inttostr(C));
Writeln(' наибольшее из данных чисел B =',inttostr(B));
end;
end.
Ответ:
Код ASM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
;FASM, сохранять в cp866
format  PE console 4.0
include 'win32a.inc'
    cinvoke printf, tps, msg0   ; выводим приглашение
    cinvoke scanf, tpi, A       ; вводим A
    cmp eax, 1          ; верный ввод?
    jnz gtfo            ; нет, отваливаем
    inc byte [AB]
    cinvoke printf, tps, msg0   ; выводим приглашение
    cinvoke scanf, tpi, B       ; вводим B
    cmp eax, 1          ; верный ввод?
    jnz gtfo            ; нет, отваливаем
    inc byte [AB]
    cinvoke printf, tps, msg0   ; выводим приглашение
    cinvoke scanf, tpi, C       ; вводим C
    cmp eax, 1          ; верный ввод?
    jnz gtfo            ; нет, отваливаем
    mov eax, [A]
    cmp eax, [B]
    cmovg   eax, [B]
    cmp eax, [C]
    cmovg   eax, [C]
    mov ebx, [A]
    cmp ebx, [B]
    cmovl   ebx, [B]
    cmp ebx, [C]
    cmovl   ebx, [C]
    cinvoke printf, msg1, eax, ebx  ; выводим на экран
    invoke  fflush, 0       ; актуализируем буфферизованный вывод
    invoke  _getch          ; any key
gtfo:   invoke  exit, 0         ; выход
A:  dd  ?
B:  dd  ?
C:  dd  ?
msg0:   db  'Введите число A=',0
AB  =   $-3
msg1:   db  'Min=%d, Max=%d', 0
tpi db  '%i',0
tps db  '%s',0
 
data import
library msvcrt,'msvcrt.dll'
 
import  msvcrt,\
    printf,'printf',\
    scanf,'scanf',\
    fflush,'fflush',\
    _getch,'_getch',\
    exit,'exit'
end data
Вопрос: Помогите отладить программу: Разработать класс, содержащий вектор длинных целых чисел

Всем привет. Нужна ваша помощь. Ниже задания что бы вы были в курсе что я делаю. Примерно половину заданий я уже выполнил, однако есть кое какие вопросы.
1) конструктор копирования..я не уверен что я его правильно создал и "вызвал"
2) как правильно реализовать деструктор для моего варианта. Если откоментировать то что я написал то при вызове функций или методов сортировки и вывода на экран возникает ошибка
3) пожалуй самое важное, в чем пока не разберусь где что не так - это "установление новых значений в объекте после сортировки". Сама сортировка работает. Всё сортируется и даже передаётся в класс, но обновить вектор так и не получается.

Проверить конструкторы/деструкторы и помогите найти ошибку с сортировкой. Пока не разберусь с этим и не станет всё как надо работать 2-е задание с перегрузкой делать пока не имеет большого смысла. Также буду благодарен если кто-нить поможет и с перегрузкой, хотя бы с "подходящей под мой случай" теорией, так как сам только поверхностно знаю как это реализовать.


Класс должен включать:
- компоненты данные
- методы:
а) конструктор по умолчанию;
б) конструктор с параметрами;
в) конструктор копирования;
г) деструктор;
д) методы класса для работы с данными.
Компоненты данные класса должны иметь атрибут private или protected (в зависимости от необходимости).
При реализации задания 1 функцию вывода содержимого объекта реализовать как внешнюю по отношению к классу
При реализации задания 3 в базовый класс (кроме перечисленных выше) добавить методы: set – инициализации данных базового класса, get – возврата данных класса.

Задания:
1. Разработать класс А, одной из компонент которого является вектор длинных целых чисел и внешнюю функцию (по отношению к классу А), выполняющую упорядочивание чисел в векторе (по возрастанию). Содержимое объекта (вектор чисел) до и после применения к нему внешней функции вывести на экран.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – вектор (одномерный массив). Реализовать для объектов данного класса перегрузку операции < ( a<b; ) при этом в объект а заносится меньшее а в объект b большее из 2 чисел массивов в сравниваемых объектах.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – вектор (числовой динамический массив (int *)). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – нахождения в векторе элементов с нечетными значениями и удаления их вектора.


Код C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
#include <vector>
#pragma hdrstop
#include <stdio.h>
#include <string.h>
 
using namespace std;
 
class A{
   private:
      vector <int> numbers;
      int size;
 
   public:
      // конструктор по умолчанию
      A(){
         int rnd;
         srand(time(0));
         for (int i=0; i<20; i++){
            rnd = rand() % 100;
            (this->numbers).push_back(rnd);
         }
         this->size=20;
      }
 
      // конструктор с параметрами
      A(int count){
         int rnd;
         srand(time(0));
         for (int i=0; i<count; i++){
            rnd = rand() % 100;
            (this->numbers).push_back(rnd);
         }
         this->size = count;
      }
 
      // конструктор копирования   ???
      A(const A & source){
         int rnd;
         srand(time(0));
         for (int i=0; i<10; i++){
            rnd = rand() % 100;
            numbers = source.numbers;
            (this->numbers).push_back(rnd);
        }
        this->size = 10;
      }
 
   // деструктор    ???
   ~A(){
       // delete []&numbers; // происходит ли удаление при помощи данной строки?
       // numbers.clear();
   }
 
      //get-метод для 3-го задания (получение значений вектора)
      vector <int> get(){
        return this->numbers;
      }
 
      //set-метод для 3-го задания  (установить рандомные значения)
      void set(int count){
         int rnd;
         srand(time(0));
         for (int i=0; i<count; i++){
            rnd = rand() % 100;
            (this->numbers).push_back(rnd);
         }
      }
 
      // установить отсортированный test-массив
      void setSorting(vector <int> test){
          for (int i=0; i<test.size(); i++){
                this->numbers[i]=test[i];
                cout<< test[i]<<" ";
          }
      }
 
      //просто метод для вывода содержимого на экран
      void printValue(){
         for(int i=0; i<(this->numbers).size(); i++)
         cout<< this->numbers[i]<<" ";
      }
} ;
 
//-------------------------------------------------------------------------------
// функция для для сортировки для 1-го задания (отсортированный масссив хранится в test)
void sort(A obj){
   int temp;
   vector <int> test;
   test = obj.get2();
   test.pop_back() ;
   for (int i=0; i<test.size(); i++){
      for (int j=0; j<i; j++){
         if (test[j]>test[j+1]) {
            temp = test[j];
            test[j] = test[j+1] ;
            test[j+1] = temp;
            i--;
         }
      }
   }
   obj.setSorting(test);
}
 
   // функция для вывода на экран для 1-го задания (аналогична методу printValue())
   void Print(A obj){
        cout<<endl;
   vector <int> test;
        test = obj.get2();
         for(int i=0; i<test.size()-1; i++){
        cout<<test[i]<<endl;
          }
   }
 
#pragma argsused
int main(int argc, char* argv[])
{
   setlocale(LC_ALL, "rus");
 
   A vectors1;   // вызов конструктора по умолчанию
   A vectors2(10);// вызов конструктора с параметрами
   A vectors3 = vectors1; //вызов копирующего конструктора   ??
 
   
   cout<<"Do sortirovki"<<endl;
   vectors1.printValue();
   cout<<endl<<endl;
 
   cout<<"SORTIROVKA"<<endl;
   sort(vectors1);
   cout<<endl<<endl;
 
   cout<<"Posle sortirovki"<<endl;
   vectors1.printValue();
   cout<<endl<<endl;
 
   getch();
   return 0;
}
//---------------------------------------------------------------------------
Ответ: прошло уже около недели а никто так и не ответил(
надеюсь хоть сейчас поможете
сделал все задания..всё компилируется..всё работает...есть некоторые недочеты, хочу спросить как от них избавиться

в 1) задании как и было..не уверен в конструкторе копирования и конструкторе...функция сортировки и вывода вроде работает..может и в ней найдете что-то не так

во 2) сделал перегрузку.работает, но после перезагрузки у 2-го объекта появляются в конце 2 элемента, которые я пока не знаю как удалить или скрыть.
пробовал при помощи. Одно число удаляет, а вот при удалении 2-го последний нужный элемент в одном из объектов меняется на "новый"
Код C++
1
a.numbers.erase(a.numbers.end()-1);
3) тоже сделал через указатели..реализовала гетторы и сетторы, а вот само удаление не получается, хотя нахождение нужных элементов правильное, возможно из-за того что не срабатывает 2-ая строчка
Код C++
1
2
a.erase(a.begin() + i); 
//vector<int>(a).swap(a);
надеюсь кто-нить откликнутся

Код C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
#include <vector>
#pragma hdrstop
#include <stdio.h>
#include <string.h>
 
 
using namespace std;
 
class A{
   private:
      vector <int> numbers;
      int size;
 
   public:
      // ГЄГ®Г*ñòðóêòîð ГЇГ® óìîë÷Г*Г*ГЁГѕ
      A(){
         int rnd;
         srand(time(0));
         for (int i=0; i<20; i++){
            rnd = rand() % 100;
            (this->numbers).push_back(rnd);
         }
         this->size=20;
      }
 
      // ГЄГ®Г*ñòðóêòîð Г± ГЇГ*Г°Г*ìåòðГ*ìè
      A(int count){
         int rnd;
         //srand(time(0));
         for (int i=0; i<count; i++){
            rnd = rand() % 100;
            (this->numbers).push_back(rnd);
         }
         this->size = count;
      }
 
      // ГЄГ®Г*ñòðóêòîð êîïèðîâГ*Г*ГЁГї   ???
      A(const A & source){
         int rnd;
         srand(time(0));
         for (int i=0; i<10; i++){
            rnd = rand() % 100;
            numbers = source.numbers;
            (this->numbers).push_back(rnd);
        }
        this->size = 10;
      }
 
      //äåñòðóêòîð
      ~A(){
        numbers.clear();
      }
 
      //get-ìåòîä äëÿ ïîëó÷åГ*ГЁГҐ Г§Г*Г*Г·ГҐГ*ГЁГ© âåêòîðГ*
      vector <int> get(){
        return this->numbers;
      }
 
      //set-ìåòîä äëÿ ГіГ±ГІГ*Г*îâëåГ*ГЁГї Г°Г*Г*äîìГ*ûõ Г§Г*Г*Г·ГҐГ*ГЁГ©
      void set(int count){
         int rnd;
         srand(time(0));
         for (int i=0; i<count; i++){
            rnd = rand() % 100;
            this->numbers.push_back(rnd);
         }
      }
 
      // ГіГ±ГІГ*Г*îâèòü îòñîðòèðîâГ*Г*Г*ûé test-Г¬Г*Г±Г±ГЁГў
      void setSorting(vector <int> test){
          for (int i=0; i<test.size(); i++){
                this->numbers[i]=test[i];
                cout<< test[i]<<" ";
          }
      }
 
      //ïðîñòî ìåòîä äëÿ âûâîäГ* ñîäåðæèìîãî Г*Г* ГЅГЄГ°Г*Г*
      void printValue(){
         for(int i=0; i<(this->numbers).size(); i++)
         cout<< this->numbers[i]<<" ";
      }
 
      // ïåðåãðóçêГ* îïåðГ*òîðГ* >
      A operator >(A a){
        int temp;
        for (int i=0; i<a.numbers.size(); i++){
                if (this->numbers[i]>a.numbers[i]){
                temp = a.numbers[i];
                a.numbers[i]= this->numbers[i];
                this->numbers[i] = temp;
                }
        }
 
        //cout<<endl<<this->numbers.size()<<endl;  //10
        //cout<<endl<<a.numbers.size()<<endl;      //11
        //a.numbers.erase(a.numbers.end()-1);
    return a;
        //return *this;
      }
} ;
 
//Г§Г*Г¤Г*Г*ГЁГҐ 3
class Vector{
        protected:
           vector <int*> MyVector;
        public:
          vector <int*> get(){
             return this->MyVector;
          }
 
          void set(int count){
             int rnd;
             srand(time(0));
             vector <int> a;
             for (int i=0; i<count+1; i++){
                rnd = rand() % 100;
                a.push_back(rnd);
                this->MyVector.push_back(&a[i]);
                if (i!=0) cout<<a[i]<<" ";
             }
          }
};
 
class VectorProizvodny: public Vector {
       public:
          void print(){
             vector <int*> a;
             a=this->get();
             vector <int> b;
             for (int i=1; i<this->MyVector.size(); i++){
             cout<<*a[i]<<" ";
             }
          }
 
          void clear(){
             vector <int*> a;
             a=this->get();
             for (int i=1; i<a.size(); i++){
                    if (*a[i]%2==0) {
                    //âîò ñäåñü Г*Г*õîäèò ГЇГ°Г*âèëüГ*Г®, Г*Г® ГіГ¤Г*ëÿåò Г*ГҐ ГўГҐГ°Г*Г®
                        cout<<*a[i]<<" ";
                        a.erase(a.begin() + i);
                        //vector<int>(a).swap(a);
                    }
 
 
             }
             cout<<" - nuzhnye elementy"<<endl;
             // âûâîä ïîñëå ГіГ¤Г*ëåГ*ГЁГї (îòëè÷Г*ГҐГІГ±Гї îò ïðèäûäóùåãî)
             for (int i=1; i<a.size(); i++){
                 cout<<*a[i]<<" ";
              }
              cout<<" - vyvod posle udalenya nvunri methoda"<<endl;
          }
} ;
//-------------------------------------------------------------------------------
// ГґГіГ*êöèÿ äëÿ äëÿ ñîðòèðîâêè äëÿ 1-ГЈГ® Г§Г*Г¤Г*Г*ГЁГї (îòñîðòèðîâГ*Г*Г*ûé Г¬Г*Г±Г±Г±ГЁГў õðГ*Г*ГЁГІГ±Гї Гў test)
vector <int> sort(A obj){
   int temp;
   vector <int> test;
   test = obj.get();
   test.pop_back() ;
   for (int i=0; i<test.size(); i++){
      for (int j=0; j<i; j++){
         if (test[j]>test[j+1]) {
            temp = test[j];
            test[j] = test[j+1] ;
            test[j+1] = temp;
            i--;
         }
      }
   }
   return test;
}
 
   // ГґГіГ*êöèÿ äëÿ âûâîäГ* Г*Г* ГЅГЄГ°Г*Г* äëÿ 1-ГЈГ® Г§Г*Г¤Г*Г*ГЁГї (Г*Г*Г*ëîãè÷Г*Г* ìåòîäó printValue())
   void Print(A obj){
        cout<<endl;
        vector <int> test;
        test = obj.get();
        for(int i=0; i<test.size()-1; i++){
           cout<<test[i]<<endl;
        }
   }
 
#pragma argsused
int main(int argc, char* argv[])
{
   setlocale(LC_ALL, "rus");
 
 
   cout<<"ZADANIE 1"<<endl<<endl;
   A vectors1;   // âûçîâ ГЄГ®Г*ñòðóêòîðГ* ГЇГ® óìîë÷Г*Г*ГЁГѕ
   A vectors2(10);// âûçîâ ГЄГ®Г*ñòðóêòîðГ* Г± ГЇГ*Г°Г*ìåòðГ*ìè
   A vectors3 = vectors1; // âûçîâ êîïèðóþùåãî ГЄГ®Г*ñòðóêòîðГ*
 
 
   cout<<"Do sortirovki"<<endl;
   vectors1.printValue();
   cout<<endl<<endl;
 
   cout<<"SORTIROVKA"<<endl;
   vectors1.setSorting(sort(vectors1)) ;
   cout<<endl<<endl;
 
   cout<<"Posle sortirovki"<<endl;
   vectors1.printValue();
   cout<<endl<<"______________________________________________"<<endl;
 
   cout<<endl<<endl<<"ZADANIE 2"<<endl<<endl;
   A a(10);
   A b(10);
   cout<<"object 1:  ";
   a.printValue();
   cout<<endl<<endl;
   cout<<"object 2:  ";
   b.printValue();
 
   cout<<endl<<endl<<"Peregruzka:"<<endl;
   b=a.operator >(b);
   cout<<endl<<endl;
   cout<<"object 1:  ";
   a.printValue();
   cout<<endl<<endl;
   cout<<"object 2:  ";
   b.printValue();
   cout<<endl<<"______________________________________________"<<endl;
 
   cout<<endl<<endl<<"ZADANIE 3"<<endl<<endl;
   VectorProizvodny obj1;
   obj1.set(21);
   cout<<endl;
   obj1.clear();
   cout<<endl;
   obj1.print();
   getch();
   return 0;
}
//---------------------------------------------------------------------------
Вопрос: Найдите все пары чисел-близнецов из отрезка

Собственно помогите решить задачку, есть наброски на работают не совсем так, как надо.

Два простых числа называются близнецами, если они отличаются друг от друга на 2 (таковы, например, числа 41 и 43). Найдите все пары чисел-близнецов из отрезка [n,2n], где n - заданное натуральное число, большее двух, с помощью функции распознавания простых чисел. Приведём несколько примеров чисел-близнецов: (5,7), (11,13), (17,19), (22271,22273).
Код Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Option explicit
dim n,m,f,t
t=CBool(m)
function bli(n)
for m=n to 2*n step 1
      t=false
    for f=2 to m-1 step 1
          if m mod f = 0 then 
                                  t=true
          end if 
    next
       if t=false then 
            msgbox "Близнецы" & VbCrLf & m 
            bli=n
       end if
next
end function
n=inputbox ("введите n")
call bli (n)
п.с поиск не помог :С
Ответ: Ваш алгоритм не самый лучший. Для поиска простых
чисел близнецов используется следующее:
1. Числа близнецы имеют вид 6n-1 и 6n+1
где n натуральное число
То есть задается цикл с шагом 6.
Такие числа по определению не делятся ни на 2 ни на 3
2. В цикле должна быть проверка. Если эти два числа
простые, то они близнецы. В противном случае берутся
два других числа. Понятно, что если из этих двух чисел
одно составное, то эта пара более не рассматривается.
И берётся следующая пара. И так до тех пор, пока не
будет проверен весь заданный интервал.
Вопрос: Помогите пожалуйста новичку в решении задача на PHP

Дорогие программисты помогите с решениями задач..!!

1) В массиве хранится информация о баллах, полученных спортсменом-десятиборцем в каждом из десяти видов спорта. Для выхода в следующий этап соревнований общая сумма баллов должна превысить некоторое известное значение. Определить, вышел ли данный спортсмен в следующий этап соревнований.

2) В массиве из 10 чисел есть положительные и отрицательные элементы. Подсчитать количество положительных элементов массива.

3) Дано предложение. Определить долю (в%) букв "a" в нем.

4) Дано трехзначное число. Вывести число, полученное при перестановке цифр десятков и единиц исходного числа( например, 123 перейдет в 132).

5) Даны действительные числа а1, b1, c1, a2, b2, c2. Выяснить, верно ли, что |a1b2-a2b1|>=0.0001, и если верно, то найти решение системы линейных уравнений

a1x+b1y+c1=0,
a2x+b2y+c2=0
(при выполнении выписанного неравенства система заведомо совместна и имеет единственное решение).

6) Найти сумму -1^2+2^2-3^2+4^2+...+10^2. Условный оператор не использовать.

7) Описать функцию isPrime(N) логического типа, возвращающую TRUE, если целый параметр N(>1) является простым числом, и FALSE в противном случае (число, большее 1, называется простым, если оно не имеет положительных делителей, кроме 1 и самого себя). Дан набор из 10 целых чисел, больших 1. С помощью функций IsPrime найти количество простых чисел в данном наборе.
Ответ:


- Помогите словить рыбу?
- А что не получается?
-Да я вообще не умею ее ловить...