Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LABORATORNAYa_RABOTA_1.doc
Скачиваний:
10
Добавлен:
10.05.2015
Размер:
95.74 Кб
Скачать

Оглавление

Оглавление 1

ЛАБОРАТОРНАЯ РАБОТА 1 1

Создание простого консольного приложения Delphi 1

1.Требования по выполнению лабораторной работы 1

Контрольные вопросы 6

2. Теоретический материал 6

Структура консольного приложения 6

Идентификаторы 7

Определение переменных 7

Организация стандартного ввода-вывода 8

ЛАБОРАТОРНАЯ РАБОТА 1

Создание простого консольного приложения Delphi

  1. Требования по выполнению лабораторной работы

Требуется выполнить пять заданий. Для каждого задания разработан отдельный сценарий.

Задание 1. Настройка среды для выполнения лабораторных работ.

  1. Загрузите компьютер. В окне приглашения Windows введите в логин и пароль вашей группы и указанные преподавателем.

  2. Создайте на диске папку, указав в качестве имени вашу фамилию на русском языке.

  3. Создайте в своей папке три папки: EXAMPL, ЛАБ1, Convertor.

  4. Запустите Delphi через меню Все программы.

Задание 2. Создание, отладка и выполнение простой программы в среде Delphi.

Разработать программу, демонстрирующую различие кодировок ASCII и ANSI.

  1. Создайте новое консольное приложение. Для этого выполните действия: File->New->Other->Console Application.

  2. Сохраните программу, которая отображается в окне, в папке EXAMPL, и дайте ей имя exampl1. Для этого выполните File->Save All->Диск Z, откройте папку EXAMPL. Щелкните по кнопке Сохранить.

  3. Включите в раздел операторов (Begin…..end.) следующие операторы:

Writeln (Редактор готовит русский текст в коде ANSI (страница Windows 1251), а при выполнении программы в консольном режиме он отобразиться он в коде ASCI I страница 866);

Readln // ожидание нажатия клавиши Enter

  1. Выполните компиляцию программы Project->Compile .

  2. Убедитесь, что выполнимый файл (с расширением exe) создан. Для этого откройте папку EXAMPL.

  3. Запустите программу на выполнение Run->exampl1.exe (или щелкните по кнопке Запуск панели инструментов или F9).

  4. Ответьте на следующий вопрос. Почему нельзя прочитать текст?

Задание 3. Создание функции преобразования выводимого на монитор русского текста из кодировки Windows в кодировку DOS с именем RUS.

Добавить в код созданного проекта функцию с именем RUS, которая позволит представлять выводимый на монитор текст в кодировке DOS(ASCII).

  1. Перед разделом операторов (перед Begin) введите текст функции RUS, которая будет преобразовывать текст из кодировки ANSI 1251 в кодировку ASCII:

function RUS(s:string):string; //заголовок функции

var i:longint;

begin

for i:=1 to length(s) do

begin

if ord(s[i]) in [192..239] then s[i]:=chr(ord(s[i])-64);

if ord(s[i]) in [240..255] then s[i]:=chr(ord(s[i])-16);

end;

RUS:=s

end;

  1. Примените функцию RUS для преобразования выводимого текста. Для этого внесите изменения в оператор вывода.

Writeln (RUS( Редактор готовит текст в коде 1251, а отобразиться он в коде ASCI I ));

  1. Выполните программу и оцените результат.

Задание 4. Создание модуля Unit и его использование

Примечание. Модуль Unit позволит подключать функцию преобразования к любому проекту ваших лабораторных работ.

  1. Создайте модуль unit и включите в него функцию RUS, для этого:

  • выполните команду File->New ->Unit

  • переместите текст функции RUS из программы (доступ к программе через закладку) в модуль и вставьте его в выполнимую часть модуля (после слова implementation)

  • скопируйте заголовок функции в интерфейсную часть модуля (после слова interface).

Содержание модуля

unit unit1;

interface //интерфейсная часть

function RUS(s:string):string;

implementation //выполнимая часть

function RUS(s:string):string;

var i:longint;

begin

for i:=1 to length(s) do

begin

if ord(s[i]) in [192..239] then s[i]:=chr(ord(s[i])-64);

if ord(s[i]) in [240..255] then s[i]:=chr(ord(s[i])-16);

end;

RUS:=s

end;

end.

  • сохраните модуль под именем convertor в вашей папке в папке Convertor.

  1. Откройте код вашей программы, щелкнув по закладке проекта. Найдите строку с подключенным модулем. Проверьте путь к файлу.

  2. Выполните программу. Убедитесь, что программа работает правильно.

  3. Сохраните проект, щелкнув по кнопке Save панели инструментов.

