Форум программистов, компьютерный форум CyberForum.ru

Написать на С++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ вычисление значения функции http://www.cyberforum.ru/cpp-beginners/thread988860.html
Разработать алгоритм и составить по нему программу для вычисления значений функции z = f(x,y) в зависимости от попадания точки с координатами (х,у) в область D. Область D выделена серым цветом. Прошу помочь с математикой, а именно - как попасть в эту область D? Что необходимо узнать (найду я уравнения прямых, а дальше чего с ними делать)?
C++ Дома и дорожки.Задача На ровной местности находятся дома.Любые два дома можно соединить ровной дорожкой. Необходимо соединить пары домов та, чтобы к каждому дому вела хотя бы одна дорожка, а суммарное колличество дорожек была минимальна ВВОдные данные: Есть число N(1<N<=100).Каджый ряд содержит N чисел- координаты всех домов(положительные числа(невiдэмнi, не большие чем 10000). Минимальная суммарная длинна... http://www.cyberforum.ru/cpp-beginners/thread988859.html
C++ Массив: Вычислить сумму элементов главной диагонали матрицы.
1.Вычислить сумму элементов главной диагонали матрицы. 2.Сосчитать количество отрицательных элементов матрицы, значения которых не превышают заданное число
Генератор случайных чисел в матрице C++
Здравствуйте! С Формами в С++ работаю впервые. Мне необходимо на форме по нажатию на кнопку в поле textbox сформировать датчиком случайных чисел целочисленную матрицу А(6х4). Можете привести пример матрицы формируемой генератором случайных чисел с выводом на textbox. Какие быблиотеки необходимо подключать.
C++ Напишите функцию bool IsDigit(unsigned char c), определяющую, является ли данный символ цифрой или нет http://www.cyberforum.ru/cpp-beginners/thread988799.html
Я начинающий в С++, помогите пожалуйста с задачей: Напишите функцию bool IsDigit(unsigned char c), определяющую, является ли данный символ цифрой или нет. Напишите программу, которая получает на вход один символ и выводит строку yes, если символ является цифрой и строку no, в противном случае. Не совсем понимаю как это реализовать(
C++ Определить длину строки и сколько раз встречается символ в строке Пусть дано строку и некий символ. Необходимо определить длину строки, сколько раз встречается данный символ в строке, вывести строку, начиная с первой позиции, где встречается данный символ. Посчитать длину строки смогла, а вот остальное.... #include <iostream> #include <math.h> #include <conio.h> #include <string.h> using namespace std; void main() { char y, ; подробнее

Показать сообщение отдельно
Shtirliz72
201 / 161 / 38
Регистрация: 25.10.2013
Сообщений: 527
27.10.2013, 23:42     Написать на С++
Цитата Сообщение от KyKi Посмотреть сообщение
не угадали,я его как не кручу,все равно не то что-то
Что не угадал-то? На вопросы ты-то не ответила. Так всё таки что будет если вытаться вещественное число преобразовать в целое? И почему это плохо для твоего задания?)
Что будет если синус представить целым числом? Это блин такая жирная подсказка.
Хотя бы для себя на этот вопрос ответь.
А как ты крутишь код - лучше сюда выложить и сравнить.
3 задание
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
/*Дано вещественное число X и целое число N (> 0). Найти значение выражения
x-x^3(3!)+x^5/(5!)-...+(-1)^N*x^(2N+1)/((2N+1)!)
(N! = 1·2·…·N). Полученное число является приближенным значением
функции Sin в точке X. */
 
#include <conio.h>
#include <iostream>
#include <cmath>
 
using namespace std;
 
unsigned int factorial(unsigned int n)
{
 if (n > 1)
     return n * factorial(n - 1);
 return 1;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    cout << "Программа вычисляет приближённое значение синуса в точке Х" << endl;
    
    int n;
    cout << "Введите число (N>0)\n N = ";
    cin >> n;
    if (n < 0) {
        cout << "Ошибка: N меньше нуля" << endl;
        getch();
        return 1;
    }
 
    double x;
    cout << "Введите вещественное число x\n x = ";
    cin >> x;
 
    long double nearSinX = 0;
    for(int i = 0; i < (n + 1); ++i) {
        nearSinX += pow(-1, i) * pow(x, (double)(2 * i + 1) / factorial(2 * i + 1));
    }
 
    cout << "Приближённое значение Sin в точке" << x << ") = " << nearSinX << endl;
    getch();
    return 0;
}

4 задание
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
/*Даны целые положительные числа A и B. Найти их наибольший об-
щий делитель (НОД), используя алгоритм Евклида:
НОД(A, B) = НОД(B, A mod B), если B в‰* 0; НОД(A, 0) = A.  */
 
#include <conio.h>
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL,"Russian");
    cout << "Программа находит наибольший общий делитель двух положительных чисел\n"
            "с помощью алгоритма Эвклида." << endl;
 
    int a;
    cout << "Введите первое число\n A = ";
    cin >> a;
    if (a < 1) {
        cout << "Ошибка: A является нулём или меньше нуля" << endl;
        getch();
        return 1;
    }
 
    int b;
    cout << "Введите второе число\n B = ";
    cin >> b;
    if (b < 1) {
        cout << "Ошибка: B является нулём или меньше нуля" << endl;
        getch();
        return 1;
    }
 
    int r;
    int pA = a;
    int pB = b;
    while(pB != 0) {
        r = pA % pB;
        pA = pB;
        pB = r;
    }
 
    std::cout << "НОД(" << a << "," << b << ") = " << pA << std::endl;
    getch();
    return 0;
}


