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

Должен рисоватся график - C++

Восстановить пароль Регистрация
 
 
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 263
11.11.2011, 20:23     Должен рисоватся график #1
Вот тут вот где ошибка? И потом ещё нужно, чтобы рисовалась в этой проге синусойда, косинусойда, вот написал одну, а ошибка где не знаю
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
56
57
58
59
60
61
62
#include<windows.h>
#include<string.h>
#include<stdio.h>
//#include"mnkcpp.h"
#include<math.h>
#include<alloc.h>
    void graf(int kt, double dx, double  *x,
 
          double  *y)
      {
      extern FILE *fp6;
            double  xmax,xmas,y1,y2,r;
        int i,kx,j,ls,kk,kn,kkon;
      char str[42],prob=' ',sim='*';
         xmax=(y[1]);
    if(xmax<0) xmax=-xmax;
         for(i=1;i<=kt;i++)
      {
    r=y[i];
    if(r<0) r=-r;
         if(xmax>=r) goto m1;
    xmax=r;
m1:;
      }
          kx=kt;
          xmas=xmax/20;
    fprintf(fp6,"\n X =%.15f\n  Y =%.15f\n",
          dx,xmas);
 fprintf(fp6,"\n____________________X___________________Y\n");
    y1=fabs(y[1]);
          if(y[1]==0) y1=1e-16;
        for(i=1;i<=kt;i++)
     {
         for(j=1;j<=41;j++)
          str[j]=prob;
          str[21]='|';
          if(y[i]<0) goto m7;
          if(y[i]>0) goto m8;
          str[21]='0';
          goto m10;
m7:;
          kk=fabs(y[i])/xmas+0.5;
          if(kk==0) str[21]='0';
          kn=20-kk+1;
         for(j=kn;j<=20;j++)
          str[j]=sim;
          goto m10;
m8:;
          kk=y[i]/xmas+0.5;
          if(kk==0) str[21]='0';
          kkon=21+kk;
         for(j=22;j<=kkon;j++)
          str[j]=sim;
m10:;
          y2=y[i]/y1;
          for(ls=1;ls<=41;ls++)
          fprintf(fp6,"%c",str[ls]);
    fprintf(fp6," y=%.15f \n",
        y[i]);
      }
    return;
          }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
11.11.2011, 20:36     Должен рисоватся график #2
Боюсь даже спросить, может нужно просто протабулировать функции синуса и косинуса вместо того, чтобы рисовать "синусойду"?
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 263
11.11.2011, 20:37  [ТС]     Должен рисоватся график #3
нам такое задание дали)))
а в этой проге где ошибка?
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
11.11.2011, 20:42     Должен рисоватся график #4
Rikk, не знаю, какое вам давали задание, но синусоидой называют график функции синуса или косинуса (последний также называют косинусоидой). А твоя программа делает (или пытается делать) совсем другое.
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 263
11.11.2011, 20:46  [ТС]     Должен рисоватся график #5
да я знаю, это просто самое первое задание, тоже должен быть график вырисовыватся
нам препод типо своей методички дал, говорит напишете с неё проу, а потом на основе её напишете уже косинусойду и синусойду, ну вот и написал, только толку от этого...
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
11.11.2011, 20:47     Должен рисоватся график #6
Цитата Сообщение от Rikk Посмотреть сообщение
а в этой проге где ошибка?
ну, я не вижу в ней функции main. А уважаемый ТС знает про выравнивание кода? А то у меня от него глаза разболелись
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 263
11.11.2011, 20:51  [ТС]     Должен рисоватся график #7
если main ставить, то сходу в самом начале ошибку выкидывает

Добавлено через 10 секунд
уже пробывал...
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
11.11.2011, 20:53     Должен рисоватся график #8

Не по теме:

Nameless One, лично у меня глаза стали в кучку еще на первом goto.


Rikk,
Это препод такие проги дает? Это ужас какой-то. Но верится с трудом.
У вас просто вырванный откуда-то кусок кода, который естественно не будет работать без всего остального
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 263
11.11.2011, 20:56  [ТС]     Должен рисоватся график #9
я вам говорю, он нам сказал, посмотрите программу, на основе неё сделаете синусойду и косинусойду
ну если бы была бы часть, то начала не было бы include и тп
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
11.11.2011, 21:02     Должен рисоватся график #10
Rikk, программа на С/С++ не бывает без функции main. Может, вам преподаватель сказал посмотреть именно эту функцию, которая, как я поняла "рисует" в файле что-то из пробелов и звездочек. Возможно, это он и назвал графиком. Тогда вам надо написать функцию main, где заполнить значения в массивах x, y, потом вызвать эту функцию graf для этих массивов и получить "график"
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 263
11.11.2011, 21:03  [ТС]     Должен рисоватся график #11
вот разбираюсь с этим как раз
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
11.11.2011, 21:05     Должен рисоватся график #12
Цитата Сообщение от Rikk Посмотреть сообщение
ну если бы была бы часть, то начала не было бы include и тп
если бы была не часть, то в программе была бы функция main

