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

Ошибки в процедуре для сравнений - C++

Восстановить пароль Регистрация
 
Vasiliy-1821
13 / 13 / 0
Регистрация: 14.08.2011
Сообщений: 62
15.07.2012, 23:02     Ошибки в процедуре для сравнений #1
Привет всем.!
Дорогие друзья,помогите разобраться пытаюсь скомпилить свой код, выдает ошибку в строке Cross = s1*s2<=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
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
 
using namespace std;
 
int s = 100;
long  i, j, N,W,E;
//---------------------------------------------------------------------------
void Vvod()
{
  cin>>N,W, E;
}
//---------------------------------------------------------------------------
float Cross(x1,y1,x2,y2)
{
  double s1,s2,t;
  x1 = x1*s;
  x2 = x2*s;
  y1 = y1*s;
  y2 = y2*s;
  t = N*s;
  s1 = t*(y1-W) - (E-W)*x1;
  s2 = t*(y2-W) - (E-W)*x2;
  Cross = s1*s2<=0;   //ощибка
}
//---------------------------------------------------------------------------
void Vivod()
{
  for (i = 0; i <= N-1; i++) {
    for (j = 0; i <= N-1; i++) {
      if (Cross(i,j,i+1,j)||Cross(i+1,j,i+1,j+1)||Cross(i,j,i,j+1) {
        count++;
      }
      cout<<count;
    }
  }
}
//---------------------------------------------------------------------------
int main ()
{
  freopen("Vvod.txt","r",stdin);
  freopen("Vivod.txt","w",stdout);
  input();
  solve();
  return 0;
}
Добавлено через 1 минуту
забыл по идее мне нужно bool Cross(x1,y1,x2,y2) процедура, для сравнений.
но выдает ошибку при обращении к процедуре.

Добавлено через 15 минут
Решил
C++
1
return  s1*s2;
.
Просто я в delphi работаю. Бывает трудно.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aleator
 Аватар для Aleator
66 / 66 / 3
Регистрация: 04.05.2011
Сообщений: 1,146
15.07.2012, 23:12     Ошибки в процедуре для сравнений #2
А с
C
1
if (Cross(i,j,i+1,j)||Cross(i+1,j,i+1,j+1)||Cross(i,j,i,j+1)
как решил?
Vasiliy-1821
13 / 13 / 0
Регистрация: 14.08.2011
Сообщений: 62
15.07.2012, 23:17  [ТС]     Ошибки в процедуре для сравнений #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
//---------------------------------------------------------------------------
 
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
using namespace std;
int s = 100;
 
long  i, j, N,W,E;
void Vvod()
{
cin>>N,W, E;
}
 
double Cross(x1,y1,x2,y2)
{
double s1,s2,t;
x1 = x1*s;
x2 = x2*s;
y1 = y1*s;
y2 = y2*s;
t = N*s;
s1 = t*(y1-W) - (E-W)*x1;
s2 = t*(y2-W) - (E-W)*x2;
 return  s1*s2<0;
}
int count = 0;
void Vivod()
{
 
 for (i = 0; i <= N-1; i++)
 
for (j = 0; i <= N-1; i++)
 
if (Cross(i,j,i+1,j) ||Cross(i+1,j,i+1,j+1)||Cross(i,j,i,j+1)||Cross(i+1,j+1,i,j+1))
 
 count++;
 
}
 
int main ()
{
freopen("Vivod.txt","w",stdout);
freopen("Vvod.txt","r",stdin);
 
    Vivod();
    Vvod();
    return 0;
}
nick42
Практикантроп
 Аватар для nick42
4062 / 2096 / 185
Регистрация: 23.09.2011
Сообщений: 4,422
15.07.2012, 23:35     Ошибки в процедуре для сравнений #4
в аналитику я не вникал, но вот с функцией Vivod() что у вас? мало того, что второй цикл то ли по j, то ли по i - так еще и действий никаких: только счетчик увеличивается. А где же вывод в stdout?
Vasiliy-1821
13 / 13 / 0
Регистрация: 14.08.2011
Сообщений: 62
15.07.2012, 23:39  [ТС]     Ошибки в процедуре для сравнений #5
Точно второй нужно по j делать. перепутал. Спасибо.
Yandex
Объявления
15.07.2012, 23:39     Ошибки в процедуре для сравнений
Ответ Создать тему
Опции темы

Текущее время: 00:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru