Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб.работы Информатика.doc
Скачиваний:
14
Добавлен:
08.02.2016
Размер:
820.22 Кб
Скачать

Лабораторная работа №8 Тема: Динамические массивы.

Цель работы:

  • изучение свойств динамических массивов.

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

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

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

  2. Значения элементов массива задать функцией Random(10).

  3. Выполнить требуемые преобразования.

  4. Вывести исходные и преобразованные данные, снабдив их соответствующими комментариями в компоненты Label1 иLabel2 соответственно.

  5. Параметры вычисления матрицы взять в соответствии с вариантом из таблицы 8.1.

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

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

Таблица 8.1.

Условия задания

00

Дан массив А размером mxn. Сформировать масив Виз наибольших элементов каждой строки массива А.

01

В массиве А размером mxnпоменять местами элементы 2 и 4-й строк.

02

В массиве А размером mxnвсе элементы разделить на наибольший элемент первого столбца.

03

Задан массив А размером mxn. Сформировать массив В из элементов, расположенных выше главной диавгонали.

04

Задан массив А размером mxn. Сформировать массив В из произведений элементов каждого столбца массива А

05

Задан массив А размером mxn. Заменить положительные элементы номером строки, в которой они находятся.

06

Задан массив А размером mxn. Сформировать массив В из номеров столбцов, в которых находятся минимальные элементы каждой строки.

07

Задан массив А размером mxn. Заменить отрицательные элементы номером столбца, в котором они находятся.

08

Задан массив А размером mxn. Сформировать массив В из элементов, расположенных ниже главной диагонали.

09

В заданном массиве А размером mxnстроку, содержащую наибольший элемент, заменить единицами.

10

В заданном массиве А размером mxnразделить все элементы на максимальный элемент первого столбца.

11

Задан массив А размером mxn. Требуется к отрицательным элементам массива прибавить 4, от положительных элементов массива вычесть 3.

12

Задан массив А размером mxn. Заменить его отрицательные элементы их квадратами.

13

Задан массив А размером mxn. Сформировать массив В из номеров строк, в которых находятся максимальные элементы каждого столбца.

14

Задан массив А размером mxn. Сформировать массив В из отношений элементов третьего столбца к элементам первого столбца.

15

Задан массив А размером mxn. Разделить элементы массива на сумму элементов, расположенных на главной диагонали.

16

Задан массив А размером mxn. Сформировать массив В из элементов массива А, умноженных на сумму их индексов.

17

Задан массив А размером mxn. Сформировать массив В из элементов побочной диагонали.

18

Задан массив А размером mxn. Заменить отрицательные элементы суммой номера столбца и номера строки, в которых они находятся.

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

  1. Как осуществляется распределение памяти и указание границ индексов по каждому измерению динамических массивов?

  2. Чему всегда равна нижняя граница индексов по любому измерению динамического массива?

  3. Какие действия необходимо осуществить при изменении длины уже инициированного динамического массива по какому-либо его измерению?

  4. Опишите основные характеристики динамических массивов.

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

Тема:Обработка символов и строк.

Цель работы:

  • Использовать стандартные процедуры и функции для работы со строковыми данными;

  • Решить задачи, связанные с обработкой и редактированием текста.

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

Ввести текст в поле компонента Memo1 выполнить необходимые преобразования и вывести результат в компонентLabel1.

Исходный текст или строку формирует студент, исходя из требований заданий.

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

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

Таблица 9.1.

Условия задания

00

Дана символьная строка. Заменить каждую группу CHILDна группуCHILDREN, если нет группы символовCHILD, то сообщить об этом.

01

Дана символьная строка. Исключить группы символов, расположенные между скобками (). Сами скобки тоже должны быть исключены. Предполагается, что внутри каждой пары скобок нет других скобок.

02

Дана символьная строка. Заменить каждый символ, встречающийся после первого вхождения символа *, на символ $, если нет символа *, то сообщить об этом.

03

Дана символьная строка, в которой есть двоеточие. Вывести все символы, которые расположены до первого двоеточия. Вывести все символы расположенные после первого двоеточия. Все символы расположенные между первым и вторым двоеточием.

04

Дана символьная строка. Вычислить количество букв А в последнем слове данной строки. Найти количество букв, начинающихся на букву А. Определить длину самого короткого слова.

05

