Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб.раб. программирование.pdf
Скачиваний:
111
Добавлен:
21.05.2015
Размер:
764.95 Кб
Скачать

Вариант 3.

1.Даны a, b и c из интервала [-12,12], генерируемые случайным образом. Найти количество чисел кратных 5.

2.Дана строка s. Найти количество вхождений в нее букв a, b, c.

3.Дан двумерный массив произвольной размерности. Найти сумму элементов его главной диагонали.

Вариант 4.

1.Даны a, b и c из интервала [-10,10], генерируемые случайным образом. Найти сумму четных элементов.

2.Дана строка s. Заменить все цифры знаком *, а буквы — знаком +.

3.Дан линейный массив произвольной размерности. Найти среднее арифметическое его положительных элементов. Заменить положительные элементы на среднее арифметическое.

Лабораторная работа 13. Динамические массивы

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

Например,

var a: array of integer;

aa: array of array of real;

Размерность устанавливается в теле программы:

SetLength(a, 10); //длинна массива а – 10 элементов.

SetLength(aa, 10, 10); //размерность матрицы 10 х 10.

Проход по массиву осуществляется от первого (нулевого) до последнего элемента:

for i := Low(a) to High(a) do //здесь i — перечислимого типа

Рассмотрим пример решения задачи: найти сумму элементов массива с нечетными индексами. Размерность вводится с клавиатуры. Массив генерируется случайным образом; элементы лежат в диапазоне -10 .. 10.

Опишем переменные:

Var sum, i, len: integer;

a: array of integer; begin

write(’Введите размерность массива’);

© ИМПИ ОГПУ

Readln(len);

SetLength(a, len);

randomize;

for i := low(a) to high(a) do begin

a[i] := random(21)-10;

Write(a[i]:5); end;

Writeln;

//Найдем сумму элементов массива с нечетными индексами for i := low(a) to high(a) do

if (i mod 2<>0) then sum := sum + a[i];

Writeln(’сумма=’,sum:8)

End.

Задания для самостоятельной работы

Вариант 1

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

2.Дан целочисленный массив. Преобразовать его, прибавив к четным числам первый элемент. Первый и последний элементы массива не изменять.

3.Дана матрица. Найти сумму и произведение элементов k-го столбца данной матрицы.

Вариант 2.

1.Заполнить массив случайными числами. Поменять местами минимальный и максимальный элементы массива.

2.Заменить все положительные элементы целочисленного массива на значение среднего арифметического эго элементов.

3.Дана матрица. Найти минимальное значение в каждой строке.

Вариант 3.

1.Дан линейный массив. Отсортировать его по убыванию.

2.Дан целочисленный массив. Преобразовать его, прибавив к нечетным числам последний элемент. Первый и последний элементы массива не изменять.

3.Дана матрица. Найти сумму положительных элементов, стоящих на главной и побочной диагоналях.

Вариант 4.

1.Заполнить массив случайными числами. Поменять местами первый и максимальный элементы массива.

©ИМПИ ОГПУ

2.Заменить все отрицательные элементы целочисленного массива на значение минимального элемента.

3.Дана матрица. Найти минимальное значение в каждом столбце.

Лабораторная работа 14. Тип данных Variant

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

Когда на этапе проектирования программы мы не можем четко определить тип данных определенной переменной, можно воспользоваться типом Variant.

Var V: Variant; begin

V := 5; V := ’text’; V := true; V := 3.6; end.

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

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

Например:

V2, V3: Variant;

Var

V1,

begin

’1’; V2 := ’5’; V3 := 10;

V1

:=

V1

:=

V1+V2+V3; // ответ 15+10 = 25

end;

 

 

Тип значения переменной типа вариант можно узнавать с помощью функции VarType (V: Variant): Word; Она возвращает значение из набора констант.

Например, константа VarInteger означает целое число.

Возможные

 

значения

Обозначение

функции:

Вариант пустой

varEmpty

VarSmallint

Smallint

varInteger

Integer

varSingle

Single

varDouble

Double

varCurrency

Currency

varDate

TDateTime

varOLEStr

WideString

varError

Код ошибки

© ИМПИ ОГПУ

varBoolean

Boolean

varUnknown

Неизвестный объект

varByte

Byte

varString

AnsiString

Для преобразования типов используется функция VarAsType (Const V: Variant, type: integer): Variant; Например:

V := 23; V := VarAsType (V, VarString);

Для того чтобы вывести на экран значение переменой типа вариант ее нужно преобразовать в строку с помощью функции

VarToStr (V:Variant): String;

Задания для самостоятельной работы

По введенной переменной типа Variant выводить сообщение о том, принадлежит ли она типу Byte или Single.

Лабораторная работа 15. Тип TDateTime

Переменная типа TDateTime представляет собой действительное число. Его

целая часть соответствует дате и содержит количество дней, прошедших с 30 декабря 1899 года, дробная часть соответствует времени и равна части суток, прошедшей с момента их начала.

Для обработки даты и времени модуль SysUtils содержит следующие основные функции:

function Date: TDataTime; Возвращает текущую дату как значение типа TDateTime.

function

DateToStr(Date:

TDateTime):

string;

 

Преобразовывает дату, указанную параметром Date, в строку в

 

соответствии с форматом, определяемым глобальной переменной

 

ShortDateFormat.

TDateTime):

Integer;

function

DayOfWeek(Date:

 

Возвращает номер дня недели для даты, указанной параметром Date. Для

 

воскресенья возвращается значение 1, для понедельника — 2 и т. д.

function EncodeDate(Year, Month, Day: Word): TDateTime; Собирает значение даты из заданных составляющих Year, Month и Day и возвращает его, как значение типа TDateTime.

function IncMonth(const Date: TDafeTime; NumberOfMonths: Integer): TDateTime; Возвращает значение даты, увеличенное на указанное параметром NumberOf-Months количество месяцев.

©ИМПИ ОГПУ