45741 (Трансляция кода Delphi в код C++Builder), страница 2

2016-08-02СтудИзба

Описание файла

Документ из архива "Трансляция кода Delphi в код C++Builder", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "45741"

Текст 2 страницы из документа "45741"

end;

исключением из правил в OP является приравнивание переменной к константе. В этом случае применяется одиночное равно (=)

Объявление констант

Константы - значения, которые не изменяются . Идентификатор может быть объявлен как константа, и в C ++ и OP. И C ++ и OP константам должны быть назначены значения при их объявлении.

С++

При объявлении константы перед типом данных используется ключевое слово const

const int iMax = 2000;

const double dMaxValue = 1234.75;

В С++ константы также можно определять через директиву препроцессора #define

#define MAXA 1000

но на практике это устарело. Так как компилятор не может выполнить контроля соответствия типов(он не может определить что это ini или double)

OP

Константы, подобно переменным, должны быть объявлены в блоке кода "const" в начале определения процедуры или функции ,определения или в декларации объекта .

function PayBack_d(var dAmount: double): double;

const iMAX = 2000; dMAXVALUE = 1234.75;

var iCount, iLoop, iValToReach: integer;

dMaxLoan, dTotal, dMaxRate: double;

begin

dMaxRate := dMAXVALUE;

{...}

Функции и процедуры

Блоки Кода, которые исполняют определенную задачу в C ++, называются "функциями" независимо от того, действительно ли они возвращают значение. В OP, функции должны возвращать значение, процедуры не возвращают значение. В C ++, все функции должны иметь прототип, объявленный перед применением (так что транслятор может сравнивать обе функции , чтобы гарантировать соответствие). В OP, однако, функция или определение процедуры могут опустить (но это не желательно) параметры и опускать тип возвращения.Декларация функции в C ++ и определений требует фигурных скобок () независимо от того, действительно ли передаются любые параметры. OP функции и процедуры не нуждаются в фигурных скобках () при их объявлении или определении , если не передается никаких параметров,для вызова функции или процедуры.

С++

Декларации

void Foo(double X);

int Foo2();

Реализация

void Foo(double X)

{

int Y=X;

}

int Foo2()

{

return 0;

}

OP

Каждая функция и процедура должны быть идентифицированы включением ключевого слова "function" или "procedure" в начале каждого определения .

function IntSinceLastAddDate_d(var dAvailCash: double): double;

procedure SetNewIntRate; {нет параметров и возвращаемого значения}

...

function LoanC.IntSinceLastAddDate_d(var dAvailCash: double): double;

var dSomething: double;

begin

...

result := dSomething; {глобальная переменная "result" назанчается возвращаемым значением!}

end;

procedure LoanC.SetNewIntRate;

begin

...

end;

И C ++ и OP могут передавать параметры по значению или по ссылке или передавать константы...

C++ по значению ... double IntSinceLastAddDate_d(double dAvailCash);

OP по значению ... function IntSinceLastAddDate_d(dAvailCash: double): double;

C++ по ссылке ... double IntSinceLastAddDate_d(double &dAvailCash);

OP по ссылке ... function IntSinceLastAddDate_d(var dAvailCash: double): double;

C++ константы... double IntSinceLastAddDate_d(const double dAvailCash);

OP константы... function IntSinceLastAddDate_d(const dAvailCash: double): double;

Конструкция with ... do

Вообще, C ++ более компактен чем OP. Но, C ++ не имеет инструкцию with ... do с... Это неудачно, потому что это действительно - большая особенность OP. C ++ код будет более подробным по сравнению с OP.

В C ++, когда Вы должны обратиться к членам данных, вы заканчиваете оператор подобно этому...

poC.oStock.aoTradesLast130Days[0].lVol = 0;

poC.oStock.aoTradesLast130Days[0].dHigh = 0;

poC.oStock.aoTradesLast130Days[0].dLow = 0;

poC.oStock.aoTradesLast130Days[0].dClose = 0;

