powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / помогите перевести с паскаль в с++
18 сообщений из 18, страница 1 из 1
помогите перевести с паскаль в с++
    #38976355
sweety_vika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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.
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.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
program interpol;
uses crt, graph;
const
MAXCOUNT = 30;
type
per = array [0 .. MAXCOUNT] of real;
var
X, y: per;
n, i: integer;
l, D, f: real;
label Lp, Lt;
{Процедура виведення титульного аркуша}
Procedure Titul;
begin
Clrscr;
GoToXY (23,2);
Writeln ('Федеральне агентство з освіти');
GoToXY (22,3);
Writeln ('Тульський державний університет');
GoToXY (28,4);
Writeln ('КАФЕДРА РАДІОЕЛЕКТРОНІКИ');
GoToXY (14,8);
Writeln ('Інтерполяція функції однієї змінної методом Ньютона.');
GoToXY (27,9);
Writeln ('Побудова графіка полінома.');
GoToXY (34,12);
Writeln ('Варіант # 7');
GoToXY (24,17);
Writeln ('Студент гр. 220371 Поляков A. M.');
GoToXY (20,19);
Writeln ('Керівник доцент, K. T. H. Давидов B. B.');
GoToXY (33,23);
Writeln ('Тула, 2008 g.');
readkey;
clrscr;
end;
{Процедура виведення пояснення до програми}
Procedure help;
begin
clrscr;
writeln (Ця програма за значеннями функції f (x) заданої таблично в декількох точках відрізка знаходить її значення в '+
+ Інших точках даного відрізка. Точки з координатами (x i, y i) називаються вузловими точками або вузлами. ');
writeln ('Кількість вузлів в табличній функції має бути дорівнює N = n +1.');
writeln ('Після введення кількості вузлів n (початкова точка (x [0], y [0]) не є вузлом) потрібно вводити вузлові точки +
+ 'Функції. Після цього програма зможе знаходити значення даної функції в інших точках відрізка (x [0] .. x [n ]).');
writeln (Після цього на екран будуть виведений графік полінома. ');
readkey;
clrscr;
end;
{Процедура введення табличних значень}
procedure Enter (var X, y: per);
var
i: integer;
label mp;
begin
mp: for i: = 0 to n do
begin
write ('X [', i, '] ='); readln (x [i]);
write ('y [', i, '] ='); readln (y [i]);
end;
for i: = 0 to n-1 do
if x [i +1]-x [i] <= 0 then
begin
writeln ('Помилка. Повторіть введення.');
goto mp
end;
end;
{Процедура виведення табличних значень}
procedure Print (n: integer; X, y: per); var
i: integer;
begin
for i: = 0 to n do
begin
write (x [i]: 12:6);
end;
writeln;
for i: = 0 to n do
begin
write (y [i]: 12:6);
end;
writeln;
end;
{Функція формули Ньютона}
Function Polinom (n: integer; d: real; X, y: per): real;
var
l: real;
k, i: integer;
p: real;
begin
L: = y [0];
P: = 1;
for k: = 1 to n do begin
P: = P * (DX [k-1]);
for i: = 0 to (nk) do begin
Y [i]: = (y [i +1]-y [i]) / (x [i + k]-x [i]);
end;
L: = L + P * y [0];
end;
POlinom: = l;
end;
{Процедура побудова графіка}
procedure Grafik (n: integer; D: real; X, Y: per; L: real);
const
step = 10;
var
driver, mode: integer;
i: longint;
st: string;
u, k: integer;
begin
writeln ('Введіть крок поділу графіка ");
readln (u);
k: = 26;
driver: = detect;
initgraph (driver, mode ,'');
setcolor (1);
line (320,0,320,480);
line (0,240,640,240);
for i: = 0 to 32 do begin
setlineStyle (1,0,0);
line (0, i * k +6,640, i * k +6);
line (i * k +8,0, i * k +8,480);
end;
setcolor (3);
outtextxy (310,15, 'y');
outtextxy (620,240, 'x');
for i: = 0 to getmaxx div (2 * k) do
begin
str (i * u, st);
outtextxy (getmaxx div 2 + i * (k), getmaxy div 2 + step, st);
str (-i * u, st);
outtextxy (getmaxx div 2-i * k, getmaxy div 2 + step, st);
end;
for i: = 1 to getmaxy div (2 * k) do
begin
str (-i * u, st);
outtextxy (getmaxx div 2 + step, getmaxy div 2 + i * k, st);
str (i * u, st);
outtextxy (getmaxx div 2 + step, getmaxy div 2-i * k, st);
end;
d: =- u * 12;
repeat
d: = d +0.002;
putpixel (round (320 + d * k / u), round (240 + (-POlinom (n, d, x, y)) * k / u), 10);
until d> u * 12;
readkey;
end;
{Основний текст програми}
begin
TextMode (3);
TextBackground (1);
TextColor (14);
Titul;
writeln ('Вивести пояснення до програми?? (Так-1, Ні-0)');
read (f);
if f = 1 then help else
lp: clrscr;
writeln ('Введіть кількість вузлів n (N = n +1)');
read (n);
Enter (X, y);
Print (n, X, y);
repeat
lt: Writeln ('BbBedite X (ot', x [0]: 4:2, 'do', x [n]: 4:2 ,')');
read (d);
if d <x [0] then begin
writeln ('Помилка. x не може бути менше ", x [0]: 4:2);
goto lt; end;
if d> x [n] then begin
writeln ('Помилка. x не може бути більше', x [n]: 4:2);
goto lt; end;
writeln (Polinom (n, d, X, y): 6:3);
writeln ('Знайти значення для іншої точки X? (ДА-1, НІ-0)');
read (f)
until f = 0;
Grafik (n, D, X, Y, l);
readkey;
CloseGraph;
clrscr;
writeln ('Повторити для іншої функції? (Так -1, Ні -0)');
read (f);
if f = 1 then goto lp else end.



Модератор: Пользуйтесь тегом SRC
...
Рейтинг: 0 / 0
помогите перевести с паскаль в с++
    #38976381
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
sweety_vika label Lp, Lt;
...
Writeln (' Тульський державний університет');
GoToXY (28,4);


1) label!!!!
2) А что в Туле преподают информатику на украинском? Или это не та Тула?
...
Рейтинг: 0 / 0
помогите перевести с паскаль в с++
    #38976619
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sweety_vika,

Используется устаревший давным-давно модуль Graph. Т.е. по факту это исходник еще со времен TP 5.5 (>20 лет исходнику) - неужели кто-то будет такую окаменелость ковырять?

P.S. Про стиль молчу. Ваш GOTO заменяется либо REPEAT..UNTIL либо WHILE....
...
Рейтинг: 0 / 0
помогите перевести с паскаль в с++
    #38976720
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sweety_vikaпомогите перевести с паскаль в с++
Триста баксов.
...
Рейтинг: 0 / 0
помогите перевести с паскаль в с++
    #38976725
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аукцион на понижение. Двести баксов.
...
Рейтинг: 0 / 0
помогите перевести с паскаль в с++
    #38976727
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevАукцион на понижение. Двести баксов.
Идите ко мне в субподряд за двести пятьдесят.
...
Рейтинг: 0 / 0
помогите перевести с паскаль в с++
    #38976742
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
В лоб такое переведется разве что в борланд си / си++ древних версий.



DarkMasterВаш GOTO Ну явно же не его :) Какой пример нашел - тот и "переводит".
И в данном случае goto не запутывает код, использование вполне логично.
...
Рейтинг: 0 / 0
помогите перевести с паскаль в с++
    #38976743
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запросто....
Но ведь могут в ценовом сговоре обвинить ((( У Вас в ФАСе крыша есть?
...
Рейтинг: 0 / 0
помогите перевести с паскаль в с++
    #38976747
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNoseВ лоб такое переведется разве что в борланд си / си++ древних версий.
Какие мелкие и незначительные детали. Мы тут с Software'ом бабла напилить собираемся, а Вы со всякой фигней.... Вот из за таких как Вы бизнес в России и загибается (((
...
Рейтинг: 0 / 0
помогите перевести с паскаль в с++
    #38976762
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevНо ведь могут в ценовом сговоре обвинить ((( У Вас в ФАСе крыша есть?
Лучше спросите, есть ли у ФАСа крыша :)
...
Рейтинг: 0 / 0
помогите перевести с паскаль в с++
    #38976819
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNoseВ лоб такое переведется разве что в борланд си / си++ древних версий.

Ага, TC 2.0, BC 3.1... Кстати, далеко не факт, что после перевода оно заработает...

eNoseDarkMasterВаш GOTO Ну явно же не его :) Какой пример нашел - тот и "переводит".
И в данном случае goto не запутывает код, использование вполне логично.

Goto там совсем не к месту - зачем учить плохому?-)
...
Рейтинг: 0 / 0
помогите перевести с паскаль в с++
    #38976820
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtseveNoseВ лоб такое переведется разве что в борланд си / си++ древних версий.
Какие мелкие и незначительные детали. Мы тут с Software'ом бабла напилить собираемся, а Вы со всякой фигней.... Вот из за таких как Вы бизнес в России и загибается (((

Ага, а демпинг значит - это здорово? Да за ТАКОЙ код минимум $500 нужно было просить.
...
Рейтинг: 0 / 0
помогите перевести с паскаль в с++
    #38976868
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterАга, TC 2.0, BC 3.1... Кстати, далеко не факт, что после перевода оно заработает...
баксов за 600 - заработает
...
Рейтинг: 0 / 0
помогите перевести с паскаль в с++
    #38976880
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В этом коде нужно goto заменить на jump.
...
Рейтинг: 0 / 0
помогите перевести с паскаль в с++
    #38976929
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
eNoseИ в данном случае goto не запутывает код, использование вполне логично.

Вот это доставляет.
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
procedure Enter (var X, y: per);
var
i: integer;
label mp;
begin
mp: for i: = 0 to n do
begin
write ('X [', i, '] ='); readln (x [i]);
write ('y [', i, '] ='); readln (y [i]);
end;
for i: = 0 to n-1 do
if x [i +1]-x [i] <= 0 then
begin
writeln ('Помилка. Повторіть введення.');
goto mp
end;
end;



Сначала у тебя запрашивают n*2 чисел, но если введешь хоть одно отрицательное где-нибудь в середине, вводи опять все n.
...
Рейтинг: 0 / 0
помогите перевести с паскаль в с++
    #38977014
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#,

Там доставляет не только это. Можно вообще всякую лабуду ввести с гарантированным вылетом.
...
Рейтинг: 0 / 0
помогите перевести с паскаль в с++
    #38978461
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerLeonid KudryavtsevАукцион на понижение. Двести баксов.
Идите ко мне в субподряд за двести пятьдесят.

автордвести мне, двести тебе, и двести тому французу, пусть летает.
...
Рейтинг: 0 / 0
помогите перевести с паскаль в с++
    #38978886
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Сначала у тебя запрашивают n*2 чисел, но если введешь хоть одно отрицательное где-нибудь в середине, вводи опять все n.
Это называется "воспитательный эффект"
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / помогите перевести с паскаль в с++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]