Добавлено через 1 час 31 минуту
5 задание
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
/*Дано целое число N (> 1) и набор из N вещественных чисел. Если
данный набор образует убывающую последовательность, то вывести 0;
в противном случае вывести номер первого числа, нарушающего
закономерность.*/
 
#include <conio.h>
#include <iostream>
 
using namespace std;
 
 
int main()
{
    setlocale (LC_ALL,"Russian");
    cout << "Описание пятой программы(сделать самой)." << endl;
 
    int n;
    cout << "Введите количество элементов\n N = ";
    cin >> n;
    if (n < 2) {
        cout << "Ошибка: N меньше двух" << endl;
        getch();
        return 1;
    }
 
    double *array = new double [n];
    for (int i = 0; i < n; ++i) {
        cout << "Введите" << i + 1 << "е вещественное число\n"
                " A" << i + 1 << "= ";
        cin >> array[i];
    }
 
    int k = 0;
    for (int i = n - 1; i > 0; --i)
        if (array[i - 1] < array[i]) k = i;
 
    if (!k)
        std::cout << "Последовательность убывает" << std::endl;
    else
        std::cout << "Последовательность нарушена на " << k + 1 << "(" << array[k] << ") элементе" << std::endl;
 
    delete [] array;
    getch();
    return 0;
}

6 задание(лучше такое сейчас преподавателю не показывать)

Просто для интереса можешь разобрать
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
/*Дано целое число K, а также K наборов ненулевых целых чисел. Каждый 
набор содержит не менее двух элементов, признаком его завершения
является число 0. Найти количество наборов, элементы которых возрастают.*/
#include <conio.h>
#include <iostream>
#include <list>
 
using namespace std;
 
typedef list<int> Set;
 
static bool isUprisingSet(const Set &set)
{
    Set::const_iterator end = set.cend();
    --end;
    for (Set::const_iterator i = set.cbegin(); i != end;)
        if (*i > *(++i)) return false;
    return true;
}
 
int main()
{
    setlocale (LC_ALL,"Russian");
    cout << "Описание шестой программы(сделать самой)." << endl;
 
    int k;
    cout << "Введите количество наборов\n K = ";
    cin >> k;
    if (k < 1) {
        cout << "Ошибка: наборов не может быть меньше одного" << endl;
        getch();
        return 1;
    }
 
    Set *sets = new Set [k];
    int p;
    for(int i = 0; i < k; ++i) {
        cout << "Набор 1, введите целые положительные числа,\n"
                "конец записи - число 0" << endl;
        for(int j = 1; ; ++j) {
            cout << "  " << j << " число = ";
            cin >> p;
            if (!p) {
                if (j > 2)
                    break;
                cout << "Предупреждение: Набор не может содержать меньше двух элементов:" << endl;
                --j;
            } else if (p < 0) {
                cout << "Ошибка: число отрицательно" << endl;
                getch();
                return 1;
            } else {
                sets[i].push_back(p);
            }
        }
    }
 
    p = 0;
    for(int i = 0; i < k; ++i)
        if (isUprisingSet(sets[i])) ++p;
 
    if (!p)
        std::cout << "Здесь нет возрастающих последовательностей" << std::endl;
    else
        std::cout << "Здесь " << p << " возрастающих последовательностей" << std::endl;
 
    delete [] sets;
    getch();
    return 0;
}

6 задание

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
/*Дано целое число K, а также K наборов ненулевых целых чисел. Каждый 
набор содержит не менее двух элементов, признаком его завершения
является число 0. Найти количество наборов, элементы которых возрастают.*/
 
#include <conio.h>
#include <iostream>
#include <list>
 
using namespace std;
 
#define MAXARRAY 50
 
bool isUprisingSet(int *set)
{
    for (int j = 0; set[j+1] != 0; ++j)
        if (set[j] > set[j+1])
            return false;
    return true;
}
 
int main()
{
    setlocale (LC_ALL,"Russian");
    cout << "Описание шестой программы(сделать самой)." << endl;
 
    int k;
    cout << "Введите количество наборов\n K = ";
    cin >> k;
    if (k < 1) {
        cout << "Ошибка: наборов не может быть меньше одного" << endl;
        getch();
        return 1;
    }
 
    int **sets = new int* [k]; // массив указателей
    int p;
    for(int i = 0; i < k; ++i) {
        sets[i] = new int[MAXARRAY];
        cout << "Набор 1, введите целые положительные числа,\n"
                "конец записи - число 0\n"
                "максимально чисел - " << MAXARRAY - 1 << endl;
        for (int j = 0; j < MAXARRAY; ++j) {
            if (j + 1 == MAXARRAY) {
                sets[i][j] = 0;
                break;
            }
            cout << "  " << j + 1 << " число = ";
            cin >> p;
            if (!p) {
                if (j > 1) {
                    sets[i][j] = 0;
                    break;
                }
                cout << "Предупреждение: Набор не может содержать меньше двух элементов:" << endl;
                --j;
            } else if (p < 0) {
                cout << "Ошибка: число отрицательно" << endl;
                getch();
                return 1;
            } else {
                sets[i][j] = p;
            }
        }
    }
 
    p = 0;
    for(int i = 0; i < k; ++i)
        if (isUprisingSet(sets[i])) p++;
 
    if (!p)
        std::cout << "Здесь нет возврастающих постледовательностей" << std::endl;
    else
        std::cout << "Здесь " << p << " возврастающих последовательностей" << std::endl;
 
    for (int i = 0; i < k; ++i)
        delete [] sets[i];
    delete [] sets;
    getch();
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru