
- •Содержание
- •1. Введение 7
- •2. Основные этапы развития технологии программирования. 8
- •3. Практическое задание по алгоритмизации и программированию в среде Delphi. 18
- •Implementation 28
- •Var I:integer; 28
- •Var I,j:integer; 29
- •Var I,j,k:integer; 29
- •4. Разработка тестовых заданий. 30
- •5. Заключение. 33
- •6. Список используемых источников 34
- •Введение
- •Основные этапы развития технологии программирования.
- •2.1. Первый этап: «стихийное» программирование (50-60-е годы)
- •2.2. Второй этап: структурный подход к программированию (60-70-е годы)
- •2.3. Третий этап: объектный подход к программированию (с середины 80-х до конца 90-х годов XX в.)
- •2.4. Четвертый этап: компонентный подход и case-технологии (с середины 90-х годов до нашего времени)
- •3. Практическое задание по алгоритмизации и программированию в среде Delphi. Вариант 1.
- •Постановка задачи 1.
- •Анализ задачи составление блок-схем.
- •Процедура для расчета.
- •3.3. Разработка схемы интерфейса.
- •Листинг кода программы.
- •Interface
- •Implementation
- •Var I,imax,imin,max,min:integer;
- •If opendialog1.Execute
- •Постановка задачи 2.
- •Анализ задачи составление блок-схем.
- •Разработка схемы интерфейса.
- •Листинг кода программы
- •Interface
- •Implementation
- •Разработка тестовых заданий.
- •Заключение.
- •Список используемых источников
Разработка схемы интерфейса.
Создадим для нашего модуля форму (рис.3.2). На нее добавим:
Три метки (label) – на первой напишем «число строк», а на второй – «число столбцов», на третьей – «сумма элементов в столбцах, не содержащих отрицательные элементы».
Два поля для ввода (Edit) – первый для ввода строк, второго – столбцов. В события Onchange для первого запишем процедуру «TForm1.Edit1Change», для второго – «TForm1.Edit2Change». Также в события onKeyPress запишем процедуры «edit1KeyPress» и «edit2KeyPress», для первого и второго полей соответственно, так как здесь нам нужны только цифры.
Две табличные области (Stringgrid) – в первую запишем исходную матрицу, а вторую – результаты расчетов. В событие onKeyPress для первой запишем процедуру «StringGrid1KeyPress», так как нам нужны только цифры.
Одну кнопку, в событие OnClick которой запишем процедуру «Schet».
Рис.3.2 Форма на этапе разработки.
Листинг кода программы
unit Unit1;
Interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
StringGrid2: TStringGrid;
Button1: TButton;
Label3: TLabel;
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
m,n:integer;
a:array[1..20,1..20] of integer;
b:array[1..20] of integer;
Implementation
{$R *.dfm}
procedure TForm1.Edit1Change(Sender: TObject);
var i:integer;
begin
m:=strToInt(edit1.Text);
StringGrid1.RowCount:=m;
StringGrid1.Height:=24*m+15;
StringGrid1.Visible:=true;
StringGrid2.Top:=StringGrid1.Top+24*m+25;
for i:=0 to m-1 do StringGrid1.Cells[0,i]:='0';
end;
procedure TForm1.Edit2Change(Sender: TObject);
var i,j:integer;
begin
n:=strToInt(edit2.Text);
StringGrid1.ColCount:=n;
StringGrid2.ColCount:=n;
StringGrid1.Width:=64*n+10;
StringGrid2.Width:=StringGrid1.Width;
StringGrid1.Visible:=true;
for i:=0 to m-1 do
for j:=0 to n-1 do StringGrid1.Cells[j,i]:='0';
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8]) then key:=#0;
end;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8]) then key:=#0;
end;
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8]) then key:=#0;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,j,k:integer;
begin
for i:=1 to m do
for j:=1 to n do
a[i,j]:=strToInT(stringgrid1.Cells[j-1,i-1]);
for i:=1 to m do b[i]:=0;
for j:=1 to n do
for i:=1 to m do
if a[i,j]=0 then b[i]:=1;
k:=0;
for i:=1 to n do
begin
if b[i]=0 then k:=k+1;
stringgrid2.Cells[i-1,0]:=InTTostr(b[i]);
end;
label3.Caption:='Количество ненулевых строк - '+IntToStr(k)+'.';
end;
end.