Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Символьный тип






Множеством значений являются:

1) буквы; {латинские и кирилица}

2) цифры (0..9)

3) специальные символы: +, /, -, *, (………….

Синтаксис значений: в ’’ или в “”

Это последовательность или цепочка перечисленных ранее символов, заключенная в парные или одинарные кавычки.

‘X’ ”Б”

Операции:

- конкатенация (сцепление) ||. После последнего символа 1-го операнда записывают вплотную все символы 2-го операнда

’П’||’О’ è “ПО”

’1’||’4’ ’è ”14”

- сравнение:

<, >, =, ≠, < =, > =.



t > w, если код t > код w

ASCII-код:

’0’> ’1’ ’3’< ’4’

Код ’0’ - самый младший, а код ’9’ - самый старший (среди кодов цифр).

Код ’a’ - самый младший, а код ’z’ - самый старший (среди кодов букв латыни).

’x’> ’7’ ’f’> ’d’

К сожалению символы кириллицы не представляют собой единый диапазон от ’а’ до ’я’, есть разрыв, поэтому сравнивать их, как символы латыни, нужно аккуратно.

 

 

3.2 Структуры данных

 

 

3.2.1 Классификация структур данных.

1) Основные:

- регулярные (у регулярных структур данных все составные части имеют одинаковый тип):

- множество - стек

- массив - очередь

- строка - таблица

- файл

- нерегулярные (компоненты могут быть различного типа, доступ иной): запись.


2) Дополнительные:

- списки

- деревья

- графы

Структура – это совокупность данных обладающих вместе некоторым смыслом. Структура состоит из отдельных элементов, группируемых определенным способом. Если элемент данных не может быть дальше расчленен на составные части, его называют скалярным. Соответственно переменные, соответствующие скалярным данным, называют простыми или скалярными.

 

 

3.2.2 Массив

 

 

Массив – это n-мерная последовательность элементов с одинаковым типом и структурой. Обратится к элементу массива можно по его номеру. У массива также есть атрибут размерность, поэтому у каждой размерности должно быть задано количество элементов по этому измерению. Одномерный массив называют вектором.

Х:

1 2 3 ……… n

         

1-мерный: вектор.

Х: вектор[1..n] целых; {массив коэффициентов многочлена}

Доступ к элементу массива: задается имя и номер элемента.

Х[2] X[k]

Двумерный массив называют матрицей. У матрицы есть строки и столбцы.


 

1 2 ……….. n

         
         
         
         
         

 

 
 

 

 

Y: матрица[1..m.1..n] вещественных;

Доступ к элементам 2-мерного массива: y[1.n]; y[i.j].

Все массивы большей размерности называют просто массивами.

 

 

3.2.3 Строка

 

 

Строка – массив символов.

1 2 ………………… n

       

S: вектор[1..n] символьных;

 

П О -     #        

# - признак окончания строки

Атрибут строки: длина (всегда целое число)

S – пустая строка (длина строки равна нулю)

#                  

Константы типа строка обрамляются парными кавычками.

”ПО-99” – изображение константы строки.

Пустая строка обозначается ”” (без пробелов, без символов между кавычек)

Операции над строками.

1) Конкатенация (сцепление) – обозначается ||.

Пример 3.9:

Пусть a=”ПО” b=”-” с=”99”

W=a||b||c=”ПО-99”

2) Сравнение

Две строки a и b.Строки a=b если их длины состоят из попарно одинаковых символов.

a> b

1.Если длина a> длины b

2.Если длина а=длине b, как только a(i)> b(i) (для первых различных символов)

a< b

1.Если длина a< длины b

2.Если длина а=длине b, как только a(i)< b(i) (для первых различных символов)

Пример 3.10:

”ПО99а”< ”ПО99б”

”ПО99абв” > ”ПО99в”

”x+y”< ”y+x”

3) Выделение подстроки

Пример 3.11:

STR1=”теплоход”

X=str[6..8] è X=’ход’

В квадратных скобках указывается диапазон номеров символов, значения которых будут образовывать строку результатов.

STR2=”x_& _y”

Z=STR2[5] z=”y” (Выбор одного символа)

4) Поиск в строке по образцу

Используются STR1, STR2 из предыдущих примеров.

K=поиск_подстроки(str1, ”плохо”) è K=3;

Эта операция возвращает номер элемента исходной строки (1-ый аргумент), начиная с которого встречается заданный образец (2-ой аргумент).

K=поиск_подстроки (s1, ”t1”) è K=0

Если в исходной строке образец не найден, то операция возвращает ноль.

5) Нахождение длины

l=длина(”плохо”) è l=5;

Возвращает длину информационной части строки.

l1=длина(””) è l1=0;

Описание строк:

S: строка[10];

SS: строка[n];

 

 

3.2.4 Запись

 

 

Студент

1 2 3 4 5

ФИО            
Результаты сессии

Строка[25] вектор[1..5] целых

Анкета

ФИО Год рождения Место рождения Номер паспорта

Строка[25] целое запись запись

Место рождения

Страна Область Район Населенный пункт

Строка[20] строка[20] строка[35] строка[30]

Номер паспорта

Серия Номер

Строка[2] целое

Описание записи в синтаксисе языка постановки задач.

Студент: запись ФИО: [25];

Имя структура результаты_сессии: вектор[1..5] целых

Анкета: запись ФИО: строка[25];

Год рождения: целое;

Место рождения: запись Cтрана: строка[20];

Область: строка[20];

Район: строка[25];

Нас. пункт cтрока[30];

 

Номер паспорта: запись

Серия: строка[2];

Номер: целое;

 

В отличии от массивов доступ к элементам записи производится по их именам. Доступ к элементу записи осуществляется с помощью оператора ”точка”.

< имя структуры>.< имя элемента>

В ломаных скобках записывается семантическая переменная.

Пример 3.12:

Анкета.ФИО

Студент.Результат_сессии[2]

 

 

3.2.5 Таблицы

 

 

< имя >: таблица [ < количество записей > ](< описание записи >)

Пример 3.13:

Таблица о студентах группы из N человек.

Ведомость: таблица[N] (ФИО: строка[25]; результаты: массив[4] целых).

Ведомость

ФИО Результаты
   
   
   
   
   

 

 

 
 
. . . i n  

 


Обращение к элементу таблицы:

< имя> [< номер элемента> ].< элемент записи>

Пример 3.14:

Фамилия и инициалы 4-го студента:

Ведомость[4].ФИО

Оценки i-го студента:

Ведомость [i].результаты

 

 

3.2.5 Очередь

 

Очередь –массив, доступный для обработки с обоих концов.

Пример 3.15:

1 2 3 ……………………… N (номера элементов)

       

”из” ”в”

 

 
 


элементы

начало(номер 1) очередь конец (номер N)

Дисциплина обработки: FIFO (First Input – First Output)

(первый пришел – первый ушел)

Операции:

1) ”в” – добавить элемент в очередь (в конец).

2) ”из” – взять элемент из очереди (в начале).

3) определить длину очереди во времени.

Очередь – динамическая структура данных. Ее длина не фиксирована и изменяется во времени (в отличии от массива).

Описание:

< имя>: очередь [< длина> ]< тип>

Пример 3.16:

Р: очередь[20] целых;

 

 

3.2.6 Стек

Стек – это массив, доступный для обработки только с одного конца (с одной стороны)

Стек

           
 
   
   
 
 

 
С
B
A

”из””в” вершина (верхушка)

Дисциплина обработки: LIFO (Last Input – First Output)

(последний пришел – первый ушел)


Операции:

1) ”в” – добавить (включить, записать) элемент в стек (в верхушку).

2) ”из” – взять (исключить) элемент из стека (из вершины).

3) считать элемент в верхушке.

Стек – динамическая структура данных. Обычно еще есть функции для проверки:

1) стек пуст?

2) стек переполнен?

Описание:

< имя>: стек [< длина> ]< тип>

Пример 3.18:

S: стек[M] символов

 

 

3.2.7 Файл

 

 

Файл – поименованная область памяти.

Описание:

< имя>: файл(< описание_структуры _записей>)

Таблица находится в оперативной памяти, а файл во внешней памяти.

Типы доступа к элементам:

1) файлы последовательного доступа;

2) файлы прямого доступа;

У последовательного файла запись с номером N может быть обработана только после того, как будут обработаны предыдущие N-1 записей. В файле с прямым доступом можно обработать произвольную (по номеру) запись.

Операции:

1) открыть для записи;

2) открыть для чтения;

3) закрыть;

4) писать запись (в файл);

5) читать запись (из файла);

6) установить указатель текущей позиции на нужную запись;

7) проверить, не ”конец ли файла? ”;

………………………………………………………………………….


4 МЕТОДЫ РЕШЕНИЯ ЗАДАЧ ПРОГРАММИРОВАНИЯ

 

 

4.1 Требования к методам

 

 

1) Метод дает правила получения верных результатов, при любых допустимых исходных данных.

2) Типы и структуры данных в методе соответствуют языку программирования.

3) Метод должен обладать свойствами точность, понятность, недвусмысленность.

4) Метод должен быть рациональным.

 

 

4.2 Способы описания

1) Математический.

2) Словесный.

3) Графический.

 

 

4.3 Классификация методов

 

 

Различают две группы методов: универсальные, специальные.

 

 

4.3.1 Универсальный метод

 

 

Универсальным методом является метод пошаговой детализации, который также называют методом “Разделяй и властвуй”.

Пусть дана задача T с исходными данными: вектор X, – и результатами: Y. Необходимо найти функцию Y = F(X) с помощью известных методов.

Для этого разобьём задачу на подзадачи: каждая со своими исходными данными и результатами. Разбиение нужно продолжать до тех пор, пока хотя бы одну задачу нельзя решить известными методами. Общая схема разбиения представлена на рисунке 4.1

 

 

4.3.2 Специальные методы

 

 

Существуют три основных специальных метода:

1) накопление,

2) перебор,

3) метод последовательных приближений (итераций).

 

 

4.3.2.1 Язык для записи методов

 

 

Структурное программирование предусматривает только три вида конструкций:

1) последовательность,

2) ветвление,

3) повторение,

Они обладают следующими свойствами:

1) В каждую конструкцию есть ровно один вход, из нее есть один выход.

2) Конструкция повторения конечна.

Используя эти конструкции можно решить любую задачу.

Операторы языка записей методов:

1) Последовательность – запись операторов последовательно друг за другом по вертикали:

< действие>

< действие>

< действие>

2) Ветвление –

 

< действие>

при < условие>

3) Повторение

- С известным числом повторений

 

< действие>

1, n

- С неизвестным числом повторений

 

< действие>

пока < условие>

 


4.3.2.2 Метод накопления

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.