CyberForum.ru - Форум программистов и сисадминов
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум программистов > Форум Delphi

Ответ Создать новую тему
 
Старый 21.05.2010, 22:53   #1
KnighTeX
Новичок
 
Регистрация: 03.10.2009
Сообщений: 84
Репутация: 0 (0)
Смущение Средства отладки программ в DELPHI.Создание программ для циклических процессов

Ребята, помогите, пожалуйста, нубу, никак не справлюсь(( Заранее благодарен)
1. Средства отладки программ в DELPHI.Создание программ для циклических процессов.
Нажмите на изображение для увеличения
Название: ц.png
Просмотров: 86
Размер:	9.2 Кб
ID:	30733
Текст программы приведен ниже:
Код 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
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.
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Memo1: TMemo;
    Button1: TButton;
    procedure FormCreate (Sender: TObject);
    procedure Button1Click (Sender: TObject);
  private
    (Private declarations)
  public
    (Public declarations)
  end;
var
  Form1: TForm1;
implementation
($ R *. dfm)
procedure TForm1.FormCreate (Sender: TObject);
begin
  Edit1.Text: = '0 ';
  Edit2.Text: = '2 ';
  Edit3.Text: = '5 ';
  Edit4.Text: = '0, 25 ';
  Memo1.Clear;
  Memo1.Lines.Add ('Результаты. Студ. Гр.2ЭК Иванов А.А.');
   end;
 
procedure TForm1.Button1Click (Sender: TObject);
 Var
  x1, x2, x, h, a, s: extended;
  N, k, c: integer;
begin
  x1: = StrToFloat (Edit1.Text.
  Memo1.Lines.Add ('x1 =' Edit1.Text.
  x2: = StrToFloat (Edit2.Text.
  Memo1.Lines.Add ('x2 =' Edit2.Text.
  N: = StrToInt (Edit3.Text.
  Memo1.Lines.Add ('N =' Edit1.Text.
  h: = StrToFloat (Edit4.Text.
  Memo1.Lines.Add ('h =' Edit4.Text.
  C: = -1;
  X: = x1;
  Repeat
    A: = 1;
    S: = 1;
    for k: = 1 to N do
    begin
      a: = c * a * x / k;
      s: = s a;
    end;
  Memo1.Lines.Add ('nры x =' FloatToStr (x, ffFixed, 6, 2)
                 'Сумма =' FloatToStr (s, ffFixed, 6, 2));
  x: = x h;
  until x> x2;
end;
end.
 
После отладки программы составьте тест (N = 2, X1 = 0, X2 = 1, h = 3), установите курсор на первый оператор (N: =), нажмите клавишу F4. После этого нажимая клавишу F7, выполните пошаговое налаживания программы и проследите, как меняются все переменные в процессе выполнения.
Нажмите на изображение для увеличения
Название: у.png
Просмотров: 70
Размер:	4.5 Кб
ID:	30734
2. Стандартные компоненты и обработчики событий. Создание программ для процессов, разветвляются.
Нажмите на изображение для увеличения
Название: к.png
Просмотров: 58
Размер:	9.2 Кб
ID:	30735
Текст программы:
Код 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
unit unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;
type
  TForm1 = class (TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel.
    Memo1: TMemo;
    Button1: TButton;
    CheckBox1: TCheckBox;
    RadioGroup1: TRadioGroup;
    Label5: TLabel;
    procedure Button1Click (Sender: TObject);
    procedure FormCreate (Sender: TObject);
  private
    (Private declarations)
  public
    (Public declarations)
  end;
 
var
  Form1: TForm1;
implementation
 
($ R *. dfm)
 
procedure TForm1.FormCreate (Sender: TObject);
begin
  Edit1.Text: = '0, 1 '; / / Начальное значение Х
  Edit2.Text: = '0, 356 '; / / Начальное значение Y
  Edit3.Text: = '0 '; / / Начальное значение Z
  Memo1.Clear; / / Очистка окна редактора Memo1
/ / Вывод строки в многострочный редактор Memol
Memo1.Lines.Add ('Ла6.раб.N3. Ст.гр. 2ЭК Иванов А.А.');
end;
 
procedure TForm1.Button1Click (Sender: TObject);
  var x, y, z, a, u, ma: Extended;
begin
  x: = StrToFloat (Edit1.Text.
/ / Считывается значение X
  Memo1.Lines.Add ('Х =' Edit1.Text.
/ / Вывод Х в окно Memol
  Y: = StrToFloat (Edit2.Text.
/ / Считывается значение Y
  Memo1.Lines.Add ('Y =' Edit2.Text.
/ / Вывод Y в окно Memol
  Z: = StrToFloat (Edit3.Text.
/ / Считывается значение Z
  Memo1.Lines.Add ('Z =' Edit3.Text.
  / / Проверка номера нажатой кнопки и выбор соответствующей ей функции
  case RadioGroup1.ItemIndex of
    0: u: = cos (x);
    1: u: = sin (x);
    2: u: = sin (x) / cos (x);
  end;
  / / Вывод U в окно Memol
 Memo1.Lines.Add ('U =' FloatToStr (U, fffixed, 8,2));
/ / Проверка состояния кнопки CheckBox1
  if CheckBox1.Checked then
  begin
    u: = abs (u);
    y: = abs (y);
    z: = abs (z)
  end;
 
/ / Нахождение максимального из трех чисел
  if u> y then ma: = u else ma: = y;
  if z> ma then ma: = z.
  if Checkbox1.checked then
  Memo1.Lines.Add ('maxabs =' FloatToStrF (ma, fffixed, 8,2))
  else
Memo1.Lines.Add ('max =' FloatToStrF (ma, fffixed, 8,2));
end;
end.
 
Нажмите на изображение для увеличения
Название: е.png
Просмотров: 56
Размер:	3.4 Кб
ID:	30736
3. Обработка массивов.
Задача: создать программу для определения вектора:
,
где А - квадратная матрица, а Y, B - одномерные массивы.
Элементы вектора Y определяются по формуле;
.
Значение N вводить в компонент Tedit, А и В - в компонент TStringGrid. Результат, после нажатия кнопки типа TButton, вывести в компонент TStringGrid.
Панель диалога приведена на рис.1
Нажмите на изображение для увеличения
Название: н.png
Просмотров: 60
Размер:	9.6 Кб
ID:	30737
Текст программы приведен ниже.
Код 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
Unit Lab4;
Interface
Uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Grids;
type
  TInputForm = class (TForm)
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    StringGrid3: TStringGrid;
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Procedure FormCreate (Sender: TObject);
    Procedure Button1Click (Sender: TObject);
    Procedure Button2Click (Sender: TObject);
  private
    (Private declarations)
  public
    (Public declarations)
  end;
 
const
  Nmax = 10; / / Максимальная размерность массива
type
  Mas1 = array [1 .. Nmax] of Extended;
/ / Объявление типа одномерного массива
  Mas2 = array [1 .. Nmax, 1 .. Nmax] of Extended; / / Объявления типа двумерного массива
var
  InputForm: TInputForm;
  A: Mas2; / / Объявления двумерного массива
  B, Y: Mas1; / / Объявления одномерных массивов
  N, i, j: integer;
 
Implementation
($ R *. DFM)
 
Procedure TInputForm.FormCreate (Sender: TObject);
begin
  N: = 3; / / Размерность массива
  Edit1.Text: = FloatToStr (N);
/ / Задание числа строк и столбцов
  StringGrid1.ColCount: = N 1;
  StringGrid1.RowCount: = N 1;
  StringGrid2.RowCount: = N 1;
  StringGrid3.RowCount: = N 1;
/ / Введение в левую верхнюю каморку таблицы названия массива
  StringGrid1.Cells [0, 0]: = 'Массив А';
  StringGrid2.Cells [0, 0]: = 'Массив В';
  StringGrid3.Cells [0, 0]: = 'Массив В';
/ / Заполнение верхнего и левого столбиков подписями, объясняющих
  for i: = 1 to N do
  begin
    StringGrid1.Cells [0, i]: = 'i =' IntToStr (i);
    StringGrid1.Cells [i, 0]: = 'j =' IntToStr (i);
  end;
end;
 
Procedure TInputForm.Button1Click (Sender: TObject);
begin
  N: = StrToInt (Edit1.Text.
/ / Задача числа строк и столбцов в таблицах
  StringGrid1.ColCount: = N 1;
  StringGrid1.RowCount: = N 1;
  StringGrid2.RowCount: = N 1;
  StringGrid3.RowCount: = N 1;
/ / Заполнение верхнего и левого столбиков подписями, объясняющих
  for i: = 1 to N do
  begin
    StringGrid1.Cells [0, i]: = 'i =' IntToStr (i);
    StringGrid1.Cells [i, 0]: = 'j =' IntToStr (i);
  end;
end;
 
Procedure TInputForm.Button2Click (Sender: TObject);
var
  s: extended;
begin
/ / Заполнение массива A элементами из тавлици StringGrid1
  for i: = 1 to N do
  for j: = 1 to N do
    A [i, j]: = StrToFloat (StringGrid1.Cells [j, i]);
/ / Заполнение массива B элементами из тавлици StringGrid2
  for и: = 1 to N do
    B [и]: = StrToFloat (StringGrid2.Cells [0, и]);
/ / Умножение массива A на массив B
  for i: = 1 to N do
  begin
    s: = 0;
    for j: = 1 to N do
    s: = s A [i, j] * B [j];
    Y [i]: = s;
/ / Вывод результата в таблицу StringGrid3
    StringGrid3.Cells [0, i]: = FloatToStrF (Y [i], ffFixed, 6,2);
  end;
end;
end.
 
Задание: Задано матрицу размером. Получить массив B, присвоив его k-м элементу значение 1, если k-я строка матрицы симметричный, и значение 0 в противном случае.
4. ОБРАБОТКА СОБЫТИЙ В DELPHI.КОМПОНЕНТЫ TLISTBOX И TCOMBOBOX
Нажмите на изображение для увеличения
Название: г.png
Просмотров: 50
Размер:	5.0 Кб
ID:	30739
Код 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
Unit Unit1;
Interface
Uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;
type
  Tunit_Lab5 = class (TForm)
    ComboBox1: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    BitBtn1: TBitBtn;
    Button1: TButton;
 
    Procedure FormActivate (Sender: TObject);
    Procedure ComboBox1KeyPress (Sender: TObject; var Key: Char);
    Procedure ComboBox1Click (Sender: TObject);
  Private
    (Private declarations)
  Public
    (Public declarations)
  end;
 
var
  Unit_Lab5: TUnit_Lab5;
 
Implementation
($ R *. DFM)
 
/ / Обработка события активизации формы
Procedure TUnit_Lab5.FormActivate (Sender: TObject);
begin
  ComboBox1.SetFocus; / / Передача фокуса ComboBox1
end;
 
/ / Обработка события нажатия левой клавиши мыши
Procedure TUnit_Lab5.ComboBox1KeyPress (Sender: TObject; var Key: Char);
begin
  if Key = # 13 then / / Если нажата клавишу Enter то ...
  begin
/ / Строка из окна редактирования заносится в список выбора
    ComboBox1.Items.Add (ComboBox1.Text.
    ComboBox1.Text: =''; / / Очистка окна редактирования
  end;
end;
 
Procedure TUnit_Lab5.ComboBox1Click (Sender: TObject);
var
  St: string;
  n, и, nst, ind: integer;
begin
  n: = 0; / / Содержит число слов избранного строки
/ / Содержит количество слов
  ind: = 0;
/ / Определение номера выбранного строки
  nSt: = ComboBox1.ItemIndex;
/ / Сохранение выбранного строки в переменную st
  St: = ComboBox1.Items [nst];
/ / Пересмотр всех символов строки st
  for i: = 1 to Length (St) do
  begin
    Case ind of
      0: if St [и] <>''then
         begin
/ / Если встретился символ после пробела
/ / Килькистьслив увеличивается на единицу
           ind: = 1;
           n: = n 1;
         end;
/ / Если встретился пробел после символов
      1: if St [i] =''then ind: = 0;
     end;
   end;
 
   Label3.Caption: = IntToStr (n); / / Вывод количества слов в Label3
end;
end.
 
ЗАДАНИЕ:
Дана строка, состоящая из групп нулей и единиц. Подсчитать количество символов в самой длинной группе.
5. Программирование подпрограмм и модулей.
Нажмите на изображение для увеличения
Название: ш.png
Просмотров: 58
Размер:	8.2 Кб
ID:	30740
Код 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
Тексты модуля и программы, его вызывает, приведены ниже.
 
Текст модуля:
Unit Matfu;
Interface
  Function Tg (x: extended): extended;
/ / Функция для вычисления тангенса
  Function Ch (x: extended): extended;
/ / Функция для вычисления гиперболического синуса
Function Sin2 (x: extended): extended;
/ / Функция для вычисления квадрата синуса
 
Implementation
  Function Tg;
begin
  Result: = sin (x) / cos (x);
end;
  Function Ch.
  begin
    Result: = (exp (x)-exp (-x)) / 2;
  end;
 
  Function Sin2;
  begin
    Result: = sqr (sin (x));
  end;
end.
 
Текст дерзкой программы:
 
Unit Unit1;
Interface
Uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, MatFunc;
 
type
  TForm1 = class (TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    RadioGroup1: TRadioGroup;
 
    Procedure FormCreate (Sender: TObject);
    Procedure Button1Click (Sender: TObject);
    Procedure Button2Click (Sender: TObject);
  private
    (Private declarations)
  public
    (Public declarations)
  end;
 
type
  func = function (x: extended): extended;
var
  Form1: TForm1;
 
implementation
($ R *. DFM)
 
procedure TForm1.FormCreate (Sender: TObject);
begin
  Edit1.Text: = '0 ';
  Edit2.Text: = '2 ';
  Edit3.Text: = '0 .2 ';
  Memo1.Clear;
  RadioGroup1.ItemIndex: = 0;
end;
 
procedure Tabl (f: func; xn, xk, h: extended);
var
  x, y: extended;
begin
  x: = xn;
  Repeat
    y: = f (x);
    Form1.Memo1.Lines.Add ('x =' FloatToStrF (x, fffixed, 8,2)
                        'Y =' FloatToStrF (y, fffixed, 8,2));
    x: = x h;
  Until (x> xk.
end;
 
procedure TForm1.Button1Click (Sender: TObject);
var
  xn, xk, h: extended;
begin
  xn: = StrToFloat (Edit1.Text.
  xk: = StrToFloat (Edit2.Text.
  h: = StrToFloat (Edit3.Text.
 
  Case RadioGroup1.ItemIndex of
    0: Tabl (tg, xn, xk, h);
    1: Tabl (ch, xn, xk, h);
  end;
end;
 
procedure TForm1.Button2Click (Sender: TObject);
begin
  Halt
end;
 
end.
 
Задание:
Нажмите на изображение для увеличения
Название: щ.png
Просмотров: 53
Размер:	3.4 Кб
ID:	30741
KnighTeX вне форума
Другие темы раздела
Delphi Занести Midi инструменты в ListBox
Здравствуйте. У меня возникла проблемка, при создании пианино на Delphi. мне надо сделать так, чтобы все 128 инструментов Midi были занесены в ListBox. Вообщем я это сделал, но при выборе какого-нибудь инструмента, либо ничего не меняется, либо (я что-то накрутил) звук вообще исчезает. Вот.... Занести Midi инструменты в ListBox
разветвляющиеся алгоритмы Delphi
Люди посмотрите кто нибудь задачу плиз я немогу разобраться куда этот радио всовывать. там в документе задание, я сделал чтоб оно считало по 1 формуле, но незнаю что с радиобаттон делать, посмотрите плиз.. разветвляющиеся алгоритмы
Старый 22.05.2010, 00:36   #2
Twic
Форумчанин
 
Аватар для Twic
 
Регистрация: 03.12.2009
Адрес: Украина г.Киев
Сообщений: 153
Репутация: 18 (18)
По умолчанию Re: Совсем беда с Делфи((

У тя почти все сделано Прост ведь в исходник!()!
Twic вне форума
Старый 22.05.2010, 00:47  [ТС]   #3
KnighTeX
Новичок
 
Регистрация: 03.10.2009
Сообщений: 84
Репутация: 0 (0)
По умолчанию Re: Совсем беда с Делфи((

Вся проблема в том, что при вводе формулы в прогу получается всякий бред, ошибки выдает...
KnighTeX вне форума
Старый 22.05.2010, 01:00   #4
_pva
Форумчанин
 
Регистрация: 27.02.2010
Сообщений: 218
Репутация: 42 (42)
По умолчанию Re: Совсем беда с Делфи((

Какие ошибки?
_pva вне форума
Старый 22.05.2010, 16:35  [ТС]   #5
KnighTeX
Новичок
 
Регистрация: 03.10.2009
Сообщений: 84
Репутация: 0 (0)
По умолчанию Re: Совсем беда с Делфи((

Да разный бред бывает... Вроде бы есть готовый образец, подставляю в него свои значения и формулу - и все равно никак((
KnighTeX вне форума
Старый 24.05.2010, 13:37   #6
_pva
Форумчанин
 
Регистрация: 27.02.2010
Сообщений: 218
Репутация: 42 (42)
По умолчанию Re: Средства отладки программ в DELPHI.Создание программ для циклических процессов

Не зная ошибки и когда она появляется остается заняться спиритизмом )))
Это все равно, что позвонить на СТ О и сказать -машина не работает а на вопрос как не работает ответить да всякий бред выдает...
_pva вне форума
После регистрации реклама в сообщениях будет скрыта
Старый 29.05.2010, 16:04  [ТС]   #7
KnighTeX
Новичок
 
Регистрация: 03.10.2009
Сообщений: 84
Репутация: 0 (0)
По умолчанию Re: Средства отладки программ в DELPHI.Создание программ для циклических процессов

На самом деле я в Delphi полный нуб( никак не пойму что к чему... Вот и ищу чью-то помощь... Может кто поможет мне с проблемой, по ходу может и разберусь...
KnighTeX вне форума
Ответ Создать новую тему

Похожие темы
Тема Автор
Delphi для начинающих Подпрограммы. Средства отладки Delphi.
Решить задачу, используя процедуру или функцию. Выбор обосновать. На примере полученной программы продемонстрировать умение: 1) назначать точку останова; 2) пошаговое выполнение программы с заходом в процедуры и без захода; 3) определять значения переменных. Дано четное число N>2. Проверить...
Osimi
С++ под Linux Создание новых процессов, запуск внешних программ fork(), system
Задача запустить внешнее приложение и получить его ID, для того чтобы в дальнейшем отследить живо оно или нет. Почему-то получаю _всегда_ получаю ID нового процесса на две единицы меньше реального. Например, в программе получаю pid = 20002 , а через ps -ax вижу, что в системе он висит на 20004 :| С...
steel98
Delphi Создание программ на Delphi
Мне очень нужна помощь программиста нужно сделать 6 программ уровень сложности очень легкий. Если есть добрые люди то помогите пожалуйста... Вот ссылка на архив в архиве картинка с заданием: http://pdj.ru/download/1606669/ за ранее благодарю))
LS-Di
Pascal (Паскаль) Создание простых программ и программ с анализом данных...С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ\\\всего 9 штук
1 Даны три точки A, B, C на числовой оси. Найти длины отрезков AC и BC и их сумму. 2. Дано трехзначное число. Вывести число, полученное при перестановке цифр десятков и единиц исходного числа (например, 123 перейдет в 132). 3. Дано целое положительное число. Проверить истинность высказывания:...
xxxZLODEUxxx
Pascal (Паскаль) Помогите с решением задачи на тему Создание циклических программ
Всем привет. Помогите пожалст с задачей. На данный момент имеется следующее, но чёто не правильно работает: Program lab2; const L=-1; R=1; T=0.25; var x,y,z:real; kol:real; flag:boolean; Begin write('Vvedite y='); readln(y); x:=L; flag:=false;
BamBooCho
Опции темы

Текущее время: 01:32. Часовой пояс GMT +4.

Компьютерный форум программистов и сисадминов
Powered by vBulletin® Version 3.8.7 PL2
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Рейтинг@Mail.ru Яндекс.Метрика