Главная страница

Методичка. Полный обучающий курс по Turbo Pascal. Полный обучающий курс Turbo Pascal


Скачать 0.56 Mb.
НазваниеПолный обучающий курс Turbo Pascal
АнкорМетодичка. Полный обучающий курс по Turbo Pascal.doc
Дата27.12.2017
Размер0.56 Mb.
Формат файлаdoc
Имя файлаМетодичка. Полный обучающий курс по Turbo Pascal.doc
ТипДокументы
#13154
КатегорияИнформатика. Вычислительная техника
страница10 из 15
1   ...   7   8   9   10   11   12   13   14   15

Глава 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.

Пример

Значение 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.  
1   ...   7   8   9   10   11   12   13   14   15


написать администратору сайта