Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 28.09.2013
Сообщений: 10

Нужно перевести код с Pascal ABC на Turbo Pascal - рисование работающей мельницы

02.10.2014, 17:45. Показов 2337. Ответов 4

Студворк — интернет-сервис помощи студентам
Вот код, он должен рисовать работающею мельницу.

Pascal
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
uses graphABC,crt;
type point=record
           x,y:integer;
           end;
//отрисовка лопастей в виде замкнутого полигона
//параметры: центральная точка, радиус, цвет, текущий угол поворота
procedure Lop(xc,yc,r,c:integer;u0:real);
var p:array[1..13] of point;
    i:integer;
    u,du:real;
begin
u:=pi/4;du:=u/4;//первая лопасть по 45 гр., ввер и вниз на 45/4 гр.
for i:=1 to 4 do
 begin
  p[3*i-2].x:=xc; p[3*i-2].y:=yc;//первые точки в центре
  p[3*i-1].x:=xc+round(r*cos(u0+u-du));
  p[3*i-1].y:=yc-round(r*sin(u0+u-du));
  p[3*i].x:=xc+round(r*cos(u0+u+du));
  p[3*i].y:=yc-round(r*sin(u0+u+du));
  u:=u+pi/2;//лопасти через 90 градусов
 end;
p[13].x:=p[1].x; p[13].y:=p[1].y; //замкнем
setpencolor(c);
polygon(p,13); //рисуем заданным цветом
end;
//помещение мельницы, все размеры от радиуса
procedure Meln(xc,yc,r,c:integer);
var p:array[1..5] of point;
    i:integer;
begin
p[1].x:=xc-r div 3;p[1].y:=yc-r div 10;
p[2].x:=xc+r div 3;p[2].y:=yc-r div 10;
p[3].x:=xc+2*r div 2;p[3].y:=yc+2*r;
p[4].x:=xc-2*r div 2;p[4].y:=yc+2*r;
p[5].x:=p[1].x;p[5].y:=p[1].y;
setpencolor(c);
polygon(p,5);
end;
var x,y,r:integer;
    u:real;
begin
r:=150; //зададим радиус
SetWindowSize(3*r,7*r div 2); //задалим подходящие размеры окна
x:=windowwidth div 2; y:=r+10;//центральная точка лопастей
hidecursor;//спрячем курсор
u:=0; //в цикле перерисовываем с поворотом лопастей
repeat
Meln(x,y,r,clRed);
Lop(x,y,r,clBlack,u);
delay(100);
Meln(x,y,r,clWhite);
Lop(x,y,r,clWhite,u);
u:=u+pi/16;
until keypressed; //пока не нажата клавиша
end.
1
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.10.2014, 17:45
Ответы с готовыми решениями:

Список слов распечатать в алфавитном порядке. В Turbo Pascal или Pascal ABC
Дана непустая последовательность слов, в каждом из которых содержится от 1 до 6 заглавных латинских букв; соседние слова разделены запятой,...

Перевести код из C++ в Turbo Pascal
#include "stdafx.h" #include<stdio.h> #include<conio.h> #include<Windows.h> void gr(int x,int y) { int i; char...

Перевести код pascal abc в Turbopascal
var a,b,c : real; begin Writeln('Значенеи в км/час'); Readln(a); Writeln('Значение м/с'); Readln(b); c:= (a*1000/3600) ; if...

4
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
02.10.2014, 18:13
Лучший ответ Сообщение было отмечено Disik как решение

Решение

Pascal
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
uses graph,crt;
type point=record
           x,y:integer;
           end;
procedure Lop(xc,yc,r,c:integer;u0:real);
var p:array[1..13] of point;
    i:integer;
    u,du:real;
begin
u:=pi/4;du:=u/4;
for i:=1 to 4 do
 begin
  p[3*i-2].x:=xc; p[3*i-2].y:=yc;
  p[3*i-1].x:=xc+round(r*cos(u0+u-du));
  p[3*i-1].y:=yc-round(r*sin(u0+u-du));
  p[3*i].x:=xc+round(r*cos(u0+u+du));
  p[3*i].y:=yc-round(r*sin(u0+u+du));
  u:=u+pi/2;
 end;
p[13]:=p[1];
setcolor(c);
drawpoly(13,p);
{почему-то полигон не рисует одну линию,
в АВС все рисует, поэтому добавим}
line(p[4].x,p[4].y,p[5].x,p[5].y);
end;
 
procedure Meln(xc,yc,r,c:integer);
var p:array[1..5] of point;
    i:integer;
begin
p[1].x:=xc-r div 3;p[1].y:=yc-r div 10;
p[2].x:=xc+r div 3;p[2].y:=yc-r div 10;
p[3].x:=xc+2*r div 2;p[3].y:=yc+2*r;
p[4].x:=xc-2*r div 2;p[4].y:=yc+2*r;
p[5].x:=p[1].x;p[5].y:=p[1].y;
setcolor(c);
drawpoly(5,p);
end;
var x,y,r:integer;
    u:real;
begin
initgraph(x,y,'');
r:=150;
x:=getmaxX div 2;
y:=r+10;
u:=0;
repeat
Meln(x,y,r,12);
Lop(x,y,r,15,u);
delay(100);
Meln(x,y,r,0);
Lop(x,y,r,0,u);
u:=u+pi/16;
until keypressed;
end.
2
1 / 1 / 0
Регистрация: 28.09.2013
Сообщений: 10
02.10.2014, 18:36  [ТС]
Огромное спасибо!!!!
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
02.10.2014, 18:44
Так это мой код и я уже переводил его с Турбо в АВС...
0
1 / 1 / 0
Регистрация: 28.09.2013
Сообщений: 10
02.10.2014, 22:35  [ТС]
мир тесен)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.10.2014, 22:35
Помогаю со студенческими работами здесь

Turbo Pascal, Pascal ABC, Free Pascal, PascalABC.NET - в чем разница?
Всем привет, решил изучать Паскаль, но на форуме увидел 4 его версии - Turbo Pascal, Pascal ABC, Free Pascal, PascalABC.NET и не понял, в...

Различия трансляторов Pascal ABC.Net и Turbo/Borland Pascal
Пожалуйста, объясните различия между компиляторами Pascal ABC.Net и Turbo/Borland Pascal

Чем отличаются Turbo Pascal и Pascal ABC?
Чем отличаются турбо паскаль и abc? Просто у меня windows7 последняя теперь стоит, и там турбо паскаль не идет, а нам по нему задания...

Нужно перевести код из с++ в pascal
#include <iostream> #include <ctime> #include <cmath> using std::cout; using std::cin; using std::endl; int main() ...

Нужно перевести код из Java в Pascal:
Нужно перевести код из Java в Pascal: Import java.util.*; class Main {public static void main(Stringargs) {Scanner sc=new...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru