Мне уже весело.
Вид для печати
напомню, что для паскалей на основе OMSI Pascal - специально для УК-НЦ есть модуль+библиотека GRAY, требует предварительной загрузки GRAY.SAV, автор А.Фоменко (ASPcorp.)
Код:program tsgray;(* (c) Фoмeнкo C.A. 7-Mapтa-1990 гoдa. *)
var
i : integer;
c : char;
procedure init; external;
(* инициaлизaция paбoты c пaкeтoм *)
procedure finit; external;
(* oкoнчaниe paбoты c пaкeтoм *)
procedure window(xl,yb,xr,yt:integer); external;
(* Уcтaнoвкa oкнa вывoдa гpaфики *)
procedure ramka; external;
(* Уcтaнoвлeниe paмки в oкнe тeкyщим цвeтoм
и типoм линии *)
procedure newpicture(i:integer); external;
(* Oтчиcткa тeкyщeгo oкнa i-cпocoб oтчиcтки *)
(* 0-инвepcиeй,1-нaлoжeниeм,2-oтчиcткoй пo мacкe
3-ycтaнoвкoй цвeтa *)
procedure drawmode(i:integer); external;
(* Зaдaниe cпocoбa pиcoвaния 0,1,2,3 *)
procedure color(i:integer); external;
(* Зaдaниe цвeтa гpaфики 0..7 *)
procedure linestyle(i:integer); external;
(* Зaдaниe типa линии 0..7 *)
procedure userstyle(i:integer); external;
(* Зaдaниe пoльзoвaтeльcкoгo типa линии *)
procedure line(x,y,x1,y1:integer); external;
(* Пpopиcoвкa линии *)
procedure dot(x,y:integer); external;
(* Пpopиcoвкa тoчки *)
procedure grdot(x,y:integer); external;
(* Пpopиcoвкa тoчки гpaфикa в cooтвeтcтвии
c тeкyщим типoм линии *)
procedure circle(x,y,r:integer); external;
(* Пpopиcoвкa oкpyжнocти *)
procedure arc(x,y,r,xs,ys,xt,yt,cw:integer); external;
(* Пpopиcoвкa дyги *)
procedure fill(x,y:integer); external;
(* Зaливкa пpoизвoльнoй oблacти *)
procedure square(x,y,x1,y1:integer); external;
(* Пpopиcoвкa квaдpaтa *)
procedure setcol(c,i:integer); external;
(* Уcтaнoвкa cooтвeтcтвия цвeтa *)
procedure screen(i:integer); external;
(* Уcтaнoвкa paзмepoв экpaнa 1,2,3,4 *)
procedure chcolor(i:integer); external;
(* Уcтaнoвкa цвeтa a/ц. cимвoлoв *)
procedure chkurs(i:integer); external;
(* Уcтaнoвкa цвeтa a/ц. кypcopa *)
procedure sccolor(i:integer); external;
(* Уcтaнoвкa цвeтa экpaнa. cимвoлoв *)
procedure stcolor(i:integer); external;
(* Уcтaнoвкa цвeтa cтpoки *)
(* Пpи зaдaнии цвeтa мeньшe 0 пpoиcxoдит
вoccтaнoвлeниe пpeдыдyщeгo цвeтa *)
procedure invers(onof:integer); external;
(* Уcтaнoвкa/cнятиe инвepcии a/ц. cимвoлoв
1-Уcтaнoвкa 0-cнятиe *)
procedure podch(onof:integer); external;
(* Уcтaнoвкa/cнятиe пoдчepкивaния a/ц. cимвoлoв
1-Уcтaнoвкa 0-cнятиe *)
procedure anpos(x,y:integer); external;
(* Пoзициoниpoвaниe a/ц кypcopa *)
procedure vanpos(x,y:integer); external;
(* Пoзициoниpoвaниe a/ц кypcopa близкo к гpaфикe *)
procedure anclear(x,y:integer); external;
(* oтчиcтк a/ц диcплeя дo кoнцa экpaнa *)
procedure setchsize(dx,dy:integer); external;
procedure setchup(up:integer); external;
procedure character(x,y:integer;c:char); external;
procedure string(x,y,dx,dy:integer); external;
begin(* main *)
init;
chkurs(1);
sccolor(1);
stcolor(1);
anclear(1,1);
window(20,23,620,243);
color(2);
ramka;
window(21,24,619,242);
color(0);
newpicture(3);
color(6);
for i:=0 to 7 do
begin
linestyle(i);
line(5,25+i*10,400,25+i*10);
end;
color(4);
linestyle(5);
circle(600,122,200);
linestyle(0);
circle(500,122,20);
fill(500,122);
linestyle(7);
color(3);
line(0,180,400,180);
linestyle(0);
color(2);
line(400,185,410,180);
line(400,180,410,180);
line(400,175,410,180);
circle(10,180,3);
fill(10,180);
linestyle(2);
color(5);
for i:=10 to 400 do
grdot(i,trunc(sin((i-10)/57)*50)+180);
setchsize(1,1);
setchup(12);
string(10,165,9,0);
write('Гpaфик y=Sin(x)',chr(12));
anpos(10,23);
chcolor(2);
write('Кpacный');
write(' ');
chcolor(-1);
chcolor(1);
stcolor(0);
write('cиний');
stcolor(-1);
chcolor(-1);
write(' ');
chcolor(4);
write('зeлeный ');
write(' ');
invers(1);
write('инвepcный');
invers(0);
write(' ');
podch(1);
write('пoдчepкнyтый');
podch(0);
readln(c);
chcolor(-1);
stcolor(-1);
sccolor(0);
chkurs(6);
finit;
end.(* main *)
ха! у вас получилось написать, у меня только вычисление элементарной формулы по двум точкам,
не понимаю как символами строить, скопипастить могу, а сам выдумать пока не могу. А син и кос,
я уже пол пальца предложим @MM, но ему лень в Зелек переть забирать )))
@Alex_K отмечал, что все эти граф. построения в УК-НЦ прошиты где-то в ёё мозгах,
вот видимо оттуда все эти граф. навеси для ПАСКАЛЯ растут, напомнил про пакет -
если кому графики (хотя ИМХО:Бейсик-Вильнюс проще использовать наверное) порисовать
на Паскале захочется и построения всякие (хобби у всех разные бывают).
- - - Добавлено - - -
а я видел ) не пропадёт ваш листинг - тема богатеет примерами. Так держать!
В командах дисплея 15-ИЭ-хх есть ESC последовательность позиционирования курсора, добавляем в координаты результат функции Син и Кос ( для Х и У координат ), и пишем туда буковку "А", или др. ASCII код.
Табличка ESC команд , подходящих для дисплея, есть в паспорте КЦГД :
http://www.emuverse.ru/wiki/%D0%94%D0%92%D0%9A
Подстраивать плоскость круга можно , изменяя множители к результату функций Син и Кос.
Все ли посещали уроки информатики в школе ?
у меня информатики в школе не было к сожалению, а вот позиционирование курсора и другие послед. в моём и других листингах есть )
- - - Добавлено - - -
тут надо уже геометрию и тригонометрией вспоминать, а вы говорите информатика. )))
за ненадобностью всё потёрлось , сложение векторов, построение окружностей, а число пи я всегда ненавидел )))
@nzeemin,
Код:PROCEDURE TTYOUT(N:INTEGER);
CONST R=200B;
VAR A ORIGIN 177564B, D ORIGIN 177566B:INTEGER;
BEGIN
WHILE (A AND R)=0 DO;
D:=N;
END; /* THIS PROCEDURE WAS COPIED FROM HPIC.PAS */
PROCEDURE GOTOXY(XX,YY: INTEGER);
BEGIN
WRITE(CHR(27),'Y',CHR(32+YY),CHR(32+XX));
END;
Код:American Standart Code for Information Interchange /ASCII/
-------------------+--------------------+------------------
Symbol Code | Symbol Code | Symbol Code
-------------------+--------------------+------------------
Null 0 0. | @ 100 64. | Ю 140 96.
Control-A 1 1. | A 101 65. | А 141 97.
Control-B 2 2. | B 102 66. | Б 142 98.
Control-C 3 3. | C 103 67. | Ц 143 99.
Control-D 4 4. | D ( 104 68. | Д 144 100.
Control-E 5 5. | E 105 69. | Е 145 101.
Control-F 6 6. | F 106 70. | Ф 146 102.
Bell 7 7. | G 107 71. | Г 147 103.
Backspace 10 8. | H 110 72. | Х 150 104.
Tab 11 9. | I 111 73. | И 151 105.
Line Feed 12 10. | J 112 74. | Й 152 106.
Vert Tab 13 11. | K 113 75. | К 153 107.
Form Feed 14 12. | L 114 76. | l 154 108.
Carr Ret 15 13. | M 115 77. | М 155 109.
Control-N 16 14. | N 116 78. | Н 156 110.
Control-O 17 15. | O 117 79. | О 157 111.
Control-P 20 16. | P 120 80. | П 160 112.
Control-Q 21 17. | Q 121 81. | Я ` 161 `113.
Control-R 22 18. | R 122 82. | Р 162 114.
Control-S 23 19. | S 123 x3. | С 163 115.
Control-T 24 20. | T 124 84. | Т )164 116.
Control-U 25 21. | U 125 85. | У 165 117.
Control-V 26 22. | V 126 86. | Ж 166 118.
Control-W 27 23. | W 127 87. | Б 167 119.
Control-X 30 24. | X 130 88. | Ь 170 120.
Control-Y 31 25. | Y 131 89. | Ы 171 121.
Control-Z 32 26. | Z 132 90. | З 172 122.
Escape 33 27. | [ 133 91. | Ш 173 123.
Control-\ 34 28. | \ 134 92. | Э 174 12<.
Control-] 35 29. | ] 135 93. | Щ 175 125.
JControl-^ 36 30. | ^ 136 94. | Ч 176 126.
Control-_ 37 31. | _ 137 95. | Забой 177 127.
Space 40 32. | ` 140 96. | ю 100 64.
! 41 33. | a 141 97. | а 111 65.
" 42 s4. | b 142 98. | б ` 102 66.
# 43 35. | c 143 99. | ц 103 67.
$ 44 36. | d 144 100. | д 104 68.
% 45 37. | e 145 )101. | е 105 69.
& 46 38. | f 146 102. | NF 106 70.
' 47 39. | g 147 103. | г 107 71.
( 50 40. | h 150 104. | х 110 72.
) 51 41. | i 151 105. | и 111 73.
* 52 42. | j 152 106. | й 112 74.
+ 53 `43. |` k 153 107. | к` 113 75.
, 54 44. | l 154 108. | л 114 76.
- 5u 45. | m 155 109. | м 115 77.
. 56 46. | n 156) 110. | н 116 78.
/ 57 47. | o 157 111. | о 117 79.
0 60 48. | p 160 112. | п 120 80.
1 61 49. | q 161 113. | я 121 81.
2 62 50. | r 162 114. | р 122 82.
3 63 51. | s 163 115. | с 123 83.
4 64 52. | t 164 116. | т 124 84.
5 65 53. | u 165 117. | у 125 85.
6 66 54. | v 166 118. | ж 126 86.
7 67 55. | w 16? 119. | б 127 87.
8 70 56. | x 170 120. | ь 130 88.
9 71 57. | y 171 121. | ы 131 89.
: 72 58. | z 172 122. | з 132 90.
; 73 59. | { 173 123. | ш 133 91.
< 74 60. | | 174 124. | э 134 92.
= 7u 61. | } 175 125. | щ 135 93.
> 76 62. | ~ 176 126. | ч 136 94.
? `77 63. | Rubout 177 127. | ъ 137 95.
-------------------+--------------------+------------------
А л ф а в и т н о - ц и ф р о в а я к л а в и а т у р а Д В К
+----+----+----+ +----+----+----+ +----+----+----+
|СБР |СТР |СТС | |АР1 | С1 |АР2 | |ПРД |ПРМ |ПРС |
| 14 | 37 | 13 | | 20 | 1 | 33 | | 36 | 21 | 6 |
+----+----+----+ +----+----+----+ +----+----+----+
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| ; | 1 | 2) | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - |ТАБ | ГТ |
| + | ! | " | # | $ | % | & | ' | ( | ) | | = | | |
| 73 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 70 | 71 | 60 | 55 | 30 | 11 |
| 53 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 50 | 51 | 60 | 75 | | |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| Й | Ц | У | К | Е | Н | Г | Ш | Щ | З | Х | : | ПС | ВК |
| J | C | U | K | E | N } G | [ | ] | Z | H | * | | |
|112 |103 |125 |113 |10u |116`|107 |133 |135 |132 |110 | 72 | 12 | 15 |
|152 |143 |165 |163 |145 |156 |147 |173 |175 |172 |150 | 52 | | |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| СУ | Ф | Ы | В | А | П !| Р | О | Ло Э Д | Ж | Э | . |`ЗБ |
| | F | Y | W | A | P | R | O | L | D | V | \ | > | `|M
| |106 |131 |127 |101 |120 |122 |117 |114 |104 |126 |134 | 56 | 10 |
|-180|146 |171 |167 |141 |160 |162 |157 |154 |144 |166 |174 | 76 | |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| ВР | Я | Ч | С | М | И | Т | Ь | Б | Ю | , | / | | НР |
| | Q | ^ | S | M | I | T | X | B | @ | < | ? | _ | |
| |121 |136 |123 |115 |111 |124 |130 |102 |100 | 54 | 57 |177 | |
| |161 |176 |163 |155 |151 |164 |170 |142 |140 | 74 | 77 |137 |+40 |
+----+----+----+----+----+----+----+----+----+-,--+----+----+----+----+
| РУС | ПРОБЕЛ ` | ЛАТ |
| 16 | 40 | 17 |M
+---------+-------------------------------------------------+---------+
Дополнительная цифровая и служебная кмавиатуры Д В К
й `Без ДК С ДК Ю 1-я и 2-я с.к. С ДК
+----+----+----+ +----+----+----+ k-m--+----+----+ +----+----+---m+
| 7 | 8 | 9 | | 7 | 8 | 9 | | 25 } 34 | 15 | |125^|101E|115D|
| 67 | 70 | 71 | |127D|130D|131D| |125^|101E| 15 | |$^U |$A |$?M |
+----+----+----+ +----+----+----+ +----+----+----+ +----+----+----+
| 4 | 5 | 6 | | 4 | 5 | 6 | | 32 | 10 | 31 | |104E|110^|103E|
| 64 | 65 | 66 | |124D|125D|126D| |104E|110^|103E| `|$D |$^H |$C |
+----+----+--m-+ +----+----+----+ +----+----+----+ +----+----+----+
| 1 | 2 | 3 | | q | 2 | 3 | | 24 | 35 | 23 | |124^|102E|123^|
| 61 | 62 | 63 | |921D|122D|123D| |124^|102E|123^| |$^T |$D |$^S |
+----+----+----+ +----+----+----+ +----+----+----+ +----+----+----+
| 0 |, 54| | 0 | , | | 26 | 2 | 22 | |120E|121E|122E|
| 60 |. 56| | 120D |116D| |120E|121E|122E| |$P |$Q |$R |
+---------+----+ +---------+----+ +----+----+----+ +----+----+----+
E - ESC-Коды - 33 ... - $ ...
^ - ESC-Коды - 33 136 ... - $^...
D - Коды дополнительной клавиаттры - 33 77 ... - $?...
ESC-Коды для вывода на экран:
033 075 '=' - Установка дополнительной клавиатуры
033 076 '>' - Сброс дополнительной клавиатуры
033 105 'E' - Переход к системе команд 1
033 110 'H' - Возврат маркера в координаты 0,0
033 111 'I' - Маркер вверх со сдвигом первой строчки
033 112 'J' - Стирание от маркера до конца экрана
033 113 'K' - Стирание строки от маркера
033 131 'Y' - Прямая адресация маркера /033 131 040+Y 040+X/
033 132 'Z' - Выдача командной послемовательности 033 132