вот табулирование, вдруг и вправду пригодится:
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
#define M_PI        3.14159265358979323846  /* pi */
#define M_PI_2      1.57079632679489661923  /* pi/2 */
 
typedef double (*PFUNC)(double);
 
void tabulate(PFUNC, const char*, double, double, double);
 
int main(void)
{
    tabulate(sin, "sin(x)", -M_PI_2, M_PI_2, .1);
    tabulate(cos, "cos(x)", 0, M_PI, .05);
 
    exit(0);
}
 
void tabulate(PFUNC fun, const char* label,
          double xmin, double xmax, double step)
{
#define ROW_SEP puts("+-----------------+")
 
    ROW_SEP;
 
    printf("| x      | %6.6s |\n", label);
 
    for( ; xmin < xmax + step; xmin += step)
    {
    ROW_SEP;
    printf("| %6.3f | %6.3f |\n", xmin, fun(xmin));
    }
 
    ROW_SEP;
    
    putchar('\n');
    
#undef ROW_SEP
}
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
11.11.2011, 21:34     Должен рисоватся график #13
???
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <cmath>
#include <map>
 
#define PI 3.14159265
 
int main(int argc, char *argv[]) {
  int degree = 0.;
  
  while (true) {
    double result = sin(degree * PI / 180);
    degree = (degree + 10) % 360;
    int length = int((result + 2.) * 10.);
    std::cout << std::string(length, '#') << std::endl;
  }
  
  return 0;
}
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 263
11.11.2011, 21:37  [ТС]     Должен рисоватся график #14
Цитата Сообщение от Nameless One Посмотреть сообщение
если бы была не часть, то в программе была бы функция main

вот табулирование, вдруг и вправду пригодится:
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
#define M_PI        3.14159265358979323846  /* pi */
#define M_PI_2      1.57079632679489661923  /* pi/2 */
 
typedef double (*PFUNC)(double);
 
void tabulate(PFUNC, const char*, double, double, double);
 
int main(void)
{
    tabulate(sin, "sin(x)", -M_PI_2, M_PI_2, .1);
    tabulate(cos, "cos(x)", 0, M_PI, .05);
 
    exit(0);
}
 
void tabulate(PFUNC fun, const char* label,
          double xmin, double xmax, double step)
{
#define ROW_SEP puts("+-----------------+")
 
    ROW_SEP;
 
    printf("| x      | %6.6s |\n", label);
 
    for( ; xmin < xmax + step; xmin += step)
    {
    ROW_SEP;
    printf("| %6.3f | %6.3f |\n", xmin, fun(xmin));
    }
 
    ROW_SEP;
    
    putchar('\n');
    
#undef ROW_SEP
}
табуляция я думаю на будующее пригодится

Добавлено через 33 секунды
Цитата Сообщение от lemegeton Посмотреть сообщение
???
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <cmath>
#include <map>
 
#define PI 3.14159265
 
int main(int argc, char *argv[]) {
  int degree = 0.;
  
  while (true) {
    double result = sin(degree * PI / 180);
    degree = (degree + 10) % 360;
    int length = int((result + 2.) * 10.);
    std::cout << std::string(length, '#') << std::endl;
  }
  
  return 0;
}
а это часть кода от чего?
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
11.11.2011, 21:40     Должен рисоватся график #15
Rikk, а скопировать и запустить?
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
11.11.2011, 21:40     Должен рисоватся график #16
Это достаточный код, чтобы выводить синусоиду. Изменив в коде три буквы можно произвести косинусоиду.
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 263
11.11.2011, 21:48  [ТС]     Должен рисоватся график #17
не работает у меня...
-=ЮрА=-
Заблокирован
Автор FAQ
11.11.2011, 22:50     Должен рисоватся график #18
Rikk, нарисовать синусоиду можно так
Построение графиков элементарных функций - там исходник и по памяти коменты делал, разберётесь
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 263
11.11.2011, 23:08  [ТС]     Должен рисоватся график #19
то ли я глупый, то ли у меня tc не тот, но он у меня это не открывает, подскажите что делать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2011, 00:25     Должен рисоватся график
Еще ссылки по теме:

C++ Вектор с классом должен получить класс (?)
Пользователь должен отгадать рандомное число C++
Описать абстрактный класс породить от него еще два,один должен остаться абстрактным,другой должен быть способен пораждать объекты C++

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

Или воспользуйтесь поиском по форуму:
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
12.11.2011, 00:25     Должен рисоватся график #20
Какой, жеваный крот, TC?! На дворе 2011 год. MSVS, BorlandBuilder, MinGW на худой конец.
Yandex
Объявления
12.11.2011, 00:25     Должен рисоватся график
Ответ Создать тему
Опции темы

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