Дана символьная строка. Сжать строку по принципу: несколько вхождений одного и того же символа, заменяется на текст Х(К), где Х – символ, а К – строка, являющаяся записью числа вхождений символа Х в исходную последовательность ( $$$#####FFFRпреобразуется в $(4)#(5)F(3)R).

06

Дана символьная строка. Задан символ. Определить позицию вхождения самого правого заданного символа в строку, если такого символа в строке нет, то сообщить об этом.

07

Дана символьная строка. Найти какое-нибудь слово, оканчивающееся буквой Д, если такого слова нет, то сообщить об этом. Удалить из строки все слова, заканчивающиеся группой символов КОЕ.

08

Дана символьная строка. Определить слово, начинающееся буквой А и заканчивающееся буквой Я, если таких слов нет, то сообщить об этом. Удалить из строки все слова, заканчивающиеся группой символов КАЯ.

09

Дана символьная строка. Удалить из строки слова, встечающиеся больше двух раз. Найти самое длинное слово и количество букв в нем.

10

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

11

Дана символьная строка. Найти слова, в которые первая буква входит хотя бы еще один раз. Найти слова, в которые последняя буква входит не менее трех раз.

12

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

13

Дана символьная строка. Удалить из слов все последующие вхождения первой буквы. Выделить слова с четным количеством букв с обеих сторон символом *.

14

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

15

Дана символьная строка. Вывести все слова строки с указанием числа вхождений в строку. Вывести все слова в алфавитном порядке.

16

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

17

Дана символьная строка. В словах, которые заканчиваются группой букв ОЕ, заменить данную группу на ИЯ. Вывести последнее слово строки.

18

Дана символьная строка. Найти какое-нибудь слово начинающееся буквой С. Преобразовать данную строку, заменяя всякое вхождение слова ЭТО на слово ТО. Найти длину самого короткого слова.

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

  1. Как сравниваются между собой строки?

  2. Охарактеризуйте операцию конкатенации. Приведите пример.

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

  4. Какие действия выполняет процедура DELETE?Приведите пример.

  5. Какие действия выполняет функция РОS? Приведите пример.

  6. Какие действия выполняет функция СОРУ? Приведите пример.

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

Тема:Текстовые файлы.

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

Цель работы:

  • Изучить файловую систему языка ObjectPascal, процедуры и функции для работы с текстовыми файлами;

  • Составить программы для работы с матрицами с использованием текстовых файлов.

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

Исходную матрицу формирует студент, исходя из требований заданий.

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

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

Таблица 10.1.

Условия задания

00

Из текстового файла M1.TXTсчитать матрицу 5х5. Поместить ее в компонентSTRINGGRID1. Найти среднее арифметическое матрицы и вывести в компонентLABEL1.

01

Из текстового файла M1.TXTсчитать матрицу 5х5 в компонентSTRINGGRID1. Найти максимальные элементы по каждой строке матрицы и вывести их в компонентLABEL1 с пояснением.

02

Ввести значения матрицы 5х5 в компонент STRINGGRID1. Найти максимальные элементы каждого столбца матрицы. Вывести их в компонентLABEL1 с пояснениями, сформировать из них одномерный массив и записать его в файлM1.TXT.

03

Из текстового файла M1.TXTсчитать матрицу 5х5 в компонентSTRINGGRID1. Найти сумму элементов главнойS1 и побочнойS2 диагоналей. Результат вывести в компонентLABEL1 с пояснениями.

04

Из текстового файла M1.TXTсчитать матрицу 5х5. Умножить ее на число, введенное в поле компонентаEDIT1, и вывести полученную матрицу в компонентSTRINGGRID1.

05

Из текстового файла M1.TXTсчитать матрицу 5х5. Найти максимальный элемент, среди элементов, расположенных ниже главной диагонали матрицы. Результат с пояснениями вывести в компонентLABEL1.

06

Из текстового файла M1.TXTсчитать матрицу 5х5. Найти в матрице суммы элементов, расположенных ниже главной диагоналиS1 и выше главной диагоналиS2. Результат с пояснениями вывести в компонентLABEL1.

07

Из текстового файла M1.TXTсчитать матрицу 5х5 в компонентSTRINGGRID1. Найти среднее арифметическое элементов, расположенных ниже побочной диагонали. Результат с пояснениями вывести в компонентLABEL1.

08

Из текстового файла M1.TXTсчитать матрицу 5х5. Найти разностьRмежду суммами элементов выше побочной диагоналиS1 и ниже побочной диагоналиS2 (R=S1-S2). Результат с пояснениями вывести в компонентLABEL1.

09

Ввести значения матрицы 5х5 в компонент STRINGGRID1. Транспонировать ее и результат записать в файлM1.TXT.

10

Из текстового файла M1.TXTсчитать матрицу 5х5. Найти в ней все элементы, равные по значению числу, введенному в поле компонентаEDIT1. Результат с пояснениями вывести в компонентLABEL1.

11

Из текстового файла M1.TXTсчитать матрицу 5х5. Найти максимальный и минимальный элементы матрицы и поменять их местами. Результат записать в файлM2.TXT.

12

Из текстового файла M1.TXTсчитать матрицу 5х5. Найти сумму и количество четных по значению элементов матрицы. Результат вывести в поле компонентаLABEL1.

13

Из текстового файла M1.TXTсчитать матрицу 5х5. Найти число строк этой матрицы, имеющие отрицательные элементы. Результат вывести в поле компонентаLABEL1.

14

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

15

Из текстового файла M1.TXTсчитать матрицу 5х5. Найти число строк матрицы, имеющих нулевые по величине элементы. Вывести результат с пояснениями в компонентLABEL1.

16

Из текстового файла M1.TXTсчитать матрицу 5х5. Найти произведение значений элементов матрицы, больших пяти. Результат вывести в поле компонентаLABEL1.

17

Из текстового файла M1.TXTсчитать матрицу 5х5 в компонентSTRINGGRID1. Найти максимальный по величине элемент, среди элементов, расположенных по периметру матрицы. Результат вывести в поле компонентаLABEL1.

18

Из текстового файла M1.TXTсчитать матрицу 5х5. Найти число элементов этой матрицы, значение которых равны двум. Результат вывести в поле компонентаLABEL1 с пояснениями.

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

  1. Что необходимо, для того чтобы программа могла выводить данные в файл или считывать данные из файла?

  2. Что выполняет процедура AssignFile?

  3. Объясните понятие файловая переменная.

  4. Для чего служит инструкция write?

  5. В чем различие между инструкциями write и writeln?

  6. Когда применяется процедура Rewrite?

  7. Когда применяется процедура Append?

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

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

Тема:Текстовые файлы.

Использование текстовых файлов для работы со строковыми данными.

Цель работы:

  • Изучить файловую систему языка ObjectPascal, процедуры и функции для работы с текстовыми файлами;

  • Составить программы для работы со строками с использованием текстовых файлов.

Составить код программы для обработки строковых данных, содержащихся в текстовом файле.

Исходный текст или строку формирует студент, исходя из требований заданий.

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

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

Таблица 11.1.

Условия задания

00

Из текстового файла T1.TXTсчитать текст. Найти самое длинное слово текста и количество букв в этом слове. Результат вывести в компонентLABEL1.

01

Из текстового файла T1.TXTсчитать текст. Найти в тексте слова с количеством букв, равным числуN, введенному в полеEDIT1. Сформировать из них строку и вывести ее в компонентLABEL1.

02

Из текстового файла T.TXTсчитать текст. Найти в тексте слова с четным количеством букв, сформировать из них строкуST1 и записать в файлT1.TXT, и с нечетным количеством букв, сформировать из них строкуST2 и записать в файлT2.TXT.

03

Из текстового файла T1.TXTсчитать текст. Найти в нем слова, состоящие из пяти букв и сформировать из них строкуST1. Вывести результат в компонентLABEL1.

04

Из текстового файла T1.TXTсчитать текст. Найти все слова, начинающиеся со слога, заданного в поле компонентаEDIT1. Сформировать из этих слов строкуSTи вывести ее в компонентLABEL1.

05

Из текстового файла T1.TXTсчитать текст. Найти в тексте слова, состоящие из четырех букв и вставить после них слово, введенное в поле компонентаEDIT1. Текст, полученный в результате внесенных изменений записать в файлT2.TXT.

06

Из текстового файла T1.TXTсчитать текст. Найти в тексте самое длинное и самое короткое слова и поменять их местами. Результат записать в файлT2.TXT.

07

Из текстового файла T1.TXTсчитать текст. Найти в данном тексте самое большое (по коду символа) слово и заменить его на слово, введенное в поле компонентаEDIT1. Полученный результат записать в файлT2.TXT.

08

Из текстового файла T1.TXTсчитать текст. Найти в тексте слова, которые начинаются и заканчиваются на одинаковые буквы. Составить из них новую строкуSTи вывести ее в компонентLABEL1.

09

Из текстового файла T1.TXTсчитать текст. Записать текст от последнего до первого слова (было: 1,2,…,n-1,n; стало:n,n-1,…,2,1). Результат вывести в компонентLABEL1.

10

Из текстового файла T1.TXTсчитать текст. Найти с нем слово, введенное в поле компонентаEDIT1 и заменить его на слово, введенное в поле компонентаEDIT2. Результат записать в файл Т2.TXT.

11

Из текстового файла T1.TXTсчитать текст. Найти в тексте самое короткое слово и удалить его из текста. Результат вывести в компонентLABEL1.

12

Из текстового файла T1.TXTсчитать текст. Найти и удалить из текста все слова, которые состоят из трех букв. Результат вывести в поле компонентаMEMO1.

13

Из текстового файла T1.TXTсчитать текст. Найти в тексте самое короткое слово, и заменить его на слово, введенное в поле компонентаEDIT1. Результат вывести в поле компонентаLABEL1.

14

Из текстового файла T1.TXTсчитать текст. Поменять местами слова с заранее заданными номерамиMиN(номераMиNзадать соответственно в компонентахEDIT1 иEDIT2). Результат вывести в поле компонентаLABEL1.

15

Из текстового файла T1.TXTсчитать текст. Найти слова в тексте, начинающиеся и заканчивающиеся буквой, код которой задан в компонентеEDIT1. Составить строку из этих слов и вывести ее в поле компонентаLABEL1.

16

Из текстового файла T1.TXTсчитать текст. Каждую букву слова с номеромN, заменить на первую букву слова с номеромM(номераN,Mввести в компонентEDIT1,EDIT2 соответственно). Результат вывести в поле компонентаLABEL1.

17

Из текстового файла T1.TXTсчитать текст. Найти В и С – начало и конец самого длинного слова в тексте иN– число букв в этом слове. Результат вывести в поле компонентаLABEL1.

18

Из текстового файла T1.TXTсчитать текст. В каждом слове текста, содержащем не менее четырех букв, поменять местами первую и последнюю буквы. Результат вывести в поле компонентаLABEL1.

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

  1. Опишите причины возможных ошибок при открытии файлов?

  2. Для чего используется процедура CloseFile?

  3. Для чего используется процедура Reset?

  4. Какая инструкция осуществляет чтение из файлов?

  5. В чем отличие инструкций read и readln?

  6. Что определяет функция EOF?

  7. Как производится чтение строк из файла?

  8. Как производится объявление файла?

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

Тема: Записи

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

  1. Формирование записи по заданному варианту.

  2. Значения полей записи ввести в компонент Stringgrid1 или в компонентыEdit(N), где значениеNопределяется количеством полей создаваемой записи.

  3. Выполнить требуемые преобразования.

  4. Вывести исходные и преобразованные данные, снабдив их соответствующими комментариями в компоненты Label1 иLabel2 соответственно.

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

Варианты заданий. Таблица 12.1.

Условия задания

00

Информация о туристе состоит из фамилии, возраста и пола. Представить информацию в виде записи. Задать информацию о группе туристов из 10 человек. Найти:

А). количество мужчин;

