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

Перевод из Паскаль в C++ - C++

Восстановить пароль Регистрация
Другие темы раздела
Turbo Pascal Нахождение произведений элементов матрицы с подпрограммой http://www.cyberforum.ru/cpp-beginners/thread1495202.html
Всем доброе утро, так сказать. Прошу помощи с задачей: Даны матрицы А(4*4), В(4*4), С(4*4). Вычислить произведенИЯ их элементОВ используя подпрограмму. Без подпрограммы могу делать, а с ней- беда.. Ответ должен получиться так: Произведение элементов матрицы А = Произведение элементов матрицы Б = Произведение элементов матрицы С = .
Turbo Pascal Определить, какие значения будут иметь переменные после выполнения операторов type muz_center = record mosh: word; k_sd, k_dek: 1..10; massa: real; g_vip: 1995..2001; end; cd = record nazv, ispolnitel: string; g_vip: 1995..2001; kol_comp: 7.25; end; var a, b: muz_center; r: cd; massa: word; Определить, какие значения будут иметь переменные a.g_vip, a.massa, b.g_vip, b.massa, r.g_vip, r.kol_comp, massa после выполнения следующих операторов: http://www.cyberforum.ru/cpp-beginners/thread1495198.html
Получить новый массив, состоящий из цифр, находящихся в младших разрядах элементов исходного массива Turbo Pascal
Составить схему алгоритма и программу решения задачи. Ввести массив, состоящий из 8 элементов (восемь двузначных чисел) целого типа. Получить новый массив, состоящий из цифр, находящихся в младших разрядах элементов исходного массива.
Turbo Pascal Протабулировать функцию и построить её график
Написать блок-схему и программу вычисления функции на за- данном промежутке с шагом 0.2 и построить график этой функции. y=\begin{cases}\sqrt{\tan (x^2-1)} & \text{, } x>1\\ -2x & \text{, } 0\leq x\leq 1\\ e^{cos(x)} & \text{, } x < 0 \end{cases} Промежуток исследования
Turbo Pascal Точно и однозначно сформулировать условие задачи, решение которой приведено ниже http://www.cyberforum.ru/cpp-beginners/thread1495170.html
Точно и однозначно сформулировать условие задачи, решение которой приведено ниже. program sort_nat; const nmax=100; type natur=1..32767; function summa (n: natur):byte; var s: byte; begin s:=-0; while n<> 0 do begin s:=s+n mod 10; n:= n div 10; end; summa := s;
 

Показать сообщение отдельно
Cuellius
176 / 84 / 62
Регистрация: 23.06.2015
Сообщений: 218
Завершенные тесты: 2
08.07.2015, 15:13     Перевод из Паскаль в C++
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
#include <iostream>
#include <iomanip>
#include <cmath>
#include <ctime>
#include <cstdio>
#include <cstdlib>
#include <string>
 
const int nmax = 100;
const double e = 0.01;
 
struct Point
{
    double x, y;
};
 
struct Okruz
{
    Point o;
    double r;
};
 
double Random()
{
    return double(rand() % 1000) / 1000.0;
}
 
template<class T>
inline T Sqr(T a)
{
    return a * a;
}
 
void Tochki(Point *t, int &n)
{
    int i;
l_read_n:
    std::cout << "Количество точек от 3 дo " << nmax << " n = ";
    std::cin >> n;
    if(n < 3 || n > nmax) goto l_read_n;
    for (int i = 1; i <= n; i++)
    {
        t[i].x = 20 * Random() - 9;
        t[i].y = 20 * Random() - 9;
    }
    std::cout << "X:" << std::endl;
    for (int i = 1; i <= n; i++)
    {
        std::cout << std::setw(8) << std::fixed << std::setprecision(2) << t[i].x;
    }
    std::cout << std::endl;
    std::cout << "Y:" << std::endl;
    for (int i = 1; i <= n; i++)
    {
        std::cout << std::setw(8) << std::fixed << std::setprecision(2) << t[i].y;
    }
    std::cout << std::endl;
}
 
void Okr(Point t1, Point t2, Point t3, Okruz &ok)
{
    double k0 = Sqr(t1.x) - Sqr(t2.x) + Sqr(t1.y) - Sqr(t2.y);
    double k1 = 2 * (t1.y - t2.y);
    double k2 = 2 * (t1.x - t2.x);
    
    double m0 = Sqr(t1.x) - Sqr(t3.x) + Sqr(t1.y) - Sqr(t3.y);
    double m1 = 2 * (t1.y - t3.y);
    double m2 = 2 * (t1.x - t3.x);
    
    double a = k2 * m0 - k0 * m2;
    double b = k2 * m1 - k1 * m2;
    if (b == 0) return;
    
    double y = a / b, x;
    ok.o.y = y;
    
    if (std::abs(m2) > e) x = (m0 - y * m1) / m2;
    else
    {
        
        if (std::abs(k2) > e) x = (k0 - y * k1) / k2;
        else return;
    }
    ok.o.x = x;
    ok.r = std::sqrt(Sqr(t1.x - x) + Sqr(t1.y - y));
}
 
bool Prin(Point a, Okruz ok)
{
    return (std::abs((Sqr(a.x - ok.o.x) + Sqr(a.y - ok.o.y))- Sqr(ok.r)) < e);
}
 
int main()
{
        setlocale(LC_ALL, "Russian");
    system("cls");
    srand((unsigned)time(NULL));
    
    Point t[nmax + 1];
    int n;
    Tochki(t, n);
    
    int mx = 0, kol;
    double mxr = 0, mxx = 0, mxy = 0;
    Okruz ok;
    for (int i = 1; i <= n - 2; i++)
    {
        for (int j = i + 1; j <= n - 1; j++)
        {
            for (int k = j + 1; k <= n; k++)
            {
                Okr(t[i], t[j], t[k], ok);
                kol = 0;
                for (int l = 1; l <= n; l++)
                {
                    if (Prin(t[l], ok)) kol++;
                }
                
                if (kol > mx) 
                {
                    mx = kol;
                    mxr = ok.r;
                    mxx = ok.o.x;
                    mxy = ok.o.y;
                }
            }
        }
    }
    
    if (mx == 0) std::cout << "Все окружности проходят только через три точки";
    else
    {
        std::cout << "Окружность: координаты центра x0 = " << std::fixed << std::setprecision(2) << 
          mxx << " Y0 = " << std::fixed << std::setprecision(2) << mxy << " R= " << std::fixed << std::setprecision(2) << mxr << std::endl;
        std::cout << "Точек на окружности = " << mx << std::endl;
    }
    
    std::cin.get();
    std::cin.get();
    return 0;
}
 
Текущее время: 22:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru