• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Файл вещественных чисел

  • Автор темы Автор темы Gerald
  • Дата начала Дата начала

Gerald

Новые
Регистрация
26 Мар 2011
Сообщения
25
Реакции
0
Баллы
0
Язык: Delphi.
Дан файл вещественных чисел.
Найти количество его участков возрастания.
Задачу нужно сделать через форму.
Алгоритм поиска участков я сделал:
Код:
var
  i,k,countV:integer;
  a:array of real;
...
for i := 1 to length(a) do
   begin
     if a[i+1]>a[i] then k:=1;
     if ((a[i+1]<=a[i]) or (i=length(a))) and (k=1) then
     begin
       inc(countV);
       k:=0;
     end;
   end;
   write('Koli4estvo vozrastanii=',countV);
Но это при том условии если можно будет перенести все числа в массив. Так что чувствую это не прокатит.
С формами еще плохо знаком. Только начал осваивать. Раньше работал только на Паскале.
Помогите пожалуйста. :tehnari_ru_837:
 
Там несложно. В разделе var объявялете эти переменные, а этот код вставляете в процедуру OnFormCreate. На форме разместите компонент Label или Edit, и вместо вашего вывода
write('Koli4estvo vozrastanii=',countV);
сделайте вывод в выбранный компонент:
Edit1.Text:= 'Koli4estvo vozrastanii=' + IntToStr(countV);
Процедура IntToStr преобразует целочисленную переменную в строку.
 
Label - будет для вывода, этто ясн. OnFormCreate- это сама ФОРМА, как я понял? А за чем мне она нужна, я думал поиск буду вызывать через Button... И такой вопрос: как мне перевести числа из файла в массив?
 
OnFormCreate- это сама ФОРМА, как я понял? А за чем мне она нужна, я думал поиск буду вызывать через Button...
Это событие создания формы, то есть запуск приложения. Если хотите через кнопку, то пожалуйста, можно так.
Про числа из файла - читайте работу с файлами, в паскале и делфи оно реализовано одинаково.
 
так из файла я понял как перевести их в массив... А вот если с меня потребуют еще и вводить их в файл на форме? скажем через мемо? А вводить надо вещественные числа... Как мне это сделать? Нигде не нашел(
 
я пробовал использовать Memo1.Lines.SaveToFile(fname); но оно записывает не как вещественный тип.
 
Не понял.. То есть, может возникнуть необходимость читать числа из файла? Это вы разобрали вроде.. Так в чем проблема тогда, в файл числа записать?
 
Нет, я имею виду если с самого начала самому вводить числа в файл. А вот потом уже переводить их в массив и искать участки...

ну вдруг преподу взбредет в голову ввести именно свои числа)

[MOD]Не стоит так часто писать сообщения. Модератор.[/MOD]
 
Последнее редактирование модератором:
Ну тут довольно муторно будет. Проще для добавления чисел использовать один Edit, вводить по одному числу, добавлять их в массив кнопкой, и потом записать в файл.
 
Идею понял, но не получается у меня :tehnari_ru_325: .Вы не могли бы написать мне эту часть кода пожалуйста.
 
Сам разобрался, правда через Memo :) :
Код:
fName:=Edit1.Text;
  AssignFile(f,fName);
  Rewrite(f);
  SetLength(a,Memo1.Lines.Count);
  for i := 0 to Memo1.Lines.Count - 1 do
  begin
    s:=Memo1.Lines[i];
    k:=StrToFloat(s);
    a[i+1]:=k;
  end;
  for i := 1 to Memo1.Lines.Count do
  begin
    write(f,a[i]);
  end;

  closefile(f);
 
Ну и хорошо :)
 
Назад
Сверху