Реферат по предмету "Информатика, программирование"


Разработка программы на языке Borland Object Pascal (Ide Borland Delphi)

ЗАДАНИЕ НА КУРСОВУЮРАБОТУ
Исходным файлом дляпроверки является текст программы на языке C++. Проверить правильностьнаписания в программе инструкций безусловного перехода. Программа должна бытьразработана на языке Borland Object Pascal (Ide Borland Delphi).

 
СОДЕРЖАНИЕ
1.ВВЕДЕНИЕ
2.ВЫПОЛНЕНИЕ ЗАДАНИЯ
2.1.Подготовка исходного файла
2.2.Разработка программы
2.3.Листинг программы
2.4.Запускприложения ПЕРЕЧЕНЬ ССЫЛОК
ПРИЛОЖЕНИЯ

 
1.        ВВЕДЕНИЕ
Система программирования  Турбо Паскаль,разработанная американской корпорацией Воrland, остается одной из самых популярныхсистем программирования в мире. Придуманный швейцарским ученым Никласом Виртомкак средство для обучения студентов программированию, язык Паскаль стараниями А. Хейлсберга превратился в мощную современную профессиональную системупрограммирования, которой по плечу любые задачи – от создания простых программ,предназначенных для решения несложных вычислительных задач, до разработкисложнейших реляционных систем управления базами данных. Появление Windows и инструментальных средств Borland Pascal with Objects и Delphiдля разработки программ в среде Windowsлишний раз показало, какие поистине неисчерпаемые возможности таит он в себе: иBorland Pascal, и используемый в Delphi язык Object Pascalосновываются на Турбо Паскале и развивают его идеи.
Основная цель курсовой работы –закрепление и обобщение знаний полученных при изучении дисциплины«Программирование».
В результате выполнения курсовойработы должны быть получены навыки анализа поставленной задачи, выбора наиболееоптимального алгоритма решения задачи, разработки интерфейса, отладки итестирования программ большого объема.

2.        ВЫПОЛНЕНИЕ ЗАДАНИЯ
 