Б). средний возраст группы;

В). фамилию младшей из женщин.

01

Представить дату (день, месяц, год) в виде записей. Задать информацию из 10 разных дат. Найти:

А). все даты августа месяца;

Б). наименьший из годов;

В) все зимние даты.

02

Информация о студенте состоит из его фамилии, роста (в см), пола, успеваемости(средняя оценка по пяти предметам, полученная на последней сессии). Представить информацию в виде записи. Задать информацию о группе из 10 студентов. Найти:

А). количество студентов, рост которых 170 – 175 см;

Б). количество мужчин – отличников;

В). Фамилии студентов, средний балл которых ниже 3.

03

Сведения об автомобиле состоят из номера (4-значное число), фамилии владельца и марки. Представить информацию в виде записи. Задать информацию о группе владельцев из 10 человек. Найти:

А). номера и фамилии владельцев автомобилей, заданной (в поле Edit1) марки;

Б). количество автомобилей каждой марки;

В). Проверить, является ли Иванов владельцем автомобиля. Если да, указать марку и номер автомобиля.

04

Сведения о выдаче экземпляра журнала читателю состоят из названия журнала, номера и фамилии читателя. Представить информацию в виде записи. Задать информацию о группе из 10 человек. Найти:

А). по данному названию журнала, выдававшиеся номера и фамилии бравших их читателей;

