Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
aSxDox
0 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 6
#1

Поиск отрицательного значения, а так же деление, поиск максимального значения и запись в таблицу

16.02.2012, 18:38. Просмотров 863. Ответов 3
Метки нет (Все метки)

Помогите пожалуйста дорешать две задачки:

Вобщем первая задачка заключается в том, что надо сформировать массив из N чисел, их значения ввести из внешнего файла(обычный txt). Ну и суть, дальше вывести сумму всех положительных элементов, а так же ниже добавить числом сколько в массиве есть отрицательных чисел. С суммой я разобрался, а вот как найти отрицательные числа, а потом вывести их кол-во я не знаю - у меня ноль всегда выводит. (Архив с проектом на Delphi называется otricateln.rar)

Вторая же задачка вроде и легче, но тоже не знаю как сделать. Дана форма в виде таблицы через стринггриды. В 1 таблице дана вся информация(задача в том, что надо сделать таблицу о работах радиозаводов) - название завода, кол-во рабочих, обьем изготавлеваемой продукции за несколько кварталов. Ну а задача в том, что надо найти производительность(это отношение обьема в первом квартале к кол-ву рабочих) каждого завода в 1 квартале, и во 2 таблице вывести всю информацию о заводе с максимальной производительностью за первый квартал - помогите сделать кнопку результат.(zavod.rar)

Заранее благодарю за помощь!!!

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Вложения
Тип файла: rar zavod.rar (193.3 Кб, 10 просмотров)
Тип файла: rar otricateln.rar (173.5 Кб, 6 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2012, 18:38
Ответы с готовыми решениями:

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

Поиск максимального значения в матрице
Доброго времени суток! Есть задание: "Создать квадратную матрицу. Найти и...

Поиск максимального нечётного значения в массиве
Добрый день, товарищи форумчане, необходима помочь с правкой кода в областях:...

Поиск минимального и максимального значения в файле
Добрый вечер, прошу помощи от Вас. Нужно найти минимум и максимум в txt...

Поиск максимального значения каждой строки в StringGrid
Прошу помощи у знающих людей. Вобщем у меня идёт программа: Читает с файла...

3
Skid
14 / 14 / 4
Регистрация: 12.01.2012
Сообщений: 128
16.02.2012, 19:35 #2
1) с циклом проблемы
ниже исправленый код

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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button1: TButton;
    Button2: TButton;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  MyTextFile: Textfile;
  n: integer;
  mas_number: array[1..50] of integer;
implementation
{$R *.dfm}
 
 
procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
k: integer;
s: string;
begin
AssignFile(MyTextFile, 'dan.txt');
reset(MyTextFile);
n:=0;
while not eof(MyTextFile) do
begin
inc(n);
readln(MyTextFile,k);
mas_number[n]:=k;
end;
CloseFile(MyTextFile);
s:='';
for i:=1 to n do
s:=s + IntToStr(mas_number[i])+'  ';
Label4.Caption:=s;
end;
 
 
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
sum: integer;
z: integer;
begin
z:=0;
sum:=0;
for i:=1 to n do
begin
if mas_number[i]>0 then
sum:=mas_number[i] + sum;
if mas_number[i]<0 then
z:=z+1;
end;
Label7.Caption:=inttostr(sum);
AssignFile(MyTextFile, 'pol.txt');
rewrite(MyTextFile);
writeln(MyTextFile, sum);
closefile(MyTextFile);
 
Label8.Caption:=inttostr(z);
AssignFile(MyTextFile, 'otr.txt');
rewrite(MyTextFile);
writeln(MyTextFile, z);
closefile(MyTextFile);
 
 
ShowMessage('ÑóììГ* ïîëîæèòåëüГ*ûõ Г·ГЁГ±ГҐГ« ñîõðГ*Г*ГҐГ*Г* Гў ГґГ*éëå pol.txt. Êîëè÷åñòâî îòðèöГ*òåëüГ*ûõ Г·ГЁГ±ГҐГ« ñîõðГ*Г*ГҐГ*Г® Гў ГґГ*éëå otr.txt');
 end;
 
 
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Close; 
end;
end.
Добавлено через 10 минут
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  n: integer;
  mas_p_name: array[1..20] of string;
  mas_rab: array[1..20] of integer;
  mas_1kv: array[1..20] of integer;
  mas_2kv: array[1..20] of integer;
  mas_3kv: array[1..20] of integer;
  mas_4kv: array[1..20] of integer;
implementation
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
type
TZavod=record
p_name: string[10];
rab: integer;
kv1: integer;
kv2: integer;
kv3: integer;
kv4: integer;
end;
var
j:integer;
MyFile: File of TZavod;
Zavod:TZavod;
Begin
StringGrid1.Cells[0, 0]:='ГЌГ*çâГ*Г*ГЁГҐ';
StringGrid1.Cells[1, 0]:='Êîë-ГўГ® Г°Г*ГЎ.';
StringGrid1.Cells[2, 0]:='1 ГЄГў.';
StringGrid1.Cells[3, 0]:='2 ГЄГў.';
StringGrid1.Cells[4, 0]:='3 ГЄГў.';
StringGrid1.Cells[5, 0]:='4 ГЄГў.';
AssignFile(MyFile,'zav.dat');
Rewrite(MyFile);
 
