0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 10
1

Объясните код данной программы

27.04.2014, 15:55. Показов 1268. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел код проги. Понимаю суть программы.
Не могли бы те, кто понимают, прокоментировать, какая из частей что делает.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var f:textfile;
    a : array of real;
    n,i,k,imx:integer;
    p,s:real;
begin
Memo1.Clear;
Memo2.Clear;
p:=1;
k:=0;
if OpenDialog1.Execute then
 begin
   Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
   assignfile(f,OpenDialog1.FileName);
   reset(f);
 end;
read(f,n);
setlength(a,n);
imx:=0;
for i := 0 to n - 1 do
 begin
  read(f,a[i]);
  if a[i]<0 then
   begin
    k:=1;
    p:=p*a[i];
   end;
  if i=0 then imx:=0
  else if a[i]>a[imx]then imx:=i;
 end;
closefile(f);
if k=0 then Memo2.Lines.Add('Произведение отрицательных=0')
else Memo2.Lines.Add('Произведение отрицательных='+floattostrF(p,ffFixed,8,2));
Memo2.Lines.Add('Номер максимального='+inttostr(imx+1));
s:=0;
for i:=0 to imx-1 do
if a[i]>0 then s:=s+a[i];
Memo2.Lines.Add('Сумма положительных до максимального='+floattostrF(s,ffFixed,8,2));
Memo2.Lines.SaveToFile('2.txt');
 
end;
 
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2014, 15:55
Ответы с готовыми решениями:

Объясните код программы
Здравствуйте, форумчане. У меня есть код программы, но я не понимаю, как что работает в ней....

Объясните код программы, пожалуйста
Добрый вечер, помогите пожалуйста разобраться с кодом программы. почти вся работа расписана...

Доработать код данной программы
Дан код: #include &lt;iostream&gt; using namespace std; static const int N = 1000; int main() {...

Объясните код программы
Пожалуйста объясните программу, если не трудно после каждой строчки напишите кометариий #include...

5
Аналитик
79 / 79 / 63
Регистрация: 24.04.2014
Сообщений: 465
Записей в блоге: 15
27.04.2014, 16:02 2
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var f:textfile;
    a : array of real;
    n,i,k,imx:integer;
    p,s:real;
begin
Memo1.Clear;
Memo2.Clear; //очистить Memo.
p:=1;
k:=0;
if OpenDialog1.Execute then //вызов диалога открытия файла
 begin
   Memo1.Lines.LoadFromFile(OpenDialog1.FileName); // загрузить в Memo текст из файла . По моему надо опустить //на 2 строки ниже 
   assignfile(f,OpenDialog1.FileName); // связаться с файлом
   reset(f); // открыть для чтения
 end;
read(f,n); // считать переменную n
setlength(a,n); // задать массиву а длину n 
imx:=0;
for i := 0 to n - 1 do
 begin
  read(f,a[i]); // считывать из файла элементы массива.
  if a[i]<0 then // если элемент отрицательный 
   begin
    k:=1;
    p:=p*a[i];
   end;
  if i=0 then imx:=0
  else if a[i]>a[imx]then imx:=i;
 end;
closefile(f);
if k=0 then Memo2.Lines.Add('Произведение отрицательных=0')
else Memo2.Lines.Add('Произведение отрицательных='+floattostrF(p,ffFixed,8,2));
Memo2.Lines.Add('Номер максимального='+inttostr(imx+1));
s:=0;
for i:=0 to imx-1 do
if a[i]>0 then s:=s+a[i];
Memo2.Lines.Add('Сумма положительных до максимального='+floattostrF(s,ffFixed,8,2));
Memo2.Lines.SaveToFile('2.txt');
 
end;
 
end.
1
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 10
27.04.2014, 16:05  [ТС] 3
Зотов_из_ОСА, Memo2.Lines для чего она используется?
0
Аналитик
79 / 79 / 63
Регистрация: 24.04.2014
Сообщений: 465
Записей в блоге: 15
27.04.2014, 16:10 4
Лучший ответ Сообщение было отмечено hudakovagalya как решение

Решение

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var f:textfile;
    a : array of real;
    n,i,k,imx:integer;
    p,s:real;
begin
Memo1.Clear;
Memo2.Clear; //очистить Memo.
p:=1;
k:=0;
if OpenDialog1.Execute then //вызов диалога открытия файла
 begin
   Memo1.Lines.LoadFromFile(OpenDialog1.FileName); // загрузить в Memo текст из файла . По моему надо опустить //на 2 строки ниже 
   assignfile(f,OpenDialog1.FileName); // связаться с файлом
   reset(f); // открыть для чтения
 end;
read(f,n); // считать переменную n
setlength(a,n); // задать массиву а длину n 
imx:=0;
for i := 0 to n - 1 do
 begin
  read(f,a[i]); // считывать из файла элемент 
  if a[i]<0 then //если элемент отрицательный
   begin
    k:=1;
    p:=p*a[i]; // переменную p умножить на элемент
   end;
  if i=0 then imx:=0 // если i=0 то imx(как понимаю индекс максимального элемента) приравнять нулю
  else if a[i]>a[imx]then imx:=i; // если элемент  c индексом i больше элемента с индексом imx тo imx приравнять i
 end;
closefile(f);// закрыть файл
if k=0 then Memo2.Lines.Add('Произведение отрицательных=0') // если нет отрицательных элементов вывести сообщение
else Memo2.Lines.Add('Произведение отрицательных='+floattostrF(p,ffFixed,8,2));// в ином случае вывести произведение с точностью до 2-х знаков
Memo2.Lines.Add('Номер максимального='+inttostr(imx+1));// вывести индекс максимального элемнта
s:=0;
for i:=0 to imx-1 do 
if a[i]>0 then s:=s+a[i];//если элемент + суммировать элементы расположенные до максимального
Memo2.Lines.Add('Сумма положительных до максимального='+floattostrF(s,ffFixed,8,2));// вывести сумму
Memo2.Lines.SaveToFile('2.txt');//записать в файл2
 
end;
 
end.
1
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
27.04.2014, 16:10 5
Лучший ответ Сообщение было отмечено hudakovagalya как решение

Решение

Для вывода полученных результатов и сохранения их в файл
1
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 10
27.04.2014, 16:14  [ТС] 6
Puporev, Зотов_из_ОСА, спасибо всем за помощь))
0
27.04.2014, 16:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2014, 16:14
Помогаю со студенческими работами здесь

Объясните код программы
#include&lt;stdio.h&gt; //библиотека объявления функций и типов, //используемых для различных операций...

Объясните код программы
Помогите,что здесь за что отвечает и выполняется. const int N = 20; main() { int i, x, j, A,...

Объясните код программы
для чего в программе нужны строки :X:=X+Y; Y:=X-Y; X:=X-Y; program Proc10; procedure...

Объясните код программы
Здравствуйте. объясните пожалуйста код программы. больше всего интересует для чего используется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru