[ 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. zer0ska

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

    Joined:
    5 Dec 2007
    Messages:
    103
    Likes Received:
    9
    Reputations:
    0
    Уважаемые мемберы может ктонибудь показать на примере как скачать и выполнить файл использую для скачивания только winsocks ??
    у меня что то не выходит =((
    Code:
      WSAStartup(makeword(1,1),info);
      sHwnd:=Socket(AF_INET, SOCK_STREAM, 0);
      sin.sin_family:=AF_INET;
      sin.sin_port:=htons(dport);
      sin.sin_addr.S_addr:=inet_addr(dhost);
      connect(sHwnd, sin, sizeof(sin));
    
      sbuff1 := '';
      sbuff1 := 'GET ' + dpath + '? HTTP/1.1'+ #13#10 +
        'Host: ' + dhost + #13#10#13#10;
    
    
        CopyMemory(@sBuff,pchar(sBuff1),length(sBuff1));
        send(sHwnd, sBuff, Length(sBuff), 0);
        recv(sHwnd, rBuff, Length(rBuff), 0);
        fileText := copy(rBuff, pos(#13#10#13#10, rBuff)+4, length(rBuff)-pos(#13#10#13#10, rBuff));
        SaveFile(SavePath, fileText);
     
  2. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    zer0ska, вот слушай, когда сервер тебе отвечает он тебе посылает свои хеддеры в которых указан размер данных (в символах)(Content-Length), вот его считываешь и потом постепенно принимаешь символы от сервера (т.е. ответ от сервера)(while цикл тебе поможет)
    Это все не сложно делается!
     
  3. zer0ska

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

    Joined:
    5 Dec 2007
    Messages:
    103
    Likes Received:
    9
    Reputations:
    0
    это я понел но реализовать чстно говоря не знаю как =)
    с while for знаком но не выходит что то =((
     
  4. MaTpOc

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

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    Помогите написать программу подсчета количества элементов, попадающих между номером минимального элемента и максимального элемента в массиве из 30 чисел.
     
  5. [stranger]

    [stranger] Member

    Joined:
    2 Feb 2010
    Messages:
    167
    Likes Received:
    29
    Reputations:
    4
    отнимай одно от другого по модулю..
     
  6. EndLeSSDre@M

    EndLeSSDre@M Banned

    Joined:
    18 Jul 2009
    Messages:
    142
    Likes Received:
    99
    Reputations:
    -5
    MaTpOc вот точный код программы! сорри что сразу норм не написал... спасибо Soherox

    PHP:
    const
      
    30;
    var
      
    a: array [1..nof integer;
      
    iimaximinmaxmininteger;

    begin
    writeln
    ('Zapolnite massive'); 
    for 
    i:=1 to n do 
     
    begin 
      write
    ('a[',i,']='); 
      
    readln(a[i]); 
     
    end
    writeln;   
        
    max:=a[1];
        
    min:=a[1];
      for 
    i:=1 to n do
        
    begin
          
    if a[i] > max then 
            begin
              imax
    :=i;
              
    max:=a[i];
            
    end;
          if 
    a[i] < min then 
            begin
              imin
    :=i;
              
    min:=a[i];
            
    end;
        
    end;
       if 
    imin imax then write('0')
      else 
    write(abs(imin imax) - 1);
      
    readln;
    end.
     
    #5486 EndLeSSDre@M, 17 Mar 2010
    Last edited: 17 Mar 2010
  7. fenixelite

    fenixelite Banned

    Joined:
    7 Feb 2010
    Messages:
    294
    Likes Received:
    56
    Reputations:
    6
    Блин не успел свое запостить ((
    EndLeSSDre@M, а зачем два раза массив заполнять, в 1 и во 2 цикле?
     
    1 person likes this.
  8. MaTpOc

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

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    не выводит кол-во
     
  9. Soherox

    Soherox Member

    Joined:
    17 Feb 2010
    Messages:
    45
    Likes Received:
    16
    Reputations:
    0
    Так код уже выкладывался страница 578, #5772 :D
     
    #5489 Soherox, 17 Mar 2010
    Last edited: 17 Mar 2010
  10. fenixelite

    fenixelite Banned

    Joined:
    7 Feb 2010
    Messages:
    294
    Likes Received:
    56
    Reputations:
    6
    Поправь abs(imax-imin)-1
     
    1 person likes this.
  11. Soherox

    Soherox Member

    Joined:
    17 Feb 2010
    Messages:
    45
    Likes Received:
    16
    Reputations:
    0
    А разница? abs(imax-imin) = abs(imin-imax), abs это модуль :p
     
  12. MaTpOc

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

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    не работает (
    ошибка там
     
  13. EndLeSSDre@M

    EndLeSSDre@M Banned

    Joined:
    18 Jul 2009
    Messages:
    142
    Likes Received:
    99
    Reputations:
    -5
    вот кароче так попробуй

    PHP:
    const 
      
    30
    var 
      
    a: array [1..nof integer
      
    iimaximinmaxmininteger

    begin 
    writeln
    ('Zapolnite massive');  
    for 
    i:=1 to n do  
     
    begin  
      write
    ('a[',i,']=');  
      
    readln(a[i]);  
     
    end;  
    writeln;    
        
    max:=a[1]; 
        
    min:=a[1]; 
      for 
    i:=2 to n do 
        
    begin 
          
    if a[i] > max then  
            begin 
              imax
    :=i
              
    max:=a[i]; 
            
    end
          if 
    a[i] < min then  
            begin 
              imin
    :=i
              
    min:=a[i]; 
            
    end
        
    end
    n=abs(imin imax) - 1
       
    if n=0 then writeln('0'
      else 
    writeln(n); 
      
    readln
    end.  
     
    #5493 EndLeSSDre@M, 17 Mar 2010
    Last edited: 17 Mar 2010
  14. Soherox

    Soherox Member

    Joined:
    17 Feb 2010
    Messages:
    45
    Likes Received:
    16
    Reputations:
    0
    Приношу извинения, писал на Delphi, поэтому ошибка, все исправил для Pascal

    Code:
    const
      n = 30;
    var
      a: array [1..n] of integer;
      i, imax, imin, max, min: longint;
    begin
      min:=maxlongint;
      max:=-min;
      for i:=1 to n do
        begin
          read(a[i]); 
          if a[i] > max then
            begin
              imax:=i;
              max:=a[i];
            end;
          if a[i] < min then
            begin
              imin:=i;
              min:=a[i];
            end;
        end;
       if imin = imax then write('0')
      else write(abs(imin - imax) - 1);
      readln;
    end.
     
    1 person likes this.
  15. fenixelite

    fenixelite Banned

    Joined:
    7 Feb 2010
    Messages:
    294
    Likes Received:
    56
    Reputations:
    6
    Soherox, блин и как я не заметил, что n это константа??? :(
     
  16. MaTpOc

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

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    неизвестный maxlongint;
     
  17. fenixelite

    fenixelite Banned

    Joined:
    7 Feb 2010
    Messages:
    294
    Likes Received:
    56
    Reputations:
    6
    На исправь longint на integer. Там все равно числа позволяют
     
  18. Soherox

    Soherox Member

    Joined:
    17 Feb 2010
    Messages:
    45
    Likes Received:
    16
    Reputations:
    0
    MaTpOc...а теперь, вопрос, на каком Паскале Вы кодите? =) В Turbo Pascal ошибки не должно быть
     
    1 person likes this.
  19. MaTpOc

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

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    Code:
    const
      n = 5;
    var
      a: array [1..n] of integer;
      i, imax, imin, max, min: integer;
    begin
      min:=max;
      max:=-min;
      for i:=1 to n do
        begin
          read(a[i]);
          if a[i] > max then
            begin
              imax:=i;
              max:=a[i];
            end;
          if a[i] < min then
            begin
              imin:=i;
              min:=a[i];
            end;
        end;
       if imin = imax then write('0')
      else write(abs(imin - imax) - 1);
      readln;
    end.
    я так поправил, вроде все ок, но выдает из 5элементов что 4 находятся между макс и мин...
     
  20. MaTpOc

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

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    PascalABC, пока нашел только отличие в названии, тут название можно и не делать...
     
Thread Status:
Not open for further replies.