2.1      Подготовка исходного файла
Сформируем текстовыйдокумент с именем goto.cpp.Содержимое документа возьмем из русифицируемой справки MSDNпо оператору безусловного перехода.
inti, j;
for(i= 0; i
{
 // ...
 if(condition1)
   {
     j = 4;
     goto label1;
   }
 // ...
 for(j = 0; j
 {
   //…
 label1:
   //…
   if(condition2)
     {
       i = 6;
       goto label2;
     }
 }
  // ...
label2:
  // ...
}
2.2      Разработка программы
В средепрограммирования Borland Delphi создадим новое приложение (пункт меню File\ New \ Application).Свойству формы Captionприсвоим значение «Проверка Goto».Разместим на форме визуальные и невизуальныекомпоненты.
Невизуальный компонент– это диалоговое окно выбора файла для открытия. Компонент класса TOpenDialogстановится видимым только в режиме запущенного приложения после вызова метода Execute.Присвоим компоненту имя odFile.
Размещаем на форме трикомпонента класса TButtonс именами buOpen, buProverkabuClose. Обработчик нажатия накнопку buOpen открываетисходный файл (строки 33 — 41) и отображает его содержимое на компоненте Memo1класса TMemo. Свойство Linesэтого компонента содержит набор строк исходного файла.
Кнопка buProverkaвыполняет непосредственную проверку правильности использования безусловногооператора (строки 43 — 94). На первом шаге происходит запись содержимого файлав строковую переменную sFile (строка 48).Затем, при условии что файл не пустой (строка 49), происходит циклический поискподстроки “goto” в переменной sFile(строки 52-54). Удаляется содержимое проверяемого файла до слова “goto”и выделяется имя метки перехода (строка 55). Имя метки должно удовлетворятьтребованию задания имени идентификатора. Для этой проверки используются строки56-77. Затем ищется имя метки и символ «:» — это непосредственный переход наметку. В случае отсутствия такой подстроки выдается сообщение об ошибке (строки78 — 84). В случаи успешной проверки использования одного безусловного переходапроисходит инкрементирование счетчика и новый поиск конструкции goto(строки 85-86). По окончании проверки (в случае отсутствия ошибок) выдаетсячисло найденный инструкций безусловного перехода (строки 88-92).
/>
Рис.1 — Форма врежиме Design
Кнопка buClose(строки 96 — 99) выполняет закрытие программы.

2.3     Листинг программы
 1 unit Unit1; 2 /> 3 interface 4 /> 5 uses 6   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 7   Dialogs, StdCtrls; 8 /> 9 type 10   TForm1 = class(TForm) 11     Memo1: TMemo; 12     buOpen: TButton; 13     buProverka: TButton; 14     lbRezultat: TLabel; 15     odFile: TOpenDialog; 16     buClose: TButton; 17     procedure buOpenClick(Sender: TObject); 18     procedure buProverkaClick(Sender: TObject); 19     procedure buCloseClick(Sender: TObject); 20   private 21     { Private declarations } 22   public 23     { Public declarations } 24   end; 25 /> 26 var 27   Form1: TForm1; 28 /> 29 implementation 30 /> 31 {$R *.dfm} 32 /> 33 procedure TForm1.buOpenClick(Sender: TObject); 34 begin 35    if odFile.Execute then 36     begin 37      Memo1.Lines.Clear; 38      Memo1.Lines.LoadFromFile(odFile.FileName); 39      lbRezultat.Caption:= ''; 40     end; 41 end; 42 /> 43 procedure TForm1.buProverkaClick(Sender: TObject); 44 var 45   sFile, sLabelName: string; 46   i, iKol, j: integer; 47 begin 48    sFile:= Memo1.Lines.Text; 49    if sFile'' then 50     begin 51      iKol:= 0; 52      i:= pos('goto ', sFile); 53      while i0 do 54       begin 55        delete(sFile, 1, i+4); 56        i:= pos(';', sFile); 57        j:= pos(#13, sFile); 58        if ((j0)and(j 96 procedure TForm1.buCloseClick(Sender: TObject); 97 begin 98    Close; 99 end; 100 /> 101 end.
2.4     Запуск приложения
Выполняется нажатиемклавиши F9. После компиляциизапускается программа на выполнение. Окно программы с результатами работыпредставлены на рис.2-5.

/>
Рис.2 – Окнооткрытия файла
 
/>
Рис.3 – Проверкафайла
 

 
/>
Рис.4 – Проверкафайла
 
/>
Рис.5 – Проверкафайла
ПЕРЕЧЕНЬ ССЫЛОК
 
1.        АбрамовВ.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. — М.: Наука, 1988.
2.        ДовгальС.И., Литвинов Б.Ю., Сбитнев А… И. Персональные  ЭВМ: Турбо Паскаль V7.0,объектное программирование, локальные сети. – Киев: Информсиситема сервис,1993.
3.        ЕпанешниковА.М., Епанешникова В.А. Программирование в среде TurboPascal 7.0.-М.: Диалог–МИФИ,1999.
4.        ЗуевЕ.А. Программирование на языке TurboPascal 6.0,7.0. – М.: Радио исвязь, Веста,1993.
5.        КандзюбаС.П., Громов В.Н. Delphi7.Базы данных и приложения. Лекции и упражнения. –К.: Издательство «ДиаСофт», 2001.
6.        КлимоваЛ.М. Pascal 7.0. Практическоепрограммирование. Решение типовых задач. –М.: КУДИУ ОБРАЗ,2000.
7.        МарченкоА. И.,  Марченко Л.А… Программирование в среде TurboPascal 7.0.-К.: Век+,1999.
8.        ФароновВ.В.Turbo Pascal 7.0. Начальный курс. — М.: Нолидж, 2000.

ПРИЛОЖЕНИЯ
ПриложениеА
inti, j;
for(i = 0; i
{
  // ...
  if(condition1)
    {
      j = 4;
      goto label1;
    }
  // ...
  for(j = 0; j
  {
    //…
  label1:
    //…
    if(condition2)
      {
        i = 6;
        goto label2;
      }
  }

ПриложениеБ
 
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J-
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-LE«c:\programfiles\borland\delphi7\Projects\Bpl»
-LN«c:\programfiles\borland\delphi7\Projects\Bpl»
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST

ПриложениеВ
 
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[VersionInfo]
IncludeVerInfo=0
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1049
CodePage=1251
[VersionInfo Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=

ПриложениеГ
programproverka;
uses
 Forms,
 Unit1 in 'Unit1.pas' {Form1};
{$R*.res}
begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.
 

ПриложениеД
 
[ClosedFiles]
File_0=SourceModule,'D:\Projects\DelphiStudio\SKSMiK\ZarPlata\units\UData.pas',0,1,545,15,558,1,0
File_1=SourceModule,'D:\Projects\DelphiStudio\SKSMiK\ZarPlata\units\UTablNU.pas',0,1,681,50,698,1,0
File_2=SourceModule,'D:\Projects\DelphiStudio\SKSMiK\ZarPlata\units\UMain.pas',0,1,148,31,155,1,0
File_3=SourceModule,'D:\Projects\DelphiStudio\SKSMiK\ZarPlata\units\UPerson.pas',0,1,99,34,116,1,0
File_4=SourceModule,'D:\Projects\DelphiStudio\SKSMiK\ZarPlata\units\UFunction.pas',0,1,479,1,492,0,0
File_5=SourceModule,'D:\Projects\DelphiStudio\SKSMiK\ZarPlata\units\UEtalon.pas',0,1,800,40,825,0,0
File_6=SourceModule,'D:\Projects\DelphiStudio\SKSMiK\ZarPlata\units\UCreateAllReport.pas',0,1,406,51,407,0,0
File_7=SourceModule,'D:\Projects\DelphiStudio\SKSMiK\ZarPlata\units\USprNa.pas',0,1,1,17,9,1,0
File_8=SourceModule,'D:\Projects\DelphiStudio\SKSMiK\ZarPlata\units\USprUd.pas',0,1,305,1,308,1,0
File_9=SourceModule,'D:\Projects\DelphiStudio\SKSMiK\ZarPlata\units\USprOtdel.pas',0,1,1,1,1,1,0
[Modules]
Module0=D:\Projects\Delphi\sti\check_goto\Unit1.pas
Count=1
EditWindowCount=1
[D:\Projects\Delphi\sti\check_goto\Unit1.pas]
ModuleType=SourceModule
FormState=1
FormOnTop=0
[C:\ProgramFiles\Borland\Delphi7\Projects\ProjectGroup1.bpg]
FormState=0
FormOnTop=0
[D:\Projects\Delphi\sti\check_goto\proverka.dpr]
FormState=0
FormOnTop=0
[EditWindow0]
ViewCount=1
CurrentView=0
View0=0
CodeExplorer=CodeExplorer@EditWindow0
MessageView=MessageView@EditWindow0
Create=1
Visible=1
State=2
Left=294
Top=140
Width=868
Height=505
MaxLeft=-4
MaxTop=108
MaxWidth=1288
MaxHeight=666
ClientWidth=1280
ClientHeight=632
LeftPanelSize=0
LeftPanelClients=CodeExplorer@EditWindow0
LeftPanelData=00000400010000000C000000436F64654578706C6F72657200000000000000000000000000000000000100000000000000000C000000436F64654578706C6F726572FFFFFFFF
RightPanelSize=0
BottomPanelSize=0
BottomPanelClients=MessageView@EditWindow0
BottomPanelData=00000400010000000B0000004D657373616765566965770000000000000000000000000000000000FFFFFFFF
[View0]
Module=D:\Projects\Delphi\sti\check_goto\Unit1.pas
CursorX=13
CursorY=57
TopLine=64
LeftCol=1
[Watches]
Count=0
[WatchWindow]
WatchColumnWidth=100
WatchShowColumnHeaders=1
Create=1
Visible=0
State=0
Left=0
Top=138
Width=265
Height=638
MaxLeft=-1
MaxTop=-1
ClientWidth=257
ClientHeight=612
TBDockHeight=612
LRDockWidth=257
Dockable=1
[Breakpoints]
Count=0
[AddressBreakpoints]
Count=0
[MainWindow]
Create=1
Visible=1
State=0
Left=0
Top=0
Width=1280
Height=112
MaxLeft=-1
MaxTop=-1
ClientWidth=1272
ClientHeight=78
[ProjectManager]
Create=1
Visible=0
State=0
Left=369
Top=372
Width=438
Height=303
MaxLeft=-1
MaxTop=-1
ClientWidth=430
ClientHeight=277
TBDockHeight=303
LRDockWidth=438
Dockable=1
[CPUWindow]
Create=1
Visible=0
State=0
Left=96
Top=114
Width=959
Height=635
MaxLeft=-1
MaxTop=-1
ClientWidth=951
ClientHeight=601
DumpPane=79
DisassemblyPane=187
RegisterPane=231
FlagPane=64
[AlignmentPalette]
Create=1
Visible=0
State=0
Left=200
Top=107
Width=156
Height=84
MaxLeft=-1
MaxTop=-1
ClientWidth=150
ClientHeight=60
[PropertyInspector]
Create=1
Visible=1
State=0
Left=9
Top=203
Width=274
Height=559
MaxLeft=-1
MaxTop=-1
ClientWidth=266
ClientHeight=533
TBDockHeight=429
LRDockWidth=190
Dockable=1
SplitPos=144
ArrangeBy=Name
SelectedItem=Name
ExpandedItems=
HiddenCategories=
[ObjectTree]
Create=1
Visible=0
State=0
Left=958
Top=125
Width=190
Height=669
MaxLeft=-1
MaxTop=-1
ClientWidth=182
ClientHeight=643
TBDockHeight=290
LRDockWidth=190
Dockable=1
[CodeExplorer@EditWindow0]
Create=1
Visible=0
State=0
Left=0
Top=12
Width=140
Height=459
MaxLeft=-1
MaxTop=-1
ClientWidth=140
ClientHeight=459
TBDockHeight=305
LRDockWidth=140
Dockable=1
[MessageView@EditWindow0]
Create=1
Visible=0
State=0
Left=-100
Top=-534
Width=443
Height=85
MaxLeft=-1
MaxTop=-1
ClientWidth=443
ClientHeight=85
TBDockHeight=85
LRDockWidth=443
Dockable=1
[DockHosts]
DockHostCount=0
 

ПриложениеК
 
objectForm1: TForm1
 Left = 320
 Top = 139
 Width = 520
 Height = 500
 Caption = #1055#1088#1086#1074#1077#1088#1082#1072' Goto'
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = 'MS Sans Serif'
 Font.Style = []
 OldCreateOrder = False
 PixelsPerInch = 96
 TextHeight = 13
 object lbRezultat: TLabel
   Left = 210
   Top = 424
   Width = 52
   Height = 13
   Caption = #1056#1077#1079#1091#1083#1100#1090#1072#1090
 end
 object Memo1: TMemo
   Left = 8
   Top = 48
   Width = 497
   Height = 353
   ScrollBars = ssBoth
   TabOrder = 0
 end
 object buOpen: TButton
   Left = 16
   Top = 8
   Width = 169
   Height = 33
   Caption = #1054#1090#1082#1088#1099#1090#1100' '#1092#1072#1081#1083
   TabOrder = 1
   OnClick = buOpenClick
 end
 object buProverka: TButton
   Left = 16
   Top = 416
   Width = 185
   Height = 33
   Caption = #1055#1088#1086#1074#1077#1088#1082#1072' Goto'
   TabOrder = 2
   OnClick = buProverkaClick
 end
 object buClose: TButton
   Left = 365
   Top = 8
   Width = 137
   Height = 33
   Caption = #1042#1099#1093#1086#1076
   TabOrder = 3
   OnClick = buCloseClick
 end
 object odFile: TOpenDialog
   Filter = 'C++ '#1092#1072#1081#1083'|*.cpp'
   Left = 208
   Top = 16
 end
end

ПриложениеЛ
 
unitUnit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;
type
 TForm1 = class(TForm)
   Memo1: TMemo;
   buOpen: TButton;
   buProverka: TButton;
   lbRezultat: TLabel;
   odFile: TOpenDialog;
   buClose: TButton;
   procedure buOpenClick(Sender: TObject);
   procedure buProverkaClick(Sender: TObject);
   procedure buCloseClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
var
 Form1: TForm1;
implementation
{$R*.dfm}
procedureTForm1.buOpenClick(Sender: TObject);
begin
  if odFile.Execute then
   begin
    Memo1.Lines.Clear;
    Memo1.Lines.LoadFromFile(odFile.FileName);
    lbRezultat.Caption:= '';
   end;
end;
procedureTForm1.buProverkaClick(Sender: TObject);
var
 sFile, sLabelName: string;
 i, iKol, j: integer;
begin
  sFile:= Memo1.Lines.Text;
  if sFile'' then
   begin
    iKol:= 0;
    i:= pos('goto ', sFile);
    while i0 do
     begin
      delete(sFile, 1, i+4);
      i:= pos(';', sFile);
      j:= pos(#13, sFile);
      if ((j0)and(j
       begin
        lbRezultat.Caption:= 'Ошибка:Отсутсвует;';
        lbRezultat.Font.Color:= clRed;
        Exit;
       end;
      sLabelName:= copy(sFile, 1, i-1);
      if not (sLabelName[1] in ['A'..'Z', 'a'..'z'])then
       begin
        lbRezultat.Caption:= 'Ошибка:Неверноеимяметки'+ sLabelName;
        lbRezultat.Font.Color:= clRed;
        Exit;
       end;
      for i:= 2 to length(sLabelName) do
       if not(sLabelName[i] in ['0'..'9', 'A'..'Z', 'a'..'z']) then
        begin
         lbRezultat.Caption:= 'Ошибка:Неверноеимяметки'+ sLabelName;
         lbRezultat.Font.Color:= clRed;
         Exit;
        end;
      i:= pos(sLabelName+':' ,sFile);
      if i=0 then
       begin
        lbRezultat.Caption:= 'Ошибка:Отсутствуетпереходнаметку'+ sLabelName;
        lbRezultat.Font.Color:= clRed;
        Exit;
       end;
      inc(iKol);
      i:= pos('goto ', sFile);
     end;
    if lbRezultat.Caption='' then
     begin
      lbRezultat.Caption:= 'Правильное задание'+ IntToStr(iKol)+ ' инструкций безусловногоперехода';
      lbRezultat.Font.Color:= clNavy;
     end;
   end;
end;
procedureTForm1.buCloseClick(Sender: TObject);
begin
   Close;
end;
end.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.