Методичка. Полный обучающий курс по Turbo Pascal. Полный обучающий курс Turbo Pascal
![]()
|
Глава 4. МассивыДвумерные массивыДвумерный массив – структура данных, хранящая прямоугольную матрицу. В матрице каждый элемент определяется номером строки и номером столбца, на пересечении которых он расположен. В Паскале двумерный массив представляется массивом, элементами которого являются одномерные массивы. Два следующих описания двумерных массивов тождественны: Var a: array [1..10] of array [1.. 20] of real; Var a: array [1..10, 1..20] of real; Чаще всего при описании двумерного массива используют второй способ. Доступ к каждому отдельному элементу осуществляется обращением к имени массива с указанием индексов (первый индекс – номер строки, второй индекс – номер столбца). Все действия над элементами двумерного массива идентичны действиям над элементами линейного массива. Только для инициализации двумерного массива используется вложенный цикл for. Например, For i:= 1 to 10 do For j:= 1 to 20 do A[i, j] := 0; При организации вложенных (сложных) циклов необходимо учитывать: Все правила, присущие простому циклу, должны соблюдаться Имена параметров для циклов, вложенных один в другой, должны быть различными Внутренний цикл должен полностью входить в тело внешнего цикла. Пересечение циклов недопустимо Пример 1. Сформировать таблицу Пифагора (таблица умножения) и вывести ее на экран. Program Pifagor; Uses crt; Var p: array[1..9, 1..9] of integer; i, j:integer; Begin Clrscr; for i:=1 to 9 do for j:= 1 to 9 do p[i,j]:= i*j; for i:=1 to 9 do begin for j:=1 to 9 do write(p[i,j], ‘ ‘); writeln end; end. Пример 2. Задан двумерный массив В(10, 10), заполненный случайными числами из [-10,10]. Найти и вывести на экран те элементы массива, которые больше заданного числа k. Program massiv; Uses crt; Var b: array[1..10, 1..10] of integer; i, j, k :integer; Begin Clrscr; for i:=1 to 10 do begin for j:= 1 to 10 do begin b [i,j]:= random(20)-10; write(b[i,j], ‘ ‘); end; writeln; end; write(‘Введите число k’); readln (k); For i:=1 to 10 do For j:=1 to 10 do If b[i, j] >k then write (b[i, j]); End. Глава 5. Строковые величиныСимвольные величиныЛитерный (символьный) тип char определяется множеством значений кодовой таблицы ПК. Каждому символу задается целое число от 0 до 255. В программе значения переменных и констант типа char должны быть заключены в апострофы. Пример. Program lit; Var c, symbol: char; Begin C:= ‘A’; Symbol:=’д’; Writeln(c); Write(symbol); End. Результат выполнения программы: А д Над данными символьного типа определены операции отношения: =, <>, >,<,<=,>=, вырабатывающие результат логического типа, и следующие стандартные функции: Chr(x) – преобразует выражение х в символ и возвращает значение символа Ord(ch) – преобразует символ ch в его код и возвращает значение кода Pred(ch) – возвращает предыдущий символ Succ(ch) – возвращает следующий символ Пример. Ord(‘:’) =58 Ord(‘A’)=65 Chr(128)=Б Pred(‘Б’)=А Succ(‘Г’)=Д Глава 5. Строковые величиныСтроковые величиныСтрока (строковый тип данных) – это последовательность символов кодовой таблицы ПК. Количество символов в строке (длина строки) может лежать в диапазоне от 0 до 255. Для определения данных строкового типа используется идентификатор string, за которым следует значение максимальной длины строки данного типа (заключается в квадратные скобки). Строковые данные могут использоваться в качестве констант. Строковая константа – последовательность символов, заключенная в апострофы. Например, ‘237’, ‘это строковая константа’. Переменную строкового типа можно определить в разделе описания переменных: Var <имя>: string[<максимальная длина строки>]. Например, var Name: string[20]. В описании строки можно не указывать длину, в этом случае она равна максимальной величине – 255. Элементы строки определяются именем строки с индексом, заключенным в квадратные скобки. Например, N[5]. Первый символ строки имеет номер 1 и т.д. Можно сказать, что строка представляет собой одномерный массив, элементами которого являются символы. Тип string и тип char совместимы, они могут употребляться в одних и тех же выражениях. Выражения, в которых операндами служат строковые данные, называются строковыми. Они могут состоять из строковых констант, переменных, знаков операций. Над этими данными допустимы операция сцепления (конкатенация) и операции отношения. Операция сцепления (+) применяется для соединения нескольких строк в одну строку. Сцеплять можно и константы, и переменные. Длина результирующей строки не должна превышать 255 символов. Операции отношения (=, <>, >, <, <=, >=) проводят сравнение двух строк и имеют приоритет более низкий, чем операция конкатенации. Сравнение строк производится слева направо до первого несовпадающего символа. Строка считается больше, если в ней первый несовпадающий символ имеет больший номер в таблице кодов. Например, ‘MS-DOS’<’MS-Dos’. Если строки имеют различную длину, но в общей части символы совпадают, то более короткая строка меньше. Например, ‘Компьютер’<’Компьютер ’. Строки равны, если они полностью совпадают. Например, ‘Маска’ = ’Маска’. Для обработки строковых данных можно использовать специальные процедуры и функции. Процедура Delete(St, poz, n) – удаление n символов строки St, начиная с позиции Poz. Пример
Процедура Insert (S1, S2, Poz) – вставка строки S1 в строку S2, начиная с позиции Poz. Пример
Процедура Str(N,St) – преобразование числового значения N в строковый и помещение результата в строку St. Пример
Процедура Val(St, N,Code) – преобразует значение St в величину целочисленного или вещественного типа и помещает результат в N. Code – целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение Code равно 0, если же обнаружена ошибка, то Code будет содержать номер позиции первого ошибочного символа, а значение N не определено. Пример
Функция Copy(S, Poz, N) – выделяет из строки S подстроку длиной N символов, начиная с позиции Poz. Пример
Функция Concat(S1,S2,…,Sn) – выполняет сцепление строк S1,S2,…,Sn в одну строку. Пример
Функция Length(S) – определяет текущую длину строки S. Пример
Функция Pos(S1,S2) – определяет первое появление в строке S2 подстроки S1. Пример
Функция UpCase (ch) – преобразует строчную букву в прописную.Обрабатывает буквы только латинского алфавита. Пример
Пример. Из данной символьной строки выбрать все цифры и сформировать другую строку из этих цифр, сохранив их последовательность. Program Stroki; Var S1, S2:string; Begin Write(‘Введите строку’); Readln(S1); S2:= ‘ ‘; For i:=1 to length(S1) do If (S1[i]>=’0’) and (S1[i]<=’9’) Then S2:=S2+S1[i]; Writeln(‘Результат’, S2) End. |