Сикерина Н.В. ВТ и программирование. Курс лекций, КГМТУ, 2011




2.Фаронов.. Delphi 6. Учебный курс. Санкт-Петербург.2006.-507с.

3. Владимир Гофман, Анатолий Хомоненко. Delphi 6. Санкт-Петербург. 2005.-1145с.

4. Сикерина Н.В. ВТ и программирование. Методическое пособие для самостоятельных работ «Основы интегрированной среды программирования DELPHI6». КГМТУ, 2007

 

лАБОРАТОРНАЯ РАБОТА № 1

Целочисленные и вещественные типы данных

Преобразование типов

Цель работы:

· изучить основные операции, определенные над целыми и вещественными типами данных;

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

1. Практическое задание: Преобразования типов.

1.1.Типы переменных.

Целочисленный и действительный типы переменных:integer и real.

1.2. Преобразование типов

Преобразование типов переменных из строкового в целочисленный или в действительный. Функции StrToInt(); FloatToStr(); Format();

1.3. Алгоритм выбора.

Оператор условия if – then – else.

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

Известно, что оптимальный вес человека определяется так: рост человека минус 100. Если твой фактический вес меньше оптимального, то ты худой, и наоборот, если больше, то надо похудеть.

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

Рис.1.1.

1.5. Рекомендуемый план разработки проекта.

1. В соответсвии с рис.1.2. расположите необходимые компоненты. В Edit1 будем вводить вес в кг., а в Edit2 – рост в см.

Рис.1.2.

 

2. Введите в раздел VAR переменные для сохранения значений фактического веса (faktW), оптимального веса (optW), роста (Rost) и разницы между оптимальным весом и фактическим (Delta). Пусть значения этих переменных будут округленными, в этом случае тип этих переменных можно объявить как Integer.

VAR

factW, optW, Rost, Delta: integer;

3. Образуйте процедуру, реагирующую на щелчок по кнопке Button1, и заполните ее следующим кодом.

procedure TForm1.Button1Click(Sender: TObject);

begin

faktW:= StrToInt(Edit1.text);

Rost:= StrToInt(Edit2.Text);

OptW:=Rost - 100;

Delta:= abs(faktW - OptW);

if OptW = faktW then Label3.caption:= 'Ваш вес оптимален'

else

if OptW > faktW then Label3.caption:= 'Вам надо поправиться на '+IntToStr(Delta)+' кг.'

else

Label3.caption:= 'Вам надо похудеть на '+IntToStr(Delta)+' кг.'

end;

 

Считывание и преобразование строкового типа в целый из строки редактирования будет выполняться с помощью функции: StrToInt(Edit1.text);

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

4. Введите заголовки смотрите рис.1.3.

5. В предыдущем пункте мы договорились вводить округленные исходные данные. Но это не всегда приемлемо. Усовершенствуйте программу так, чтобы можно было бы вводить десятичные величины. Для этого в разделе Var назовите тип переменных не Integer, а Real.

VAR

factW, optW, Rost, Delta: real;

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

В целом процедура Button1Click будет выглядеть следующим образом:

procedure TForm1.Button1Click(Sender: TObject);

begin

faktW:= StrToFloat(Edit1.text);

Rost:= StrToFloat(Edit2.Text);

OptW:=Rost - 100;

Delta:= faktW - OptW;

 

if OptW = faktW then Label3.caption:= 'Ваш вес оптимален'

else

if OptW > faktW then Label3.caption:= 'Вам надо поправиться на '+FloatToStr(Delta)+' кг.'

else

Label3.caption:= 'Вам надо похудеть на ‘ + FloatToStr(Delta)+' кг.';end;

Рис.1.3.

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

В общем виде обращение к функции выглядит так:

S:= FloatToStrF(значение, формат, точность, количество цифр), где

Значение – число, изображение которого надо получить;

формат – именованная константа, определяющая вид строки;

точность – определяет точность представления преобразуемого числа;

количество цифр – зависит от используемого формата

FfGeneral Общий цифровой формат
FfExponent Научный формат
FfFixed Формат с десятичной точкой

