Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_МЕТ№1.DOC
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
180.74 Кб
Скачать

4.Функции для работы с символами

Символы в ЭВМ представляются двоичными кодами. Для латинских букв коды упорядочены по возрастанию от 'А' до 'Z'. В Паскале имеются 4 функции, позволяющие работать с символами. ORD (символ) – вычисляет порядковый номер (код) символа, СHR (код) – определяет символ с заданным кодом. PRED (символ) – определяет символ, предшествующий данному. SUCC (символ) – определяет символ, следующий за данным.

Пример.

PRED('C') => 'B'

SUCC('C') => 'D'

Пример.

Ввести на экран дисплея номера (коды) букв латинского алфавита.

PROGRAM BUKVA;

VAR

Sim: Char;

BEGIN

FOR Sim:= 'A' TO 'Z' DO

WRITELN(ORD(Sim),' ' , Sim);

END.

Основные функции языка Паскаль сведены в табл. 1.3

Таблица 1.3. Функции языка Паскаль

Общий вид

Название

Типы

аргумент

результата

1

ABS(x)

абсолютная величина

число

(цел., вещ.)

число

2

SQR(x)

квадрат х

число

(цел., вещ.)

число

3

SQRT(x)

корень квадратный

число

(цел., вещ.)

вещ.

4

EXP(x)

экспонента

число

(цел., вещ.)

вещ.

5

LN(x)

натуральный логарифм

число

(цел., вещ.)

вещ.

6

SIN(x)

синус

число

(цел., вещ.)

вещ.

7

COS(x)

косинус

число

(цел., вещ.)

вещ.

8

ARCTN(x)

арктангенс

число

(цел., вещ.)

вещ.

9

TRUNC(x)

округление с отбрасыванием

вещ.

Целое

10

ROUND(x)

округление

вещ.

Целое

11

SUCC(x)

следующий элемент

целое, символ

целое, символ

12

PRED(x)

предшествующий элемент

целое, символ

целое, символ

13

ORD(x)

порядковый номер

целое, символ

целое

14

CGR(x)

символ для кода

целое

символ

15

ODD(x)

нечётность

целое

булев.

16

EOLN(x)

конец строки

нет

булев.

5. Массивы

Массив – это совокупность элементов, имеющих одинаковое имя и отличающихся номером (индексом) их расположения в последовательности.

До сих пор мы рассматривали так называемые стандартные типы данных (скалярные данные). Если в задачах данные являются родственными например, средний балл студента в группе определяется по баллам 25 человек), скалярные типы неудобны. Если бы понадобилось определить количество студентов, имеющих балл выше среднего, то пришлось бы выполнить 26 операторов вида:

счетчик:=0;

IF BALL1>SR THEN

счетчик:= счетчик+1;

IF BALL2> ...

Поскольку обрабатываются данные одного типа, удобнее использовать массивы.

Пример.

1) последовательность чисел (оценок)

х1, x2, x3, ..., xn – 1 индекс

2) матрица чисел

Пример матрицы – таблицы сложения и умножения, коэффициенты в системе линейных уравнений.

Для описания массива необходимо кроме служебных слов задать:

1) имя массива;

2) количество и диапазон изменения индексов.

Количество индексов называется размерностью массива.

Различают:

1-мерные массивы (последовательность чисел, символов);

2-мерные массивы (матрицы);

3-мерные и т.д.

Массивы описываются с помощью известного нам описателя переменных VAR вида:

VAR

имя: ARRAY[min..max] OF тип;

где имя – имя массива;

ARRAY – служебное слово (массив);

min..max – границы изменения индекса;

тип – тип элементов массива.

Пример.

Const

N=100;

M=5;

Var

X:ARRAY[1..N] OF Real; – массив вещественных чисел.

A:ARRAY[1..M,1..M] OF Integer; – мaтрица целых чисел.

Следует различать описание массива и значение его элемента при обработке (внутри программы, после первого Begin). Элемент массива записывают в виде:

имя[индекс] или

имя[список индексов]

Пример:

X[2] => x2

A[I,J] => Aij

ВАLL [K,I+2] => BALLK,i+2

Индекс – это число, переменная или выражение перечисляемого целого или символьного типа.

Рассмотрим пример программы обработки массива.

Условие задачи:

Ввести в ЭВМ оценки 25 студентов по 1 предмету. Подсчитать средний балл и количество оценок выше средней.

Алгоритм

1. Ввести оценки.

2.1. Положить сумму баллов = 0.

2.2. Для номера оценки (i) от 1 до 25.

Подсчитать сумму баллов.

3. Вычислить средний балл.

4. Положить количество оценок выше средней=0.

5. Для номера i от 1 до 25

подсчитать количество оценок выше средней.

6. Конец

Уточняем алгоритм.

1.1. Ввести оценки количество оценок n.

1.2. Для номера оценки (i) от 1 до n.

1.2.1. Ввести балл [i]

2.1. Положить сумму баллов = 0.

2.2. Для номера оценки (i) от 1 до n

2.2.1. Сумма = сумма + балл [i]

3. Вычислить средний балл.

4. Положить количество оценок выше средней=0.

5. Для номера от 1 до n

5.1. Если балл [i] > среднего, то

количество = количество +1.

Программа для этого алгоритма будет иметь вид:

PROGRAM BALL;

CONST

M=25;

VAR

B:Array[1..M] OF Integer;

S:Real; {сумма и средний балл}

N,I,K:Integer; {K - счетчик}

BIGIN

Writeln('Введите количество оценок'); { п.1.1 }

READ (N);

Writeln('Введите оценки'); { п.1.2 }

FOR I:= 1 TO N DO

READ(B[I]);

{ п.п. 2.1 - 2.2 - сумма баллов }

S:=0;

FOR I:= 1 TO N DO

S:= S+B[I];

{ п.3 - средний балл }

S:= S/N;

Writeln('Средний балл - ',S);

K: = 0; { п.4 }

{ п.5 }

FOR I:= 1 TO N DO

IF B[I]>S THEN

K:=K+1;

WRITELN('Kоличество оценок выше средней = ',K)

END.

Итак, программа обработки массива – цикл, в котором параметром является индекс (номер элемента). Если индексов несколько, то зачастую для обработки массивов используются циклы, вложенные друг в друга. Количество таких циклов зависит от числа индексов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]