Б). для каждого номера заданного журнала количество его выдач;

В). Узнать, является ли Петров читателем, перечислить выданные ему журналы.

05

Информация об участнике спортивного соревнования по лыжам состоит из фамилии, фамилии тренера, результата. Представить информацию в виде записи. Задать информацию о группе спортсменов из 10 человек. Найти:

А). средний результат, показанный воспитанниками указанного (в поле Edit1) тренера;

Б). указать фамилию победителя;

В).указать фамилию тренера, воспитанник которого пришел к финишу последним.

06

Сведения о книге состоят из фамилии автора, названия и года издания. Представить информацию в виде записи. Задать набор из 10 таких сведений. Найти:

А). название книг заданного (в поле Edit1) автора;

Б). количество книг, изданных не позднее 1980 года;

В). вывести .книги, изданные в период с 1990 по 2001 годы.

07

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

А). число пассажиров, имеющих более двух вещей;

Б). число пассажиров, количество вещей которых превосходит среднее число вещей;

В). определить, имеется ли пассажир, багаж которого состоит из одной вещи, весом менее 30 кг.

08

Сведения о сотрудниках учреждения состоят из фамилии, номера телефона, домашнего адреса. Представить информацию в виде записи. Задать набор из 10 таких сведений. Найти:

А). телефон сотрудника по его фамилии, заданного (в поле Edit1);