Но в OP, Вы можете делать это гораздо менее читаемым, делая так...

with poC.oStock.aoTradesLast130Days[0] do begin

lVol := 0;

dHigh := 0;

dLow := 0;

dClose := 0;

end;

В принципе в данный момент это выглядит довольно коротко и ясно по стравнению с С++. Но в случае многочисленных вложеных операторов порой возникает путаница что с чем взаимодействует. Хотя... как говорят программисты, которые пишут на OP, им гораздо легче ориентироваться именно в таком типе записи (OP) чем в типе С++.

Комментарии

C++ поддерживает 2 вида комментариев:

Однострочный комментарий

//Это комментарий

И многострочный комментарий

/*

А я многострочный комментарий, хотя и нахожусь всего на одной строке. Зато занял места на 3 строки.

*/

OP в отличие от С++ поддерживает 3 вида комментариев. Это связано с тем, что Borland при написании Delphi внес в язык Pascal очень много элементов из C++.В часности добавился однострочный комментарий как в С++

Однострочный комментарий

//Это комментарий

И многострочный комментарий

(*

А я многострочный комментарий, хотя и нахожусь всего на одной строке. Зато занял места на 3 строки.

*)

{

И я многострочный комментарий, но работаю только в OP

}

Управляющие конструкции (if, else, switch...)

Существует пять структур управления на обоих языках, и они весьма подобны. Этот обзор займет много места .

1. Конструкция if ... else

C++

if() // в скобках единственное выражение

{

...

}

else if()

{

...

}

else

{

...

}

OP

if then

begin

{единственное выражение не должно находиться в скобках}

...

end

else if <логическое выражение> then

begin

....

end

else

begin

...

end; {только самый последний "end" в выражении терминируется точкой с запятой}

2. Конструкция switch/case

C++

switch()

{

case iX: ... break;

case iY: ... break;

default: ...

}

OP

case of

{здесь "begin" не нужен}

iX:

begin

...

end; {точка с запятой после каждого "end";}

iY:

begin

...

end;

else {двоеточие не требуется}

begin

...

end;

end;{вот здесь "end;" }

3. Цикл for

C++

for(iCount = 0; iCount <= 10; iCount++)

{

// инкреметн нужен для цикла, iCount++,может быть увеличен

// на любое значние не только на 1

...

break; // для выхода из цикла

continue; // для продолжения цикла

...

}

OP

for iCount := 1 to 10 do

begin

... {цикл for может увеличивать счетчик только на 1}

break; { для выхода из цикла }

continue; { для продолжения цикла }

...

end ;

Есть одно различие между выполнением "break" и "continue" в языках. В C ++, break, и continue - ключевые слова - часть языка;

В OP это библиотечные процедуры.Хотя используются также.

4. Цикл while

C++

while()

{

// выражение проверяется в самом начале цикла,так что код может никогда не использоваться

// если выражение вернет false

...

break; // для выхода из цикла

continue; // для продолжения цикла

...

}

OP

while do

begin

{ выражение проверяется в самом начале цикла,так что код может никогда не использоваться

если выражение вернет false }

...

break; { для выхода из цикла }

continue; { для продолжения цикла }

...

end;

5. Цикл do ... while

5) The do/repeat ... loop construct:

C++

do

{

// выполняется некий код, затем проверяется выражение. В этом случае код выполнится хотябы один раз

...

break; // для выхода из цикла

continue; // для продолжения цикла

...

}while();

OP

repeat

{ eвыполняется некий код, затем проверяется выражение. В этом случае код выполнится хотябы один раз

заметьте что в цикле нет ключевых слов begin ... end }

...

break; { для выхода из цикла }

continue; { для продолжения цикла }

...

until ;

Список литературы

Для подготовки данной работы были использованы материалы с сайта http://www.realcoding.net/

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5209
Авторов
на СтудИзбе
430
Средний доход
с одного платного файла
Обучение Подробнее