ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
им. Н. П. ОГАРЕВА»
Светотехнический факультет
Кафедра светотехники
Лабораторная работа №14
«Программирование с использованием циклов»
Саранск 2006
Цель работы: изучить принципы работы с многострочным редактором. Научиться программировать с использованием циклов.
Теоретическая часть
Многострочный редактор.
Компонент Memo содержит несколько строк текста. Для работы с отдельными строками используется св-во Lines типа String. Нумерация строк начинается с нуля.
Методы Add и Insert служат для добавления/вставки строк в список. Функция Add(S) добавляет заданную строку S в конец списка. Процедура Insert(n, S) вставляет строку S на позицию с номером n.
Memo1.Lines[1]:=’adhfd’; - второй строке присваивается новое значение
Memo1.Lines.Clear; - содержимое редактора полностью очищается
Memo1.Lines.Add(‘sdgg’); - в конец текста редактора добавляется новая строка.
Содержимое компонента Memo можно загружать из файла и сохранять в текстовом файле. Для этого используются методы LoadFromFile(FileName) и SaveToFile(FileName).
Memo1.Lines. LoadFromFile(‘c:\ПРОБА\хаха.txt’) – чтение из файла,
Memo1.Lines. SaveToFile (‘c:\ПРОБА\хаха.txt’)- запись в файл.
Св-во AutoSelect типа Boolean определяет, будет ли автоматически выделен текст в элементе редактирования, когда последний получает фокус.
Значение св-ва SelText типа String определяет выделенный фрагмент.
Св-ва SelStart и SelLength типа Integer задают начальную позицию в строке и длину выделенного фрагмента.
Если фрагмент выделяется программно и должен быть выделен цветом, то св-ву HideSelection необходимо установить значение False (если True – то текст не будет выглядеть выбранным при переходе фокуса на другой элемент управления).
Метод SelectAll выделяет весь текст в элементе редактирования.
Методы CopyToClipBoard и CutToClipBoard копирует и вырезает в буфер обмена выделенный фрагмент текста.
Memo1.CopyToClipBoard;
Метод PasteFromClipBoard вставляет текс из буфера обмена в место текущего курсора.
Метод Count возвращает количество строк в компоненте Memo. Т.к. первая строка имеет нулевой номер, то номер последней строки равен Count-1.
i:=Memo1.lines.Count;
Оператор цикла с параметром FOR.
Эта инструкция организует выполнение одной последовательности действий заранее известное число раз.
В общем виде инструкция for записывается следующим образом:
for счетчик: нач_знач to кон_знач_счетчика do { последовательность инструкций, которая называется телом цикла }
где
счетчик — имя переменной-счетчика числа повторений инструкций цикла;
нач _ знач — выражение, определяющее начальное значение переменной-счетчика;
кон_знач — выражение, определяющее конечное значение переменной-счетчика.
Оператор цикла WHILE.
Инструкция while используется в том случае, если некоторую последовательность действий (инструкций программы) надо выполнить несколько раз, причем, необходимое число повторений во время разработки программы неизвестно и может быть определено только во время ее работы, т. е. в процессе вычисления.
Выход из цикла осуществляется, если некоторое логическое выражение окажется ложным.
В общем виде инструкция while записывается следующим образом:
while условие do {последовательность инструкций}
где условие — выражение логического типа.
Оператор цикла REPEAT.
Инструкция repeat.. until, как и инструкция while, используется в программе, если надо провести некоторые повторные вычисления (организовать цикл), причем, необходимое число повторений во время разработки программы неизвестно и может быть определено только во время работы программы, т. е. определяется ходом вычисления.
В общем виде инструкция repeat...until записывается следующим образом:
repeat
инструкция1;
инструкция2;
инструкция3;
until условие;
где условие — выражение логического типа, определяющее условие завершения цикла.
Инструкции, находящиеся между repeat и until выполняются до тех пор, пока условие ложно (значение выражения условие равно false).
Процедуры Break и Continue.
Процедура Break позволяет досрочно выйти из цикла, не дожидаясь выполнения условия выхода. Процедура Continue позволяет начать новую итерацию цикла, даже если предыдущая не завершена.
Задание.
1. Задать одномерный массив – константу, содержащий 10 целых чисел. Найти минимальный и максимальный элементы, вывести их значения и индексы.
2. Используя многострочный редактор ввести двумерный массив, содержащий 3 столбца и 3 строки. Найти сумму и среднее арифметическое элементов массива.
3. Ввести два двумерных массива (3*3). Провести транспонирование первого массива, затем поэлементное суммирование транспонированного и второго массивов.
4. Используя многострочный редактор и динамический массив ввести массив, состоящий из произвольного количества строк и столбцов.