Б). домашний адрес сотрудника, по его фамилии, заданного (в поле Edit2);

В). домашний адрес сотрудника, по его номеру телефона, заданного (в поле Edit3).

09

Даны сведения о поселке городского типа: список улиц и количество домов на каждой улице. Представить информацию в виде записи. Задать набор из 10 таких сведений. Найти:

А). определить улицу с наибольшим количеством домов;

Б). указать улицы с количеством домов от 7 до 12;

В). вывести на экран названия улиц, количество домов на которых не превышает 10.

10

Информация о туристе состоит из фамилии, возраста и пола. Представить информацию в виде записи. Задать информацию о группе туристов из 10 человек. Найти:

А). количество женщин;

Б). средний возраст мужчин;

В). фамилию старшей из женщин.

11

Представить дату (день, месяц, год) в виде записей. Задать информацию из 10 разных дат. Найти:

А). все даты июля месяца;

Б). наибольший из годов;

В) все осенние даты.

12

Информация о студенте состоит из его фамилии, роста (в см), пола, успеваемости(средняя оценка по пяти предметам, полученная на последней сессии). Представить информацию в виде записи. Задать информацию о группе из 10 студентов. Найти:

А). количество студентов, рост которых 160 – 165 см;

Б). количество женщин – отличниц;

В). Фамилии студентов мужчин, средний балл которых ниже 3.

13

Сведения об автомобиле состоят из номера (4-значное число), фамилии владельца и марки. Представить информацию в виде записи. Задать информацию о группе владельцев из 10 человек. Найти:

А). номера и фамилии владельцев автомобилей, заданной (в поле Edit1) марки;

Б). количество автомобилей заданной (в поле Edit2) марки;

В). Проверить, является ли Петров владельцем автомобиля. Если да, указать марку и номер автомобиля.

14

Сведения о выдаче экземпляра журнала читателю состоят из названия журнала, номера и фамилии читателя. Представить информацию в виде записи. Задать информацию о группе из 10 человек. Найти:

А). по данному названию журнала, фамилии бравших их читателей;

Б). для указанного номера журнала количество его выдач;

В). Узнать, является ли Иванов читателем, перечислить выданные ему журналы.

15

Информация об участнике спортивного соревнования по лыжам состоит из фамилии, фамилии тренера, результата. Представить информацию в виде записи. Задать информацию о группе спортсменов из 10 человек. Найти:

А). средний результат, показанный воспитанниками указанного (в поле Edit1) тренера;

Б). указать фамилии участников соревнования, результаты которых ниже среднего;

В).указать фамилию тренера, воспитанник которого пришел к финишу первым.

16

Сведения о книге состоят из фамилии автора, названия и года издания. Представить информацию в виде записи. Задать набор из 10 таких сведений. Найти:

А). название и год издания книг заданного (в поле Edit1) автора;

Б). количество книг, изданных после 2000 года;

В). Вывести книги, изданные раньше 1990 и позже 2001 годов.

17

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

А). число пассажиров, имеющих более трех вещей;

Б). число пассажиров, количество вещей которых не превосходит среднее число вещей;

В). определить, имеется ли пассажир, багаж которого состоит из одной вещи, весом более 20 кг.

18

Сведения о сотрудниках учреждения состоят из фамилии, номера телефона, домашнего адреса. Представить информацию в виде записи. Задать набор из 10 таких сведений. Найти:

А). Телефон и фамилию сотрудника по его домашнему адресу, заданному (в поле Edit1);

Б). домашний адрес и телефон сотрудника , по его фамилии, заданной (в поле Edit2);

В). домашний адрес и фамилию сотрудника, по его номеру телефона, заданного (в поле Edit3).

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

  1. Охарактеризуйте понятие записи.

  2. Какого типа могут быть поля записи:

  3. Опишите структуру объявления типа записи.

  4. Каким образом можно получить доступ к определенному компоненту записи?

  5. Для чего используется оператор WITH. Приведите пример его применения.

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

