[ 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. cremator (c)

    cremator (c) Elder - Старейшина

    Joined:
    20 Jun 2008
    Messages:
    258
    Likes Received:
    72
    Reputations:
    0
    Code:
      
    program Project2;
    
    {$APPTYPE CONSOLE}
    
    uses
      SysUtils;
    
    var MyArray:array [1..4,1..4] of integer; i,j,x:integer;
    begin
    for i:=1 to 4 do
    for j:=1 to 4 do
    begin
    readln(x);
    MyArray[i,j]:=x;
    end;
    end.
    
    Я так понял?//

    PS не знал что в 1м классе уже паскаль проходят/// х(
     
  2. KIR@PRO

    KIR@PRO from Exception

    Joined:
    26 Dec 2007
    Messages:
    826
    Likes Received:
    291
    Reputations:
    359

    спс за ссылку но то что ты написал понять трудно...
    мог бы просто скопировать из статьи:

    кратко смысл в том что мы в переменную (к примеру N1) заносим адрес другой переменной (N1:=@N2) теперь в N1 хранится адрес, в памяти, переменной N2 и мы можем изменять N2 исмользуя N1 (N1^:=15 (при условии что N2 числового типа)) вот... =)

    the End.
     
    _________________________
  3. FindeR

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

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    И чё за чушь ты написал?

    lll6, интересная, конечно, задача. Но нудноватая)) Если пишешь на дельфи, то кинь на форму edit, button и StrinGgrid. Если на паскале, просто бери readln'ом размерность массива, а вместо StringGrid1.Cells[....] пиши нужный тебе массив и нужный элемент массива.

    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var mas: array of integer;
    n,i,s,q,buf,buf2,number:integer;
    begin
    Setlength(mas,StrToInt(Edit1.text)); //задаём размер массива
    
    stringgrid1.ColCount :=length(mas)+1; //размеры StringGrid
    stringgrid1.RowCount := length(mas)+1;
    number := 0;
    for n:=1 to length(mas) do begin
    i:=n;
     for s:=1 to n do begin
      number := number+1;
      stringgrid1.Cells[s,i]:=IntToStr(number);
      i:=i-1;
     end;
    end;
    
    i:=length(mas);
    
    for s:=2 to length(mas) do begin
     number := number+1;
     buf:=s;buf2:=i;
     stringgrid1.Cells[s,i]:=IntToStr(number);;
     i:=i-1;
    end;
    
    for s:=3 to length(mas) do begin
     buf2:=s-1;
     for n:=length(mas) downto s do begin
      number := number+1;
      buf2:=buf2+1;
      stringgrid1.Cells[n,buf2]:=IntToStr(number);;
     end;
    end;
    
    
    end;
    Ну а дальше вписывай в Edit нужную размерность и тыкай кнопку. Немного не такая последовательность, как ты просил, но переделать, думаю, труда не составит.
    Code:
    [1,1], [1,2], [2,1], [3,1], [2,2], [1,3], [1,4], [2,3], [3,2], [4,1], [4,2], [3,3], [2,4], [3,4], [4,3], [4,4]
    Улови тут последовательность (для матрицы 4х4), будет тебе счастье))
     
    1 person likes this.
  4. LASS0

    LASS0 Member

    Joined:
    3 Jan 2009
    Messages:
    0
    Likes Received:
    17
    Reputations:
    1
    Pascal

    Помогите пожалуйста решить задачку двумя способами, через цикл repeat until
    и через for

    --------------------------------------------------
    Дано a=2.8 , b=-0.3 , c=4
    Вычислить и напечатать значение функции:

    y=(a+b*x)/sqrt(x*x+4) ,если x<1.4
    y=a*(x*x)+b*x+c ,если x=1.4
    y=a/x+exp(a*b) ,ecли x>1.4

    где x изменяется в интервале от 0.8 до 2.8 с шагом 0.2
    --------------------------------------------------

    Через while do смог написать, а через repeat until
    и через for незнаю :(


    Code:
    Program z1;
    uses crt;
    var a,b,c,x,y:real;
    
    begin
    a:=2.8;
    b:=-0.3;
    c:=4;
    x:=0.8;
    while x<2.8 do
        begin
           if x<1.4 then
           y:=(a+b*x)/sqrt(x*x+4)
           else
           if x=1.4 then
           y:=a*(x*x)+b*x+c
           else
           y:=a/x+exp(a*b);
        writeln ('x=',x:8:2,'  y=',y:8:2);
        x:=x+0.2;
      end;
    readkey;
    end.
     
    #2904 LASS0, 11 Mar 2009
    Last edited: 11 Mar 2009
  5. lll6

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

    Joined:
    29 Feb 2008
    Messages:
    83
    Likes Received:
    15
    Reputations:
    5
    Нет, ты понял не так, а на глупые шутки я не обижаюсь.
    Представлял уже так, но никак не мог реализовать, огромное спасибо за помощь, увидел код и сразу понял
     
  6. lll6

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

    Joined:
    29 Feb 2008
    Messages:
    83
    Likes Received:
    15
    Reputations:
    5
    С repeat
    Code:
    Program z1;
    var a,b,c,x,y:real;
    
    begin
    a:=2.8;
    b:=-0.3;
    c:=4;
    x:=0.8;
    repeat
           if x<1.4 then
           y:=(a+b*x)/sqrt(x*x+4)
           else
           if x=1.4 then
           y:=a*(x*x)+b*x+c
           else
           y:=a/x+exp(a*b);
        writeln ('x=',x:8:2,'  y=',y:8:2);
        x:=x+0.2;
    until x>2.8;
    end.
    А вот в for в паскале шаг может быть равен только единице, да и числа только целые, вот пример реализации, думаю пойдёт.
    Code:
    Program z1;
    var a,b,c,y,f:real;
    x:integer;
    begin
    a:=2.8;
    b:=-0.3;
    c:=4;
    For x:=8 to 26 do
        begin
        if x mod 2 = 0 then begin
           f:=x/10;
           if f<1.4 then
           y:=(a+b*f)/sqrt(f*f+4)
           else
           if f=1.4 then
           y:=a*(f*f)+b*f+c
           else
           y:=a/f+exp(a*b);
        writeln ('x=',x/10:8:2,'  y=',y:8:2);
      end;
      end;
    end.
     
    1 person likes this.
  7. ZET36

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

    Joined:
    8 Oct 2007
    Messages:
    250
    Likes Received:
    49
    Reputations:
    0
    Я вот всё пытаюсь загрузить файл по средствам сокетов

    Code:
    var Site : PChar;
       sock : TSocket;
       HostEnt : PHostEnt;
       WSA : TWSAData;
       addr : sockaddr_in;
       sendbuff : String;
       PostData : String;
    
    
      f:TextFile;
      i:integer;
      buf:array[0..255] of char;
    begin
    
    if WSAStartup($0101, WSA) <> 0 then
    Exit;
    sock := Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    FillChar(addr, SizeOf(sockaddr_in), 0);
    addr.sin_family := AF_INET;
    addr.sin_port := htons(80);
    Site := 'www.google.ru';
    HostEnt := gethostbyname(Site);
    addr.sin_addr.s_addr := Longint(PLongint(HostEnt^.h_addr_list^)^);
    
    Connect(sock, addr, SizeOf(addr));
     sendbuff := 'GET /images/nav_logo3.png HTTP/1.0'#13#10+
    'Accept: */*;q=0.1'#13#10+
    'Referer: http://www.google.ru/search?hl=ru&newwindow=1&q=zz&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=&aq=f&oq='#13#10+
    'Accept-Language: ru'#13#10+
    'Proxy-Connection: Keep-Alive'#13#10+
    'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.8 (build 01709); .NET CLR 1.1.4322)'#13#10+
    'Host: www.google.ru'#13#10#13#10;
    
           send(sock, sendbuff [1], Length(sendbuff), 0);
           AssignFile(f, 'logo.html');
              Rewrite(f);
             repeat
                i := recv(sock, buf, sizeof(255), 0);
                 write(f, copy(buf,1,i));
    
              until
                (i = 0) or (i = SOCKET_ERROR);
    
           CloseSocket(sock);
            CloseFile(f);
         end;
    но в файл, как и положено вместе с телом запроса добавляется и header
    Code:
    HTTP/1.0 200 OK
    Content-Type: image/png
    Last-Modified: Wed, 11 Feb 2009 03:40:02 GMT
    Expires: Sun, 17 Jan 2038 19:14:07 GMT
    Cache-Control: public
    Date: Wed, 11 Mar 2009 17:10:09 GMT
    Server: gws
    Content-Length: 6339
    Age: 3
    Connection: Close
    как этого избежать и не будет ли файл битым или тело запроса нужно ещё шифровать в base64 перед приёмом?
     
  8. eLWAux

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

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    LASS0, зачем создавать тему и тут писать?!
    https://forum.antichat.ru/showthread.php?p=1163693#post1163693
     
  9. Maxxxtri23

    Maxxxtri23 New Member

    Joined:
    20 Dec 2008
    Messages:
    76
    Likes Received:
    1
    Reputations:
    0
    Собсно вопрос еще актуален
     
  10. Hellsp@wn

    Hellsp@wn Elder - Старейшина

    Joined:
    29 Apr 2007
    Messages:
    401
    Likes Received:
    153
    Reputations:
    48
    как то так:
    Code:
    type
      TForm1 = class(TForm)
    ...
    procedure OnMessageRecv(Sender: TObject; Msg, UIN: String);
    ...
    procedure TForm1.OnMessageRecv(Sender: TObject; Msg, UIN: String);
    begin
    ...
    end;
    ...
    bot[n].OnMessageRecv:=Form1.OnMessageRecv;
    
    с остальными событиями также.
     
    1 person likes this.
  11. Si{R}ius

    Si{R}ius Member

    Joined:
    13 Nov 2008
    Messages:
    95
    Likes Received:
    36
    Reputations:
    0
    А как в Паскале сделать так, чтобы текст, выводимый на экран, писался в файл?
     
  12. bbbb

    bbbb New Member

    Joined:
    13 Feb 2007
    Messages:
    3
    Likes Received:
    1
    Reputations:
    0
    Ну можно это сделать так ^_^ -
    Code:
    var 
    f: textfile;
    s: string;
    .....
    begin
    assign(f,'blablabla.txt');
    rewrite(f);
    .....
    writeln(s); --- выводим на экран )
    .....
    writeln(f,s); ---- пишем в файл )
    close(f);
    end;
    
    
     
  13. Jino

    Jino New Member

    Joined:
    27 Sep 2007
    Messages:
    22
    Likes Received:
    0
    Reputations:
    0
    Как в Паскале, вызвать такую константу, как число E?
     
  14. dinar_007

    dinar_007 Мадемуазель

    Joined:
    18 Jan 2005
    Messages:
    1,019
    Likes Received:
    770
    Reputations:
    97
    В Паскале нету константы E... Скажи нормально, чего хочешь...
    Константа - это константа, если она есть ты её не переназначишь и никак и не выразишь...
     
  15. lll6

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

    Joined:
    29 Feb 2008
    Messages:
    83
    Likes Received:
    15
    Reputations:
    5
    Code:
    begin
    writeln (E);
    end.
    Приятного кодинга :)
    У меня есть.
     
  16. eLWAux

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

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    e — математическая константа, основание натурального логарифма, иррациональное и трансцендентное число. Иногда число e называют числом Эйлера (не путать с т. н. числами Эйлера I рода) или числом Непера.

    Code:
    program typo_no_no_no;
    const E = 2,7182818284590452353602874713526624977572470936999595749669676277240766;
    begin
     writeln(E);
     writeln(E:2:2);
     readln;
    end.
    число Е - http://ru.wikipedia.org/wiki/E_(математическая_константа)
    Вычисление числа Е: http://algolist.manual.ru/maths/count_fast/e.php
     
  17. lll6

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

    Joined:
    29 Feb 2008
    Messages:
    83
    Likes Received:
    15
    Reputations:
    5
    Зачем её задавать? она ж уже идёт зарезервированная
     
  18. eLWAux

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

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    а у меня она НЕ_зарезервированная )
     
    1 person likes this.
  19. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Ппц у вас проблемы.
    Гоу ту википедия. Смотрим там и видим
    Code:
    2,71828 18284 59045 23536 02874 71352 66249 77572 47093 69995 95749 66967 62772 40766 30353 54759 45713 82178 52516 64274 27466 39193 20030 59921 81741 35966 29043 57290 03342 95260 59563 07381 32328 62794 34907 63233 82988 07531 95251 01901 15738 34187 93070 21540 89149 93488 41675 09244 76146 06680 82264 80016 84774 11853 74234 54424 37107 53907 77449 92069 55170 27618 38606 26133 13845 83000 75204 49338 26560 29760 67371 13200 70932 87091 27443 74704 72306 96977 20931 01416 92836 81902 55151 08657 46377 21112 52389 78442 50569 53696 77078 54499 69967 94686 44549 05987 93163 68892 30098 79312 77361 78215 42499 92295 76351 48220 82698 95193 66803 31825 28869 39849 64651 05820 93923 98294 88793 32036 25094 43117 30123 81970 68416 14039 70198 37679 32068 32823 76464 80429 53118 02328 78250 98194 55815 30175 67173 61332 06981 12509 96181 88159 30416 90351 59888 85193 45807 27386 67385 89422 87922 84998 92086 80582 57492 79610 48419 84443 63463 24496 84875 60233 62482 70419 78623 20900 21609 90235 30436 99418 49146 31409 34317 38143 64054 62531 52096 18369 08887 07016 76839 64243 78140 59271 45635 49061 30310 72085 10383 75051 01157 47704 17189 86106 87396 96552 12671 54688 95703 50354 02123 40784 98193 34321 06817 01210 05627 88023 51920…
    
    и из этого извлекам пользу const e=2,7182818284; точность сами подберете )
     
  20. Jino

    Jino New Member

    Joined:
    27 Sep 2007
    Messages:
    22
    Likes Received:
    0
    Reputations:
    0
    Кто может помочь со следующей задачей:
    Найти предел функции lim y (y стремится к нулю) * ctg(y) с точностью до Е.
     
Thread Status:
Not open for further replies.