6. Сделайте к программе заголовок, замените кнопку Button1 на кнопку BitBtn1, введите кнопку “Close”,

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

 

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

  1. Какой объем памяти занимают данные типа Integer?
  2. Какие операции применимы к данным типа Integer?
  3. Какой диапазон значений охватывают данные типа Integer?
  4. Объясните смысл операций div и mod.
  5. Какие действия выполняет функция Trim?
  6. Какие действия выполняет Функция StrToint?
  7. Для чего применяются методы Show и Hide?
  8. Какие вещественные типы данных вы знаете?
  9. Опишите основные характеристики данных типа Real.
  10. Опишите структуру представления вещественных данных в памяти компьютера.

11. Перечислите, какие стандартные математические функции Object Pascal вы знаете (укажите форму обращения к ним тип параметра и тип результата).

 

Лабораторная работа №2

Тема: Программирование линейных вычислительных процессов. Преобразование строки, изображающей вещественное число, в число. Преобразование вещественного числа в его изображение.

Цель работы:

· приобрести навыки работы с функциями преобразования;

· изучить правила использования параметров функции FloatToStrF.

 

Составить код программы вычисления значений функций R(C,K,X), N(C,K,X, R(C,K,X)) при заданных значениях параметров C,K и аргумента X. Выражения для вычисления функций R и N, а также параметры C,K и аргумент X взять из таблицы 2.1 в соответствии с номером варианта. Вычисление и вывод значений функций оформить в событии Click компонента Button1. Значения параметров C,K и аргумент X ввести с поля компонентов Edit1, Edit2, Edit3. Вывести результаты функций R и N соответственно в компоненты Label1 и Label2 с пояснениями (пример см Рис.2.1).

 

Рис.2.1

 

В отчет по лабораторной работе включить ответы на контрольные вопросы и код программы.

Таблица 2.1

C K X R(x) N(x)
      14,87   4,36   2,28
      -6,76   5,32   15,8  
      7,83   34,12   2,56    
      32,12   -5,34   1,23
      -7,56   3,23   2,54  
      15,67   16,79   2,45  
      4,56   6,94   4,56
      13,66   -4,57   3,67
    12,57   -3,12   2,3  
    -5,16   20,02   0,031  
    15,02   1,2   -0,9
    3,3   2,5   12,76
    1,3   0,2   0,024
    4,6   0,5   0,34
    1,7   -0,12   2,8
    2,4   1,4   -3,25
    -4,5   1,9   2,6
    2,3   1,1   3,4

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

1. Какие обозначения приняты при описании функций и процедур?

2. Какие математические функции Вы знаете? Перечислите их.

3. Какие функции преобразования Вы знаете?

4. Какие функции преобразования Вы использовали в данной лабораторной работе?

5. Какие процедуры и функции работы со строками и символами Вы знаете?

6. Какие параметры функции FloatToStrF вы знаете? Перечислите их и укажите их значения.

7. Какие спецификаторы форматирования вещественных чисел Вы знаете? Перечислите их и укажите их значения.

8. Перечислите форматирующие спецификаторы для функции Format.

Лабораторная работа №3

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

Цель работы:

· изучить способы ввода и вывода информации;

· приобрести навыки работы по применению оператора If.

 

Составить код программы вычисления значения функции F(X), заданной соотношением:

 

Выражения для вычисления функций R и N, а также параметры C,K и аргумент X взять из таблицы 3.1. в соответствии с номером варианта. Вычисление и вывод значения функции F оформить в событии Click компонента BitBtn1. Значения параметров C и K задать локально в блоке Const. Значение аргумента X ввести с поля компонента Edit1. Вывести результат функции F в компонент Label1 с пояснением (пример см Рис.3.1., Рис.3.2.). В отчет по лабораторной работе включить ответы на контрольные вопросы и код программы.

Таблица 3.1.

