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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Rerr
0 / 0 / 0
Регистрация: 19.12.2015
Сообщений: 20
#1

Добавить в код любые пользовательские функции (лучше всего - функции ввода/вывода) - C++

21.12.2015, 20:08. Просмотров 184. Ответов 2
Метки c++ (Все метки)

Ребят, прошу вас помочь добавить любые две функции, лучше всего если ввод и вывод, но например и за два void input буду очень благодарен
C++ (Qt)
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
#include <cstdlib>
#include <clocale>
#include <ctime>
#include <cmath>
#include <math.h>
#include <streambuf>
#include <fstream>
#include <iostream>
 
using namespace std;
int point [30][2];
int okr [30][3];
const int nmax=30;
 
/* функция определяет пересекается прямая с окржуностью или нет */
bool Peres(double *a, double *b, double *c)
{
    double h; /*строим треугольник с концами в координатах прямой и вершиной в центре окружности. Ищем высоту от координаты окружности к прямой*/
    h = (abs((b[1]-a[1])*c[1] + (a[0]-b[0])*c[0] + (a[0]*b[1] - a[1]*b[0])))/(sqrt((b[1]-a[1])*(b[1]-a[1])+(a[0]-b[0])*(a[0]-b[0])));
    return (h<c[2]); // если высота меньше радиуса, пересекаются
}
 
 
 
int main() {
        setlocale(0, "rus");
int n,m,i,j,k,p,mx,imx,jmx;
    double  a[nmax][2];
    double  b[nmax][3];
 
 
    do {
        cout << "Количество точек до " << nmax << " n=";
        cin >> n;
    }while(n<2 || n>30);
 
    do {
        cout << "Количество окружностей до " << nmax << " m=";
        cin >> m;
    }while(m<1 || m>30);
 
        {
            int q;
            cout<<"Введите номер выбранного варианта\n1) ввод с консоли\n2) работа с файлом:\n";
 
cin>>q;
if(q == 1) {
    for(i=0; i<n; i++) {
      cout << "Введите координаты точки("<<i+1<<"):\nX=";
    cin >> a[i][0];
    cout << "Y=";
    cin >> a[i][1];
    }
    for(i=0; i<m; i++) {
        cout << "Введите координаты окружности("<<i+1<<"):\nX=";
    cin >> b[i][0];
    cout << "Y=";
    cin >> b[i][1];
    cout << "R=";
    cin >> b[i][2];
    }
}
else if(q == 2){
 
    ifstream ffin("point.txt");
 
if (!ffin)
    cout<<"ERROR: not file "<<endl;
    else
    {
for (i=0; i<n; i++){
ffin>>a[i][0]>>a[i][1];
cout<<" X=:"<<a[i][0]<<" Y=:"<<a[i][1]<<endl;
}
    }
    ifstream fin("okr.txt");
if (!fin)
    cout<<"ERROR: not file "<<endl;
    else
    {
        for (i=0; i<n; i++){
 
fin>>b[i][0]>>b[i][1]>>b[i][2];
cout<<" X=:"<<b[i][0]<<" Y=:"<<b[i][1]<<" R=:"<<b[i][2]<<endl;
}
    }
 }
else cout<<"Error"<<endl;
{
    system ("pause");
}
 
        }
    cout << "Координаты точек:\nX:";
    for(i=0;i<n;++i)
        cout << a[i][0] << " ";
    cout << "\nY:";
    for(i=0;i<n;++i)
        cout << a[i][1] << " ";
    cout << "\n\nПараметры окружностей:\nX:";
    for(i=0;i<m;++i)
        cout << b[i][0] << " ";
    cout << "\nY:";
    for(i=0;i<m;++i)
        cout << b[i][1] << " ";
    cout << "\nR:";
    for(i=0;i<m;++i)
        cout << b[i][2] << " ";
    cout << "\n\n";
    /* ищем прямую с максимальными пересечениями */
    mx=0;
    imx=0;
    jmx=0;
    for(i=0;i<n-1;++i)
        for(j=i+1;j<n;++j)
        {
            k=0;
            for(p=0;p<m;++p)
                if(Peres(a[i],a[j],b[p]))
                    k=k+1;
            if(k>mx)
            {
                mx=k;
                imx=i;
                jmx=j;
            }
        }
  if(mx==0)
        cout << "Нет пересекающихся прямых с окружностями\n";
    else
        cout << "Максимальное число пересечений прямой с окружностями="<< mx
            << "\nЭта прямая проходит через точки ("<<a[imx][0]<<';'<<a[imx][1]<<") и ("<<a[jmx][0]<<';'<<a[jmx][1]<<")\n";
    cout << "\n";
    system("pause");
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2015, 20:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Добавить в код любые пользовательские функции (лучше всего - функции ввода/вывода) (C++):

Имеется код программы, который нужно разбить на функции ввода и вывода. - C++
Я тут немного заплутала и сбилась с созданием функции. Имеется код полной программы, который мне нужно разбить на функции ввода и вывода....

Одномерный массив и функции (сделать 3 функции ввода/решения/вывода) - C++
Ребята помогите, хоть убейте не могу эту задачу с помощью функций сделать!( Нужно сделать 3 функции ввода/решения/вывода. Кому не сложно...

Функции потокового ввода/вывода - C++
Подскажите, пожалуйста, чем отличается fwrite/fread от fprintf/fscanf?

Задача на функции ввода-вывода - C++
Мне дали разработать программу, но я не понимаю как. Вот условие: В бинарном файле находятся числа. Разработать программу, которая...

Функции ввода вывода структуры - C++
Функция вывода показывает мусор, объясните пожалуйста почему? struct Inf { char name; char sur; int grade; };

Стандартные функции ввода/вывода языка Си - C++
Приветствую всех.У меня проблема.Я решил попробовать функции ввода/вывода в стиле Си.Написал прогу которая должна выводить сумму a и b,но...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6359 / 5923 / 1920
Регистрация: 18.12.2011
Сообщений: 15,227
Завершенные тесты: 1
21.12.2015, 20:22 #2
См. образец
Образцы (шаблоны) программ для типовых задач
olya7
477 / 294 / 91
Регистрация: 18.02.2013
Сообщений: 684
21.12.2015, 20:25 #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
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
#include <cstdlib>
#include <clocale>
#include <ctime>
#include <cmath>
#include <math.h>
#include <streambuf>
#include <fstream>
#include <iostream>
 
using namespace std;
int point [30][2];
int okr [30][3];
const int nmax=30;
 
/* функция определяет пересекается прямая с окржуностью или нет */
bool Peres(double *a, double *b, double *c)
{
    double h; /*строим треугольник с концами в координатах прямой и вершиной в центре окружности. Ищем высоту от координаты окружности к прямой*/
    h = (abs((b[1]-a[1])*c[1] + (a[0]-b[0])*c[0] + (a[0]*b[1] - a[1]*b[0])))/(sqrt((b[1]-a[1])*(b[1]-a[1])+(a[0]-b[0])*(a[0]-b[0])));
    return (h<c[2]); // если высота меньше радиуса, пересекаются
}
 
void input(double **a,int n,int m)
{
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            cin>>a[i][j];
 
}
 
int main() {
        setlocale(0, "rus");
int n,m,i,j,k,p,mx,imx,jmx;
    double  **a;
    double  **b;
 
 
    do {
        cout << "Количество точек до " << nmax << " n=";
        cin >> n;
    }while(n<2 || n>30);
 
    do {
        cout << "Количество окружностей до " << nmax << " m=";
        cin >> m;
    }while(m<1 || m>30);
a=new double*[n];
for (int i=0;i<n;i++)
    a[i]=new double[2];
b=new double*[n];
for (int i=0;i<n;i++)
    b[i]=new double[2];
        {
            int q;
            cout<<"Введите номер выбранного варианта\n1) ввод с консоли\n2) работа с файлом:\n";
 
cin>>q;
if(q == 1)
    {
   /* for(i=0; i<n; i++) {
 
    cin >> a[i][0];
    cout << "Y=";
    cin >> a[i][1];*/  cout << "Введите координаты точек\n";
    input(a,n,2);
     for(int i=0;i<n;i++){
        for(int j=0;j<m;j++)
            cout<<a[i][j]<<"\t";
            cout<<endl;}
 
    for(i=0; i<m; i++) {
        cout << "Введите координаты окружности("<<i+1<<"):\nX=";
    cin >> b[i][0];
    cout << "Y=";
    cin >> b[i][1];
    cout << "R=";
    cin >> b[i][2];
    }
}
else if(q == 2){
 
    ifstream ffin("point.txt");
 
if (!ffin)
    cout<<"ERROR: not file "<<endl;
    else
    {
for (i=0; i<n; i++){
ffin>>a[i][0]>>a[i][1];
cout<<" X=:"<<a[i][0]<<" Y=:"<<a[i][1]<<endl;
}
    }
    ifstream fin("okr.txt");
if (!fin)
    cout<<"ERROR: not file "<<endl;
    else
    {
        for (i=0; i<n; i++){
 
fin>>b[i][0]>>b[i][1]>>b[i][2];
cout<<" X=:"<<b[i][0]<<" Y=:"<<b[i][1]<<" R=:"<<b[i][2]<<endl;
}
    }
 }
else cout<<"Error"<<endl;
{
    system ("pause");
}
 
        }
    cout << "Координаты точек:\nX:";
    for(i=0;i<n;++i)
        cout << a[i][0] << " ";
    cout << "\nY:";
    for(i=0;i<n;++i)
        cout << a[i][1] << " ";
    cout << "\n\nПараметры окружностей:\nX:";
    for(i=0;i<m;++i)
        cout << b[i][0] << " ";
    cout << "\nY:";
    for(i=0;i<m;++i)
        cout << b[i][1] << " ";
    cout << "\nR:";
    for(i=0;i<m;++i)
        cout << b[i][2] << " ";
    cout << "\n\n";
    /* ищем прямую с максимальными пересечениями */
    mx=0;
    imx=0;
    jmx=0;
    for(i=0;i<n-1;++i)
        for(j=i+1;j<n;++j)
        {
            k=0;
            for(p=0;p<m;++p)
                if(Peres(a[i],a[j],b[p]))
                    k=k+1;
            if(k>mx)
            {
                mx=k;
                imx=i;
                jmx=j;
            }
        }
  if(mx==0)
        cout << "Нет пересекающихся прямых с окружностями\n";
    else
        cout << "Максимальное число пересечений прямой с окружностями="<< mx
            << "\nЭта прямая проходит через точки ("<<a[imx][0]<<';'<<a[imx][1]<<") и ("<<a[jmx][0]<<';'<<a[jmx][1]<<")\n";
    cout << "\n";
    delete []a;
    delete []b;
    //system("pause");
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2015, 20:25
Привет! Вот еще темы с ответами:

Функции ввода/вывода printf(), scanf(). - C++
Составить программу для форматированного ввода и вывода данных заданного типа: Тип1=unsigned int; тип2= long int; тип3=float;...

Написать две пользовательские функции, эквивалентные стандартной функции strlen - C++
Написать программу, содержащую две пользовательские функции определения длины строки, эквивалентные стандартной функции strlen. Первая из...

Функции ввода / вывода, вычисления (исправить ошибки) - C++
Помогите найти ошибки, пожалуйста. #define _USE_MATH_DEFINES #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;conio.h&gt; using...

Двусвязные списки: функции ввода, вывода, поиска и удаления - C++
Есть структура Element и блок управления Object Они находятся в list.h #pragma once struct Element ...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru