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

tolyanl1985

New member
19.11.2012
4
0
#1
Найти порядковый номер последнего отрицательного числа в последовательности из n вещественных чисел



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

sinkopa

Well-known member
17.06.2009
344
4
#2
Найти порядковый номер последнего отрицательного числа в последовательности из n вещественных чисел
Помогите решить на паскале!!! :huh:
Какой имеено паскаль? 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.
И причем тут Базы данных, интересно? :)