C K X R(x) N(x)
      14,87   4,36 5,45 2,28 15,38
      -6,76   5,32 0,45 15,8 -7,25  
      7,83   34,12 35,27 2,56 8,39    
      32,12   -5,34 -6,86 1,23 45,27
      -7,56   3,23 -8,45 2,54 4,67  
      15,67   16,79 15,99 2,45 21,67  
      4,56   6,94 8,98 4,67 2,23
      13,66   -4,57 -7,87 3,67 15,66
    12,57   -3,12 -6,87 2,3 14,77  
    -5,16   20,02 -8,99 0,031 21,67  
    15,02   1,2 2,77 -0,9 17,88
    3,3   2,5 3,11 12,76 1,24
    1,3   0,2 1,11 0,024 4,56
    4,6   0,5 3,54 0,34 7,89
    1,7   -0,12 -1,34 2,8 0,78
    2,4   1,4 4,56 -3,25 1,56
    -4,5   1,9 -3,56 2,6 -7,78
    2,3   1,1 2,13 3,4 0,89

 

 

Рис.3.1.

Рис.3.2.

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

1. Запишите общий вид оператора If.

2. Запишите алгоритм, реализуемый инструкцией if-then-else.

3. Какими способами можно осуществлять ввод данных?

4. Приведите пример использования функции inputBox.

5. К какому свойству необходимо произвести обращение для осуществления ввода данных из поля редактирования?

6. Какими способами можно вывести результаты работы программы?

7. Охарактеризуйте применение процедуры ShowMessage. Привести пример с ее применением.

8. Охарактеризуйте применение функции MessageDlg. Привести пример с ее применением.

9. Перечислите известные Вам константы и значения функции MessageDlg

10. Каким свойством определяется содержимое поля вывода в компоненте Label. Приведите пример вывода результата просчета в компоненте Label.

 

Лабораторная работа №4

Тема: Циклические вычислительные процессы. Описание процедур и функций.

Цель работы:

· изучить структуру описания подпрограммы процедуры;

· изучить структуру описания подпрограммы функции;

· приобрести навыки работы по применению оператора While.

Составить код программы вычисления значения суммы:

или произведения:

при заданном условии.

Выражение для вычисления функции F, значения N и K, а также условие вычисления функции взять из таблицы 4.1 в соответствии с номером варианта.

Вычисление и вывод значения функции F оформить в событии Click компонента BitBtn1.

Значения N и K ввести с поля компонентов Edit1 и Edit2.

Вывести результат вычисления в компонент Label1 с пояснением (пример см Рис.4.1).

В отчет по лабораторной работе включить ответы на контрольные вопросы и код программы.

Таблица 4.1.

N K Операция F(x) Условие
      Сумма При Х кратных 2
      Произведение При Х кратных 3
      Сумма При четных Х
      Произведение При нечетных Х
      Сумма При Х некратных 5
      Произведение При Х кратных 4
      Сумма При Х некратных 7
      Сумма При Х кратных 6
      Произведение При Х, которые при делении на 5 дают остаток 2
      Сумма При Х кратных 8
      Произведение При Х, которые при делении на 6 дают остаток 1
      Сумма При четных Х
      Произведение При нечетных Х
      Сумма При Х, которые при делении на 4 дают остаток 1
      Произведение При четных Х
      Сумма При нечетных Х
      Сумма При Х, которые при делении на 7 дают остаток 3
      Произведение При четных Х

 

Рис.4.1.

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

1. Запишите общий вид оператора while.

2. Запишите алгоритм инструкции while

3. Какие виды подпрограмм Вы знаете?

4. Опишите структуру процедуры.

5. Могут ли у процедуры отсутствовать параметры?

6. Что описывается в разделе инструкций?

7. Опишите структуру функции.

8. Какая инструкция является последней исполняемой инструкцией функции?

9. Какие правила определяют хороший стиль программирования?

 

 

Лабораторная работа №5

Тема: Циклические вычислительные процессы.

Цель работы:

· получение навыков использования оператора цикла с параметром;

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

Составить код программы вычисления значений функции F(x) на отрезке [A,B] в точках Xi = A + i*H, где H = (B - A) / M, где M – заданное целое число. Выражение для вычисления функции F, значения A, B и M взять из таблицы 5.1 в соответствии с номером варианта. Вычисление и вывод значений функции F оформить в событии Click компонента BitBtn1. Значения A и B ввести с поля компонентов Edit1 и Edit2. Значение M задать локально в блоке Const. Вывести результат вычислений функции F и значений аргумента X в компонент Label1 с пояснением (пример см. Рис.5.1).