Тема: Работа с типизированными файлами.

  1. Составить алгоритм и код программы для обработки типизированных файлов.

  2. Создать массив записей в компоненте Stringgrid1 и записать ее в типизированный файлT1.DATв событииClickкомпонентаButton1.

  3. Прочитать запись из типизированного файла T1.DATв компонентLabel1.

  4. Выполнить требуемые преобразования.

  5. Вывести преобразованные данные, снабдив их соответствующими комментариями в компонент Label2.

  6. Пункты 3,4,5 оформить в событии ClickкомпонентаButton2.

Варианты заданий. Таблица 13.2.

Условия задания

00

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

А). число пассажиров, имеющих более трех вещей;

Б). число пассажиров, количество вещей которых превосходит среднее число вещей;

В). определить, имеется ли пассажир, багаж которого состоит из одной вещи, весом менее 20 кг.

01

Сведения о книге состоят из фамилии автора, названия, года издания и библиотечного шифра. Ввести набор из 8 таких сведений. Определить:

А). по введенному автору, список книг и соответствующие шифры к ним;

Б). по введенному шифру, автора и название книги;

В). по введенному году издания, количество книг.

02

Сведения о выдаче экземпляра журнала читателю состоят из названия журнала, номера и фамилии читателя. Представить информацию в виде записи. Задать информацию о группе из 10 человек. Найти:

А). по данному названию журнала, выдававшиеся номера и фамилии бравших их читателей;

Б). для каждого номера заданного журнала количество его выдач;

В). Узнать, является ли Петров читателем, перечислить выданные ему журналы.

03

Даны сведения о поселке городского типа: список улиц и количество домов на каждой улице. Представить информацию в виде записи. Задать набор из 10 таких сведений. Найти:

А). определить улицу с наибольшим количеством домов;

Б). указать улицы с количеством домов от 7 до 12;

В). вывести на экран названия улиц, количество домов на которых не превышает 10.

04

Сведения об автомобиле состоят из номера (4-значное число), фамилии владельца и марки. Представить информацию в виде записи. Задать информацию о группе владельцев из 10 человек. Найти:

А). номера и фамилии владельцев автомобилей, заданной (в поле Edit1) марки;

Б). количество автомобилей каждой марки;

В). Проверить, является ли Иванов владельцем автомобиля. Если да, указать марку и номер автомобиля.

05

Сведения о книге состоят из фамилии автора, названия и года издания. Представить информацию в виде записи. Задать набор из 10 таких сведений. Найти:

А). название книг заданного (в поле Edit1) автора;

Б). количество книг, изданных не позднее 1980 года;

В). вывести .книги, изданные в период с 1990 по 2001 годы.

06

Сведения о сотрудниках учреждения состоят из фамилии, номера телефона, домашнего адреса. Представить информацию в виде записи. Задать набор из 10 таких сведений. Найти:

А). телефон сотрудника по его фамилии, заданного (в поле Edit1);

Б). домашний адрес сотрудника, по его фамилии, заданного (в поле Edit1);

В). домашний адрес сотрудника, по его номеру телефона, заданного (в поле Edit1).

07

Информация о туристе состоит из фамилии, возраста и пола. Представить информацию в виде записи. Задать информацию о группе туристов из 10 человек. Найти:

А). количество мужчин;

Б). средний возраст группы;

В). фамилию младшей из женщин.

08

Представить дату (день, месяц, год) в виде записей. Задать информацию из 10 разных дат. Найти:

А). все даты августа месяца;

Б). наименьший из годов;

В) все зимние даты.

09

Информация об участнике спортивного соревнования по лыжам состоит из фамилии, фамилии тренера, результата. Представить информацию в виде записи. Задать информацию о группе спортсменов из 10 человек. Найти:

А). средний результат, указанный воспитанниками указанного (в поле Edit1) тренера;

Б). указать фамилию победителя;

В).указать фамилию тренера, воспитанник которого пришел к финишу.

10

Сведения о сотрудниках учреждения состоят из фамилии, номера телефона, домашнего адреса. Представить информацию в виде записи. Задать набор из 10 таких сведений. Найти:

А). Телефон и фамилию сотрудника по его домашнему адресу, заданному (в поле Edit1);

Б). домашний адрес и телефон сотрудника , по его фамилии, заданной (в поле Edit2);

В). домашний адрес и фамилию сотрудника, по его номеру телефона, заданного (в поле Edit3).

11

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

А). число пассажиров, имеющих более трех вещей;

Б). число пассажиров, количество вещей которых не превосходит среднее число вещей;

В). определить, имеется ли пассажир, багаж которого состоит из одной вещи, весом более 20 кг.

12

Сведения о книге состоят из фамилии автора, названия и года издания. Представить информацию в виде записи. Задать набор из 10 таких сведений. Найти:

