![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Вот такое задание:
"Разработайте программу, определяющую наименьшее значение из внешнего файла, распечатайте это значение." Почему то, как не делаю, всегда выводит "0"! может кто уже делал такое или увидит мою ошибку буду очень признателен. PHP код:
|
|
#2
|
|||
|
|||
|
Не
Код:
a[1]:=min; Код:
min:=a[1]; а зачем массив? |
|
#3
|
|||
|
|||
|
а как ещё можно?
просто ни чего лучше не придумал... |
|
#4
|
|||
|
|||
|
всё равно 0.
|
|
#5
|
||||
|
||||
|
Не путайте человека. У него почти все правильно было.
Считывается первая строчка из файла и ее значение присваивается min только вот ошибка ваша в том, что считываете вы строковое значение, а присваиваете уже переменной double. |
|
#6
|
|||
|
|||
|
Ввожу новую переменную, меняю тип, при загрузке файла вылезает ошибка:
"is not a valid floating point value" Если у кого есть лишние 15минут, попробуйте прикинуть программу плс... |
|
#7
|
||||
|
||||
|
Вот рабочий вариант, смотрите:
Код:
uses
SysUtils;
var
f:textfile;
a: array [1..100000] of double;
d: integer;
n,i: integer;
min: double;
s: String;
begin
assignfile(f,'d:\text1.txt');
reset(f);
readln(f, s);
n := StrToInt(s);
readln(f, s);
min := StrToFloat(s);
a[1] := min;
for i := 2 to n
do begin
readln(f, s);
a[i] := StrToFloat(s);
if a[i] < min
then min := a[i];
end;
WriteLn(FloatToStr(min));
ReadLn;
Closefile(f);
end. |
|
#8
|
|||
|
|||
|
Большое спасибо!
Но почему то всё равно не работает, и вылезает: "is not a valid floating point value" !!! Можете объяснить почему и как исправить? |
|
#9
|
||||
|
||||
|
У вас видимо в файле данных содержатся значения с нарушением формата представления Float. Какой разделитель знаков у вас там стоит?
Еще раз предлагаю, выложите здесь файл данных. |
|
#10
|
|||
|
|||
|
вот так, в принципе всё должно работать, видимо ошибка в переменных...
PHP код:
|
|
#11
|
|||
|
|||
|
получилось вот так:
Если числа записаны в столбик и меньше нуля, то всё работает, а если все числа больше нуля, то выдаёт '0' !!! В чём ошибка? PHP код:
|
|
#12
|
|||
|
|||
|
Здесь:
a[1]:=min; заменить на: min:=a[1]; |
|
#13
|
||||
|
||||
|
Цитата:
|
|
#14
|
|||
|
|||
|
Как только не менял, всё равно при наличии отрицательных чисел работает, при их отсутствии выводит 0!
|
|
#15
|
|||
|
|||
|
Страдалец, да, был не прав, вспылил.
Только вообще не понятно нафига там массив тогда??? Код:
function FindMinInFile(AFileName : String) : Double;
var
L : TStringList;
I : Integer;
begin
L := TStringList.Create;
L.LoadFromFile(AFileName);
Result := StrToFloat(L[0]);
For I := 1 To L.Count-1 Do
If Result > StrToFloat(L[i]) Then Result := StrToFloat(L[i]);
L.Free;
end; |