ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.05.2024
Просмотров: 109
Скачиваний: 0
СОДЕРЖАНИЕ
Создание консольных приложений
Программирование линейных алгоритмов Оператор присваивания
Программирование разветвляющихся алгоритмов
Программирование циклических алгоритмов
Описание и использование данных строкового типа
Процедуры и функции для работы со строками
Описание и использование процедур и функций
Формальные и фактические параметры
Пример: i:=1;
while i<=10 do
begin writeln(‘i=’,i);
i:=i+1
еnd;
Оператор цикла repeatимеет вид:
repeat
операторы
until логическое выражение;
Операторы выполняются до тех пор, пока значение логического выражения не станет true. Поэтому, независимо от значения логического выражения, операторы, указанные в цикле repeat, выполнятся, по крайней мере, один раз.
Пример: i:=1;
repeat writeln(‘i=’,i);
i:=i+1
until i >10;
Массивы
Массив относится к данным структурированного типа.
Массив – это совокупность конечного числа однотипных элементов с прямым доступом к каждому элементу; Прямой доступ – возможность использования любого элемента независимо от остальных.
Массив – это последовательность переменных одного типа, определенных общим именем и различающихся индексами.
Массив – наиболее распространенный структурированный тип.
Массив характеризуется:
размерностью (количеством индексов)
типом индексов
типом элементов массива
Массив, как и любая переменная программы, перед использованием должен быть объявлен в разделе объявления переменных. В общем виде инструкция объявления массива выглядит следующим образом:
1. Одномерный массив:
Type
<Имя типа> = array [нижний_индекс..верхний_индекс] of
<тип>;
где:
<имя типа >— имя типа массива;
array — зарезервированное слово языка Delphi, обозначающее, что объявляемое имя является типом массива;
нижний_индекс и верхний_индекс — целые константы, определяющие диапазон изменения индекса элементов массива и, неявно, количество элементов (размер) массива;
<тип> — тип элементов массива.
Пример:
Type
Temper=array[1..31] of real;
Kоef=array[0..2] of integer;
Name=array[1..30] of string[25];
2. Двумерный массив (матрица):
Type
<Имя типа> = array [нижний_индекс1..верхний_индекс1,
нижний_индекс2..верхний_индекс2] of <тип>;
где:
<Имя типа> – имя типа массива;
array — зарезервированное слово языка Delphi, обозначающее, что объявляемое имя является именем массива;
нижний_индекс1 и верхний_индекс1, нижний_индекс2 и верхний_индекс2— целые константы, определяющие диапазон изменения индексов элементов двумерного массива и, неявно, количество элементов (размер) матрицы;
<тип >— тип элементов массива.
Пример:
Type
Matrica=array[1..3,1..2]ofinteger;
Затем, после описания типа массива в разделе var описывается сам массив следующим образом:
Var <имя массива> : <имя типа>;
Пример:
Var
T: temper;
m: name;
A,B:Matrica;
Массивы могут быть описаны непосредственно в разделе Var, без использования Type:
1. Одномерный массив:
var
<имя массива>: array [нижний_индекс..верхний_индекс] of тип;
2. Двумерный массив:
var
<имя массива>: array [нижний_индекс1..верхний_индекс1,
нижний_индекс2..верхний_индекс2] of тип;
Пример:
var
T: array[1..31] of real;
m:array[1..30] of string[25];
A,B:array[1..3,1..2] of integer;
При описании массивов выделяется память ЭВМ для хранения соответственного количества ячеек.
Многомерные массивы хранятся в памяти в виде линейных последовательностей значений.
Например:
Пусть описана матрица X:
VarX: array [1..3,1..2] of integer;
Этот массив будет размещаться в памяти в следующей последовательности:
X[1,1], X[1,2], X[2,1], X[2,2], X[3,1], X[3,2].
То есть быстрее изменяется правый индекс.
При обращении к элементам массива указывается имя массива, за которым в [ ] следует индекс (для одномерного) или индексы (для двумерного) элементов.
Например:
X[1,2]
Т[5]
В общем случае при работе с массивами необходимо предусматривать 3 блока циклической структуры:
1 – блок поэлементного ввода массива
2 – блок поэлементной обработки массива
3 – блок поэлементного вывода массива
Ввод и вывод массивов
Ввод, вывод и обработка массива осуществляются поэлементно. Одномерный массив вводится и выводится в цикле, цикл организуется по порядковому номеру элемента в массиве (индексу элемента).
Ввод одномерного массива можно осуществить, например, так:
for i:=1 to n do read (x[i]); или
for i:=1 to n do readln (x[i]);
где n – количество элементов в массиве; x – имя массива;
i –порядковый номер элемента в массиве;- i–й элемент массива х.
Пример вывода одномерного массива :
for i:=1 to n do write (x[i],’ ‘);или
for i:=1 to n do writeln (x[i]);
Ввод и вывод элементов двумерного массива осуществляется с помощью двух вложенных циклов. Двумерный массив вводится либо по строкам, либо по столбцам. Если двумерный массив вводится по строкам, то внешний цикл организуется по номеру строки, а внутренний - по номеру столбца. Если массив вводится по столбцам, то внешний цикл организуется по номеру столбца, а внутренний – по номеру строки. Вывод двумерного массива, как правило, осуществляется построчно.
Ввод двумерного массива a размерности n×m:
{построчный ввод элементов двумерного массива}
for i:=1 to n do
for j:=1 to m do read(a[i,j]);
где n –количество строк в массиве; m – количество столбцов в массиве;
i –номер строки массива; j –номер столбца массива; a –имя массива;
a[i,j] - элемент массива a, находящийся в i –й строке, j –ом столбце.
Вывод двумерного массива a размерности n×m в виде прямоугольной матрицы (каждая строка матрицы начинается с новой экранной строки):
for i:=1 to n do
begin
for j:=1 to m do write(a[i,j],’ ‘);
writeln
end;
Описание и использование данных строкового типа
Строка – это последовательность произвольных символов алфавита. Длиной строки называется количество символов в последовательности. Длина строки не может превышать 255. Для работы со строками в языке Pascal предусмотрен строковый тип данных.
Значением величины строкового типа является строка. Константы строкового типа записываются в апострофах. Например: ’задача’, ’57+38’, ’а’, ’’ (пустая строка).
Описание строковых типов данных:
typeимя типа =string;илиимя типа =string[n];
var имя строки: имя типа ;
или
var имя строки: string; или имя строки: string[n];
где n – длина строки.
Если длина строки не указана, по умолчанию она принимается равной 255.
Примеры: var a: string; x: string[10];
К любому символу строки можно обратиться непосредственно, указав за именем строки в квадратных скобках номер позиции этого символа.
Например: s[i] –i- й символ строки s.
Операции над строками
К строкам применимы операции склеивания (конкатенации) и сравнения. Операция склеивания обозначается с помощью символа “+”, а операции сравнения – символами “=”,“<>”,“>”,“>=”,“<”,“<=”.
Операция склеивания добавляет к первой строке вторую.
Примеры: x:=’фор’; y:=’ма’;
z1:=x + y; { z1 =’форма’}
Сравнение осуществляется слева направо в соответствии с кодами соответствующих символов. Если длина одной строки меньше другой, то недостающие символы короткой строки заменяются значениями #0.
Примеры: ‘cb’<‘ab’ результат - false
‘9’>‘123’ результат – true
‘ab’>‘a’ результат – true
Для формирования значения строковой переменной существуют два способа.
Ввод значения с клавиатуры.
Использование оператора присваивания. В левой части оператора присваивания при этом должно быть имя строки, а не ее символ. Посимвольное заполнение строки (подобно заполнению массива) в языке Pascal запрещено. Значение отдельных символов строки можно изменять лишь после того, как строка сформирована.
Например: x:=’кол’; x[3]:=’м’;{x=’ком’}
y:=x+’ок’ {y=’комок’}