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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Erbe
0 / 0 / 0
Регистрация: 14.02.2014
Сообщений: 54
Завершенные тесты: 2
#1

Переписать код програмы с QBasic в C++ - C++

01.06.2014, 22:50. Просмотров 166. Ответов 0
Метки нет (Все метки)

QBasic/QuickBASIC
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
' Объявим константы:
    CONST pi = 3.141592653589793#
    CONST Gradus = pi / 180, RAD = 180 / pi
  '  Углы обзора
    CONST OBZORh = 40 * Gradus, OBZORv = 33 * Gradus
  '  Разрешение экрана
    CONST RezX = 319, RezY = 199
  '  Геометрия
    CONST Points = 8   ' Вершин(точек)
    CONST Polygs = 6   ' Граней(полинонов)
    CONST Ps = Points - 1, Pg = Polygs - 1
  '  Переменные препроцессора точек
    DIM Ln1Ugol!, Ln2Ugol!, Ln3Ugol!, Ln4Ugol!
    DIM a1!, a2!, a3!, a4!, b1!, b2!, b3!, b4!
    DIM CamX!, CamY!, CamZ!, CamHcrn!, CamVcrn!
  '  М А С С И В    Т О Ч Е К
DATA 0,0,500
DATA 500,0,500
DATA 500,500,500
DATA 0,500,500
DATA 0,0,0
DATA 500,0,0
DATA 500,500,0
DATA 0,500,0
    DIM X%(Ps), Y%(Ps), Z%(Ps), ex%(Ps), ey%(Ps), DalT%(Ps)
    DIM Xc%(Ps), Yc%(Ps), Zc%(Ps)
    DIM KubU#, KubV#
      FOR i% = 0 TO Ps: READ X%(i%), Y%(i%), Z%(i%): NEXT
   '  Центруем объект
    DIM xMax%, yMax%, zMax%, xMin%, yMin%, zMin%, CntX%, CntY%, CntZ%
 FOR i% = 0 TO Ps
  IF xMax% < X%(i%) THEN xMax% = X%(i%)
  IF xMin% > X%(i%) THEN xMin% = X%(i%)
  IF yMax% < Y%(i%) THEN yMax% = Y%(i%)
  IF yMin% > Y%(i%) THEN yMin% = Y%(i%)
  IF zMax% < Z%(i%) THEN zMax% = Z%(i%)
  IF zMin% > Z%(i%) THEN zMin% = Z%(i%)
 NEXT
  CntX% = (xMax% - xMin%) \ 2
  CntY% = (yMax% - yMin%) \ 2
  CntZ% = (zMax% - zMin%) \ 2
 FOR i% = 0 TO Ps
   X%(i%) = X%(i%) - CntX%
   Y%(i%) = Y%(i%) - CntY%
   Z%(i%) = Z%(i%) - CntZ%
 NEXT
 FOR i% = 0 TO Ps: Xc%(i%) = X%(i%): Yc%(i%) = Y%(i%): Zc%(i%) = Z%(i%): NEXT
  '  М А С С И В    Г Р А Н Е Й(ПОЛИГОНОВ)
DATA 0,1,2,3
DATA 7,6,5,4
DATA 0,3,7,4
DATA 2,1,5,6
DATA 1,0,4,5
DATA 3,2,6,7
  '  Pnum% - грани
    DIM Pnum%(Pg, 3)
      FOR i1% = 0 TO Pg: FOR i2% = 0 TO 3
        READ Pnum%(i1%, i2%)
      NEXT i2%, i1%
  ' Инициализация
SCREEN 7, , 0, 1
   LOCATE 14, 10: COLOR 15: PRINT "PRESS SPACE...    "
   PCOPY 0, 1  ' Сразу откопируем страницу(для надписи)
  DO: LOOP UNTIL INKEY$ = CHR$(32)
  ' Считаем это перед циклом по кадрам
   Ln1Ugol! = OBZORh: Ln2Ugol! = -OBZORh
   Ln3Ugol! = OBZORv: Ln4Ugol! = -OBZORv
   a1! = SIN(Ln1Ugol!): b1! = -COS(Ln1Ugol!)
   a2! = SIN(Ln2Ugol!): b2! = -COS(Ln2Ugol!)
   a3! = SIN(Ln3Ugol!): b3! = -COS(Ln3Ugol!)
   a4! = SIN(Ln4Ugol!): b4! = -COS(Ln4Ugol!)
 ' Параметры камеры
 CamHcrn! = 0 * Gradus   ' Крен камеры
 CamVcrn! = -35 * Gradus   ' Поворот камеры
 CamX! = -700
 CamY! = 0
 CamZ! = 400
 FirstTime! = TIMER
