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

true кодеры в чем ошибка, хотел перевести паскаль на с++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Упорядочить четные элементы массива из n числовых элементов методом пузырька http://www.cyberforum.ru/cpp-beginners/thread1015803.html
Вот дана задача Упорядочить четные элементы массива из n числовых элементов методом пузырька по возрастанию. помогите пожалуйста проверьте решение ! С++ #include "stdafx.h" #include <string.h> #include <iostream> using namespace std; void ball (double*,int n); int main() {setlocale(LC_CTYPE,"russian"); int n, i; double*z;
C++ непонятная ошибка Здравствуйте. Вот в этой программе у меня пишет ошибку: cpp(60) : error C2065: 'j_max' : undeclared identifier. Хотя если вместо Y написать Y ( в функции void function 3) все хорошо считает. В чем ошибка ? Задание если что Исходный массив считать из файла *.txt (файл создать самим). Результаты вычислений и манипуляций над массивом вывести на экран и в файл*.xls. Для записи результатов в файл... http://www.cyberforum.ru/cpp-beginners/thread1015795.html
C++ WinMain entry point
Здравствуйте! Я только начал изучать WinAPI и, естественно, периодически заглядываю в MSDN. Но сразу же столкнулся с недопониманием. На странице http://msdn.microsoft.com/en-us/library/windows/desktop/ms633559%28v=vs.85%29.aspx точку входа предлагается делать таким образом: int CALLBACK WinMain( _In_ HINSTANCE hInstance, _In_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine,
C++ Что за ошибка ?
Помогите с ошибкой разобраться #include"stdafx.h" #include<iostream> #include<iomanip> #include<fstream> #include<math.h> using namespace std; void read_matr(double Y){ ifstream f("c://yes.txt");
C++ С++ трудности в решении задачи( не могу зарешать http://www.cyberforum.ru/cpp-beginners/thread1015775.html
Ввести двумерный массив А N*M,вывести его.Найти К – количество элементов, чей модуль превышает величину max+min/2. Если K превышает количество К1 (количество отрицательных элементов массива), то заменить отрицательные элементы величиной max+min/2,в противном случае поменять местами максимум и минимум. помогите решить Заранее благодарю за помощь!
C++ Вычислить длину окружности, площадь круга и объем шара одного и того же заданного радиуса. Предусмотреть проверку вводимых данных на отрицательность Вычислить длину окружности, площадь круга и объем шара одного и того же заданного радиуса. Предусмотреть проверку вводимых данных на отрицательность. помогите пожалуйста)))нужно составить программу на С++ подробнее

Показать сообщение отдельно
Meirzhan
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 13
22.11.2013, 23:46  [ТС]     true кодеры в чем ошибка, хотел перевести паскаль на с++
Цитата Сообщение от Cra3y Посмотреть сообщение
в паскале блок repeat until означает "делать , пока ложь" http://ideone.com/eKrH6G
в с/с++ блок do while означает "делать, пока истина" http://ideone.com/syDXjg

Те эти блоки не идентичны
+ вам нужно учитывать, что в паскале индексы массивов начинаются с 1, а в С/С++ - с 0
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
#include <iostream>
#include <cmath>
using namespace std;
 
struct vv {
    long int x, y;
};
long int vect(vv a1, vv a2, vv b1, vv b2) {
    long int result = (a2.x - a1.x)*(b2.y - b1.y) +
        (b2.x - b1.x)*(a2.y - a1.y);
    return result;
}
long int dist2(vv a1, vv a2) {
    long int result = (a2.x-a1.x)*(a2.x-a1.x) + (a2.y-a1.y)*(a2.y-a1.y);
    return result;
}
int main() {
    vv a[100], b[100];
    int n;
    cin >> n;
    for (int i=0; i < n; i++) {
        cin >> a[i].x >> a[i].y;
    }
    int m = 0;
    for (int i=1; i < n; i++) {
        if (a[i].y < a[m].y)
            m=i;
        else if (a[i].y == a[m].y && a[i].x > a[m].x) 
            m=i;
    }   
    b[0] = a[m];
    a[m] = a[0];
    a[0] = b[0];
    
    int k=0;
    int min = 2;
    do {
        for (int j=1; j < n; j++) {
            if ((vect(b[k],a[min],b[k],a[j]) < 0) ||
                ((vect(b[k],a[min],b[k],a[j]) == 0) &&
                (dist2(b[k],a[min]) < dist2(b[k],a[j]))))
            min = j;
        k++;
        }
            
        b[k] = a[min];
        min=0;
    } while (!((b[k].x == b[0].x) && (b[k].y == b[0].y)));
    for (int j = 0; j < k; j++) {
        cout << k << " "<< b[j].x << " " << b[j].y << endl;
    }
}
Вот что у меня вышло, не проверял
спасибо) сейчас проверю )

Добавлено через 1 час 12 минут
Цитата Сообщение от Cra3y Посмотреть сообщение
в паскале блок repeat until означает "делать , пока ложь" http://ideone.com/eKrH6G
в с/с++ блок do while означает "делать, пока истина" http://ideone.com/syDXjg

Те эти блоки не идентичны
+ вам нужно учитывать, что в паскале индексы массивов начинаются с 1, а в С/С++ - с 0
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
#include <iostream>
#include <cmath>
using namespace std;
 
struct vv {
    long int x, y;
};
long int vect(vv a1, vv a2, vv b1, vv b2) {
    long int result = (a2.x - a1.x)*(b2.y - b1.y) +
        (b2.x - b1.x)*(a2.y - a1.y);
    return result;
}
long int dist2(vv a1, vv a2) {
    long int result = (a2.x-a1.x)*(a2.x-a1.x) + (a2.y-a1.y)*(a2.y-a1.y);
    return result;
}
int main() {
    vv a[100], b[100];
    int n;
    cin >> n;
    for (int i=0; i < n; i++) {
        cin >> a[i].x >> a[i].y;
    }
    int m = 0;
    for (int i=1; i < n; i++) {
        if (a[i].y < a[m].y)
            m=i;
        else if (a[i].y == a[m].y && a[i].x > a[m].x) 
            m=i;
    }   
    b[0] = a[m];
    a[m] = a[0];
    a[0] = b[0];
    
    int k=0;
    int min = 2;
    do {
        for (int j=1; j < n; j++) {
            if ((vect(b[k],a[min],b[k],a[j]) < 0) ||
                ((vect(b[k],a[min],b[k],a[j]) == 0) &&
                (dist2(b[k],a[min]) < dist2(b[k],a[j]))))
            min = j;
        k++;
        }
            
        b[k] = a[min];
        min=0;
    } while (!((b[k].x == b[0].x) && (b[k].y == b[0].y)));
    for (int j = 0; j < k; j++) {
        cout << k << " "<< b[j].x << " " << b[j].y << endl;
    }
}
Вот что у меня вышло, не проверял
проверил ) спасибо) еще у себя пару ошибок нашел) теперь все работает)
 
Текущее время: 12:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru