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

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

Войти
Регистрация
Восстановить пароль
 
s2df
0 / 0 / 0
Регистрация: 29.03.2013
Сообщений: 5
#1

Перевод из языка Паскаль в язык С++ - C++

24.11.2013, 19:23. Просмотров 279. Ответов 0
Метки нет (Все метки)

Здравствуйте,вот есть программа, можете её перевести на язык С++.Заранее спасибо.
CONST Max_points = 50;
Max_Arrows = 100;

TYPE Point_array = ARRAY [0..Max_points-1] OF BOOLEAN;

VAR input_file,output_file : text;
current_arrow,current_point,number_of_points,number_of_arrows,
number_unavoidable_points,number_splitting_points : INTEGER;
Arrows : ARRAY [0..Max_Arrows-1,0..1] OF INTEGER;
unavoidable,splitting : Point_array;

PROCEDURE initialisation;
BEGIN
number_of_points:=1;
number_of_arrows:=0;
number_unavoidable_points:=0;
number_splitting_points:=0;
FOR current_point:=0 TO Max_points-1 DO
BEGIN
splitting [current_point]:=FALSE ;
unavoidable [current_point]:=FALSE
END;
END;

PROCEDURE read_input;
VAR num : INTEGER;
BEGIN
read(num);
WHILE NOT (num = -1) DO
BEGIN
IF num = -2
THEN INC (number_of_points)
ELSE BEGIN
Arrows [number_of_arrows][0] := number_of_points-1;
Arrows [number_of_arrows][1] := num;
INC (number_of_arrows)
END;
read(num)
END;
END;

PROCEDURE write_output;
BEGIN
Write(number_unavoidable_points);
FOR current_point:=1 TO number_of_points-2 DO
IF unavoidable[current_point]
THEN write(' ',current_point);
Writeln;
Write (number_splitting_points);
FOR current_point:=1 TO number_of_points-2 DO
IF splitting[current_point]
THEN write(' ',current_point);
END;

PROCEDURE finalisation;
BEGIN
END;

PROCEDURE compute_results;

VAR reachable : Point_array;

PROCEDURE find_reachable (current_point:INTEGER);
VAR point:INTEGER;
ready:BOOLEAN;
BEGIN
FOR point:=1 TO number_of_points - 1 DO
reachable[point]:=FALSE;
reachable[0]:=TRUE;
ready:=FALSE;
WHILE NOT ready DO
BEGIN ready:=TRUE;
FOR current_arrow:=0 TO number_of_arrows-1 DO
IF reachable [Arrows[current_arrow,0]] AND
NOT reachable [Arrows[current_arrow,1]] AND
(Arrows[current_arrow,1]<>current_point)
THEN BEGIN reachable[Arrows[current_arrow,1]]:=TRUE;
ready:=FALSE
END;
END
END;

FUNCTION is_splitting:BOOLEAN;
VAR current_arrow:INTEGER;
OK:BOOLEAN;
BEGIN
current_arrow:=0;
OK:=TRUE;
WHILE (current_arrow<number_of_arrows) AND OK DO
BEGIN
OK:=reachable [Arrows[current_arrow,0]] OR
NOT (reachable [Arrows [current_arrow,1]]);
INC(current_arrow)
END;
is_splitting:=OK
END;

BEGIN
FOR current_point:=1 TO number_of_points-2 DO
BEGIN
find_reachable (current_point);
IF NOT reachable[number_of_points-1]
THEN BEGIN
unavoidable [current_point] := TRUE;
INC (number_unavoidable_points);
IF is_splitting
THEN BEGIN
splitting[current_point]:=TRUE;
INC (number_splitting_points)
END
END
END;
END;

BEGIN
initialisation;
read_input;
compute_results;
write_output;
finalisation;
END.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2013, 19:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод из языка Паскаль в язык С++ (C++):

Перевести программу с языка Паскаль в язык С++ - C++
Имееться задача на Pascale: {Метод Ньютона решения нелинейного уравнения} program Newton; uses crt; {модуль управления экраном} ...

Переписать символы с входящего рядка в выходящий, меняя операторы языка паскаль на операторы языка С++ := на =, = на ==, # на != - C++
Переписать символы с входящего рядка в выходящий, меняя операторы языка паскаль на операторы языка С++ := на =, = на ==, # на != Спасибо.

Перевести код с языка Pascal на язык C++ - C++
Необходимо переписать данный код на C++. const eps = 1e-4; function pow(x : Real; k : Integer) : Real; var r : Real; begin ...

Перевести код с языка Pascal на язык С++ - C++
var i,n,a:integer; rez:integer; begin Write('Enter digit A = ');readln(a); Write('Enter count = ');readln(n); rez:=1; ...

Не получается переложить код с языка C# на язык С - C++
Подскажите пожалуйста, как переложить этот код на язык С using System; using System.Collections.Generic; using System.Linq; using...

Массив с языка паскаль на C++ - C++
Нужно перевести n-массив на С++ (программа меняет местами верхнюю строку, до середины, над главной диагональю и нижнюю под главной, после...

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

Перевести программу с языка Паскаль на С++ - C++
Требуется перевести программу задания С4 из ЕГЭ 2012 с языка Паскаль\Бейсик на язык С++. Задание представлено на странице 23 под пунктом...

Транслятор из языка Паскаль в СИ (текст программы) возможен ли - C++
На фрилансе Человек поинтересовался: &quot;Здравствуйте, нужно написать конвертор на языке Си для перевода программ на языке Паскаль в текст...

перевод из одного языка в другой - C++
Здравствуйте всем!помогите пожалуйста из С++ перевести на обычный С,заранее всем спасибо! 1)#include &lt;iostream&gt; #include...

Перевод кода с языка Pascal на C++ - C++
Доброго времени суток всем. Дабы не плодить темы, также отпишусь здесь: необходимо перевести код паскаля на С, С++ ил С#, любой из них. В...


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

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

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