50  ' Основной цикл по кадрам
 IF TIMER - TimePRC > .04 THEN TimePRC = TIMER: GOSUB TimePRC
  SinCamH! = SIN(CamHcrn!): CosCamH! = COS(CamHcrn!)
  SinCamV! = SIN(CamVcrn!): CosCamV! = COS(CamVcrn!)
    ' Углы вращения по таймеру
 KubU# = KubU# + CDBL(1 * tic%) * Gradus    ' Горизонтальная плоскость
 tic% = 0
    ' Вращаем куб
 FOR Tn% = 0 TO 7             ' Поворачиваем точки в плоскости XY
  Yc%(Tn%) = CDBL(X%(Tn%)) * SIN(KubU#) + CDBL(Y%(Tn%)) * COS(KubU#)
  Xc%(Tn%) = CDBL(X%(Tn%)) * COS(KubU#) - CDBL(Y%(Tn%)) * SIN(KubU#)
 NEXT
    ' Цикл по точкам
  FOR i% = 0 TO 7
   TXx! = Xc%(i%) - CamX!: TYy! = Yc%(i%) - CamY!: TZz! = Zc%(i%) - CamZ!
    ' Обратный поворот относительно 2х осей
   TX! = TXx! * CosCamH! + TYy! * SinCamH!    ' Первая плоскость XY
   TY! = -TXx! * SinCamH! + TYy! * CosCamH!
    ' Вторая плоскость XZ
   TZ! = -TX! * SinCamV! + TZz! * CosCamV!  'Сперва Tz ВАЖНО !!!
   TX! = TX! * CosCamV! + TZz! * SinCamV!
    ' Расчёт горизонтального расстояния
  Rasst1! = (a1! * TX! + b1! * TY!)
  Rasst2! = (a2! * TX! + b2! * TY!)
    IF Rasst1! < 0 OR Rasst2! > 0 GOTO Ex3D   'Точка вне видимости
    OBRas1! = ABS(Rasst1!) + ABS(Rasst2!)
    IF OBRas1! <> 0 THEN XeKf# = Rasst1! / OBRas1! ELSE XeKf# = 1
    ex%(i%) = XeKf# * RezX
    ' Расчёт вертикального расстояния
  Rasst3! = (a3! * TX! + b3! * TZ!)
  Rasst4! = (a4! * TX! + b4! * TZ!)
    IF Rasst3! < 0 OR Rasst4! > 0 GOTO Ex3D   'Точка вне видимости
    OBRas2! = ABS(Rasst3!) + ABS(Rasst4!)
    IF OBRas2! <> 0 THEN YeKf# = Rasst3! / OBRas2! ELSE YeKf# = 1
    ey%(i%) = YeKf# * RezY
Ex3D:
  NEXT i%
    ' Очистка заднего буфера
  CLS 1
    ' Построим полигоны
  FOR i% = 0 TO 5
    Px1% = Pnum%(i%, 0): Px2% = Pnum%(i%, 1)
    Px3% = Pnum%(i%, 2): Px4% = Pnum%(i%, 3)
    LINE (ex%(Px1%), ey%(Px1%))-(ex%(Px2%), ey%(Px2%)), 15
    LINE (ex%(Px2%), ey%(Px2%))-(ex%(Px3%), ey%(Px3%)), 15
    LINE (ex%(Px3%), ey%(Px3%))-(ex%(Px4%), ey%(Px4%)), 15
    LINE (ex%(Px4%), ey%(Px4%))-(ex%(Px1%), ey%(Px1%)), 15
  NEXT
'  Копируем страницу
  PCOPY 0, 1
IF INKEY$ = CHR$(27) GOTO 100   ' Выход по ESC
GOTO 50
100
END
 
TimePRC: ' Прерывание по таймеру(Иммитируем для совместимости)
 tic% = tic% + 1
RETURN
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2014, 22:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переписать код програмы с QBasic в C++ (C++):

Удаление комментариев в файле (файл - код програмы на с++ записанв блокноте) - C++
Есть файл(.txt) в котором заисан код проги с комментариями . Как удалить с файла все комментарии ?

нужно убрать однаковые елементы в списке(есть код програмы) только нехватает удаления однаковых елементов - C++
#include&lt;iostream&gt; #include&lt;string&gt; using namespace std; struct List1 { string a; List1 * next; }; struct...

Пытаюсь переписать код с циклом for, в код с циклом while, но не совсем получается - C++
Возникло пару вопросов: #include &lt;iostream&gt; using namespace std; int main () { for (int i = 0; i&lt;=10; i++) cout &lt;&lt;...

Переписать код с Си - C++
FILE *f; char s = {0}; f=fopen(&quot;filename.txt&quot;,&quot;rt&quot;); char buff; int count; do ...

переписать код с++ - C++
Задача: Написать программу, которая считывает текст из файла и выводит его на экран, после каждого предложения добавляя, сколько раз...

Переписать код - C++
вот нашел код программы похожий по условию, может кто перепишет, под мою прогу. Мое условие: 68. В одномерном массиве с четным...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2014, 22:50
Привет! Вот еще темы с ответами:

Переписать код на с++ - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;sstream&gt; #include &lt;iterator&gt; int main() { std::string str, tmp; ...

Переписать код - C++
нужна помощь в изменении когда. данный код #include &lt;iostream&gt; using namespace std; double Max(double a, double b){ return a &gt; b...

Не могу переписать код - C++
Помогите пожалуйста переписать на С++.

Переписать код с Java на С++ - C++


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru