Разработка программы на языке Free Pascal (IDE Lazarus)

Создание списка функциональных требований к программе, разработка алгоритма работы и его графическое изображение. Использование основного элемента экранной формы разрабатываемого приложения для загрузки файла и редактирования текста, листинг программы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 26.01.2011
Размер файла 1,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Содержание

Введение

1. Постановка задачи

2. Разработка алгоритма программы

3. Разработка экранной формы

4. Листинг программы

5. Запуск приложения

Литература

Введение

Тема курсовой работы «Разработка программы на языке Free Pascal (IDE Lazarus)».

В начале 80-х годов сотрудник фирмы AT&T Bell Laboratories Бьярн Страуструп (Bjarne Siroustrup) разработал язык программирования С++. Этот язык был построен на базе языка программирования С и включал объектно-ориентированные конструкции, такие как классы, производные классы и виртуальные функции, заимствованные из языка simula67. Целью разработки С++ было «ускорить написание хороших программ и сделать этот процесс более приятным для каждого отдельно взятого программиста».

Название С++, которое придумал Рик Маскити (Rick Mascitti) в 1983 году, отражает факт происхождения этого языка от С (вначале он назывался «С с классами»). С момента своего появления С++ получил широкое распространение и завоевал признание многих тысяч профессиональных программистов. В 1989 году Бьярн Страуструп опубликовал вместе с Маргарет Эллис «Справочное руководство но языку С++», послужившее основой для разработки проекта стандарта ANSI С++, разработанного комитетом ANSI X3J16. В начале 90-х годов к работе этого комитета подключился комитет WG21 Международной организации по стандартизации (ISO), и была начата работа по созданию единого стандарта ANSI/ISO С++. Результатом этой работы стал стандарт International Standard for Information Systems -Programming Language С++ (ISO/IEC JTC1/SC22/WG21), опубликованный в начале 1998 года. Большинство новейших компиляторов С++ сейчас в большей или меньшей мере соответствуют этому стандарту. И нет сомнения в том, что в ближайшее время все компиляторы этого языка будут приведены в соответствие стандарту.

Основная цель курсовой работы - закрепление и обобщение знаний полученных при изучении дисциплины «Программирование».

1. Постановка задачи

На первом этапе выполнения курсовой работы необходимо проанализировать задание и определить перечень вопросов, которые будут решаться в данной работе. Основное назначение этого этапа - создание списка функциональных требований к программе, то есть определение того, что, собственно, будет выполнять разрабатываемая программа, не рассматривая конкретную реализацию этих функций. Для программы постановка задачи является самым высшим уровнем абстракции, или самым общим представлением требований к ней.

Разбираем суть задания и на этой основе разрабатываем алгоритм программы, определяя в каждой матрице количество «особых» и упорядочиваем элементы строк по убыванию и лишь после этого находим матрицу, получающуюся перестановкой столбцов, согласно заданию.

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

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

Задание

Исходные данные - файл с текстом программы на языке С++. Проверить правильность написания в программе инструкции "While". Программа должна быть разработана на языке Free Pascal (IDE Lazarus).

Исходный файл:

#include <iostream> // cin, cout

#include <clocale> // поддержка русского языка

#include <conio.h> // _getch()

#include <stdlib.h> // поддержка функции очистки экрана system("cls")

using namespace std;

int main()

{

setlocale(LC_CTYPE,"Russian"); // установка русского языка

char act; // переменная для хранения ввода пользователя

int ch; // ввод пользователя приведённый к типу int

int x = 0; // две переменные для хранения координат пользователя

int y = 0;

char map[15][20]; // двумерный массив для хранения игровой карты

// блок инициализации массива

// внешний цикл отвечает за строки

for (int i = 0; i< 15; i++)

{

// внутренний цикл отвечает за столбцы

for (int j = 0; j< 20; j++)

{

map[i][j] = ' ';

}

}

map[0][0] = 'Т'; // помещаем игровой персонаж в начало координат

while (1)

{

system("cls"); // вызов функции очистки экрана

for (int i = 0; i < 15; i++)

{

for (int j = 0; j < 20; j++)

{

cout << map[i][j]; // в циклах поэлементно выводится массив

}

cout << "\n"; // переход на новую строку после каждого "ряда"

}

act = _getch();

ch = static_cast<int>(act);

switch (static_cast<int>(act))

{

case -32:

break;

case 27:

exit(0);

break;

case 75:

map[x][y] = ' '; // "Убираем" объект со старой координаты

y--; // изменяем координаты

map[x][y] = 'Т'; // "рисуем" объект на новом месте

break;

case 77:

map[x][y] = ' ';

y++;

map[x][y] = 'Т';

break;

case 80:

map[x][y] = ' ';

x++;

map[x][y] = 'Т';

break;

case 72:

map[x][y] = ' ';

x--;

map[x][y] = 'Т';

break;

}

} // конец цикла while

_getch();

return 0;

}

2. Разработка алгоритма программы

Перед тем как начать составлять программу, надо предварительно придумать и продумать (лучше всего, записать на бумаге) алгоритм ее работы, представляющий собой строгое, формальное, не допускающее неоднозначностей и двусмысленностей описание процесса решения задачи. После того как алгоритм готов, на его основе и составляется (кодируется) программа.

Процесс создания алгоритма - самый важный. Если здесь допущены ошибки, то устранить их на этапе кодирования весьма трудно.

Алгоритм работы программы заключается в следующем:

1) На начальном этапе программа выполняет открытие и загрузку текстового файла.

2) Далее в цикле (пока не достигнут конец файла) выполняется подсчет открывающих и закрывающих операторных скобок.

3) Если к текущей строке найден "while", то необходимо проверить задание условия, которое должно заключаться в круглых скобках

4) После условия цикла должна стоять открывающая операторная скобка. Если ее нет - то это также ошибка

5) После окончания проверки задания "while" выполняется сравнение числа открывающих и закрывающих операторных скобок. Если равенство не выполняется, то выдается сообщение об ошибке.

Схема алгоритма программы представлена на рисунке 1.

В качестве графического изображения используются специальные символы в соответствии с ГОСТами ЕСПД.

Рисунок 1. - Схема алгоритма программы

3. Разработка экранной формы

программа алгоритм приложение файл листинг

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

Для открытия файла размещаем на форме компонент Button1 класса ТButton и диалоговое окно открытия файла OpenDialog1 класса TOpenDialog.

Для сохранения содержимого Memo1 в текстовый файл размещаем на форме компонент Button3 класса ТButton и диалоговое окно сохранения файла SaveDialog1 класса TSaveDialog.

Размещаем кнопку Button2 класса ТButton, нажатие на которую будет закрывать программу.

Проверка правильности задания оператора while будет выполнятся нажатием на кнопку Button4 класса ТButton. Экранная форма приложения в режиме дизайна представлена на рисунке 2.

Рисунок 2 - Разработка формы

4. Листинг программы

unit Unit1;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,

StdCtrls;

type

{ TForm1 }

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Memo1: TMemo;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

private

{ private declarations }

public

{ public declarations }

end;

var

Form1: TForm1;

implementation

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);

begin

// открытие файла с текстом программы

if OpenDialog1.Execute then

Memo1.Lines.LoadFromFile(OpenDialog1.FileName);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

// закрытие программы

close;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

// сохранение измененного текста программы с новый файл

if SaveDialog1.Execute then

Memo1.Lines.SaveToFile(SaveDialog1.FileName);

end;

procedure TForm1.Button4Click(Sender: TObject);

var

s, s1: string;

i, iKolWhile, j, iKolSkobka: integer;

begin

// проверка на то, что если файл не загружен то проверять нечего

if Memo1.Lines.Count=0 then

begin

ShowMessage('Отсутствует текст программы!');

exit;

end;

// начинаем проверку с первой строки

s:= Memo1.Lines[0];

i:= 0;

iKolWhile:= 0;

iKolSkobka:= 0;

while s<>'konec' do

begin

if pos('while', s)<>0 then

begin

// найден while

inc(iKolWhile);

s1:= s;

j:= pos('while', s1);

delete(s1, 1, j);

j:= pos(' ', s1);// поиск пробела после while

delete(s1, 1, j);

if s1='' then

begin

ShowMessage('Отсутствует условие в while'+#13+ s);

exit;

end;

if s1[1]<>'(' then

begin

ShowMessage('Ошибка в условии while'+#13+ s);

exit;

end;

j:= pos(')', s1);

if j=0 then

begin

ShowMessage('Ошибка в условии while'+#13+ s);

exit;

end;

// поиск операторной скобки {

delete(s1, 1, j);

if s1='' then

begin

inc(i);

if i<= Memo1.Lines.Count-1 then

begin

s:= Memo1.Lines[i];

s1:= s;

if s1[1]<>'{' then

begin

ShowMessage('Не найдена { в while'+#13+ s);

exit;

end

else

inc(iKolSkobka);

inc(i);

if i<= Memo1.Lines.Count-1 then

s:= Memo1.Lines[i]

else

s:= 'konec'; // признак конца файла

end

else

begin

s:= 'konec'; // признак конца файла

ShowMessage('Достигнут конец файла. Не найдена { в while'+#13+ s);

exit;

end;

end;

end;

// подсчет открывающих и закрывающих операторных скобок

if pos('{', s)<>0 then

inc(iKolSkobka);

if pos('}', s)<>0 then

dec(iKolSkobka);

// чтение следующей строки (если не конец текста)

inc(i);

if i<= Memo1.Lines.Count-1 then

s:= Memo1.Lines[i]

else

s:= 'konec'; // признак конца файла

end;

if iKolSkobka>1 then

ShowMessage('Отсутствуют закрывающие операторные скобки')

else

ShowMessage('Найдено while'+ #13+ IntToStr(iKolWhile)+#13+'Ошибок нет!');

end;

initialization

{$I Unit1.lrs}

end.

5. Запуск приложения

Рисунок 3. - Окно программы

Рисунок 4. - Окно открытия текстового файла

Рисунок 5. - Окно программы с загруженными данными

Рисунок 6. - Окно сохранения текстового файла

Рисунок 7. - Результат проверки - Ошибок нет

Рисунок 8. - Результат проверки - Ошибка в условии выполнения

цикла (удалили закрывающую скобку)

Рисунок 9. - Результат проверки - Ошибка внутри цикла

(после while должна следовать открывающая операторная скобка)

Рисунок 10. ? Результат проверки - Ошибка в программе (количество

открывающих операторных скобок не соответствует количеству

закрывающих скобок)

Литература

1. Баженова И.Ю. С++ && Visual Studio NET. Самоучитель программиста. - М.: КУДИЦ-ОБРАЗ, 2003. - 448 с.

2. Гилберт С., Макартни Б. Самоучитель Visual C++ 6 в примерах. - К.: ООО "ТИД ДС", 2003. - 496 с.

3. Касаткин А.И., Вальвачев А.Н. Профессиональное программирование на языке Си: От Турбо Си к С++. - Мн.: Вышэйшая школа, 1992. - 240 с.

4. Николенко Д.В. Самоучитель по Visual C++. - СПб.: Наука и техника, 2001. ? 368 с.

5. Павловская Т.А. С/С++. Программирование на языке высокого уровня. - СПб.: Питер, 2003. - 461 с.

6. Паппас К., Мюррей У. Программирование на С и С++. - К.: BHV, 2000. - 320 c.

7. Савич У. С++ во всей полноте. - К.: BHV; СПб.: Питер, 2005. 784 с.

8. Холзнер С. Visual C++: Учебный курс. - СПб.: Питер, 2000. - 576 с.

9. Уэйт М., Прата С., Мартин Д. Язык Си. Руководство для начинающих. - М.: Мир, 1988. - 512 с.

10. Шиманович Е.Л. C/C++ в примерах и задачах. - Минск: Новое знание, 2004, - 528 с.

11. Шмидский Я.К. Программирование на языке С/С++. Самоучитель. - М.: Вильямс, 2004. - 352 с.

Размещено на Allbest.ru


Подобные документы

  • Разработка программы на языке Pascal. Описание переменных. Действия, которые должна выполнить программа согласно выбранного алгоритма. Детализация графической части программы. Листинг и тестирование программы. Вывод массива данных на экран монитора.

    контрольная работа [360,4 K], добавлен 13.06.2012

  • Разработка и тестирование программы на языке Pascal для поиска, вывода на экран и сохранения в файл списка книг с фамилиями авторов в алфавитном порядке, изданных после 2012 года. Разработка алгоритма и его описание. Инструкции по эксплуатации приложения.

    курсовая работа [903,0 K], добавлен 13.06.2013

  • Разработка программы для редактирования в оперативной памяти текстовых ASCII-файлов размером не более 40 килобайт, на языке программирования Pascal в среде разработки Turbo Pascal 6.0. Инструкция для пользователя. Листинг разработанной программы.

    курсовая работа [21,3 K], добавлен 26.11.2011

  • Решения задачи графическим и программным способами. Описание алгоритма решения графическим способом, укрупненная схема алгоритма. Ввод элементов двумерного массива, вывод преобразованного массива, разработка программы на языке pascal, листинг программы.

    курсовая работа [115,5 K], добавлен 22.05.2010

  • Переменные типа integer, real, их функции. Общее понятие о массиве, файлы для Pascal. Информационный и информанизационный набор списка. Реализация и тестирование программы. Выбор базы данных, внесение имени, меню. Блок-схема алгоритма, листинг программы.

    курсовая работа [306,0 K], добавлен 04.02.2013

  • Разработка программы тестирования студентов по MS PowerPoint с кодом на языке Delphi. Создание алгоритма для решения функциональных требований задачи. Описание переменных, вспомогательных процедур, входных и выходных данных для реализации программы.

    курсовая работа [1,5 M], добавлен 21.09.2010

  • Программный комплекс для разработки программы транслирующей программу с языка Pascal на язык С++. Построение логической и арифметической модели решения. Разработка компилятора для программы. Методы отладки программы и создание для нее документации.

    курсовая работа [742,6 K], добавлен 03.07.2011

  • Разработка тестирующей программы для проверки знаний студента по математике на языке программирования Turbo Pascal с использованием подпрограмм "Vvod" (создание файла с вопросами и ответами) и "Initialization" (запуск тестирование и инициализация файла).

    курсовая работа [137,7 K], добавлен 28.03.2010

  • Создание на языке C базы данных "Стадионы города", требования к программе. Осуществление загрузки базы данных в массив и вывод главного меню в основной программе. Алгоритм работы программы в виде блок-схемы. Описание функций программы и ее листинг.

    курсовая работа [183,6 K], добавлен 06.10.2010

  • Описание алгоритма решения задачи графическим способом. Вывод элементов массива. Описание блоков укрупненной схемы алгоритма на языке Pascal. Листинг программы, а также ее тестирование. Результат выполнения c помощью ввода различных входных данных.

    контрольная работа [150,4 K], добавлен 03.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.