Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2009, 21:45   #1
maziLa
Пользователь
 
Регистрация: 08.12.2008
Сообщений: 30
По умолчанию моя первая програма...

Код:
Даны две фигуры на плоскости (Два квадрата). Ввести с клавиатуры координаты этих фигур. Для произвольной точки (координата которой также вводится) определить, принадлежит ли эта точка области пересечения двух заданных фигур.

Код:
#include <iostream.h>
#include <stdio.h>
#include <math.h>

void main()

{
int x1,x2,x3,x4,x5,x6,x7,x8,x0,y0,y1,y2,y3,y4,y5,y6,y7,y8,l1,l2;
/*x1-x4,y1-y4 eto coordinatu 1kvadrata;
x5-x8,y5-y8 eto coordinati 2 kvadrata;
x0,y0 ==> coordinatu tochki;
l1,l2 ==> dlina rebra 1 i 2 kvadrata. */
printf(" Polychim Koordinatu PERVOGO Kvadrata!!!");
printf("::::::::::::::::::::::::::::::::::::::::::::");
printf("Vvedite koordinatu verhnei levoi vershinu...");
scanf ("%f %f",&x1,&y1);
printf("vvedite DLINY rebra kvadrata:");
scanf ("%f", &l1);
printf("::::::::::::::::::::::::::::::::::::::::::::");
printf("Togda koordinatu pervogo kvadrata bydyt takimi:");
x2=x1+l1;
y2=y1;
x3=x1;
y3=y1-l1;
x4=x2;
y4=y3;
printf("x1=%f y1=%f    x2=%f y2=%f",x1, y1, x2, y2);
printf("x3=%f y3=%f    x4=%f y4=%f",x3, y3, x4, y4);

printf(" Polychim Koordinatu VTOROGO Kvadrata:");
printf("::::::::::::::::::::::::::::::::::::::::::::");
printf("Vvedite koordinatu verhnei levoi vershinu...");
scanf ("%f %f",&x5,&y5);
printf("vvedite DLINY rebra kvadrata:");
scanf ("%f", &l2);
printf("::::::::::::::::::::::::::::::::::::::::::::");
printf("Togda koordinatu vtorogo kvadrata bydyt takimi:");
x6=x5+l2;
y6=y5;
x3=x5;
y7=y5-l2;
x8=x6;
y8=y7;
printf("x5=%f y5=%f    x6=%f y6=%f",x5, y5, x6, y6);
printf("x7=%f y7=%f    x8=%f y8=%f",x7, y7, x8, y8);

printf("Vvedite koordinatu neobxodimoi tochki:");
scanf ("%f %f",&x0, &y0);

if (x0<=x1)
 if(x0>=x3)
  if(y0>=y1)
   if(y0<=y2)
   {
     printf("Tochka lejit v pervom kvadrate.");
     printf("::::::::::::::::::::::::::::::::::::::::::::");
   }
if (x0<=x5)
 if (x0>=x7)
  if (y0>=y5)
   if (y0<=y6)
   {
     printf("TOCHKA LEGIT NA PERESECHENII DVYX KVADRATOV!");
   }
   else
    printf("Tochka ne naxoditsia na peresechenii dvyx kvadratov!");
}
getch();
//---------------------------------------------------------------------------
У меня пара вопросов :
- Почему програма работает до первого ифа(тоесть после ввода координат точки програма закрывается);
- у меня идёт неправильный подсчёт сумы, поиск координат других трёх вершин квадрата;
- и ещё такая глупая фишка у меня все строки лепяться одна после другой, как это исправить ...
Если я ошибся закиньте новый код плиз.Заранее огромное спасибо.
maziLa вне форума Ответить с цитированием
Старый 11.03.2009, 21:56   #2
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

&&-and ||-or
Код:
if (x0<=x1 && x0>=x3 && y0>=y1 &&y0<=y2)
   {
     printf("Tochka lejit v pervom kvadrate.");
     printf("::::::::::::::::::::::::::::::::::::::::::::");
   }
Cpluser вне форума Ответить с цитированием
Старый 11.03.2009, 22:19   #3
MAKEDON
The First Person!
Форумчанин
 
Аватар для MAKEDON
 
Регистрация: 07.08.2007
Сообщений: 228
По умолчанию

Цитата:
Сообщение от Cpluser Посмотреть сообщение
&&-and ||-or
Да это верно, и все равно будет много ошибок в синтаксисе! Пропущено {} почти везде.

Оформите код по-лучше и сразу во всем разберетесь. А то он почти нечитабелен.
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.
MAKEDON вне форума Ответить с цитированием
Старый 11.03.2009, 22:38   #4
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
Почему програма работает до первого ифа(тоесть после ввода координат точки програма закрывается);
скорее всего она закрывается после, просто она быстро распечатывает текст и закрывается. Ты getch() поместил вне функции (как ты это смог откомпилировать?), перемети гетчь внутрь функции (до последней фигурной скобочки)

И, к стати, что бы getch работал, допиши
Код:
#include <conio.h>
Цитата:
Пропущено {} почти везде.
Так, вроде бы, если скобочки не ставить, то "иф" (в данном случае) считает как инструкцию только следующую строку... а там еще один иф, и еще один.... так что Может быть оно и будет работать.

Цитата:
и ещё такая глупая фишка у меня все строки лепяться одна после другой, как это исправить ...
Я так понял, что у тебя не переходит на новую строку? тут есть два варианта, либо для вывода использовать
Код:
cout<<"сообщение"<<endl;
либо, если использовать printf, дописывать в конец строки символ перехода на новую строку '\n' (не знаю, можно ли вывести как-нить типа printf("text\n"); или printf("text"); printf("\n");
но точно можно так (хотя, если это возможно, то удобнее использовать то, что я написал выше):
Код:
char text[100]={"text"};
int n=strlen(text);//Длинна текста
text[n]="\n";
text[n+1]="\0" символ конца строки (обязателньо пиши его)
n++;
printf(text,n);
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 11.03.2009 в 22:51.
ROD вне форума Ответить с цитированием
Старый 12.03.2009, 06:33   #5
Lunex.08
Форумчанин
 
Аватар для Lunex.08
 
Регистрация: 25.02.2009
Сообщений: 145
По умолчанию

У тебя чудо компилятор раз ты смог это откомпилировать))Что за компилятор?
Компьютеры бесподобны: за несколько минут они могут совершить такую грандиозную ошибку, какую не в состоянии сделать множество людей за многие месяцы.
Lunex.08 вне форума Ответить с цитированием
Старый 12.03.2009, 06:51   #6
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Цитата:
Сообщение от Lunex.08 Посмотреть сообщение
У тебя чудо компилятор раз ты смог это откомпилировать))Что за компилятор?
Intel compiler ->32 warning(s) ошибок не было..
Мелкософт -> 1 error(s), 5 warning(s)
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 12.03.2009, 06:58   #7
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

g++ при не большой модификации компилирует этот код.
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 12.03.2009, 08:14   #8
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
Intel compiler ->32 warning(s) ошибок не было..
Мелкософт -> 1 error(s), 5 warning(s)
Борландскому вообще пофигу, ни варнингов ни ошибок.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Моя первая программа (оцените) @Ri$91 Софт 15 12.03.2009 20:29
Моя первая программа igroman Софт 27 12.03.2009 20:23
Моя первая программа)) Dr.Badnezz Софт 9 06.12.2008 14:39
Моя первая программа NikLik Софт 4 20.07.2008 00:24
Моя первая Прога (Блокнот) DestroeR Софт 11 28.06.2007 22:18