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

    >>serhio<< New Member

    Joined:
    10 Feb 2009
    Messages:
    40
    Likes Received:
    0
    Reputations:
    0
    Помогите реализовать на pascale!!!
    Дано число k (< 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного файла.
     
  2. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    вот написал процедурку:
    Code:
    procedure peremeshat(s1,s2:TStrings);
    var i,k:integer; s:TstringList;
    begin
    s:=TStringList.Create;
    s.Text:=s1.Text;
    s2.Clear;
    for i:=0 to s.Count-1 do begin
    k:=random(s.Count-1);
    s2.Add(s[k]);
    s.Delete(k);
    end;
    end;
    
    В твоем случе пользоватся ею нужно так:
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    peremeshat(memo1.Lines, Memo2.Lines);
    end;
    
     
    1 person likes this.
  3. Radiator

    Radiator Active Member

    Joined:
    17 Mar 2009
    Messages:
    394
    Likes Received:
    143
    Reputations:
    24
    помогите новичку,может где то есть.

    необходимо.

    есть поля: Memo, Button, Combobox



    1. при нажатии Button в поле Memo вылезало 1000 строк со случайносгенерированными (от 0 до 9 )числами. Надо,что бы в каждой строчке было 7 чисел этих чисел, на второй тоже 7 и так далее.

    2. Также необходимо при выборе из значения ComboFix ,что бы иметь следующее :допустим мы получили в первой строчке значение 1234567, так вот, теперь нам необходимо выбрать нужный параметр из Списка ComboFix и добить его к номеру,что бы получилось 0001234567. И тАк соответствено весь диапазон получившихся чисел.
     
  4. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    Держи:
    Code:
    program proga;
    var k,i,m:byte; ip,op:TextFile; s:string;
    begin
    m:=0;
    assignfile(ip, 'c:\input.txt');
    reset(ip);
    assignfile(op, 'c:\output.txt');
    rewrite(op);
    readln(k);
    while not(eof(ip)) do begin
    readln(ip,s);
    inc(m);
    end;
    reset(ip);
    for i:=1 to m-k do
    readln(ip);
    for i:=1 to k do begin
    readln(ip,s);
    writeln(op,s);
    end;
    closefile(ip);
    closefile(op);
    writeln('Gotovo!');
    readln;
    end.
    
     
  5. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    Держи: http://slil.ru/28468420
     
    1 person likes this.
  6. Radiator

    Radiator Active Member

    Joined:
    17 Mar 2009
    Messages:
    394
    Likes Received:
    143
    Reputations:
    24
    спасибо
     
  7. >>serhio<<

    >>serhio<< New Member

    Joined:
    10 Feb 2009
    Messages:
    40
    Likes Received:
    0
    Reputations:
    0
    сенкс
     
  8. F&D

    F&D Member

    Joined:
    6 Nov 2008
    Messages:
    341
    Likes Received:
    8
    Reputations:
    5
    Огромное спасибо! ;)
     
  9. >>serhio<<

    >>serhio<< New Member

    Joined:
    10 Feb 2009
    Messages:
    40
    Likes Received:
    0
    Reputations:
    0
    Пожалуйста помогите разобраться в задаче на pascale!!! Буду очень признателен!
    Задача№1
    Дана последовательность из 10 слов. Вывести слова, в которых первая буква входит в них один раз.
    Задача№2
    Составить список содержащий сведения об n студентов, для каждого учащегося указать: фамилию,идентификационный номер, дата выдачи свидетельство постановке на учетв налоговом органе,дата рождения,год поступления в университет,курс,группа,кол-во семестровобучения,оценки каждой сесии по всем семестрам. Информация о каждом студенте о форме и виде записи, совокупность записей объединить в массив.Вывести на экран список студентов, рекомендуемых к получению стипендии. Критерий – средний балл рекомендуемого студента должен быть выше значения, задаваемого с клавиатуры. N = 4.
     
  10. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    >>serhio<<, что-то очень часто тебе нужно "помочь разобратся". Для того чтобы тебе помогли, нужно выложить свой код и сказать что именно не получается, а то у меня такое чувство, что мы тебе здесь лабу решаем) Если это так, то ты ошибся разделом---->>>>Работа .

    P.S. сорри за оффтоп
     
  11. 0ldbi4

    0ldbi4 Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    264
    Likes Received:
    51
    Reputations:
    10
    Доброго времени суток, есть ли в дэлфи аналог eval(); как в яве,
    Хочу чтобы пускалась программа после ввода в неё "пароля" она ксорила остальную часть и запускала её, как подобное можно реализовать?
     
  12. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Делфи - компилируемый язык, никаких eval() там быть не может.
     
  13. kenny-cs

    kenny-cs New Member

    Joined:
    3 Dec 2007
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    подскажи пожалуйста, как найти наименьший и наибольший общие делители в массиве.
    я себе представляю это так: находишь наименьший элемент, делишь по очереди на каждый элемен, потом проверяем, если остаток везде целое число, значит это наименьший делитель.

    p.s. есть ли другие способы нахождения?
    p.s.s delphi
     
    #5173 kenny-cs, 12 Jan 2010
    Last edited: 12 Jan 2010
  14. DimkO

    DimkO Banned

    Joined:
    16 Nov 2008
    Messages:
    28
    Likes Received:
    3
    Reputations:
    0

    за4ем тебе делить этот "наименьший ел" на все ел. массива?мне кажется что это чуть другое...
    "Целое число, на которое одновременно делятся без остатка несколько чисел, называется их общим делителем."(Википедиа),мне кажется что нужно просто в цикле находить для каждого елемента массив делителей,после этого найти пересе4ение всех этих массивов,а там уже искать мин и макс значение.Если 4е не так предлагайте еще варианты.ИМХО
     
  15. aleks07

    aleks07 Banned

    Joined:
    18 May 2008
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Как сделать что бы при нажатии определенной комбинации клавиш компьютер "зависал"(то есть картинка на рабочем столе замирала курсор не двигался и по нажатию клавиш ничего не происходило), но по нажатию другой комбинации клавиш все становилось нормально???Мне сказали что с помощью делфи можно такое замутить.Вот подскажите как, желательно поподробней(тк я в этом деле пока что нуб)Заранее спасибо!!
     
  16. >>serhio<<

    >>serhio<< New Member

    Joined:
    10 Feb 2009
    Messages:
    40
    Likes Received:
    0
    Reputations:
    0
    Code:
    Program labor6_2;
    uses crt;
    type
       student=record
            fam:string[15];
            inn:string[12];
            datenal:string[10];
            yearb:string[10];
            yearpos:string[10];
            kurs:string[5];
            group:string[10];
            kolvos:string[5];
            bal:string[5];
            b1,b2,b3,b4,b5,b6,b7,b8,b9,b10:2..5;
            end;
       var  stipendia:array[1..4] of student;
            s:student; i,h,f:integer;
    procedure Ex;
       begin
            write('|   Familija   |');
            write('|   Data rojdenija   |');
            write('|   Ocenki za poslednuju sessiju   |');
          for i:=1 to 4 do
           with stipendia[i] do
            if f = > bal then
         begin
            writeln('|',fam:20, '  |');
            writeln('|',yearb:14, '  |');
            writeln('|',b1,b2,b3,b4,b5,b6,b7,b8,b9,b10:20, '  |');
            end;
          readkey;
       end;
    begin
       clrscr;
       for  i:=1 to 4 do
       with klass[i] do
         begin
            writeln('Vvedite familiu');
            readln(fam);
            writeln('Vvedite INN');
            readln(inn);
            writeln('Vvedite datu vyda4i Svid. o post. na u4et v nal.org.');
            readln(datenal);
            writeln('Vvedite datu rojdenija');
            readln(yearb);
            writeln('Vvedite god postuplenija');
            readln(yearpos);
            writeln('Vvedite kurs');
            readln(kurs);
            writeln('Vvedite gruppu');
            readln(group);
            writeln('Vvedite kol-vo semestrov obu4enija');
            readln(kolvos);
            writeln('Vvedite po 5 ocenok za 1 i 2 semestr');
            readln(b1,b2,b3,b4,b5,b6,b7,b8,b9,b10);
            f:=b1+b2+b3+b4+b5+b6+b6+b7+b8+b9+b10;
            writeln('Vvedite srednii bal');
            readln(bal);
            end;
    
            clrscr;
            ex;
    end.
    
    Только вот незнаю правильно или нет, глянь пожалуйста!
     
    #5176 >>serhio<<, 13 Jan 2010
    Last edited by a moderator: 13 Jan 2010
  17. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    У меня в программе в отдельном Unit'е обрабатывается поток, как можно из потока вывести сообщение на форму?
    Если попытаться вывести сообщение прямо из потока то размер окна сообщения станет произвольно впрочем как и расположение
    А если делать через процедуру, то при запуске из по компилятора возникает ошибка, а так все работает...
     
  18. transserg

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

    Joined:
    2 Jul 2008
    Messages:
    147
    Likes Received:
    25
    Reputations:
    2
    привет всем встал в ступор с этой задачей в реестре хранится число=) но не могу его преобразовать в читабельный вид то есть время верное а вот дата бредовая
    Code:
    Function GetWindowsSetupDate:string;
      const
        regpath   = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion';
        ValueName = 'InstallDate';
      var
        hSubKey   : HKEY;
        BufSize   : DWORD;
        Buf       : DWORD;
        MyValType : DWORD;
        tm        : TDateTime;
        time      : _FILETIME;
        fTime     : SYSTEMTIME;
      begin
    //  01.01.1970
    //  31536000
    //  2629743
    //  1258983428
        if RegOpenKey(HKEY_LOCAL_MACHINE, regpath,hSubKey) = ERROR_SUCCESS then
          if RegQueryValueEx(hSubKey, ValueName, nil, @MyValType, nil, @BufSize) =ERROR_SUCCESS then
            begin
              if  RegQueryValueEx(hSubKey, ValueName, nil, @MyValType, @Buf,@BufSize) =ERROR_SUCCESS then
                begin
                  time.dwHighDateTime:=Buf;
                  FileTimeToLocalFileTime(time,time);
                  FileTimeToSystemTime(time,ftime);
                  result:=Format('%d.%d.%d %d:%d:%d',[fTime.wDay,fTime.wMonth,fTime.wYear,fTime.wHour,fTime.wMinute,fTime.wSecond]);
                end;
            end;
      end;
    вот что я получаю
    '12.1.18736 17:35:46'
     
  19. StealthMaster

    StealthMaster Member

    Joined:
    3 Dec 2008
    Messages:
    52
    Likes Received:
    11
    Reputations:
    0
    Есть ли для Delphi7 компоненты для построения графиков помимо TChart? Хочется, чтобы все выглядело покрасивее :)
     
  20. Andres

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

    Joined:
    4 Apr 2008
    Messages:
    320
    Likes Received:
    119
    Reputations:
    0
    Где можно взять более полный фак для Делфи?
     
Thread Status:
Not open for further replies.