Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
rolex3
0 / 0 / 0
Регистрация: 24.12.2014
Сообщений: 6
1

Перевод кода из Pascal в C++

21.05.2016, 19:37. Просмотров 192. Ответов 4
Метки нет (Все метки)

Нужна ваша помощь в переводе с паскаля ибо не особо знаком с конструкциями си.
Код в паскале:
Кликните здесь для просмотра всего текста
Код
Program Princip_Guigensa_Frenelya;
uses crt, graphABC; const dt=0.01;
var i,EC,D,DV,MV : integer; 
da,r1,r2,x1,x2,y1,y2: real;
pi,s,sina,cosa,alpha,c,n,n1,n2,l,a,x,y : real;
Function PPrel(x,y:real):real;
begin PPrel:=1;
If (x-150)*(x-150)+(y-50)*(y-50)<(50*50)
then PPrel:=1.7; 
If y>120 then PPrel:=1.7; 
end;
BEGIN 
pi:=arctan(1)*4; 
circle(310,300,100); 
circle(310,300,101);
For i:=1 to 15 do begin a:=-pi/2+i*pi/20;
x1:=10; 
y1:=100; 
x2:=x1+1*sin(a); 
y2:=y1-1*cos(a); c:=4;
Repeat If y1<>y2 then a:=arctan((x1-x2)/(y2-y1))
else a:=pi/2;
r1:=c*dt/PPrel(x1,y1); 
r2:=c*dt/PPrel(x2,y2);
da:=arctan((r2-r1)/1); 
a:=a+da;
x1:=x1+r1*cos(a); 
y1:=y1+r1*sin(a);
x2:=x2+r2*cos(a); 
y2:=y2+r2*sin(a);
{x2:=x1+1*sin(a); 
y2:=y1-1*cos(a);}
circle(10+round(2*x1),400-round(2*y1),1);
until (abs(x1)>320)or(abs(y1)>200)or(KeyPressed);
end; Readkey; 
END.


Вот что пока написал в С++
Кликните здесь для просмотра всего текста
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
#include <graphics.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
 
 
float PPrel(float x, float y)
{
    PPrel=1;
    if ((x-150)*(x-150)+(y-50)*(y-50))<(50*50)
 {PPrel=1.7; }
 if (y>120) 
 {PPrel=1.7; }
}
 
int main()
{
    int i,EC,D,DV,MV;
    float da,r1,r2,x1,x2,y1,y2;
    float pi,s,sina,cosa,alpha,c,n,n1,n2,l,a,x,y,PPrel,dt ;
initwindow(400,300); // îòêðûòü îêГ*Г® äëÿ ГЈГ°Г*ГґГЁГЄГЁ // Г°Г*çìåðîì 400 Г*Г* 300 ïèêñåëåé
pi=atan(1)*4; 
circle(310,300,100); 
circle(310,300,101);
for (i=1 ; i<=15; i++) 
{ a=-pi/2+i*pi/20;
x1=10; y1=100; x2=x1+1*sin(a); y2=y1-1*cos(a); c=4;
 
do 
{
 
if (y1!=y2) 
    {
 a=atan((x1-x2)/(y2-y1)); 
    }
else 
{
a=pi/2;
r1=c*dt/PPrel(x1,y1); 
r2=c*dt/PPrel(x2,y2);
da=atan((r2-r1)/1); a=a+da;
x1=x1+r1*cos(a); y1=y1+r1*sin(a);
x2=x2+r2*cos(a); y2=y2+r2*sin(a);
circle(10+round(2*x1),400-round(2*y1),1);
}
}
while 
{
((abs(x1)>320) || (abs(y1)>200));
}
getch(); // æäГ*ГІГј Г*Г*Г¦Г*ГІГЁГї Г*Г* ëþáóþ ГЄГ«Г*ГўГЁГёГі
closegraph(); // Г§Г*êðûòü îêГ*Г® Г± ГЈГ°Г*ôèêîé
return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2016, 19:37
Ответы с готовыми решениями:

Перевод кода с с Pascal на С++
Совсем не знаю язык Pascal, а нужно перевести кусочек кода с этого языка на...

Перевод кода из Pascal в С++
Люди добрые прошу помочь в переписи кода из Pascal в С++, помогите пожалуйста...

Перевод кода из Pascal/VB в C++
Помогите пожалуйста перевести код в С++. Сдавать уже скоро, и я никак не...

Перевод кода из Pascal в C++
Народ прошу помощи с переводом кода Паскаль в С ++ var i,n:integer;...

Перевод кода с Pascal
var k,n,m:integer; x,s,p,t:real; begin repeat write('x&lt;&gt;0 x=');{х в...

4
nmcf
6514 / 5743 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
21.05.2016, 20:59 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
float PPrel(float x, float y)
{
    if ((x-150)*(x-150)+(y-50)*(y-50) < 50*50) return 1.7;
    if (y>120) return 1.7;
    return 1;
}
 
do
{
//...
}
while(!(fabs(x1) > 320 || fabs(y1) > 200));
1
rolex3
0 / 0 / 0
Регистрация: 24.12.2014
Сообщений: 6
21.05.2016, 21:47  [ТС] 3
При таком коде
Кликните здесь для просмотра всего текста
Код
#include <graphics.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <Windows.h>
using namespace std;
 
float PPrel(float x, float y)
{
    if ((x-150)*(x-150)+(y-50)*(y-50) < 50*50) return 1.7;
    if (y>120) return 1.7;
    return 1;
}
 
int main() 
{
 int i,EC,D,DV,MV;
    float da,r1,r2,x1,x2,y1,y2;
    float pi,s,sina,cosa,alpha,c,n,n1,n2,l,a,x,y,PPrel,dt ;
initwindow(900,900); 
pi=atan(1)*4; 
circle(310,300,100); 
circle(310,300,101);
for (i=1 ; i<=15; i++) 
 a=-pi/2+i*pi/20;
x1=10; y1=100; x2=x1+1*sin(a); y2=y1-1*cos(a); c=4;
 
do 

 
if (y1!=y2) 
    {
 a=atan((x1-x2)/(y2-y1)); 
    }
else 
		{
a=pi/2;
r1=c*dt/PPrel(x1,y1); 
r2=c*dt/PPrel(x2,y2);
da=atan((r2-r1)/1); a=a+da;
x1=x1+r1*cos(a); y1=y1+r1*sin(a);
x2=x2+r2*cos(a); y2=y2+r2*sin(a);
circle(10+round(2*x1),400-round(2*y1),1);
		}


while(!(fabs(x1) > 320 || fabs(y1) > 200));
getch(); 
closegraph(); 
 
    return 0;
}

вылезает ошибка:
Кликните здесь для просмотра всего текста
40 20 D:\Dev-Cpp\99999.cpp [Error] 'PPrel' cannot be used as a function
0
nmcf
6514 / 5743 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
21.05.2016, 21:54 4
Зачем ты переменную в 21-й строке с таким же именем описал? Убери.
0
DaVillka
7 / 7 / 3
Регистрация: 31.10.2015
Сообщений: 93
Завершенные тесты: 1
21.05.2016, 21:55 5
rolex3, ты в переменную вписал имя fункции
0
21.05.2016, 21:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2016, 21:55

перевод кода из Pascal в C++
помогите, пожалуйста, перевести этот код в C++ :impossible: program chisla;...

Перевод кода из Pascal в С++
Здравствуйте, я недавно занимался программированием в школе. Я попытался...

Перевод кода с Pascal на C++
Помогите, пожалуйста, перевести задачу на C++ var sum, S, Mp, Ch: real; i,...


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

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

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