А). название и год издания книг заданного (в поле Edit1) автора;

Б). количество книг, изданных после 2000 года;

В). Вывести книги, изданные раньше 1990 и позже 2001 годов.

13

Информация об участнике спортивного соревнования по лыжам состоит из фамилии, фамилии тренера, результата. Представить информацию в виде записи. Задать информацию о группе спортсменов из 10 человек. Найти:

А). средний результат, показанный воспитанниками указанного (в поле Edit1) тренера;

Б). указать фамилии участников соревнования, результаты которых ниже среднего;

В).указать фамилию тренера, воспитанник которого пришел к финишу первым.

14

Сведения об автомобиле состоят из номера (4-значное число), фамилии владельца и марки. Представить информацию в виде записи. Задать информацию о группе владельцев из 10 человек. Найти:

А). номера и фамилии владельцев автомобилей, заданной (в поле Edit1) марки;

Б). количество автомобилей заданной (в поле Edit2) марки;

В). Проверить, является ли Петров владельцем автомобиля. Если да, указать марку и номер автомобиля.

15

Сведения о выдаче экземпляра журнала читателю состоят из названия журнала, номера и фамилии читателя. Представить информацию в виде записи. Задать информацию о группе из 10 человек. Найти:

А). по данному названию журнала, фамилии бравших их читателей;

Б). для указанного номера журнала количество его выдач;

В). Узнать, является ли Иванов читателем, перечислить выданные ему журналы.

16

Информация о студенте состоит из его фамилии, роста (в см), пола, успеваемости(средняя оценка по пяти предметам, полученная на последней сессии). Представить информацию в виде записи. Задать информацию о группе из 10 студентов. Найти:

А). количество студентов, рост которых 160 – 165 см;

Б). количество женщин – отличниц;

В). Фамилии студентов мужчин, средний балл которых ниже 3.

17

Представить дату (день, месяц, год) в виде записей. Задать информацию из 10 разных дат. Найти:

А). все даты июля месяца;

Б). наибольший из годов;

В) все осенние даты.

18

Информация о туристе состоит из фамилии, возраста и пола. Представить информацию в виде записи. Задать информацию о группе туристов из 10 человек. Найти:

А). количество женщин;

Б). средний возраст мужчин;

В). фамилию старшей из женщин.

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

  1. Опишите доступ (обращение) к типизированным файлам.

  2. Для чего используется процедура AssignFile?

  3. Что означает выражение «инициализировать файл»?

  4. Какие вы знаете процедуры открытия типизированного файла, и в каких случаях они используются?

  5. Объясните назначение функции FilePos.

  6. Объясните назначение функции FileSize.

  7. Объясните назначение процедуры Seek.

  8. Объясните назначение процедуры Read.

  9. Объясните назначение процедуры Write.

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

Тема:Графические возможности Delphi.

Цель работы:

  • изучить основные методы вычерчивания графических примитивов;

  • научиться вычерчивать график заданной функции.

Составить код программы вычерчивания графика функции F(x) на заданном отрезке [A,B] с шагомH.

Выражение для вычисления функции F, значенияA,B,Hвзять из таблицы 13.1 в соответствии с номером варианта.

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

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

Значение Mзадать локально в блокеConst.

Вывести результат построения функции F(х) с координатной осью (см. Рис.14.1).

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

Рис.14.1.

Таблица14.1.

Номер

варианта

Функция F(x)

Параметры

A

B

H

1

x-sin(x)

0

40

0,01

2

Sin(x)

0

100

0,002

3

Cos(x)

3

150

0,003

4

Tg(x)

0

360

0,0001

5

Ctg(x)

90

360

0,0001

6

Ctg(x/3)+sin(x)

90

360

0,0004

7

Sin(x/4)/2

0,5

120

0,0005

8

Arctg(x)

0

36

0,002

9

Sin(x)-cos(x)

-40

40

0,001

10

X*sin(x)

-30

70

0,002

11

Sin(1/x)

-0,1

0,1

0,00001

12

Cos(1/x)

-0,3

10

0,0002

13

Sin(x2)

-5

25

0,0001

14

Cos(x2)

-0,5

15

0,0002

15

Sin(x)+exp(x)

-10

10

0,0003

16

Cos(x)+exp(x*sin(x))

-10

10

0,0001

17

exp(x/2)*cos(x)

-35

40

0,0004

18

Sin(exp(x/10))

-30

40

0,0001

График функции

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

unit grfunc_;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type

TForm1 = class(TForm)

procedure FormPaint(Sender: TObject);

procedure FormResize(Sender: TObject);

private

{ Private declarations }

public

{Public declarations }

end;

var

Forml: TForml;

implementation

{$R*.DFM}

// Функция, график которой надо построить

Function f(x:real):real;

begin

f:=2*Sin(x)*exp(x/5) ;

end;

// строит график функции

procedure GrOfFunc;

var

x1,x2:real; // границы изменения аргумента функции

y1,y2:real; // границы изменения значения функции

х:real; // аргумент функции

у:real; // значение функции в точке х

dx:real; // приращение аргумента

l,b:integer; // левый нижний угол области вывода графика

w,h:integer; // ширина и высота области вывода графика

mx,my:real; // масштаб по осям X и Y

х0,у0:integer; // точка — начало координат

begin

// область вывода графика

l:=10; // X — координата левого верхнего угла

b:=Forml.ClientHeight-20;

//У — координата левого верхнего угла

h:=Forml.ClientHeight-40; // высота

w:=Forml.Width-40; // ширина

x1:=0; // нижняя граница диапазона аргумента

х2:=25; // верхняя граница диапазона аргумента

dx:=0.01; // шаг аргумента

// найдем максимальное и минимальное значения

// функции на отрезке [x1,x2]

y1:=f(xl); // минимум

y2:=f(xl); //максимум

x:=x1;

repeat

У := f (х);

if у < yl then yl:=y;

if у > у2 then y2:=y;

х:=x+dx; until (x >= х2);

// вычислим масштаб

my:=h/abs(y2-yl); // масштаб по оси Y

mx:=w/abs(x2-xl); // масштаб по оси X

х0:=1;

у0:=b-Abs(Round(y1*my)) ;

with form1.Canvas do

begin

// оси

MoveTo(l,b);LineTo(l,b-h);

MoveTo(x0,y0);LineTo(x0+w,y0);

TextOut(l+5,b-h,FloatToStrF(y2,ffGeneral,6,3));

TextOut(l+5,b,FloatToStrF(yl,ffGeneral,6,3));

// построение графика

x:=xl; repeat

y:=f(x);

Pixels[x0+Round(x*mx),y0-Round(y*my)]:=clRed;

x:=x+dx;

until (x >= x2);

end;

end;

procedure TForm1.FormPaint(Sender: TObject);

begin

GrOfFunc;

end;

// изменился размер окна программы

procedure TForm1.FormResize(Sender: TObject);

begin

// очистить форму

forml.Canvas.FillRect(Rect(0,0,ClientWidth,

ClientHeight));

// построить график

GrOfFunc;

end;

end.

Основную работу выполняет процедура GrOfFunc, которая сначала вычисляет максимальное (у2) и минимальное (yl) значения функции на отрезке [x1,x2]. Затем, используя информацию о ширине (Forml.Clientwidth -40) и высоте (Form1.ClientHeight - 40) области вывода графика, вычисляет масштаб по осям X (mх) иY(mу).

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

Вызов процедуры GrOfFunc выполняют процедуры обработки событий onPaint и onFormResize. Процедура TForm1. FormPaint обеспечивает вычерчивание графика после появления формы на экране в результате запуска программы, а также после появления формы во время работы программы, например, в результате удаления или перемещения других окон, полностью или частично перекрывающих окно программы. Процедура TForm1.FormResize обеспечивает вычерчивание графика после изменения размера формы.

Рис. 14.2. График, построенный процедурой GrOfFunc

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

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

  1. Охарактеризуйте свойство Canvas.

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

  3. Перечислите свойства объекта TPеn (карандаш), а так же запишите, что определяет каждое из них.

  4. Перечислите свойства объекта TBrush (кисть), а так же запишите, что определяет каждое из них.

  5. Какие значения свойства Color Вы знаете?

  6. Перечислите виды линий (значение свойства Реn.Tуре), которые вы знаете.

  7. Какие значения свойства Реп.Mode Вы знаете?

  8. Какой метод используется для вывода текста на поверхность графического объекта?

  9. Перечислите, какие свойства объекта TFont Вы знаете.

  10. Какой метод осуществляет вычерчивание прямой линии?

  11. Каким методом вычерчивается ломаная линия?

  12. Какой метод применяется для вычерчивания эллипса или окружности?

  13. Напишите инструкцию вызова метода для вычерчивания дуги.

  14. Напишите инструкцию вызова метода для вычерчивания прямоугольника.

  15. Напишите общий вид инструкции для вычерчивания сектора.

Тема: Изучение ИНТЕГРИРОВАННОЙ СРЕДЫ DELPHI

Сикерина Неля Викторовна

Методические указания к лабораторным работам по курсу "Информатика"

для студентов1-го курса дневной формы обучения по направлению