В отчет по лабораторной работе включить ответы на контрольные вопросы и код программы.

Таблица 5.1.

Номер варианта Функция F(x) Параметры
A B M
  x-sin(x)   0,5  
  Sin(x) 0,3 0,9  
  Cos(x) 0,2    
  Tg(x)   0,4  
  Ctg(x) 0,4    
  Ctg(x/3)+sin(x)   1,5  
  Sin(x/4)/2 0,5    
  Arctg(x)      
  Sin(x)-cos(x)   0,8  
  X*sin(x)   0,3  
  Sin(1/x) 0,8 2,3  
  Cos(1/x) 0,4 4,5  
  Sin(x2) 0,6 2,3  
  Cos(x2) 0,3 3,2  
  Sin(x)+tg(x)   1,4  
  Cos(x)+ctg(x) 1,4 2,2  
  Tg(x/2)   2,3  
  Tg(x/2)+cos(x) 1,2    

Рис.5.1

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

1. Запишите общую форму оператора Repeat.

2. Запишите алгоритм оператора Repeat.

3. Приведите пример с использованием оператора Repeat.

4. Запишите общую форму оператора For.

5. Запишите алгоритм оператора For.

6. Для чего используется форма Downto?

7. Приведите примеры оператора For с использованием формы To и Downto.

 

Лабораторная работа №6

Тема: Работа с массивами чисел (одномерные массивы).

Цель работы:

· получение практических навыков в работе с одномерными массивами.

· изучение свойств компонента stringGrid.

Составить код программы, которая выполняет следующие действия:

1. Формирование одномерного целочисленного массива размером N, значения элементов массива задать в компоненте stringGrid.

2. Вывод значений элементов массива с пояснениями в компонент Label1.

3. Вычисление параметров одномерного массива и вывод их в компонент Label2 с пояснениями (пример см рис.61).

Значения N и параметры вычисления одномерного массива взять в соответствии с вариантом из таблицы 6.1.

Все вычисления оформить в событии Click компонента Bitbtn1.

В отчет по лабораторной работе включить ответы на контрольные вопросы и код программы.

Рис.6.1.

Таблица 6.1.

Размер массива N Условия задания
    Ввести в память ЭВМ одномерный массив В, состоящий из N целочисленных элементов. Найти максимальный среди четных по индексу и положительных по значению элементов массива.
    Ввести в память ЭВМ одномерный массив С, состоящий из N целочисленных элементов. Найти среднее арифметическое отрицательных, нечетных по значению элементов массива.
    Ввести в память ЭВМ одномерный массив D, состоящий из N целочисленных элементов. Вывести на экран дисплея значения и индексы положительных элементов, кратных по значению 3.
    Ввести в память ЭВМ одномерный массив L, состоящий из N целочисленных элементов. Найти и вывести на экран сумму и количество элементов данного массива, четных по индексу и не превышающих по значению первый элемент массива.
    Ввести в память ЭВМ одномерный массив L, состоящий из N целочисленных элементов. Найти произведение всех нечетных по значению, отрицательных элементов массива..
    Ввести в память ЭВМ одномерный массив М, состоящий из N целочисленных элементов. Найти сумму элементов, не превышающих по абсолютному значению последний элемент.
    Ввести в память ЭВМ одномерный массив, состоящий из N целочисленных элементов. Найти минимум между средними арифметическими четных отрицательных и нечетных отрицательных элементов массива.
    Ввести в память ЭВМ одномерный массив, состоящий из N целочисленных элементов. Найти максимальное по модулю значение четных элементов массива.
    Ввести в память ЭВМ одномерный массив, состоящий из N целочисленных элементов. Найти среднее арифметическое четных отрицательных элементов массива.
    Ввести в память ЭВМ одномерный массив, состоящий из N целочисленных элементов. Найти произведение всех четных элементов не равных нулю
    Ввести в память ЭВМ одномерный массив, состоящий из N целочисленных элементов. Найти максимальный и минимальный по модулю элементы и поменять их местами.
    Ввести в память ЭВМ одномерный массив, состоящий из N целочисленных элементов. Найти сумму и количество всех четных элементов, лежащих в диапазоне от 1 до 9.
    Ввести в память ЭВМ одномерный массив, состоящий из N целочисленных элементов. Найти произведение его отрицательных элементов и их количество.
    Ввести в память ЭВМ одномерный массив, состоящий из N целочисленных элементов. Найти среднее арифметическое нечетных положительных элементов массива.
    Ввести в память ЭВМ одномерный массив, состоящий из N целочисленных элементов. Найти максимальный элемент массива и его индекс.
    Ввести в память ЭВМ одномерный массив, состоящий из N целочисленных элементов. Найти и вывести на экран все элементы равные по значению первому элементу.
    Ввести в память ЭВМ одномерный массив, состоящий из N целочисленных элементов. Найти минимальный элемент массива и его индекс.
    Ввести в память ЭВМ одномерный массив, состоящий из N целочисленных элементов. Найти и вывести на экран все элементы превосходящие по значению последний элемент.
    Ввести в память ЭВМ одномерный массив N, состоящий из N целочисленных элементов. Найти количество элементов, равных по абсолютному значению единице.

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

1. Запишите определение массива.

2. Как объявляется массив в разделе объявления переменных?

3. Как производится обращение к конкретному элементу массива?

4. Перечислите основные свойства компонента Memo. Дайте описание значения этих свойств.

5. Перечислите основные свойства компонента StringGrid. Дайте описание значения этих свойств.

6. Перечислите типичные операции при работе с массивами.

7. Что понимается под выводом массива?

8. Что понимается под вводом массива?

 

 

Лабораторная работа №7

Тема: Работа с массивами чисел (двумерные массивы).

Цель работы:

· получение практических навыков в работе с двумерными массивами (матрицами).

· изучение свойств компонента stringGrid.

Составить код программы, которая выполняет следующие действия:

 

1. Формирование двумерного целочисленного массива (матрицы) размером N х M, значения элементов массива задать в компоненте stringGrid.

2. Вывод значений элементов массива с пояснениями в компонент Label1.

3. Вычисление параметров матрицы и вывод их в компонент Label2 с пояснениями (пример см рис.7.1).

4. Значения N, M а также параметры вычисления матрицы взять в соответствии с вариантом из таблицы 7.1.

5. Все вычисления оформить в событии Click компонента Button1.

 

В отчет по лабораторной работе включить ответы на контрольные вопросы и код программы.

Рис.7.1.

Таблица 7.1.

N M Условия задания
      Максимальный по величине элемент в этой матрице.
      Сумму значений элементов главной диагонали этой матрицы.
      Минимальный по величине элемент в главной диагонали этой матрицы.
      Произведение значений всех элементов четных строк этой матрицы.
      Сумму значений всех элементов, расположенных по периметру этой матрицы.
      Сумму значений всех элементов нечетных столбцов этой матрицы.
      Среднее арифметическое значений элементов каждого столбца этой матрицы.
      Число элементов в этой матрице, значения которых равны единице.
      Число положительных элементов в этой матрице.
      Произведение значений элементов нечетных столбцов этой матрицы.
      Среднее арифметическое значение элементов главной диагонали матрицы.
      Сумму значений элементов этой матрицы, расположенных над главной диагональю.
      Сумму значений положительных элементов каждой строки матрицы.
      Сумму значений положительных элементов этой матрицы.
      Произведение значений положительных элементов этой матрицы.
      Максимальные по величине элементы в каждой строке матрицы.
      Минимальные по величине элементы в каждой строке матрицы.
      Произведения положительных элементов каждого столбца матрицы.
      Максимальные по величине элементы в главной диагонали этой матрицы.

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

1. Как реализуется алгоритм бинарного поиска?

2. Перечислите основные свойства компонента CheckBox. Поясните, что они определяют.

3. Что понимается под сортировкой массива? Какие способы сортировки Вы знаете.

4. Как реализуется алгоритм сортировки массива по возрастанию методом прямого выбора?

5. Как реализуется алгоритм сортировки методом "пузырька"?

6. Как сделать объявление двумерного массива?

7. Как обратиться к переменной двумерного массива?

 

Лабораторная работа №8



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-12-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: