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

    REBUUS Active Member

    Joined:
    6 Apr 2009
    Messages:
    314
    Likes Received:
    111
    Reputations:
    9
    procedure add(var a:mas);
    var i,j:byte;
    begin
    for i=0 to n do
    for j=0 to m do
    if i=j then a[i,j]:=1
    else
    if (n-i)=j then
    begin
    "Здесь добавь второе условие для второй диагонали, просто я не понял его"
    end
    else
    a[i,j]:=random(xxx);

    end;

    //////////////////
    procedure print(a:mas);
    var i,j:byte;
    begin
    for i:=1 to n do begin
    for j:=1 to m do
    write(a[i,j]);
    writeln
    end;end;

    это условие я не понял и пропустил. И ПРОВЕРЬ НА СИНТАКСИЧЕСКИЕ ОШИБКИ я просто давно занимался этим языком
     
    #3181 REBUUS, 19 Apr 2009
    Last edited: 19 Apr 2009
  2. Baofy

    Baofy Member

    Joined:
    26 Feb 2009
    Messages:
    12
    Likes Received:
    72
    Reputations:
    7
    т.у выводиться массив 1 диагональ единицы а вторая диагональ выводиться суммой по 2 строке
     
    2 people like this.
  3. REBUUS

    REBUUS Active Member

    Joined:
    6 Apr 2009
    Messages:
    314
    Likes Received:
    111
    Reputations:
    9
    c суммой по 2 строке как понять ? что с кем суммировать ?
     
  4. Markus_13

    Markus_13 Member

    Joined:
    19 Feb 2009
    Messages:
    74
    Likes Received:
    19
    Reputations:
    0
    сделал (Turbo Pascal 7.1):
    Code:
    program BAOFY;
    uses crt;
    const n=10; m=n;
    {esli n<>m - diagonal' ya hz kak opredelit' =)}
    var a:array[1..n,1..m]of integer;
    x,y,s:integer;
    begin
    clrscr;
    randomize;
    for x:=1 to n do for y:=1 to m do
    if(x=y)then a[x,y]:=1 else a[x,y]:=random(10);{zapolnenie massiva}
    s:=0;for x:=1 to n do s:=s+a[x,2];{summa 2 stroki}
    for x:=1 to n do a[x,m-x+1]:=s;{2 diagonal'}
    for y:=1 to m do begin for x:=1 to n do
    write(' ',a[x,y]);writeln;end;{vyvod massiva}
    readkey;
    end.
     
  5. Baofy

    Baofy Member

    Joined:
    26 Feb 2009
    Messages:
    12
    Likes Received:
    72
    Reputations:
    7
    ну если массив из 5 элементов сумируешь 1 2 3 5 элемент
     
    6 people like this.
  6. Markus_13

    Markus_13 Member

    Joined:
    19 Feb 2009
    Messages:
    74
    Likes Received:
    19
    Reputations:
    0
    Code:
    //...
    type dynmas=array of string;
    //...
    function strz(s1,s2:string):dynmas;
    begin
    setLength(result,2);
    result[1]:=s1;
    result[2]:=s2;
    end;
    //...
    типо того...))
     
    1 person likes this.
  7. BlackFan

    BlackFan Member

    Joined:
    3 Jan 2009
    Messages:
    47
    Likes Received:
    40
    Reputations:
    32
    а без type никак? :)
     
  8. f0rward

    f0rward New Member

    Joined:
    26 Oct 2008
    Messages:
    10
    Likes Received:
    2
    Reputations:
    0
    С инди устал геморится, пора переходить на winsock/ wininet. Дайте кто-нибудь материл по нему пожалуйста, только не с гугла.
    Или напишите процедуры/функции, например, для залогинивания на сайт, если не трудно.
     
    1 person likes this.
  9. Markus_13

    Markus_13 Member

    Joined:
    19 Feb 2009
    Messages:
    74
    Likes Received:
    19
    Reputations:
    0
    сам ищу)
    или еще как использовать tWebBrowser без форм и tApplication xDD
    ----------------------
    а те чё впадлу еще одну строчку дописать?)
    меня лично и так устраивает
     
    1 person likes this.
  10. Zitt

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

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    такой вопрос...
    есть БД, в ней таблицы..программо создал в DBGrid поле типа Lookup на основе существующего в бд... Как произвести сортировку в этом не существуюзем поле??
    ругается..
     
  11. RumShun

    RumShun Member

    Joined:
    27 Oct 2008
    Messages:
    283
    Likes Received:
    75
    Reputations:
    6
    Zitt, что то я тебя не понимаю, DBGrid визуальный компонент кот показывает, по русски говоря что там в датасоурсе, в нем нельзя создать поле локап(я так думаю попробывать в голову не приходило такой идеи), поле локап можно создать в таблице(на кот в свою очередь и указывает дата соурс) или запросе. С таблицей в твоем случае будет тажа проблема, поэтому юзай скюэль запрос. Если нужно подробней могу расписать, скажи только названия полей и таблиц.
     
  12. Zitt

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

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    ну если точна я через ADOTable создал новое поле....
    поле называется например Name и в нем надо по алфавиту отсортировать данные...
     
  13. kRa$I-I

    kRa$I-I New Member

    Joined:
    23 Jan 2009
    Messages:
    30
    Likes Received:
    1
    Reputations:
    5
    Всем привет! У меня такой вопрос. Можно ли при написании программы пометить ее часть, ну например создать массив из чисел или определенную строку, чтобы при открытии этой проги из другой, можно было бы сделать SetFilePointer ({наша метка});
    Ну типа как сигнатура у вируса.....
    Спасибо.
     
  14. Hellsp@wn

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

    Joined:
    29 Apr 2007
    Messages:
    401
    Likes Received:
    153
    Reputations:
    48
    можно так, тока метку выбрать получше.
    Code:
      asm
        jmp @@skip
          db 011h,022h,033h,044h
        @@skip:
      end;
    
     
    #3194 Hellsp@wn, 20 Apr 2009
    Last edited: 20 Apr 2009
  15. kRa$I-I

    kRa$I-I New Member

    Joined:
    23 Jan 2009
    Messages:
    30
    Likes Received:
    1
    Reputations:
    5
    to Hellsp@wn: Я конечно не очень дружу c asm, но тут мне кажется маленько не то...
    У меня это так :
    // Открываем файл на чтение
    hFile := CreateFile( MyFile, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
    //Теперль нужно прочитать с определенного место
    SetFilePointer(hFile, Хз скоко байт пробустить, FILE_BEGIN); // от начала файла
    // Мне нужно сдвинуть указатель на определенную метку файла с дискриптором hFile.... а не прыгнуть jmp в моей программе...
     
  16. Mosvit

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

    Joined:
    5 Mar 2007
    Messages:
    86
    Likes Received:
    16
    Reputations:
    1
    Кому не сложно подскажите как разложить такую функцию на Делфи:
    [​IMG]
     
  17. KIR@PRO

    KIR@PRO from Exception

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

    Code:
    function SetFilePointer(
        hFile: THandle;            
        lDistanceToMove: Longint;  
        lpDistanceToMoveHigh: Pointer; 
        dwMoveMethod: DWORD       
       ): DWORD; stdcall;
    Первый параметр - указатель на открытый файл. Второй параметр определяет количество байт, на которые надо передвинуться. Третий параметр я ХЗ для чего. Последний параметр - это флаг определяющий откуда надо начинать двигаться:

    FILE_BEGIN - Передвигаться от начала файла к концу.
    FILE_CURRENT - Передвинуться начиная от текущей позиции к концу.
    FILE_END - Передвигаться от конца файла к началу.

    Функция с случае успеха вернёт младший байт установленной позиции.

    узнать текущую позицию в файле можно так:

    SetFilePointer(hFile,0, 0, FILE_CURRENT);


    вот то что тебе надо:
    Code:
    var hfile:cardinal; 
    begin
    hFile := CreateFile('C:\myfile.txt', GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
    showmessage(inttostr(SetFilePointer(hFile,5, 0, FILE_BEGIN))); //сдивигаем текушую позицию в файле на 5 и выводим её в сообщении
    showmessage(inttostr(SetFilePointer(hFile,0, 0, FILE_CURRENT))); //узнаем текущую позицию файла и видим что предыдущая операция выполнила свое дело 
    
    я так понял у тебя не получалось потому что забыл про lpDistanceToMoveHigh: Pointer;
    ;) удачи...
     
    _________________________
  18. kRa$I-I

    kRa$I-I New Member

    Joined:
    23 Jan 2009
    Messages:
    30
    Likes Received:
    1
    Reputations:
    5
    to KIR@PRO: и ты не угадал! Я наверно неудачно задал вопрос!? Я отлично знаю как пользоваться функцией SetFilePointer... я Joiner пишу и возникла задача как разделить Stub и собственно говоря сами файлы чтобы их извлечь в дальнейшем в TEMP... Мне нужно пометить границы файлов, чтоб в дальнейшем я мог прочитать в буфер с байта X количество размером с файл.....
     
  19. Hellsp@wn

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

    Joined:
    29 Apr 2007
    Messages:
    401
    Likes Received:
    153
    Reputations:
    48
    это ты не понял, тут 2 пути, или поиском искать метку или записывать чёткий адрес в переменную. типо

    const
    dwoffset: dword = $11223344; // размер стаба?
    ...
    SetFilePointer(hFile,dwoffset,FILE_BEGIN);

    если файл идёт сразу после стаба, то dwoffset это размер стаба. если нет, то надо посмотреть в HEX-редакторе, где тот файл(ы), который джоиниться.

    з.ы. читай статьи по написанию джоинеров.
     
  20. kRa$I-I

    kRa$I-I New Member

    Joined:
    23 Jan 2009
    Messages:
    30
    Likes Received:
    1
    Reputations:
    5
    to Hellsp@wn: Спасиб.
     
    1 person likes this.
Thread Status:
Not open for further replies.