Номер Элемента В Последовательности

Тема в разделе "Delphi - Базы данных", создана пользователем tolyanl1985, 21 ноя 2012.

  1. tolyanl1985

    tolyanl1985 New Member

    Регистрация:
    19 ноя 2012
    Сообщения:
    4
    Симпатии:
    0
    Найти порядковый номер последнего отрицательного числа в последовательности из n вещественных чисел



    Помогите решить на паскале!!! :huh:
     
  2. sinkopa

    sinkopa Well-Known Member

    Регистрация:
    17 июн 2009
    Сообщения:
    344
    Симпатии:
    9
    Какой имеено паскаль? Delphi?
    А как последовательность формируется? в массиве? или строку парсим из консоли? :)

    Так пойдет?
    Код (Delphi):
    program LastNegative;

    {$APPTYPE CONSOLE}

    uses
    Windows,
    SysUtils;

    function Rus(const AStr: String): AnsiString;
    begin
    SetLength(Result, Length(AStr));
    CharToOemBuff(PChar(AStr), PAnsiChar(Result), Length(AStr));
    end;


    function LastNegativeFloat(sequence: array of Extended): Integer;
    var
    i: Integer;
    begin
    Result := -1;
    for i := Length(sequence)-1 downto 0 do
    if (sequence[i] < 0) then
    begin
    Result := i+1;
    Break;
    end;
    end;

    var
    n,count,lastN: Integer;
    s,s1: string;
    sequence: array of Extended;
    begin
    Writeln(Rus('Введите последовательность вещественных чисел, разделенных запятой'));
    Readln(s);
    if (Length(s) > 0) then
    begin
    Writeln(Rus('Вы ввели последовательность: '),s);
    n := Pos(',',s);
    count := 0;
    while ( n > 0) do
    begin
    s1 := Copy(s,1,n-1);
    count := count + 1;
    SetLength(sequence,count);
    sequence[count-1] := StrToFloatDef(s1,0);
    s := Copy(s,n+1, Length(s));
    n := Pos(',',s);
    end;
    count := count + 1;
    SetLength(sequence,count);
    sequence[count-1] := StrToFloatDef(s,0);
    lastN := LastNegativeFloat(sequence);

    Writeln(Rus('Которая состоит из '),count,Rus(' чисел'));
    if (lastN > 0) then
    begin
    Writeln(Rus('Последнее отр.число в последовательности: '),sequence[lastN-1]);
    Writeln(Rus('Его порядковый номер: '),lastN);
    end
    else
    Writeln(Rus('Отрицательных чисел не обнаружено!'));
    end
    else
    Writeln(Rus('Вы ничего не ввели! Гудбай!'));

    Writeln(Rus('Нажмите <ENTER> для выхода из программы'));
    Readln;
    end.
    И причем тут Базы данных, интересно? :)
     
Загрузка...

Поделиться этой страницей