Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
13 / 13 / 0
Регистрация: 14.08.2011
Сообщений: 62
1

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

15.07.2012, 23:02. Показов 405. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем.!
Дорогие друзья,помогите разобраться пытаюсь скомпилить свой код, выдает ошибку в строке 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 работаю. Бывает трудно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.07.2012, 23:02
Ответы с готовыми решениями:

Ошибки в процедуре
Всем привет. Не могу разобраться в процедуре, на предпоследней строке выдает ошибки: Not enough...

Вывод ошибки в процедуре
Как выловить и вывести ошибку в процедуре. Допустим в MS SQL есть блоки try/catch а как здесь это...

Ошибки при компиляции в процедуре SpeedButton1Click
Когда компелится выдает 2 ошибки ((( unit Unit1; interface uses System.SysUtils,...

Как в хранимой процедуре получить текст ошибки?
Когда я писал хранимую процедуру в MSSQL 7.0 у меня возникла следующая проблема: после выполнения...

4
102 / 87 / 17
Регистрация: 04.05.2011
Сообщений: 1,330
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)
как решил?
1
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;
}
0
Практикантроп
4838 / 2724 / 532
Регистрация: 23.09.2011
Сообщений: 5,789
15.07.2012, 23:35 4
в аналитику я не вникал, но вот с функцией Vivod() что у вас? мало того, что второй цикл то ли по j, то ли по i - так еще и действий никаких: только счетчик увеличивается. А где же вывод в stdout?
1
13 / 13 / 0
Регистрация: 14.08.2011
Сообщений: 62
15.07.2012, 23:39  [ТС] 5
Точно второй нужно по j делать. перепутал. Спасибо.
0
15.07.2012, 23:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.07.2012, 23:39
Помогаю со студенческими работами здесь

Два счетчика для обмена и сравнений для сортировки массива
написал два счетчика для обмена и сравнений для сортировки массива.Проблема при выводе выводится...

В случае ошибки не прервать выполнение программы, а перейти к другой процедуре или к другому месту той же процедуры
Прошу помочь: в случае ошибки не прервать выполнение программы, а перейти к другой процедуре или к...

Докажите равенство для сравнений
Докажите, что если a ≡ b (mod n), то ak ≡ bk (mod n) для всех k ∈ N.

Счетчик сравнений для быстрой сортировки
Добрый вечер. Взял сортировку из википедии void qSort(int arr7, int first, int last) { k =...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru