IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Перевод кодов программ c Turbo Pascal на DElPHI 7, Возникают трудности
сообщение
Сообщение #1


Бывалый
****

Группа: Пользователи
Сообщений: 318
Пол: Мужской

Репутация: -  0  +


Условие задачи
1.Новый интернет-провайдер предоставляет услугу доступа в интернет с посекундной тарификацией . Для подключения нужно купить карточку позволяющую пользоваться интернетом определенное количество секунд .
при этом компания предает карточки стоимостью 1,2,4,..., 2 в 30-ой степени рублей на а0, а2,..... а30 секунд соответственно.


Родители разрешили Пете пользоваться интернетом М секунд . Определите за какую наименьшую сумму он сможет купить карточки , которые позволяют ему пользоваться интернетом не менее М секунд. Естественно, что Петя может купить как карточки различного достоинтства, так и несколько карточек одного достоинтства.
ПОЯСНЕНИЕ
Если ai<2•ai-1, то можно вместо карточки стоимотью 2i купить 2 карточки меньшей стоимости. Заменяем ai лучшим вариантом.
Затем покупаем карточки на нужное время, на каждом шаге выбирая карточку (набор карточек) с большим временем, но не превосходящим времени, которое осталось набрать.
Посмотреть решение


Как перевести этот код с паскаля в делфи?
var

a:array[0..30] of int64;
p,m:int64;
i:integer;
begin
read(m);
for i:=0 to 30 do
read(a[i]);
for i:=1 to 30 do
if a[i-1]*2>a[i] then
a[i]:=a[i-1]*2;
p:=0;
for i:=30 downto 0 do
if m>=a[i] then
begin
m:=m-a[i];
p:=p+(1 shl i);
end;
if m>0 then inc(p);
writeln(p);
end.
Я его перевел посмотрите правильно ли ?
var

a:array[0..30] of int64;
p,m:int64;
i:integer;
Procedure TForm1.Button1Click(Sender;Tobject)
begin
m:=strtoint(Edit1.Text);
for i:=0 to 30 do
a[i]:=strtoint(StringGrid.Cells[i-1,0]; label1.caption:=' ';
for i:=1 to 30 do
if a[i-1]*2>a[i] then
a[i]:=a[i-1]*2;
p:=0;
for i:=30 downto 0 do
if m>=a[i] then
begin
m:=m-a[i];
p:=p+(1 shl i); <<<<<<<<<<========= что за shl i ????????????
end;
if m>0 then label1.Caption:=inttostr(p) + 'наименьшая сумма';

end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






[quote name='dron4ik' date='20.06.2008 20:32' post='124655']
Условие задачи
1.Новый интернет-провайдер предоставляет услугу доступа в интернет с посекундной тарификацией . Для подключения нужно купить карточку позволяющую пользоваться интернетом определенное количество секунд .
при этом компания предает карточки стоимостью 1,2,4,..., 2 в 30-ой степени рублей на а0, а2,..... а30 секунд соответственно.
Родители разрешили Пете пользоваться интернетом М секунд . Определите за какую наименьшую сумму он сможет купить карточки , которые позволяют ему пользоваться интернетом не менее М секунд. Естественно, что Петя может купить как карточки различного достоинтства, так и несколько карточек одного достоинтства.
ПОЯСНЕНИЕ
Если ai<2•ai-1, то можно вместо карточки стоимотью 2i купить 2 карточки меньшей стоимости. Заменяем ai лучшим вариантом.
Затем покупаем карточки на нужное время, на каждом шаге выбирая карточку (набор карточек) с большим временем, но не превосходящим времени, которое осталось набрать.
Посмотреть решение
Как перевести этот код с паскаля в делфи?
var

a:array[0..30] of int64;
p,m:int64;
i:integer;
begin
read(m);
for i:=0 to 30 do
read(a[i]);
for i:=1 to 30 do
if a[i-1]*2>a[i] then
a[i]:=a[i-1]*2;
p:=0;
for i:=30 downto 0 do
if m>=a[i] then
begin
m:=m-a[i];
p:=p+(1 shl i);
end;
if m>0 then inc(p);
writeln(p);
end.
Я его перевел посмотрите правильно ли ?
var

a:array[0..30] of int64;
p,m:int64;
i:integer;
Procedure TForm1.Button1Click(Sender;Tobject)
begin
m:=strtoint(Edit1.Text);
for i:=0 to 30 do
a[i]:=strtoint(StringGrid.Cells[i-1,0]; label1.caption:=' ';
for i:=1 to 30 do
if a[i-1]*2>a[i] then
a[i]:=a[i-1]*2;
p:=0;
for i:=30 downto 0 do
if m>=a[i] then
begin
m:=m-a[i];
p:=p+(1 shl i); <<<<<<<<<<========= что за shl i ????????????
end;
if m>0 then label1.Caption:=inttostr(p) + 'наименьшая сумма';

end.

[/quo

помогите мне перевес


uses crt;
var arr:array[1..50,1..50] of real;
b:array[1..50] of integer;
i,j,n:integer;
a:boolean;
begin
write('Введите порядок матрицы: ');
readln(n);
for i:=1 to n do
begin
for j:=1 to n do
begin
arr[i,j]:=(random(20)-10) / 1.13;
write(arr[i,j]2.gif2,' ');
end;
writeln();
end;
a:=false;
for i:=1 to n do
begin
for j:=1 to n do
if arr[i,j]<0 then a:=true;
if a=true then b[i]:=1
else b[i]:=0;
a:=false;
end;
for i:=1 to n do
write(b[i],' ');
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 155
Пол: Мужской

Репутация: -  0  +


Why not settling on games that is fun and at the same time your earning. Well it'll make suspense because the game is well but dude just try it and it gave me hope while pandemic is real rn. How to Avoid Scams in Online Casino
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 18:23
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name