[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. Soherox

    Soherox Member

    Joined:
    17 Feb 2010
    Messages:
    45
    Likes Received:
    16
    Reputations:
    0
  2. skagen

    skagen Member

    Joined:
    8 Jan 2010
    Messages:
    122
    Likes Received:
    13
    Reputations:
    0
    подскажите пожалуйста программку для просмотра получившихся приложений для мобильных телефонов(созданные приложения имеют формат jar и jad).спасибо
     
  3. emillord

    emillord Elder - Старейшина

    Joined:
    20 Jan 2008
    Messages:
    257
    Likes Received:
    444
    Reputations:
    255
    Лови
    http://muzorka.ru/index.php?showtopic=16060
     
  4. skagen

    skagen Member

    Joined:
    8 Jan 2010
    Messages:
    122
    Likes Received:
    13
    Reputations:
    0
    спасибо,выручил
     
  5. e[X]theta[M]ine

    Joined:
    21 Dec 2009
    Messages:
    0
    Likes Received:
    18
    Reputations:
    16
    Парни :) с этой задачей у меня конкретный ступор :)
    Вы можете вспомнить хоть одного своего знакомого до двадцатилетнего возраста, который в детстве не играл в компьютерные игры? Если да, то может быть вы и сами не знакомы с этим развлечением? Впрочем, трудностей при решении этой задачи это создать не должно.

    Во многих старых играх с двумерной графикой можно столкнуться с подобной ситуацией. Какой-нибудь герой прыгает по платформам (или островкам), которые висят в воздухе. Он должен перебраться от одного края экрана до другого. При этом при прыжке с одной платформы на соседнюю, у героя уходит |y2-y1| единиц энергии, где y1 и y2 – высоты, на которых расположены эти платформы. Кроме того, у героя есть суперприем, который позволяет перескочить через платформу, но на это затрачивается 3*|y3-y1| единиц энергии. Конечно же, энергию следует расходовать максимально экономно.

    Предположим, что вам известны координаты всех платформ в порядке от левого края до правого. Сможете ли вы найти, какое минимальное количество энергии потребуется герою, чтобы добраться с первой платформы до последней?
    Входные данные

    В первой строке входного файла INPUT.TXT записано количество платформ n (1 ≤ n ≤ 30000). Вторая строка содержит n натуральных чисел, не превосходящих 30000 – высоты, на которых располагаются платформы.
    Выходные данные

    В выходной файл OUTPUT.TXT запишите единственное число – минимальное количество энергии, которую должен потратить игрок на преодоление платформ (конечно же в предположении, что cheat-коды использовать нельзя).
     
  6. n1ghtstalker

    n1ghtstalker Elder - Старейшина

    Joined:
    28 Sep 2008
    Messages:
    59
    Likes Received:
    3
    Reputations:
    0
    ну по алгоритму примерно скажу :
    рассчитываем разность между y2-y1 и y3-y1 , если
    y2-y1 > 3*(y3-y1) то выбираем этот путь в инном случае наоборот.

    ну и собственно в переменную суммируются результаты всех минимальных выбранных путей.
     
    #5546 n1ghtstalker, 21 Mar 2010
    Last edited: 21 Mar 2010
  7. Soherox

    Soherox Member

    Joined:
    17 Feb 2010
    Messages:
    45
    Likes Received:
    16
    Reputations:
    0
    Если высоты будут равны (y3 = y1), то затрачивается значит 0 энергии? Если да, то n1ghtstalker, Ваш алгоритм не работает, в этом случае надо динамикой решать
     
    #5547 Soherox, 21 Mar 2010
    Last edited: 21 Mar 2010
  8. n1ghtstalker

    n1ghtstalker Elder - Старейшина

    Joined:
    28 Sep 2008
    Messages:
    59
    Likes Received:
    3
    Reputations:
    0
    дело всё в том что в условии задачи оговорено только перемещение по y. но никак не по x.
    если бы y- было осью абцисс , то в любом случае ++ , так что мой алгоритм относительно не верен.
    я лишь следую условию задачи.
     
  9. EndLeSSDre@M

    EndLeSSDre@M Banned

    Joined:
    18 Jul 2009
    Messages:
    142
    Likes Received:
    99
    Reputations:
    -5
    А если подумать... ведь действительно если высоты у3 и у1 равны... то ведь тогда энергии 0 получается?!?!?? но так n1ghtstalker относительно прав...вычисляем разницу и сравниваем
     
  10. Soherox

    Soherox Member

    Joined:
    17 Feb 2010
    Messages:
    45
    Likes Received:
    16
    Reputations:
    0
    Соглашусь с Вами друзья, ждем подробностей от автора, но если что, вот код по алгоритму n1ghtstalker


    Code:
    {$APPTYPE CONSOLE}
    const
      ch = 30000;
    var
      i, j, n, rez: integer;
      a: array [1..ch] of integer;
    
    begin
      reset(input, 'input.txt');
      rewrite(output, 'output.txt');
      readln(n);
      rez:=0;
      for i:=1 to n do read(a[i]);
      i:=1;
      while i<n do
        begin
          if n - i >= 3 then
            begin
              if abs(a[i]-a[i+1])+abs(a[i+1]-a[i+2]) < 3*abs(a[i+2] - a[i]) then
                begin
                  rez:=rez + abs(a[i]-a[i+1]);
                  inc(i);
                end
             else
               begin
                 rez:=rez + 3*abs(a[i+2] - a[i]);
                 inc(i, 2);
               end;
            end
          else
            begin
              rez:=rez + abs(a[i]-a[i+1]);
              inc(i);
            end;
        end;
      writeln(rez);
      close(input);
      close(output);
    end.
    Если все же y3 = y1, и энергия в этом случае = 0, то код будет валится

    P.S. Код писался на Delphi, если нужно на паскаль, то удаляем {$APPTYPE CONSOLE}, и вместо
    Code:
      reset(input, 'input.txt');
      rewrite(output, 'output.txt');
    это

    Code:
      assign(input, 'input.txt');
      assign(output, 'output.txt');
      reset(input);
      rewrite(output);
     
    #5550 Soherox, 21 Mar 2010
    Last edited: 21 Mar 2010
  11. akimov_aleks

    akimov_aleks New Member

    Joined:
    3 May 2009
    Messages:
    39
    Likes Received:
    1
    Reputations:
    0
    подскажите плиз как нати рабочую прокси.
    есть код для проверки переменная с переберает по списку если рабочая прокся то идем дальше а если нет как вернуть цикл чтоб начил дальше переберать...?
    Code:
    {Начало проверки прокси}
    
    begin
    // грузим фаил с проксями
      ProxyList:=tstringlist.Create;
      ProxyList.LoadFromFile('Proxy.txt');
      params:=TStringList.Create;
      Presponseres:=TStringList.Create;
    
    // получаем проксю делим на ip и port ИКАК СЮДА ВЕРНУТЬСЯ
      Proxy:=ProxyList.Strings[0]; 
      ip:=getip(Proxy);
      por:=getport(Proxy);
      port:=StrToInt(por);
    
    // тут и так понятно
      IdHTTP1.ProxyParams.ProxyServer:=ip;
      IdHTTP1.ProxyParams.ProxyPort:=port;
    
    // начинаем проверку
        try
        IdHTTP1.Get('http://ya.ru');
        except
    // вот тут если прокся мертвая  удаляем эту строку , и как вернуться выше
        end;
    
    end;
    {конец проверки прокси}
     
  12. Dosia

    Dosia Member

    Joined:
    5 Jun 2009
    Messages:
    118
    Likes Received:
    81
    Reputations:
    6
    Code:
    var
    intA:integer;
    ...
    {Начало проверки прокси}
    
    begin
    // грузим фаил с проксями
      ProxyList:=tstringlist.Create;
      ProxyList.LoadFromFile('Proxy.txt');
      params:=TStringList.Create;
      Presponseres:=TStringList.Create;
    
    // получаем проксю делим на ip и port ИКАК СЮДА ВЕРНУТЬСЯ
    [B]  for intA:=0 to ProxyList.Count - 1 do begin[/B]
      Proxy:=ProxyList.Strings[[B]intA[/B]]; 
      ip:=getip(Proxy);
      por:=getport(Proxy);
      port:=StrToInt(por);
    
    // тут и так понятно
      IdHTTP1.ProxyParams.ProxyServer:=ip;
      IdHTTP1.ProxyParams.ProxyPort:=port;
    
    // начинаем проверку
        try
        IdHTTP1.Get('http://ya.ru');
        except
    // вот тут если прокся мертвая  удаляем эту строку , и как вернуться выше
        end;
     [B]   end;[/B]
    end;
    {конец проверки прокси}
    
     
  13. ZnikiR

    ZnikiR Member

    Joined:
    14 Jan 2009
    Messages:
    117
    Likes Received:
    21
    Reputations:
    -5
    Здравствуйте.
    В общем только учу Delphi.
    Возникли несколько проблем.
    1)Посоветуйте хороший понятный учебник с нуля по Делфи
    2)Короче нужна программа которая при запуске проверяет в файле наличия строк и если ничего не находит то записывает дынные,которые заданны.
     
    #5553 ZnikiR, 23 Mar 2010
    Last edited: 23 Mar 2010
  14. #Wolf#

    #Wolf# Elder - Старейшина

    Joined:
    26 Mar 2008
    Messages:
    375
    Likes Received:
    166
    Reputations:
    16
    pascal
    [​IMG]
    выяснить принадлежит ли точка с вбиваемыми с клавиатуры координатами заданной области
     
  15. EndLeSSDre@M

    EndLeSSDre@M Banned

    Joined:
    18 Jul 2009
    Messages:
    142
    Likes Received:
    99
    Reputations:
    -5
    что то в этом духе:

    PHP:
    var x,y:real;
    begin
    readln
    (x,y);
    if 
    y<=cos(xthen do
    begin
    if (y<=1) and (y>=0) and (x>=-1.57) and (x<=1.57then write 'Принадлежит'
    else write 'Не принадлежит'
    end;
    if 
    y>=cos(xthen do
    begin
    if (y<=0) and (y>=-1) and (x>=1.57) and (x<=3.14then write 'Принадлежит'
    else write 'Не принадлежит'
    end;
    во переделал
     
    #5555 EndLeSSDre@M, 23 Mar 2010
    Last edited: 23 Mar 2010
  16. EndLeSSDre@M

    EndLeSSDre@M Banned

    Joined:
    18 Jul 2009
    Messages:
    142
    Likes Received:
    99
    Reputations:
    -5
    PHP:
    var input:textfile;
          
    n:integer;
      
    begin
      Assign
    (input,'input.txt');
      
    reset(input);
      while 
    not EOF(input) do
      
    begin
      readln
    (input,n);
      
    end;
    if 
    n=' ' then n=
    вот по идее то что тебе нужно! проверяет на существование данных, если нет, то вбиваешь свои данные, если есть то берет их из файла.
     
    #5556 EndLeSSDre@M, 23 Mar 2010
    Last edited: 23 Mar 2010
    1 person likes this.
  17. #Wolf#

    #Wolf# Elder - Старейшина

    Joined:
    26 Mar 2008
    Messages:
    375
    Likes Received:
    166
    Reputations:
    16
    спасибо, только откуда числа "1.57" по модулю и "3,14"? о_О
     
  18. EndLeSSDre@M

    EndLeSSDre@M Banned

    Joined:
    18 Jul 2009
    Messages:
    142
    Likes Received:
    99
    Reputations:
    -5
    ну просто по рисунку я не догнал точно что за числа... вот и предположил что это пи/2 и пи

    там просто разделил на два интервала...где y>=0 и y<=0
     
  19. skagen

    skagen Member

    Joined:
    8 Jan 2010
    Messages:
    122
    Likes Received:
    13
    Reputations:
    0
    помогите найти пожалуйста самый большой учебник MidletPascal буду сидеть учить :D
     
  20. #Wolf#

    #Wolf# Elder - Старейшина

    Joined:
    26 Mar 2008
    Messages:
    375
    Likes Received:
    166
    Reputations:
    16
    а) и еще ты использовал два раза косинус)
    и можно маленькую задачку напоследок?)
    PHP:
    uses crt;
    var 
    a:array[1..10]of integer;
    i,j:integer;
    begin
    randomize
    ;
    for 
    i:=1 to 10 do begin
    a
    [i]:=random(10);write(a[i],'');
    end;
    for 
    i:=1 to 10 do begin
    if a[i+1]> a[ithen
    inc
    (j);
    end;
    if 
    a[10]<>0 then inc(j);
    writeln;writeln(j);
    readln;
    end.
    сколько подряд идущих элементов образуют возр последовательность...вроде работает но не правильно..
     
Thread Status:
Not open for further replies.