Zavod.p_name:='RadioTM';
Zavod.rab:=20;
Zavod.kv1:=50;
Zavod.kv2:=50;
Zavod.kv3:=45;
Zavod.kv4:=55;
Seek(MyFile,0);
Write(MyFile,Zavod);
 
Zavod.p_name:='VolnaFM';
Zavod.rab:=15;
Zavod.kv1:=35;
Zavod.kv2:=45;
Zavod.kv3:=55;
Zavod.kv4:=50;
Seek(MyFile,1);
Write(MyFile,Zavod);
 
Zavod.p_name:='RockStudy';
Zavod.rab:=22;
Zavod.kv1:=55;
Zavod.kv2:=45;
Zavod.kv3:=55;
Zavod.kv4:=55;
Seek(MyFile,2);
Write(MyFile,Zavod);
 
Zavod.p_name:='Braszer';
Zavod.rab:=18;
Zavod.kv1:=35;
Zavod.kv2:=35;
Zavod.kv3:=35;
Zavod.kv4:=55;
Seek(MyFile,3);
Write(MyFile,Zavod);
 
Zavod.p_name:='RadioPoPov';
Zavod.rab:=10;
Zavod.kv1:=55;
Zavod.kv2:=50;
Zavod.kv3:=55;
Zavod.kv4:=50;
Seek(MyFile,4);
Write(MyFile,Zavod);
 
Zavod.p_name:='FukZM';
Zavod.rab:=13;
Zavod.kv1:=45;
Zavod.kv2:=40;
Zavod.kv3:=55;
Zavod.kv4:=50;
Seek(MyFile,5);
Write(MyFile,Zavod);
n:=FileSize(Myfile);
for j:=1 to n do
begin
Seek(MyFile,j-1);
Read(MyFile, Zavod);
 
mas_p_name[j]:=Zavod.p_name;
mas_rab[j]:=Zavod.rab;
mas_1kv[j]:=Zavod.kv1;
mas_2kv[j]:=Zavod.kv2;
mas_3kv[j]:=Zavod.kv3;
mas_4kv[j]:=Zavod.kv4;
end;
CloseFile(MyFile);
for j:=1 to n do
begin
StringGrid1.Cells[0, j]:=mas_p_name[j];
StringGrid1.Cells[1, j]:=IntToStr(mas_rab[j]);
StringGrid1.Cells[2, j]:=IntToStr(mas_1kv[j]);
StringGrid1.Cells[3, j]:=IntToStr(mas_2kv[j]);
StringGrid1.Cells[4, j]:=IntToStr(mas_3kv[j]);
StringGrid1.Cells[5, j]:=IntToStr(mas_4kv[j]);
end;
 
StringGrid2.Cells[0, 0]:='ГЌГ*çâГ*Г*ГЁГҐ';
StringGrid2.Cells[1, 0]:='Êîë-ГўГ® Г°Г*ГЎ.';
StringGrid2.Cells[2, 0]:='1 ГЄГў.';
StringGrid2.Cells[3, 0]:='2 ГЄГў.';
StringGrid2.Cells[4, 0]:='3 ГЄГў.';
StringGrid2.Cells[5, 0]:='4 ГЄГў.';
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
g:real;
j,h,i,k:integer;
begin
i:=0;
g:=mas_1kv[1]/mas_rab[1];
for j:=1 to n do
if g<mas_1kv[j]/mas_rab[j] then
begin
g:=mas_1kv[j]/mas_rab[j];
h:=j;
end;
StringGrid2.Cells[0, 1]:=mas_p_name[h];
StringGrid2.Cells[1, 1]:=IntToStr(mas_rab[h]);
StringGrid2.Cells[2, 1]:=IntToStr(mas_1kv[h]);
StringGrid2.Cells[3, 1]:=IntToStr(mas_2kv[h]);
StringGrid2.Cells[4, 1]:=IntToStr(mas_3kv[h]);
StringGrid2.Cells[5, 1]:=IntToStr(mas_4kv[h]);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Close;
end;
 
end.
1
aSxDox
0 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 6
16.02.2012, 19:36  [ТС] #3
Skid, О_о спасибо))) всеголиш надо было поменять местами чуток, спасибо))))
0
Skid
14 / 14 / 4
Регистрация: 12.01.2012
Сообщений: 128
16.02.2012, 19:39 #4
Цитата Сообщение от aSxDox Посмотреть сообщение
Skid, О_о спасибо))) всеголиш надо было поменять местами чуток, спасибо))))
не по теме: для спасибо есть кнопка!
а то теме: всегда внимательно просматривай код!сам будешь многие ошибки находить)

Добавлено через 1 минуту
кстати на будушее!нумеровать нада только имя элемента!имена событий не нужно нумеровать)
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2012, 19:39

Поиск максимального значения переменных в текстовом файле
Добрый день. Когда то давно увлекался программированием на чайниковском уровне,...

Поиск значения в Memo
программа при нажатии на кнопку ищет значение Н - F(переменная, хранящая число...

Поиск минимального значения в строке StringGrid
Народ подскажите как найти минимальное значение в строке StringGrid если в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru