Сравнительный анализ языков программирования
Изучение организации диалоговой программы и закрепления основных элементов программирования на языке Паскаль и Си (Delphi, C++ Builder). Описание представления информации в программах на языках высокого уровня. Сравнительная характеристика Delphi и C++.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 27.02.2015 |
Размер файла | 3,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Пояснительная записка к курсовой работе
Сравнительный анализ языков программирования
Оглавление
- Введение
- 1. Теоретическая часть
- 1.1 Определение языка программирования С++
- 1.2 Определение языка программирования Delphi
- 1.3 Сравнительная характеристика языков Delphi и C++
- 1.4 Сравнение указанных элементов языков согласно варианту
- 1.4.1 Файлы и потоки в C++
- 1.4.2 Файлы и потоки в Delphi
- 2. Практическая часть
- 2.1 Постановка задачи
- 2.2 Спецификация программы
- 2.3 Блок-схема алгоритма решения задачи
- 2.4 Схема иерархии модулей
- 2.5 Спецификации подпрограмм каждого модуля
- 2.6 Инструкция пользователя
- 2.7 Тестирование
- 2.8 Результаты тестирования
- Заключение
- Список литературы
- Приложения
Введение
Язымк программимрования -- формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под её управлением.
Цель курсовой работы:
1) организация диалоговой программы и закрепление в процессе ее создания всех основных элементов программирования на языке Паскаль и Си (Delphi, C++ Builder).
2) закрепление навыков представления информации в программах на языках высокого уровня;
3) демонстрация полученных в ходе изучение дисциплины знаний, умений и навыков;
4) приобретение профессиональных компетенций.
1. Теоретическая часть
1.1 Определение языка программирования С++
Бьерн Страуструп высвободил объектно-ориентированный потенциал С путем перенесения возможностей классов Simula 67 в С. Первоначально новый язык носил имя "С с классами" и только потом стал называться C++. Язык C++ достиг популярности, будучи разработанным в Bell Labs, позже он был перенесен в другие индустрии и корпорации. Сегодня это один из наиболее популярных языков программирования в мире. C++ наследует как хорошие, так и плохие стороны С.
Бьерн Страуструп:"Я придумал C++, записал его первоначальное определение и выполнил первую реализацию. Я выбрал и сформулировал критерии проектирования C++, разработал его основные возможности и отвечал за судьбу предложений по расширению языка в комитете по стандартизации C++, - пишет автор самого популярного языка программирования. - Язык C++ многим обязан языку C, и язык C остается подмножеством языка C++ (но в C++ устранены несколько серьезных брешей системы типов C). Я также сохранил средства C, которые являются достаточно низкоуровневыми, чтобы справляться с самыми критическими системными задачами. Язык C, в свою очередь многим обязан своему предшественнику, BCPL; кстати, стиль комментариев // был взят в C++ из BCPL. Другим основным источником вдохновения был язык Simula67. Концепция классов (с производными классами и виртуальными функциями) была позаимствована из него. Средства перегрузки операторов и возможность помещения объявлений в любом месте, где может быть записана инструкция, напоминает Algol68.
Название C++ придумал Рик Масситти. Название указывает на эволюционную природу перехода к нему от C. "++" - это операция приращения в C. Чуть более короткое имя C+ является синтаксической ошибкой; кроме того, оно уже было использовано как имя совсем другого языка. Знатоки семантики C находят, что C++ хуже, чем ++C. Названия D язык не получил, поскольку он является расширением C и в нем не делается попыток исцеляться от проблем путем выбрасывания различных особенностей... Изначально C++ был разработан, чтобы автору и его друзьям не приходилось программировать на ассемблере, C или других современных языках высокого уровня. Основным его предназначением было сделать написание хороших программ более простым и приятным для отдельного программиста. Плана разработки C++ на бумаге никогда не было; проект, документация и реализация двигались одновременно. Разумеется, внешний интерфейс C++ был написан на C++. Никогда не существовало "Проекта C++" и "Комитета по разработке C++". Поэтому C++ развивался и продолжает развиваться во всех направлениях, чтобы справляться со сложностями, с которыми сталкиваются пользователи, а также в процессе дискуссий автора с его друзьями и коллегами".
В языке С++ полностью поддерживаются принципы объектно-ориентированного программирования, включая три кита, на которых оно стоит: инкапсуляцию, наследование и полиморфизм. Инкапсуляция в С++ поддерживается посредством создания нестандартных (пользовательских) типов данных, называемых классами. Язык С++ поддерживает наследование. Это значит, что можно объявить новый тип данных (класс), который является расширением существующего.
Хотя язык С++ справедливо называют продолжением С и любая работоспособная программа на языке С будет поддерживаться компилятором С++, при переходе от С к С++ был сделан весьма существенный скачок. Язык С++ выигрывал от своего родства с языком С в течение многих лет, поскольку многие программисты обнаружили, что для того, чтобы в полной мере воспользоваться преимуществами языка С++, им нужно отказаться от некоторых своих прежних знаний и приобрести новые, а именно: изучить новый способ концептуальности и решения проблем программирования. Перед тем как начинать осваивать С++, Страуструп и большинство других программистов, использущих С++ считают изучение языка С необязательным.
C++ в настоящее время считается господствующим языком, используемым для разработки коммерческих продуктов, 90% игр пишутся на С++ с прменением DirectX.
1.2 Определение языка программирования Delphi
Delphi (Дельфи) -- Среда программирования, использующая язык Object Pascal, разработанный фирмой Borland и изначально реализованный в её пакете Borland Delphi, от которого и получил в 2003 году своё нынешнее название. По сути является наследником языка Pascal с объектно-ориентированными расширениями.Свою историю язык Object Pascal ведет с первых Turbo Pascal`ей разработанных Никлаусом Виртом.
Язык Pascal, полностью процедурный язык, был предложен Н. Виртом в конце 70-х годов как хорошо структурированный учебный язык. Расширения, привнесенные в язык компанией Borland, преследовали две основные цели:
1) упрощение обработки в языке структур, представляющих наиболее распространенные типы данных строки и файлы (например, в язык был внесен новый тип данных string);
2) реализация в языке основных возможностей объектно-ориентированных языков программирования.
Последнее нововведение потребовало серьезной доработки синтаксиса языка. В него были внесены новые ключевые слова, синтаксические конструкции и типы данных. Однако предложенный вариант языка нельзя признать удачным, хотя бы потому, что в нем не полностью реализованы все механизмы объектно-ориентированного программирования. Например, отсутствуют такие мощные средства, как исключения и шаблоны. Есть и другие сложности в использовании языка.
Pascal был уникальным в своём роде - он имел самый быстрый компилятор в мире, да и в нем впервые была разработана технология создания платформенно независимых программ, которая нашла широкое применение в таком языке, как Java. Своё имя он получил в честь великого французкого физика Паскаля. Позднее, разработкой Pascal`ей занялась компания Borland, с помощью которой Pascal встал на серийное производство. надо заметить, что кроме Turbo Pascal компанией выпускался Borland Pascal, который выходил в свет несколько позднее, чем Turbo Pascal, но в отличие от него обладал большими способностями, как то различные режимы компиляции программы, более расширенный набор функций. Так, версия за версией было выпущенно семь Turbo и Borland Pascal`ей.
С появлением Windows у Pascal`я появилась новая разновидность - Turbo и Borland Pascal for Windows. Данная программа была не чуть не лучше обыкновенного блокнота, разве что только цифры отображала синим. Но время шло, требования к качеству оформления программ росли, а языки программиравания оставались всё теми же - Dos`овскими. И вот, наконец, компанией Microsoft был совершен переворот в области прикладного программирования - ими впервые была создана визуальная система разработки прикладных программ, которую они реализовали в Visual Basic. К новому стандарту стали приобщать все языки программирования, не избежал своей участи и Pascal. В тот момент, когда разработчики Pascal`я в компании Borland наконец добрались до него - находился он довольно в запущенном состоянии. Было пересмотрено и переработано множество функций, добавленно, а вернее сказать создано, многое. И в итоге внесения оказались столь колоссальными, что разработчики создали, можно сказать, новый язык программирования. Своё имя новая система (Delphi) получила в честь древнегреческого города Дельфы. Название было выбрано не спроста: город Дельфы связан с именем бога мудрости и покровителем искусств Аполона. Согласно легенде главное святилище Аполона находилось именно в этом городе. Его жрицы-сивиллы изрекали пророчества желающим узнать свою судьбу. Вот что отметил руководитель исследовательной группы по разработке системы Delphi Чак Язджевски: "Имя Delphi было предложено Денни Торпом во время одной мозговой атаки. Мы хотели, чтобы в имени системы отразились уникальные способности продукта к работе с базами данных, и Delphi как нельзя лучше перекликается с таким заслуженным именем в этой области, как Oracle, по крайней мере для тех, кому сочетание "Дельфийский Оракл" о чем-то говорит".
Так каждый год появлялась новая версия Delphi, но после пятой что-то случилось и новая версия не появилась в срок. Оказалось, что параллельно с разработкой новой версии Delphi, велась разработка нового, Delphi-подобного языка программирования для Linux. Новый продукт получил название Kylix. Delphi оказал огромное влияние на создание концепции языка C# для платформы .NET. Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга, одного из ведущих разработчиков Дельфи, из компании Borland Ltd. в Microsoft Corp. Версия 1 была предназначена для разработки под 16-ти разрядную платформу Win16; Версии со второй компилируют программы под 32-х разрядную платформу Win32; Вместе с 6-й версией Delphi вышла совместимая с ним по языку и библиотекам среда Kylix, предназначенная для компиляции программ под операционную систему Linux; Версия 8 способна генерировать байт-код исключительно для платформы .NET. Это первая среда, ориентированная на разработку мультиязычных приложений (лишь для платформы .NET); Последующие версии (обозначаемые годами выхода, а не порядковыми номерами, как это было ранее) могут создавать как приложения Win32, так и байт-код для платформы .NET; Delphi for .NET -- среда разработки Delphi, а так же язык Delphi (Object Pascal), ориентированные на разработку приложений для .NET. Первая версия полноценной среды разработки Delphi для .NET -- Delphi 8. Она позволяла писать приложения только для .NET.
В настоящее время, в Delphi 2006, можно писать приложения для .NET используя стандартную библиотеку классов .NET, VCL для .NET. Среда также позволяет писать NET-приложения на C# и Win32-приложения на C++. Delphi 2006 содержит функции для написания обычных приложений с использованием билиотек VCL и CLX. Delphi 2006 поддерживает технологию MDA с помощью ECO (Enterprise Core Objects) версии 3.0. В марте 2006 года компания Borland приняла решение о прекращении дальнейшего совершенствования интегрированных сред разработки JBuilder, Delphi и C++Builder по причине убыточности этого направления. Планируется продажа IDE-сектора компании. Группа сторонников свободного программного обеспечения организовала сбор средств для покупки у Borland прав на среду разработки и компилятор Однако в ноябре того же года было принято решение отказаться от продажи IDE бизнеса. Тем не менее, разработкой IDE продуктов теперь будет заниматься новая компания -- CodeGear, которая будет финансово полностью подконтрольна Borland. Borland продолжил развитие IDE систем под именем Turbo: Turbo Delphi, Turbo Delphi for .NET, Turbo C#, Turbo C++. А в марте 2007 года CodeGear порадовала пользователей обновленной линейкой продуктов Delphi 2007 for Win32 и выходом совершенно нового продукта Delphi 2007 for PHP. В России Borland Delphi появляется в конце 1993 г. и сразу же завоевывает широкую популярность. Новые версии выходят практически каждый год. В них реализуются все новые мастера, компоненты и технологии программирования. Действительно, процесс разработки в Delphi предельно упрощен. В первую очередь это относится к созданию интерфейса, на который уходит 80% времени разработки программы. Вы просто помещаете нужные компоненты на поверхность Windows-окна (в Delphi оно называется формой) и настраиваете их свойства с помощью специального инструмента (Object Inspector). С его помощью можно связать события этих компонентов (нажатие на кнопку, выбор мышью элемента в списке и т.д.) с кодом его обработки - и вот простое приложение готово. Причем разработчик получает в свое распоряжение мощные средства отладки (вплоть до пошагового выполнения команд процессора), удобную контекстную справочную систему (в том числе и по Microsoft API), средства коллективной работы над проектом, всего просто не перечислить. Вы можете создавать компоненты ActiveX без использования Microsoft IDL, расширять возможности web-сервера (скрипты на стороне сервера), практически ничего не зная об HTML, XML или ASP. Можно создавать распределенные приложения на базе СОМ и CORBA, Интернет- и intranet-приложения, используя для доступа к данным Borland DataBase Engine, ODBC-драйверы или Microsoft ADO. Появившаяся, начиная с Delphi 3, поддержка многозвенной технологии (multi-tiered) доступа к данным позволяет создавать масштабируемые приложения (относительно слабо зависящие от сервера БД) за счет перенесения методов обработки информации (бизнес-правил) на среднее звено.
Как уже говорилось ранее, в Delphi используется язык Object Pascal, который постоянно расширяется и дополняется Borland. Язык в полной мере поддерживает все требования, предъявляемые к объектно-ориентированному языку программирования. Как и положено строго типизированному языку, классы поддерживают только простое наследование, но зато интерфейсы могут иметь сразу несколько предков. К числу особенностей языка следует отнести поддержку обработки исключительных ситуаций (exceptions), а также перегрузку методов и подпрограмм (overload) в стиле C++.
К числу удачных, на взгляд автора, относится также поддержка длинных строк в формате WideChar и AnsiChar. Последний тип (AnsiString) позволяет использовать все прелести динамического размещения информации в памяти без всяких забот о ее выделении и сборке мусора Delphi делает это автоматически. Для поклонников свободного стиля программирования имеются открытые массивы, варианты и вариантные массивы, позволяющие размещать в памяти все, что душе угодно и смешивать типы данных. Вы можете создавать свои собственные компоненты, импортировать ОСХ-компоненты, создавать шаблоны проектов и мастеров, создающих заготовки проектов. Мало того, Delphi предоставляет разработчику интерфейс для связи ваших приложений (или внешних программ) с интегрированной оболочкой Delphi (IDE). Таким образом, вы можете использовать Delphi для создания как самых простых приложений, на разработку которых требуется 2-3 часа, так и серьезных корпоративных проектов, предназначенных для работы десятков и сотен пользователей. Причем для этого можно использовать самые последние веяния в мире компьютерных технологий с минимальными затратами времени и сил.
Одна из самых последних новостей от Inprise обещает, что в ближайшем будущем вы сможете переносить приложения, разработанные в Delphi, на платформу Linux.
1.3 Сравнительная характеристика языков Delphi и C++
Данные языки программирования можно различать:
1) по структуре программы
Структура программ на Delphi и C++ похожа, в особенности еще и потому, что использовала я продукты одной и той же компании Borland: программа разделяется на заголовочную часть, раздел описаний и тело программы, состоящее из функций. В C++ нет четкого разделения на заголовочную часть и раздел описаний, т.к. переменные можно объявлять, в отличие от Delphi, прямо в теле программы, что является, бесспорно, плюсом, хотя и небольшим. Кроме того, в С++ нет четкого разделения на функции и процедуры, как в Паскале, т.к. любая процедура представляется как функция, которая не возвращает никакого значения.
2) по типам данных и их описанию
Как уже было сказано, в С++ переменные можно объявлять, в отличие от Delphi, прямо в теле программы, что упрощает процесс понимания исходного кода, а также добавляет удобства программисту. Типы данных в С++ и Delphi похожи, в большей степени зависят от версии компилятора. Фирма Borland старается как можно более унифицировать типы данных в компиляторе С++ и Delphi Оба языка являются объектно-ориентированными (опять же, это зависит от компилятора). Оба языка поддерживают большие объемы данных, например, массивы с большим количеством элементов.
3) по описанию основных операторов
Если взять, например операторы ввода-вывода на экран, то мы уже тут увидим принципиальное различие между этими двумя языками. В Паскале ввод-вывод максимально упрощается, предлагая программисту основные операции (чтение-вывод строки, чисел и т.д.). В Си же операции ввода-вывода являются скорее универсальным, чем удобным инструментом, ориентированным скорее на профессионала, чем на новичка.
4) по технологии создания программ
Учитывая то, что оба языка предоставляют сравнимые фундаментальные возможности (объектно-ориентированный подход, работа с большими объемами данных, возможность низкоуровневого программирования), то к ним применимы одинаковые технологии создания программ: структурное программирование, объектно-ориентированное программирование.
1.4 Сравнение указанных элементов языков согласно варианту
Задание: Файлы. Потоки. Стандартные и нестандартные.
1.4.1 Файлы и потоки в C++
Файлом называют способ хранения информации на физическом устройстве. Файл -- это понятие, которое применимо ко всему -- от файла на диске до терминала.
В C++ отсутствуют операторы для работы с файлами. Все необходимые действия выполняются с помощью функций, включенных в стандартную библиотеку. Они позволяют работать с различными устройствами, такими, как диски, принтер, коммуникационные каналы и т.д. Эти устройства сильно отличаются друг от друга. Однако файловая система преобразует их в единое абстрактное логическое устройство, называемое потоком.
Текстовый поток -- это последовательность символов. При передаче символов из потока на экран, часть из них не выводится (например, символ возврата каретки, перевода строки).
Двоичный поток -- это последовательность байтов, которые однозначно соответствуют тому, что находится на внешнем устройстве.
Организация работы с файлами средствами C
Объявление файла: FILE *идентификатор;
Пример: FILE *f;
Открытие файла: fopen(имя физического файла, режим доступа)
Режим доступа -- строка, указывающая режим открытия файла файла и тип файла
Типы файла: бинарный (b); текстовый (t)
Значения и описания:
r Файл открывается только для чтения
w Файл открывается только для записи. Если соответствующий физический файл существует, он будет перезаписан
a Файл открывается для записи в конец (для дозаписи) или создается, если не существует
r+ Файл открывается для чтения и записи.
w+ Файл открывается для записи и чтения. Если соответствующий физический файл существует, он будет перезаписан
a+ Файл открывается для записи в конец (для дозаписи) или создается, если не существует
Например
f = fopen(s, "wb");
k = fopen("h:\ex.dat", "rb");
Неформатированные файловый ввод-вывод:
Запись в файл: fwrite(адрес записываемой величины, размер одного экземпляра, количество записываемых величин, имя логического файла);
Например: fwrite(&dat, sizeof(int), 1, f);
Чтение из файла : fread(адрес величины, размер одного экземпляра, количество считываемых величин, имя логического файла);
Например: fread(&dat, sizeof(int), 1, f);
Закрытие файла: fclose(имя логического файла);
Форматированный файловый ввод-вывод
1) Функции fgetc() и fputc() позволяют соттветственно осуществить ввод-вывод символа.
2) Функции fgets() и fputs() позволяют соттветственно осуществить ввод-вывод строки.
3) Функции fscanf() и fprintf() позволяют соттветственно осуществить форматированный ввод-вывод и аналогичный соответствующим функиям форматированного ввода-вывода, только делают это применительно к файлу.
Файловый ввод-вывод с использованием потоков
Библиотека потокового ввода-вывода: fstream
Связь файла с потоком вывода: ofstream имя логического файла;
Связь файла с потоком ввода: ifstream имя логического файла;
Открытие файла: имя логического файла.open(имя физического файла);
Закрытие файла: имя логического файла.close();
1.4.2 Файлы и потоки в Delphi
Работа с файлами в Delphi.
Технология работы с файлами в системе Delphi требует определённого порядка действий:
Прежде всего файл должен быть открыт. Система следит, чтобы другие приложения не мешали работе с файлом. При этом определяется, в каком режиме открывается файл - для изменения или только считывания информации. После открытия файла в программу возвращается его идентификатор, который будет использоваться для указания на этот файл во всех процедурах обработки.
Начинается работа с файлом. Это могут быть запись, считывание, поиск и другие операции.
Файл закрывается. Теперь он опять доступен другим приложениям без ограничений. Закрытие файла гарантирует, что все внесённые изменения будут сохранены, так как для увеличения скорости работы изменения предварительно сохраняются в специальных буферах операционной системы.
В Delphi реализовано несколько способов работы с файлами. Познакомимся со классическим способом, связанным с использованием файловых переменных. Файловая переменная вводится для указания на файл. Делается это с помощью ключевого слова File:
var F: File;
Описанная таким образом файловая переменная считается нетипизированной, и позволяет работать с файлами с неизвестной структурой. Данные считываются и записываются побайтно блоками, размер которых указывается при открытии файла, вплоть от 1 байт.
Но чаще используются файлы, состоящие из последовательности одинаковых записей. Для описания такого файла к предыдущему описанию добавляется указание типа записи:
var F: File of тип_записи;
В качестве типа могут использоваться базовае типы, или создаваться свои. Важно только, чтобы для типа был точно известен фиксированный размер в байтах, поэтому, например, тип String в чистом виде применяться не может, а только в виде String[N].
Данные, считанные из файла или записываемые в файл, содержатся в обычной переменной, которая должна быть того же типа, что и файловая. Поэтому сначала в программе лично я описываю нужный тип, а затем ввожу две переменные этого типа - файловую и обычную:
Для текстовых файлов тип файловой переменной в этом случае TextFile, а тип обычной - String.
Для открытия файла нужно указать, где он расположен. Для этого файловая переменная должна быть ассоциирована с нужным файлом, который определяется его адресом. Адрес файла может быть абсолютным, с указанием диска и каталогов ('C:\Мои документы\Мои рисунки\FileName.ini'), или относительным, тогда он создаётся в папке с .exe файлом программы. Для задания относительного адреса достаточно указать имя файла с нужным расширением. Делается это оператором AssignFile :
AssignFile(SaveF, 'C:\Мои документы\Мои рисунки\FileName.ini');
AssignFile(SaveF, 'FileName.ini');
Теперь файл должен быть открыт.
Открытие файла оператором Rewrite приведёт воссозданию файла заново, т.е. существующий файл будет без предупреждения уничтожен, и на его месте будет создан новый пустой файл заданного типа, готовый к записи данных. Если же файла не было, то он будет создан.
Открытие файла оператором Reset откроет существующий файл к считыванию или записи данных, и его указатель будет установлен на начало файла :
Rewrite(SaveF);
Reset(SaveF);
Каждый из этих операторов может иметь второй необязательный параметр, имеющий смысл для нетипизированных файлов, и указывающий длину записи нетипизированного файла в байтах:
Rewrite(SaveF, 1);
Reset(SaveF, 1);
Чтение файла производится оператором Read :
Read(SaveF, SaveV);
Запись в файл производится оператором Write :
Write(SaveF, SaveV);
При этом чтение и запись производится с текущей позиции указателя, затем указатель устанавливается на следующую запись. Можно проверить, существует ли нужный файл, оператором FileExists :
if FileExists('FileName.ini')
then Read(SaveF, SaveV);
Принудительно установить указатель на нужную запись можно оператором Seek(SaveF, N), где N - номер нужной записи, который, как и почти всё в программировании, отсчитывается от нуля:
Seek(SaveF, 49); - установка указателя на 50-ю запись.
При последовательном чтении из файла рано или поздно будет достигнут конец файла, и при дальнейшем чтении произойдёт ошибка. Проверить, не достигнут ли конец файла, можно оператором EOF (аббревиатура End Of File), который равен true, если прочитана последняя запись и указатель находится в конце файла:
while (not EOF(SaveF)) do
Read(SaveF, SaveV);
Для текстовых файлов вместо Read и Write используются операторы Readln и Writeln, умеющие определять конец строки. В коментариях приведена процедура чтения текстового файла.
Оператор Truncate(SaveF) позволяет отсечь (стереть или, если хотите, удалить) все записи файла, начиная от текущей позиции указателя, и до конца файла.
В конце работы с файлом его необходимо закрыть. Это делается оператором CloseFile(SaveF);
Потоки в Delphi
Потоки в Delphi выполняют функцию имитации псевдопараллельной работы приложения. Как известно, для организации многозадачности операционная система выделяет каждому приложению, выполняющемуся в настоящий момент, определённые кванты времени, длина и количество которых определяется его приоритетом. Поэтому объём работы, который приложение может выполнить, определяется тем, сколько таких квантов оно сможет получить в единицу времени. Для операционной системы каждый поток является самостоятельной задачей, которой выделяются кванты времени на общих основаниях. Поэтому приложение Delphi, умеющее создать несколько потоков, получит больше времени операционной системы, и соответственно сможет выполнить больший объём работы.
Создать дополнительный поток в Delphi поможет объект TThread.
1. Мастер создания дополнительного потока в Delphi создаёт отдельный модуль, в рамках которого выполняется поток.
File -> New -> Other...
В результате будет создан модуль, содержащий заготовку кода, реализующего дополнительный поток Delphi.
2. Практическая часть
2.1 Постановка задачи
Игра аналог телевизионного шоу " Поле чудес".
программа паскаль си язык
2.2 Спецификация программы
Программа написана при помощи пакета программ Borland Delphi 7 и Borland C++Builder 6. Для установки программы достаточно скопировать папку с программой в нужный вам каталог. Для запуска программы нужно запустить файл Pole.exe (для C++) или файл Pole.exe(для Delphi)
Тестировалась на ноутбуке Lenovo T2330: Intel(R) Pentium(R) Dual CPU P6100 @ 1.60GHz 1.60 ГГц, 1.00 ГБ ОЗУ
ОС Windows XP Professional
2.3 Блок-схема алгоритма решения задачи
Так как состав модулей и подпрограмм на обоих языках совпадает, то схема иерархии модулей и инструкция пользователя совпадают и имеют единое отображении для обоих языков, а так же состав и содержание модулей на С++ и на Delphi совпадают, различия заключаются только в синтаксических особенностях языков.
2.4 Схема иерархии модулей
2.5 Спецификации подпрограмм каждого модуля
Таблица 1- Таблица спецификаций модулй программы
№ |
Имя |
Назначение |
Тип п/п |
Параметры |
Тип результата |
|
Zastavka |
||||||
1 |
Button1Click |
Вызов формы первого раунда |
Процедура |
- |
- |
|
2 |
Button2Click |
Выдает сообщение, содержащее информацию о правилах игры |
Процедура |
- |
- |
|
3 |
Button3Click |
Закрывает форму |
Процедура |
- |
- |
|
Round1, Round2, Round3 |
||||||
1 |
FormShow |
Выбор вопроса раунда, автоматический выбор режима ввода букв вручную. |
Процедура |
- |
- |
|
2 |
FormClose |
Вызов форм, уточняющей хотите ли вы выйти, перезапустить программу либо не совершать действий |
Процедура |
- |
- |
|
3 |
RadioButton2Click |
Переход к режиму ввода слова целиком |
Процедура |
- |
- |
|
4 |
Button1Click - Button33Click |
Реакция программы на выбор буквы, в зависимости от сгенерированного вопроса. |
Процедуры |
- |
- |
|
5 |
Button34Click |
Очищение введенного значения при режиме ввода слова целиком. |
Процедура |
- |
- |
|
6 |
Button35Click |
Отправка введенного значения на проверку при режиме ввода слова целиком. |
Процедура |
- |
- |
|
Final |
||||||
1 |
FormShow |
Выбор вопроса раунда, автоматический выбор режима ввода букв. |
Процедура |
- |
- |
|
2 |
FormClose |
Вызов форм, уточняющей хотите ли вы выйти, перезапустить программу либо не совершать действий |
Процедура |
- |
- |
|
3 |
Button1Click - Button33Click |
Реакция на выбор буквы, в зависимости от сгенерированного вопроса. |
Процедура |
- |
- |
|
4 |
Button34Click |
Очищение введенного значения. |
Процедура |
- |
- |
|
5 |
Button35Click |
Отправка введенного значения на проверку. |
Процедура |
- |
- |
|
Net_bukvi |
||||||
1 |
Button1Click |
Вызов формы вращения барабана |
Процедура |
- |
- |
|
Est_bukva |
||||||
1 |
Button1Click |
Вызов формы вращения барабана |
Процедура |
- |
- |
|
Baraban |
||||||
1 |
Button1Click |
Закрытие вспомогательных форм, переход к раунду |
Процедура |
- |
- |
|
2 |
FormCreate |
Присвоение переменной значения 0 |
Процедура |
- |
- |
|
3 |
Timer1Timer |
Организация анимации вращающегося барабана, и смену значений панели, на которой в итоге появится значение очков на кону |
Процедура |
- |
- |
|
4 |
Button2Click |
Отключение таймера, присвоение определенного значения очкам на кону |
Процедура |
- |
- |
|
5 |
FormShow |
Включение таймера |
Процедура |
- |
- |
|
Viigriw |
||||||
1 |
Button1Click |
Закрывает приложение |
Процедура |
- |
- |
|
2 |
Button2Click |
Запускает приложение сначала |
Процедура |
- |
- |
|
Porajenie |
||||||
1 |
Button1Click |
Закрывает приложение |
Процедура |
- |
- |
|
2 |
Button2Click |
Запускает приложение сначала |
Процедура |
- |
- |
|
Spros |
||||||
1 |
Button1Click |
Закрывает приложение |
Процедура |
- |
- |
|
2 |
Button2Click |
Запускает приложение сначала |
Процедура |
- |
- |
2.6 Инструкция пользователя
Таблица 2 - Таблица сообщений на событие пользователя
№ |
Причина |
Текст сообщения |
|
1 |
Нажатие кнопки "Об игре" |
Правила игры: Вас ожидает 3 раунда и финал. В каждом раунде вы набираете очки за правильные буквы, если вы отвечаете на вопрос верно, переходите в следующий раунд. Если вы называете слово целиком, то получите 1500 очков. Если до финала вы набираете более 7000 очков, то вам становится видно несколько первых букв загаданного слова, назвать которое необходимо только целиком. Ограничение по ходам = 16 ходов. То есть если вы не угадали слово и уже выбрали 16 букв, вы проигрываете. Удачи! |
|
2 |
В режиме выбора букв при правильном ответе |
Вы верно ответили СЛОВО |
|
3 |
В режиме ввода слова полностью |
Ваш ответ верен |
|
4 |
При попытке закрыть форму |
Вы уверены, что хотите выйти? Да\нет |
При запуске программы перед вами возникает главное окно программы, в котором предлагается начать игру, узнать ее правила, либо выйти из программы. При выборе начать игру появляется форма вращения барабана, где вы должны сначала остановить вращение барабана, узнав тем самым очки, которые ставятся на кон. Затем нажав кнопку "ОК" вы переходите в форму первого раунда, где видите вопрос и стараетесь на него ответить. Автоматичести стоит режим выбора букв по одной, при этом называя неверную букву, вы не получаете очки, а называя верную получаете. О том, есть ли такая буква в слове, вас оповещают соответствующие формы. Ограничение по ходам - 16. То есть если вы не угадает слово за 16 ходов, вы проиграете. Так же, в программе предусмотрен ввод слова целиком, выбрать который вы так же можете на форме раунда. В нем вы вводите буквы поочередно, ограничение такое же, 16 букв.При вводе более 16 букв, вы проигрываете. Если вы угадываете слово верно, вы переходите в следующий раунд. Второй и третий раунд подобны первому. В финале вам предстоит угадать слово, назвав его целиком. Ограничение - 10 букв. Если в ходе раундов вы набираете более 7000 очков, то получаете подсказку в виде указанных первых букв. Так же, из любого раунда вы можете покинуть приложение, либо перезапустить его.
Описание компонентов и форм
Для разработки приложения "Pole" используются две среды визуального программирования "Delphi" и "C++". Проект программы содержит 11 окон:
Zastavka - форма основного меню.
Рисунок 1 - Главное окно программы.
Компоненты Zastavka:
Button1-Выдает сообщение, содержащее правила игры
Button2-Вызов формы Round1
Button3-Выход из приложения
Label1-Надпись "Вас приветствует игра"
Label2-Надпись "по мотивам телешоу"
Image1-Фоновое изображение.
Image2-Портрет Леонида Якубовича
Image3-Заставка поле чудес
Round1, Round2, Round3 - представляют собой соответственно 3 раунда игры и являются подобными формами.
Рисунок 2 - Вид формы в режиме "Выбора букв".
Рисунок 3 - Вид формы в режиме "Ввести слово целиком".
Компоненты Round1, Round2, Round3:
Button1-Button33 - Алфавит
Panel1-Панель, на которой расположен алфавит.
Panel2-Panel7 - Панели, на которых появляются отгаданные буквы.
Image1- Фоновое изображение
Image2- Изображение барабана
Panel8-Панель с количеством набранных очков
Label1-Label3- Вспомогательные надписи "Вопрос раунда", "Вы отлично справились с вопросом предыдущего раунда", "Сейчас вам предложен вопрос раунда"
Label4 - Вопрос раунда. Он выбирается случайно из пяти вариантов. В зависимости от вопроса раунда заданы реакции на кнопки, обозначающие выбор буквы.
Label5 - Отражает выбранные буквы в режиме "Ввести слово целиком"
Label6 - Надпись "Количество очков"
Button 34 - "Сказать" - передает значение Label5 на проверку правильности
Button 35 - очищает значение Label5.
Final - финальный вопрос игры.
Рисунок 4 - Форма финала игры.
Компоненты Final:
Button1-Button33 - Алфавит
Panel1-Панель, на которой расположен алфавит.
Panel2-Panel7 - Панели, на которых появляются отгаданные буквы.
Image1- Фоновое изображение
Image2- Изображение барабана
Panel2-Панель с количеством набранных очков
Label1-Label2- Вспомогательные надписи "Поздравляем! Вы умник! Перед вами финальный вопрос", "Набранные очки"
Label3 - Вопрос финала. Он выбирается случайно из пяти вариантов. В зависимости от вопроса раунда заданы реакции на кнопки, обозначающие выбор буквы.
Button 34 - "Сказать" - передает значение Label3 на проверку правильности
Button 35 - очищает значение Label3.
Baraban-форма, которая симулирует вращение барабана путем случайной генерации очков.
Рисунок 5 - Форма вращения барабана
Компоненты Baraban:
Label1 - Надпись "Очки на кону"
Panel1 - Количество очков, которые прибавятся в случае верно угаданной буквы.
Timer1- С его помощью организуется анимация вращения барабана и смена значений Panel1 при этом.
Image1- Изображение вращающегося барабана
Button 1 - "Стоп" - останавливает работу таймера, фиксирует значение очков, поставленных на кон
Button 2 - "ОК" - выход в форму раунда.
Net_bukvi- Форма, появляющаяся в результате неверно названной буквы.
Рисунок 6 - Форма "Нет такой буквы".
Компоненты Net_bukvi:
Image1-портрет Леонида Якубовича
Label1, Label2 - Надписи "Подумайте еще", "Нет такой буквы"
Button1- открывает форму Baraban
Est_bukva - Форма, появляющаяся в результате верно названной буквы.
Рисунок 7 - Форма "Есть такая буква".
Компоненты Est_bukva:
Image1-портрет Леонида Якубовича
Label1, Label2 - Надписи "Отлично!", "Есть такая буква!"
Button1- открывает форму Baraban
Viigriw - Форма, появляющаяся при выигрыше
Рисунок 8- Форма выигрыша.
Компоненты Viigriw:
Image1-портрет Леонида Якубовича
Label1, Label2 - Надписи "Вы выиграли! Примите", "мои искренние поздравления"
Button1- "Выход" - закрывает приложение
Button2-"Сначала!"-закрывает приложение и открывает его вновь
Porajenie - Форма, появляющаяся в случае поражения
Рисунок 9- Форма поражения.
Компоненты Porajenie:
Image1-портрет Леонида Якубовича
Label1 - Надпись "Печально, но вы програли"
Button1- "Выход" - закрывает приложение
Button2-"Сначала!"-закрывает приложение и открывает его вновь
Spros - форма, предлагающая перезапустить приложение или выйти из него. Открывается в результате попытки закрыть форму.
Рисунок 10-Форма, уточняющая, желаете ли вы выйти из программы.
Компоненты Spros:
Label1 - Надпись "Может начать игру сначала?"
Button1- "Выход" - закрывает приложение
Button2-"Начать сначала"-закрывает приложение и открывает его вновь
2.7 Тестирование
Таблица 3 - Таблица тестов.
№ |
Последовательность действий |
Результат |
|
1 |
Верно названы все загаданные слова |
Выигрыш |
|
2 |
Неверна названа буква |
Появление информативной формы |
|
3 |
Верно названа буква |
Появление информативной формы |
|
4 |
Неверно названо слово раунда |
Проигрыш |
|
5 |
Попытка выхода из программы |
Появление формы, предлагающей дейсвия Выход\Отмена\Перезапуск |
2.8 Результаты тестирования
Тест 1:
Рисунок 11 - Верно названо загаданное в первом раунде слово.
Рисунок 12 - Верно названо загаданное во втором раунде слово.
Рисунок 13 - Верно названо загаданное во втором раунде слово.
Рисунок 14 - Верно названо загаданное в финале слово.
Тест 2:
Рисунок 15 - Неверно названа буква
Тест 3
Рисунок 16 - Верно названа буква
Тест 4:
Рисунок 17 - Неверно названо слово, либо сработало ограничение по ходам
Тест 5
Рисунок 18 - Попытка выхода из программы
Список возможных вопросов и ответов на них для каждого раунда.
1 раунд:
Физик, который изобрел цикл работы современных ТЭС. - РЕНКИН
Физик, который открыл 3 яблочных закона.-НЬЮТОН
Чувство, толкающее людей на подвиги.-ЛЮБОВЬ
Книга о наборе символов языка.-АЗБУКА
Основной породоразрушающий инстумент в Газпроме.-ДОЛОТО
2 раунд:
Элементарная частица средней весовой категории-МЕЗОН
Город в Италии с второй, после Колизея, по велечине ареной-КАПУЯ
Наиболее плотный нерадиактивный элемент таблицы Менделеева-ОСМИЙ
Армянский национальный духовой инструмент из древесины абрикоса-ДУДУК
Турецкий национальный шашлык, готовящийся на углях.-ДОНЕР
3 раунд:
Мальчик - легендарный маг, выдумка Дж.Роулинг.-ПОТТЕР
Мальчик, ставший вожаком стаи волков по пороизведению Киплинга.-МАУГЛИ
Имя самого знаменитого мультяшного кролика.-РОДЖЕР
Нервно-паралитический яд из плодов лианы.-КУРАРЕ
Крепкий алкогольный напиток из побегов кактуса.-ТЕКИЛА
Финал:
Математическая функция,в честь которой в английском языке назван подшипник качения.-ЛОГАРИФМ
Британский ученый, внесший большой вклад в развитие механики и математики.-ЭЙЛЕР
Трещинноватая известняковая порода.-ДОЛОМИТ
Смесь магния, нефтеновой и пальмитиновой кислот.-ПИРОГЕЛЬ
Свойство жидкостей увеличивать вязкость с увеличением скорости сдвига.-РЕОПЕКСИЯ
Заключение
Язык С (читается "Си") создан в начале 70-х годов, когда Кен Томпсон и Дэннис Ритчи из Bell Labs разрабатывали операционную систему UNDC Сначала они создали часть компилятора С, затем использовали се для компиляции остальной части компилятора С и, наконец, применили полученный в результате компилятор для компиляции UNIX. Операционная система UNIX первоначально распространялась в исходных кодах на С среди университетов и лабораторий, а получатель мог откомпилировать исходный код на С в машинный код с помощью подходящего компилятора С.
Распространение исходного кода сделало операционную систему UNIX уникальной; программист мог изменить операционную систему, а исходный код мог быть перенесен с одной аппаратной платформы на другую. Сегодня стандарт POSIX определяет стандартный набор системных вызовов UNIX, доступных в С, которые должны быть реализованы в версиях UNIX, являющихся POSIX-совместимыми. С был третьим языком, который разработали Томсон и Ритчи в процессе создания UNIX; первыми двумя были, разумеется, А и В.
По сравнению с более ранним языком -- BCPL, С был улучшен путем добавления типов данных определенной длины. Например, тип данных int мог применяться для создания переменной с определенным числом битов (обычно 16), в то время как тип данных long мог использоваться для создания целой переменной с большим числом битов (обычно 32). В отличие от других языков высокого уровня, С мог работать с адресами памяти напрямую с помощью указателей и ссылок. Поскольку С сохранил способность прямого доступа к аппаратному обеспечению, его часто относят к языкам среднего уровня или в шутку называют "мобильным языком ассемблера".
Что касается грамматики и синтаксиса, то С является структурным языком программирования. В то время как многие современные программисты мыслят в категориях классов и объектов, программисты на С думают в категориях процедур и функций. В С можно определить собственные абстрактные типы данных, используя ключевое слово struct. Аналогично можно описывать собственные целые типы (перечисления) и давать другие названия существующим типам данных при помощи ключевого слова typedef. В этом смысле С является структурным языком с зародышами объектно-ориентированного программирования. Широкое распространение языка C на различных типах компьютеров (иногда называемых аппаратными платформами) привело, к сожалению, ко многим вариациям языка. Они были похожи, но несовместимы друг с другом. Это было серьезной проблемой для разработчиков программ, нуждавшихся в написании совместимых программ, которые можно было бы выполнять на нескольких платформах. Стало ясно, что необходима стандартная версия C. В 1983г. ANSI (Американский Национальный Комитет Стандартов) сформировал технический комитет X3J11 для создания стандарта языка C (чтобы "обеспечить недвусмысленное и машинно-независимое определение языка"). В 1989 стандарт был утвержден. ANSI скооперировался с ISO (Международной Организацией Стандартов), чтобы стандартизовать C в международном масштабе; совместный стандарт был опубликован в 1990 году и назван ANSI/ISO 9899:1990. Этот стандарт усовершенствуется до сих пор и поддерживается большинством фирм разработчиков компиляторов.
Список литературы
1. Голицына О.Л. Языки программирования: учеб. пособие. Издательство: "ИНФРА-М, Форум", 2010.
2. Программирование на С++/ В.П. Аверкин, А.И. Бобровский, В.В. Веснич и др.; Под ред. А.Д. Хомоненко . - СПб.: Корона принт, 1999. - 252 с.
3. C++Builder 5: Рук. разработчика: [В 2 т.: Пер. с англ.] / Джарод Холингвэрт, Дэн Баттерфилд, Боб Сворт и др. - М.: Вильямс, 2001. - 824 с.
4. Архангельский А.Я. Программирование в С++Builder 6 / А.Я. Архангельский . - М.: Бином, 2012. - 1151 с.
5. Елманова Н.З. Введение в Borland C++ Builder / Н.З. Елманова, С.П. Кошель - М.: Диалог-МИФИ, 2007. - 272 с.
6. Паппас Крис Программирование на С и С++: [Учеб. пособие: Пер. с англ.] / Крис Паппас, Уильям Мюррей . - Киев: Ирина, 2009. - 318 с.
7. Павловская Т.А. C/C++: Программирование на языке высокого уровня: Учебник для вузов, Питер, 2012.
Приложения
Приложение 1. Листинг программы С++
Zastavka
/---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Zastavka.h"
#include "Round1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form2->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
ShowMessage("Правила игры: Вас ожидает 3 рунда и финал. В каждом раунде вы набираете очки за правильные буквы, если вы отвечаете на вопрос верно, переходите в следующий раунд. Если вы называете слово целиком, то получите 1500 очков. Если до финала вы набираете более 7000 очков, то вам становится видно несколько первых букв загаданного слова, назвать которое необходимо только целиком. Ограничние по ходам = 16 ходов. То есть если вы не угадали слово и уже выбрали 16 букв, вы проигрываете. Удачи! =))) ");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
Пример раунда игры
//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream>
#pragma hdrstop
#include <stdlib.h>
#include "Round1.h"
#include "Zastavka.h"
#include "Est_bukva.h"
#include "Round2.h"
#include "Baraban.h"
#include "Net_bukvi.h"
#include "Porajenie.h"
#include "Spros.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
int k;
int sl;
int v;
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button18Click(TObject *Sender)
{
if (RadioButton2->Visible==true) {
if (sl==1){
Panel8->Caption=StrToInt(Panel8->Caption)+StrToInt(Form6->Panel1->Caption);
Form3->ShowModal();
Panel2->Caption="P";
k++;}
if ((sl==2)||(sl==3)||(sl==4)||(sl==5)) {
Form4->ShowModal();}
Button18->Enabled=false;
if (k==6){
if (sl==1) ShowMessage("Вы абсолютно верно ответили РЕНКИН");
if (sl==2) ShowMessage("Вы абсолютно верно ответили НЬЮТОН");
if (sl==3) ShowMessage("Вы абсолютно верно ответили ЛЮБОВЬ");
if (sl==4) ShowMessage("Вы абсолютно верно ответили АЗБУКА");
if (sl==5) ShowMessage("Вы абсолютно верно ответили ДОЛОТО");
Form5->ShowModal();
} }
if (RadioButton2->Visible==false)
Label3->Caption=Label3->Caption+"Р";
v++;
if (v>15)Form10->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button6Click(TObject *Sender)
{
if (RadioButton2->Visible==true) {
if (sl==1){
Panel8->Caption=StrToInt(Panel8->Caption)+StrToInt(Form6->Panel1->Caption);
Form3->ShowModal();
Panel3->Caption="Е";
k++;}
Button6->Enabled=false;
if ((sl==2)||(sl==3)||(sl==4)||(sl==5)) {
Form4->ShowModal();}
if (k==6){
if (sl==1) ShowMessage("Вы абсолютно верно ответили РЕНКИН");
if (sl==2) ShowMessage("Вы абсолютно верно ответили НЬЮТОН");
if (sl==3) ShowMessage("Вы абсолютно верно ответили ЛЮБОВЬ");
if (sl==4) ShowMessage("Вы абсолютно верно ответили АЗБУКА");
if (sl==5) ShowMessage("Вы абсолютно верно ответили ДОЛОТО");
Form5->ShowModal();
} }
if (RadioButton2->Visible==false)
Label3->Caption=Label3->Caption+"Е";
v++;
if (v>15)Form10->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button15Click(TObject *Sender)
{
if (RadioButton2->Visible==true) {
if (sl==1){
Panel8->Caption=StrToInt(Panel8->Caption)+StrToInt(Form6->Panel1->Caption);
Panel8->Caption=StrToInt(Panel8->Caption)+StrToInt(Form6->Panel1->Caption);
Form3->ShowModal();
Panel4->Caption="Н";
Panel7->Caption="Н";
k++;
k++;}
Button15->Enabled=false;
if (sl==2){
Panel8->Caption=StrToInt(Panel8->Caption)+StrToInt(Form6->Panel1->Caption);
Panel8->Caption=StrToInt(Panel8->Caption)+StrToInt(Form6->Panel1->Caption);
Form3->ShowModal();
Panel2->Caption="Н";
Panel7->Caption="Н";
k++;
k++;}
if ((sl==3)||(sl==4)||(sl==5)){
Form4->ShowModal();}
if (k==6){
if (sl==1) ShowMessage("Вы абсолютно верно ответили РЕНКИН");
if (sl==2) ShowMessage("Вы абсолютно верно ответили НЬЮТОН");
if (sl==3) ShowMessage("Вы абсолютно верно ответили ЛЮБОВЬ");
if (sl==4) ShowMessage("Вы абсолютно верно ответили АЗБУКА");
if (sl==5) ShowMessage("Вы абсолютно верно ответили ДОЛОТО");
Form5->ShowModal();
}}
if (RadioButton2->Visible==false)
Label3->Caption=Label3->Caption+"Н";
v++;
if (v>15)Form10->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button12Click(TObject *Sender)
{
if (RadioButton2->Visible==true) {
if (sl==1){
Panel8->Caption=StrToInt(Panel8->Caption)+StrToInt(Form6->Panel1->Caption);
Form3->ShowModal();
Panel5->Caption="К";
k++;
}
if (sl==4){
Panel8->Caption=StrToInt(Panel8->Caption)+StrToInt(Form6->Panel1->Caption);
Form3->ShowModal();
Panel6->Caption="K";
k++;}
Button12->Enabled=false;
if ((sl==2)||(sl==3)||(sl==5)) Form4->ShowModal();
if (k==6){
if (sl==1) ShowMessage("Вы абсолютно верно ответили РЕНКИН");
if (sl==2) ShowMessage("Вы абсолютно верно ответили НЬЮТОН");
if (sl==3) ShowMessage("Вы абсолютно верно ответили ЛЮБОВЬ");
if (sl==4) ShowMessage("Вы абсолютно верно ответили АЗБУКА");
if (sl==5) ShowMessage("Вы абсолютно верно ответили ДОЛОТО");
Form5->ShowModal();
}}
if (RadioButton2->Visible==false)
Label3->Caption=Label3->Caption+"К";
v++;
if (v>15)Form10->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button10Click(TObject *Sender)
{
if (RadioButton2->Visible==true) {
if (sl==1){
Panel8->Caption=StrToInt(Panel8->Caption)+StrToInt(Form6->Panel1->Caption);
Form3->ShowModal();
Panel6->Caption="И";
k++;
}
Button10->Enabled=false;
if ((sl==2)||(sl==3)||(sl==4)||(sl==5)) Form4->ShowModal();
if (k==6){
if (sl==1) ShowMessage("Вы абсолютно верно ответили РЕНКИН");
if (sl==2) ShowMessage("Вы абсолютно верно ответили НЬЮТОН");
if (sl==3) ShowMessage("Вы абсолютно верно ответили ЛЮБОВЬ");
if (sl==4) ShowMessage("Вы абсолютно верно ответили АЗБУКА");
if (sl==5) ShowMessage("Вы абсолютно верно ответили ДОЛОТО");
Form5->ShowModal();
} }
if (RadioButton2->Visible==false)
Label3->Caption=Label3->Caption+"И";
v++;
if (v>15)Form10->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
if (RadioButton2->Visible==true) {
if ((sl==1)||(sl==3)||(sl==2)||(sl==5)){
Form4->ShowModal();
}
if (sl==4){
Panel8->Caption=StrToInt(Panel8->Caption)+StrToInt(Form6->Panel1->Caption);
Panel8->Caption=StrToInt(Panel8->Caption)+StrToInt(Form6->Panel1->Caption);
Form3->ShowModal();
Panel2->Caption="A";
Panel7->Caption="A";
k++;k++;
}
if (k==6){
if (sl==1) ShowMessage("Вы абсолютно верно ответили РЕНКИН");
if (sl==2) ShowMessage("Вы абсолютно верно ответили НЬЮТОН");
if (sl==3) ShowMessage("Вы абсолютно верно ответили ЛЮБОВЬ");
if (sl==4) ShowMessage("Вы абсолютно верно ответили АЗБУКА");
Подобные документы
Предмет объектно-ориентированного программирования и особенности его применения в средах Паскаль, Ада, С++ и Delphi. Интегрированная среда разработки Delphi: общее описание и назначение основных команд меню. Процедуры и функции программы Delphi.
курсовая работа [40,8 K], добавлен 15.07.2009Характеристика базовых конструкций языков программирования. Изучение истории их развития и классификации. Определение основных понятий языков программирования. Описание основных операторов, которые используются в языках программирования высокого уровня.
курсовая работа [400,6 K], добавлен 10.11.2016Методы численного интегрирования. Характеристика основных составляющих структурного программирования. Решение задания на языке высокого уровня Паскаль. Построение графического решения задачи в пакете Matlab. Решение задания на языке высокого уровня C.
курсовая работа [381,7 K], добавлен 10.05.2018Сравнительный анализ наиболее распространенных языков, их классификация, описание достоинств и недостатков. Использование процедур, функции и подпрограмм в языках программирования высокого уровня. Разработка и реализация программы "Бортовой компьютер".
курсовая работа [329,8 K], добавлен 22.06.2014Сравнительный анализ языков программирования высокого уровня Си и Паскаль. Реализация алгоритма обработки данных. Тестирование и отладка программы или пакета программ. Структура программы на языке Турбо Паскаль. Указатели и векторные типы данных.
курсовая работа [233,5 K], добавлен 14.12.2012Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.
курсовая работа [1,2 M], добавлен 04.08.2014Сравнительный анализ языков программирования высокого уровня Си и Паскаль: структура программы, типы данных, арифметические операции, операторы ветвления и циклы. Создание программы поиска подпоследовательностей одинаковых элементов в множественном виде.
курсовая работа [78,9 K], добавлен 28.12.2012Классификация языков программирования. Использование циклических конструкций и выполнение итерационных процессов. Алгоритмические структуры циклов языков C, C++, Java, C#. Особенности современных языков программирования высокого уровня и их применение.
курсовая работа [345,6 K], добавлен 13.11.2009Этапы написания программы на четырех языках программирования (Turbo Pascal 7.0, Borland C++ 3.11, Delphi 7, Builder C++ 6.0), которая выводит на экран имя и фамилию студента, используя стандартные средства графики и простейшие геометрические фигуры.
контрольная работа [1,4 M], добавлен 05.06.2010Borland Delphi 7 как универсальный инструмент разработки, применяемый во многих областях программирования, функции: добавление информации об абитуриентах в базу данных, формирование отчетов. Рассмотрение и характеристика основных компонентов Delphi.
контрольная работа [3,6 M], добавлен 18.10.2012