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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2010, 21:39   #1
ignatka
 
Регистрация: 02.06.2010
Сообщений: 2
По умолчанию количество точек в фигуре

помогите разобраться. перешли с паскаля на изучение си, вот задание: даны вещественные b и c. найти кол-во точек плоскости с целочисленными координатами , попадающими в фигуру, ограниченную линиями y=x*x+2bx+c и y=b*b+c

моя программка не идет, хотя вроде все правильно было сделано.....я в тупике...


Код cpp:
Код:
#include <iostream.h>
#include <math.h>
double f1(float b,c,x);
double f2(float b,c); 
int main()
  {
          int x,y,k;
          float d,x0,y0,x1,y1;
          /*vyvod coobsheniya-podskazki na ekran*/
          cout <<"\n VVedite b=";
          /*vvod s klavy*/
          cin >> b;
          
          cout <<"\n VVedite c=";
          /*vvod s klavy*/
          cin >> c;
          x0=-2*b/2;
          k=0;
          y0:=Sqr(x0)+2*b*x0+c;{<---Нижняя граница по y}

           /*найдем точки пересечения прямой и параболы*/
         d:=sqr(2*b)+4*1*sqr(b);        /*дискриминант*/
         x1:=(-2*b+sqrt(d))/2;/*<---Верхняя граница по x */
         x2:=(-2*b-sqrt(d))/2;/*<---Нижняя граница по x*/
         y1:=sqr(b)+c;/*<---Верхняя граница по y прямая y=b^2+c*/
         cout << "b=",b\n;
         cout << "c=",c\n;
         for (x=trunc(x2); trunc(x1)) 
         for (y=trunc(y0); trunc(y1)-1)
           { 
            if  (y>f1(b,c,x)) 
            {
                k+=1;
            }
           } 
           cout << "kolichestvo tochek ravno",k;
       return (0);                    
          {
          return f1=x*x+2b*x+c;
          }
          {
          return f2=b*b+c;
          }
ignatka вне форума Ответить с цитированием
Старый 02.06.2010, 22:57   #2
oriojke
 
Регистрация: 31.05.2010
Сообщений: 9
По умолчанию

Код:
y0:=Sqr(x0)+2*b*x0+c;{<---Нижняя граница по y}
...
y1:=sqr(b)+c;/*<---Верхняя граница по y прямая y=b^2+c*/
функции sqr не существует, есть sqrt, но это извлечение корня... возведение x в степень y - pow(x,y)

Код:
 for (x=trunc(x2); trunc(x1))
синтаксически неверно, у for 3 аргумента

Код:
cout << "kolichestvo tochek ravno",k;
еще одна, правильно cout<<kolichestvo....:<<k;

Код:
  return (0);                    
          {
          return f1=x*x+2b*x+c;
          }
          {
          return f2=b*b+c;
          }
а вот тут я завис о_О

Ну и плюс еще дискриминант неправильно считается, странные строчки вида x0=-2*b/2; и тд...

В общем, совсем неправильная программа.

Последний раз редактировалось oriojke; 02.06.2010 в 23:03.
oriojke вне форума Ответить с цитированием
Старый 02.06.2010, 23:46   #3
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Код:
return (0);                    
          {
          return f1=x*x+2b*x+c;
          }
          {
          return f2=b*b+c;
          }
- Действительно хренотень какая-то, компилятор даже не дойдет до них, так как выйдет уже на return(0);

Код:
if  (y>f1(b,c,x)) 
            {
                k+=1;
            }
- Если инкрементация идет только на единицу, можно записать и так k++; (собственно это не ошибка, так этикет)

y0:=pow(x0, 2)+2*b*x0+c;
y1:=pow(b, 2)+c;
d:=pow(2*b, 2)+4*1*pow(b, 2);

Код:
for (x=trunc(x2); trunc(x1)) 
         for (y=trunc(y0); trunc(y1)-1)
- Может тут как-то так
Код:
for (x=trunc(x2); x < trunc(x1); x++) 
         for (y=trunc(y0); y< trunc(y1)-1; y++)

Последний раз редактировалось coNsept; 02.06.2010 в 23:51.
coNsept вне форума Ответить с цитированием
Старый 03.06.2010, 22:43   #4
ignatka
 
Регистрация: 02.06.2010
Сообщений: 2
По умолчанию

все те ошибки на которые вы указали я постарался исправить но все равно что то еще не то , помогите доделать, умоляю!!!


Код:
/* programm cikly.cpp
Даны вещественные b и c.
найти кол-во точек плоскости с 
целочисленными координатами , 
попадающими в фигуру, ограниченную 
линиями y=x*x+2bx+c и y=b*b+c.
*/

#include <iostream.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <conio.h>
float f1(float b,c,x)
 {
      f1=x*x+2b*x+c;
 } 
float f2(float b,c)
 {
        f2=b*b+c;
   }  
int main()
  {
          int x,y,k;
          float d,x0,y0,x1,y1;
          /*vyvod coobsheniya-podskazki na ekran*/
          cout <<" VVedite b=";
          /*vvod s klavy*/
          cin >> b;
          
          cout <<" VVedite c=";
          /*vvod s klavy*/
          cin >> c;
          /*найдем вершину параболы y:=x^2+2bx+c*/
          x0=-2*b/2;
          k=0;
          y0=x0*x0+2*b*x0+c;/*<---Нижняя граница по y*/

           /*найдем точки пересечения прямой и параболы*/
         d=2*b*2*b+4*1*b*b;        /*дискриминант*/
         x1=(-2*b+sqrt(d))/2;/*<---Верхняя граница по x */
         x2=(-2*b-sqrt(d))/2;/*<---Нижняя граница по x*/
         y1=b*b+c;/*<---Верхняя граница по y прямая y=b^2+c*/
         cout << "b=" <<b <<endl;
         cout << "c=" <<c <<endl;
         for (x=trunc(x2); x<trunc(x1); x++) 
         {
           for (y=trunc(y0); y<trunc(y1)-1; y++)
           { 
            if  (y>f1(b,c,x) 
            {
                k++;
            }
           }
        }   
           cout <<" kolichestvo tochek ravno" <<k;
       return (0);                    
          
          }

Последний раз редактировалось ignatka; 04.06.2010 в 02:46. Причина: -
ignatka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
количество точек в фигуре (си++) @lenk@ Помощь студентам 5 24.05.2010 18:50
количество точек в фигуре @lenk@ Общие вопросы C/C++ 1 22.05.2010 20:53
Программа должна вычислять количество точек на границе круга heny Помощь студентам 9 05.03.2010 11:32
Найти количество точек плоскости с целочисленными координатами, попадающими в фигуру [Паскаль] @lenk@ Помощь студентам 4 22.10.2009 21:31
Координаты всех точек в в фигуре 5naip Мультимедиа в Delphi 5 21.12.2008 18:13