Задание 5. Разработка программы по организации стандартного ввода-вывода средствами Delphi.

Разработать программу, которая позволит:

  • ввести целые числа в переменные типа byte, integer, int64 и вещественные числа в переменные типа real, extended, comp;

  • отобразить целые и дробные числа двумя способами: в формате хранения в памяти и с заданной точностью (форматированный вывод).

Сценарий выполнения лабораторной работы

  1. Создайте новое консольное приложение.

  2. Сохраните новый проект в папке Lab1 под именем CON_WRITE_READ.

  3. Включите в проект модуль CONVERTOR, следующим образом:

  • выполните команду Project->Add to;

  • выберите в папке Convertor файл модуля и откройте его;

  • перейдите в окно кода проекта (код основной программы), щелкнув по вкладке CON_WRITE_READ.

  1. Добавьте в программу комментарий, который расскажет о задании, представленном в программе. Для этого перед предложением Programm project1; вставьте следующий текст

{Стандартный ввод-вывод}

  1. Объявите в разделе объявления переменных следующие переменные:

  • a, b, c типа: byte, integer, int64 соответственно;

var

a:byte;

b:integer;

c:int64;

  • x, y, z типа real, extended, comp соответственно.

  1. Вставьте в раздел операторов операторы, вывода следующего текста построчно:

Лабораторная работа №1.

Организация ввода и вывода в консольном режиме.

Пропустить две строки

Представление числовых данных в памяти.

Ввод числовых данных

Введите значение в переменную а из диапазона byte =

  1. Далее вставьте оператор ввода значения в переменную a: Readln(a).

  2. Далее добавьте операторы, обеспечивающие ввод целых чисел в переменные b и c c предварительным выводом текста, указывающего, в переменную какого типа будет прочитано значение.

  3. Добавьте операторы для ввода трех дробных чисел в переменные x, y, z типа real, extended, comp соответственно.

Организация вывода значений переменных

  1. Добавьте операторы, которые обеспечат вывод следующего текста на монитор:

Вывод числовых данных в формате хранения в памяти

Целые числа

  1. Добавьте один оператор, который обеспечит вывод значений трех переменных a, b, c, так, чтобы на мониторе появилось информация, отображающая имя переменной = и значение этой переменной (Например, результат может выглядеть так a= b= 7 c=8).

  2. Добавьте один операторы для вывода текста:

Дробные числа

Вывод вещественных значений в формате хранения

  1. Выведите значения переменных x, y, z.

  2. Добавьте оператор вывода, обеспечивающий вывод она монитор пустой строки.

  3. Выведите следующий текст:

Вывод вещественных значений с заданной точностью.

  1. Выведите значения трех переменных x, y, z в форме с фиксированной точкой и с точностью три знака после точки, с указанием имен переменных.

  2. Выведите объем памяти, выделяемый каждой переменной программы. Для определения объема памяти используйте функцию sizeof(имя переменной).

  3. Выполните компиляцию и устраните все синтаксические ошибки.

  4. Заполните таблицу тестов, учитывая следующее:

  • Первый тест должен обеспечить проверку программы на числах, принадлежащих диапазону типа.

  • Второй тест должен обеспечить для переменной а (типа byte) ввод значения = -1, остальные значения из первого теста.

  • Третий тест должен обеспечить для переменной а(типа byte) ввод значения = 256, остальные значения из первого теста.

  • Четвертый тест должен обеспечить ввод в переменные x, y, z одного и того же дробного числа 123.445.

  • Пятый тест должен обеспечить ввод значения 123, 5 в переменную типа comp.

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

  2. Письменно объясните полученные результаты тестирования.

  3. Сохраните программу и закройте приложение.

Контрольные вопросы

  1. Что указывается в списке параметров процедуры Read(список параметров);

  2. Что указывается в списке параметров процедур Write и Writeln(список параметров);

  3. Какие действия выполняют соответственно процедуры ввода и вывода записанные в программе в следующем виде: Readln;.Writeln;

2. Теоретический материал Структура консольного приложения

Приложение Delphi состоит из основной программы и подключаемых модулей1. В приложение можно включать стандартные модули или модули, разработанные пользователем. Простое консольное приложение состоит из основной программы с включенным модулем sysutils и директивой компилятора {$APPTYPE CONSOLE}

Структура простого консольного приложения

Описание элементов программы

Пример простого приложения

Заголовок проекта

Program Имя проекта;

Директива компилятора

{$APPTYPE CONSOLE}

Подключение модулей

Uses sysutils;

Раздел объявления программных объектов: констант, переменных, типов, подпрограмм

Const

pi=3.14;

Var

X:byte;

Y:extended;

Тело программы (или раздел операторов). Содержит последовательность операторов, реализующих алгоритм решаемой задачи. Все операторы программы размещаются внутри составного оператора begin …end. Завершает код программы символ точка.

Begin

X:=5;

Y:=x/2;

Writeln(‘Y=’, Y);

Readln

End.

Идентификаторы

Для доступа в программе к программному объекту используется идентификатор. Идентификатор определяет имя объекта

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

Примеры идентификаторов

X1, XYZ, X_Y, A153, a153

Идентификаторы A153, a153 определяют одно имя.

Определение переменных

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

Формат объявления переменных

var

Список имен переменных : тип переменной;

………………………………………………….

Список имен переменных : тип переменной;

Пример объявления числовых переменных

Var

X:integer;

Y, Z: byte;

A, b, c: comp;

В Delphi можно присваивать значение переменной при ее объявлении.

Формат инициализации переменной при объявлении

var

Имя переменной : тип переменной=выражение;

Пример инициализации переменной при объявлении

Var

X:byte=100;

Организация стандартного ввода-вывода

Стандартный ввод – это ввод данных память компьютера с помощью клавиатуры. Организацию стандартного ввода в Delphi обеспечивают процедуры ввода: Read и Readln.

Форматы операторов организации стандартного ввода.

Read(список переменных); Данный оператор читает значения, введенные пользователем с клавиатуры и записывает их в переменные, указанные в списке. Имена переменных в списке должны отделяться запятой.

Пример записи операторов ввода данных с помощью процедуры Read.

Read(x,y,z);

Read(x);

Readln(список переменных); Данный оператор читает введенные значения, записывает их в соответствующие переменные и читает ол Enter (освобождает буфер ввода).

Пример записи операторов ввода данных с помощью процедуры Readln.

Readln(x,y,z);

Readln(x);

Readln; Данный оператор обеспечивает чтение только символа Enter, т.е. освобождает буфер ввода.

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

Read(x,y,z);

Readln;

Readln;

Стандартный выводэто отображение данных на монитор. Организацию стандартного вывода в Delphi обеспечивают процедуры вывода: Write и Writeln. Процедуры позволяют отображать данные на монитор в стандартном формате, а также применять специальные форматы для более наглядного отображения.

Форматы операторов организации стандартного вывода без форматирования данных.

Write(список выражений); Данный оператор последовательно выводит значения выражений, представленных в списке, на монитор в текущую позицию. Под выражением понимаются: переменная, константа, выражение. Выражения в списке отделяются друг от друга запятой.

Пример оператора вывода одного текстового значения.

Write(‘Текст должен быть в апострофах’);

Пример оператора вывода значений двух выражений: текстовой константы и переменной.

Write(‘x=’,x);

Writeln(список выражений); Данный оператор выводит значения выражений, представленных в списке, на монитор в текущую позицию и после вывода всех значений переводит каретку на новую строку.

Пример операторов для вывода данных на три отдельных строки монитора.

Writeln(‘Лабораторная работа №1’);

Writeln(‘Задание. Вычисление значения функции Sin(x) в точке х’);

Writeln(‘Результат работы программы:’,’X=’, X, ‘ Sin(X)=’, Sin(X));

Writeln; Данный оператор обеспечивает только перевод каретки на новую строку (вставка пустой строки).

Пример операторов для вывода данных на три отдельных строки монитора и вставкой пустой строки.

Writeln(‘Лабораторная работа №1’);

Writeln(‘Задание. Вычисление значения функции Sin(x) в точке х’);

Writeln;

Writeln(‘Результат работы программы:’,’X=’, X, ‘ Sin(X)=’, Sin(X));

Форматы операторов организации стандартного вывода с форматированием данных.

Форматирование отображаемой информации осуществляется с помощью параметров форматирования.

Список выражений при форматированном выводе

где:

p – параметр, определяющий количество выводимых символов

q – параметр, который используется только для отображения дробных чисел и определяет точность представления числа (число знаков в дробной части числа)

знак(+/-) – означает, что выводимое значение при выводебудет прижато к левой границе области вывода, а знак + значение при выводе будет прижато правой границе области вывода.

Пример форматированного вывода числовых значений.

Var

A,b:byte;

X:real;

Begin

A:=2; b:=123; x:=12,333333333;

Writeln(‘Вывод без форматирования’);

Writeln(a,’ ‘,b,’ ‘, x);

Writeln(‘Вывод c форматированием’);

Writeln(a:4,b:5,x:7:2);

readln

End.

Результат программы

Вывод без форматирования

2 123 1.2333333333e+1

Вывод с форматированием

2 123 12.33

1 Отдельно компилируемая часть программы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]