![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Код:
procedure TfrmMain.Button1Click(Sender: TObject);
var
// число точек в исходных данных и в результатах
In_N : Integer;
// массив с исходными данными
In_Data: array of Double;
// переменная для записи в файл
DataFile : TextFile;[/quote]
// переменная цикла
i: Integer;
// линия для графика - если нужна
Line : TLineSeries;
begin
// получение числа точек в исходных данных с формы
In_N := 35;
////////////////////////////////////////// In_N :=StrToInt(edValN.Text);
// получение параметра - пример
///////////////////Scale := StrToFloat(eScale.Text);
// создаем массив данных
// вначале задаем размер массива
SetLength(In_Data,In_N);
// задаем элементы массива
for i := 0 to In_N - 1 do
In_Data[i] := Cos(i*In_N)*Exp(-i*0.44)+1;
MemoOut.Clear;
// и покажем новые
for I := 0 to In_N - 1 do
// Format() - преобразование числа в строку по указанному
// формату. Подробнее и с примерами в справке Delphi - F1.
MemoOut.Lines.Add(Format('%8.3f',[In_Data[i]]));
// *** добавим график - если нужно
// уберем старый график
ChartMain.SeriesList.Clear;
// создадим новый
Line := TLineSeries.Create(ChartMain);
// присвоим значения Y координат
Line.AddArray(In_Data);
// изменим цвет и толщину линии
Line.LinePen.Color := clBlue;
Line.LinePen.Width := 1;
// и выведем на форму
ChartMain.AddSeries(Line);
// свяжем переменную с файлом DataFile
AssignFile(DataFile,'in.txt');
// откроем для записи
Rewrite(DataFile);
// запись параметров
Writeln(DataFile); //стояло еще (,Scale)
// размер массива чисел
Writeln(DataFile,In_N);
// каждое значение пишем в новую строку
for i := 0 to In_N - 1 do
Writeln(DataFile,In_Data[i]);
//закрываем файл - сохраняем его
CloseFile(DataFile);
DeleteFile('out.txt');
end; |
|
#2
|
||||
|
||||
|
Тебе сделали за деньги эту прогу?
Просто пример того, как с задачи "2+2=?" сгородить сотни строк кода. PHP код:
сos(i*X)*e^(-i*0.44)+1 где х одновременном есть размером массива? Чесно скажу, сколько в свое время перерешал подобных задач, никогда такого не видел. При том что в cos значение i*x в радианах.... Последний раз редактировалось Konrad, 26.12.2010 в 18:33. |
|
#3
|
|||
|
|||
|
не не заденьги, нам препод дал пример программы, я просто с неё взял кусок, так а как тут с массивом. что мне надо, плиз?
|
|
#4
|
||||
|
||||
|
Цитата:
|
|
#5
|
|||
|
|||
|
институт, радиофак, по спецкурсу, как бы для герадара
|
|
#6
|
||||
|
||||
|
Цитата:
Ок, сейчас чтонить напишу. Только уточни: если поличиться массив, например 1,1,3,1,2,5,5,7,9,9; считать 4-ре макс элемента как 9,9,7,5. Или 9,7,5,3? Последний раз редактировалось Konrad, 26.12.2010 в 18:52. |
|
#7
|
|||
|
|||
|
нет чтобы как они забиты в массиве 5,7,9,9
|
|
#8
|
||||
|
||||
|
Вот что нагородил:
Печатает значения функции и 4ре макс элемента PHP код:
Правда код мне не особо нравится. Писал его, одновременно говорил по тел, и смотрел краем глаза фильм ![]() Так что уж извиняйте ![]() Последний раз редактировалось Konrad, 26.12.2010 в 19:47. |
|
#9
|
|||
|
|||
|
Уж извольте, на быструю руку набросал, можете попробывать
Код:
procedure Sort( var AResult:array of Double);
var
j: Integer;
tmp : Double;
begin
for j :=Low(AResult) to High(AResult) - 1 do
if AResult[j] > AResult[j+1] Then
begin
tmp := AResult[j];
AResult[j] := AResult[j+1];
AResult[j+1] := tmp;
end;
end;
procedure Find(const AArray: array of Double; AFileName:String);
var
Result: array [0..2] of Double;
ind :Integer;
f: Textfile;
begin
Result[0] := 0; Result[1] := 0; Result[2] := 0;
for ind:= Low(AArray) to High(AArray) do
begin
if AArray[ind] > Result[0] Then
begin
Result[0] := AArray[ind];
Sort(Result);
end;
end;
AssignFile(f, AFileName); {Assigns the Filename}
ReWrite(f); {Create a new file named ek.txt}
for ind:= Low(Result) to High(Result) do
Writeln(f, Format('%8.3f', [Result[ind]]));
Closefile(f); {Closes file F}
end;... Find(In_Data, 'c:\1.txt'); // Найти и сохранить ... Последний раз редактировалось Admin, 26.12.2010 в 20:02. |
|
#10
|
||||
|
||||
|
Так-с, или меня плохо учили программированию в далекие времена.
Или это сейчас ТАК всех учат))) Ну зачем в цикле тебе еще сортировку массива каждый раз делать? Чтобы программа работала быстрее? Последний раз редактировалось Konrad, 26.12.2010 в 20:04. |
|
#11
|
|||
|
|||
|
скажи пожалуйста а куда мне это всё вставлять, я просто вставляю, а оно ничего не изменилось? помоги плиз
|
|
#12
|
||||
|
||||
|
Цитата:
Тебе ж нужно в файл. Просто допиши сохранение массива PHP код:
|
|
#13
|
|||
|
|||
|
понимаете, у меня ж там еще и график рисует, я там вообще уже запулся что куда вставлять
|
|
#14
|
||||
|
||||
|
Вот код, который у тебя записывает данные в файл
PHP код:
Что за файл аут.тхт - не понятно, видимо то что ты привел, только часть кода. Ну не важно. Вобщем сюда допиши еще сохранение массива, того о котором я писал. Тоесть в мах[1,2,3,4] найдены макс числа, вот их и сохраняешь. Не пойму что вызвало затруднения? Последний раз редактировалось Konrad, 26.12.2010 в 21:14. |
|
#15
|
|||
|
|||
|
а что за циклы от 1 до 4 и от 2 до 4?
|
![]() |
|
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|
|