Программирование |
Web мастеру |
3D Графика и анимация |
Сетевая безопасность |
Гостевая книга |
Форум |
Ссылки |
Услуги |
|
|
На главную страницу > > В раздел программирование > > В раздел Pascal |
Массивы. |
Двумерные массивы Двумерный массив – структура данных, хранящая прямоугольную матрицу. В матрице каждый элемент определяется номером строки и номером столбца, на пересечении которых он расположен. В Паскале двумерный массив представляется массивом, элементами которого являются одномерные массивы. Два следующих описания двумерных массивов тождественны: 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. Пример Значение St Выражение Результат ‘абвгде’ Delete(St, 4, 2); ‘абве’ ‘река Волга’ Delete(St, 1, 5); ‘Волга’ Процедура Insert (S1, S2, Poz) – вставка строки S1 в строку S2, начиная с позиции Poz. Пример Значение S1 Значение S2 Оператор Результат ‘ ЕС ’ ‘ЭВМ1841’ Insert (S1, S2, 4); ‘ЭВМ ЕС 1841’ ‘ N’ ‘ Рис. 2’ Insert (S1, S2 , 6); ‘ Рис. N2’ Процедура Str(N,St) – преобразование числового значения N в строковый и помещение результата в строку St. Пример Значение N Выражение Результат 1500 Str (N:6,St); ‘ 1500’ Процедура Val(St, N,Code) – преобразует значение St в величину целочисленного или вещественного типа и помещает результат в N. Code – целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение Code равно 0, если же обнаружена ошибка, то Code будет содержать номер позиции первого ошибочного символа, а значение N не определено. Пример Значение St Выражение Результат ‘1500’ Val(St, N,Code); Code=0 ’14.2A+02 Val(St, N,Code); Code=5 Функция Copy(S, Poz, N) – выделяет из строки S подстроку длиной N символов, начиная с позиции Poz. Пример Значение S Выражение Результат ‘Мама мыла раму’ Copy(S, 6, 4); ‘мыла’ Функция Concat(S1,S2,…,Sn) – выполняет сцепление строк S1,S2,…,Sn в одну строку. Пример Выражение Результат Concat(‘Мама ’,’мыла ’,’раму’) ‘Мама мыла раму’ Функция Length(S) – определяет текущую длину строки S. Пример Значение S Выражение Результат ‘1500 символов’ Length(S) 13 Функция Pos(S1,S2) – определяет первое появление в строке S2 подстроки S1. Пример Значение S2 Выражение Результат ‘abcdef’ Pos(‘cd’,S2) 3 ‘abcdef’ Pos(‘k’,S2) 0 Функция UpCase (ch) – преобразует строчную букву в прописную.Обрабатывает буквы только латинского алфавита. Пример Значение Ch Выражение Результат ‘d’ UpCase (ch) ‘D’ Пример. Из данной символьной строки выбрать все цифры и сформировать другую строку из этих цифр, сохранив их последовательность. 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. |
На главную страницу > > В раздел программирование > > В раздел Pascal |