
- •1. Информатика как единство науки и технологии
- •2. Цели и задачи курса "Информатика"
- •4. Информация, её виды и свойства.
- •5. Различные уровни представления информации.
- •6. Носители данных. Операции с данными.
- •7. Функции, отношения, множества.
- •8. Булева алгебра и логические схемы компьютера. Логические машины.
- •9. Основы логики: Логика высказываний, логические языки, таблица истинности.
- •10. Графы и деревья.
- •11. Обзор и история архитектуры компьютеров.
- •12. Логические элементы компьютера: вентили, триггеры, счетчики, регистры
- •14. Представление числовых данных
- •15. Системы счисления. Правила перевода чисел из одной системы счисления в другую.
- •16. Знаковые представления и представления в дополнительном коде.
- •17. Представление нечисловых данных.
- •18. Организация машины.
- •19. Устройство ввода и вывода
- •20. Устройство памяти компьютера.
- •Характеристики систем иерархической памяти
- •22. Организация основной памяти и операции.
- •23. Виртуальная память.
- •Классификация по
- •Прикладное по
- •Виды Алгоритмов
- •Свойства Алгоритмов
- •27. Концепция и свойства алгоритмов.
- •Общая концепция алгоритма
- •28. Структура данных (типы, массив, строки).
- •Операции над строками
- •Основные типы данных.
- •Определение
- •Необходимость использования типов данных
- •Базовые типы
- •Числовые типы
- •Вещественные типы
- •2.2. Битовые типы
- •Логический тип
- •29. Стратегия реализации алгоритмов.
- •30. Блок схема. Виды Блок схем.
- •Основные элементы схем алгоритма
- •31. Способы представления алгоритмов.
- •32. Алгоритмические структуры.
- •33. Основные вычислительные алгоритмы: машина Тьюринга, легко и трудно решаемые задачи.
- •Устройство машины Тьюринга
- •Описание машины Тьюринга
- •Варианты машины Тьюринга
- •34. Анализ алгоритмов.
- •Анализ трудоёмкости алгоритмов
- •35. Архитектура организации процессора. Типовые структуры операционного блока микропроцессора
- •36. Организация системы адресации и команд
- •39. Основы дискретной математики. Элементы теории множеств. Комбинаторика.
- •Математическая логика.
- •Теория алгоритмов.
- •Теория графов.
- •Алгоритмы.
- •40. Этапы решения задач на эвм.
Операции над строками
Базовыми операциями над строками являются:
определение длины строки;
присваивание строк;
конкатенация (сцепление) строк;
выделение подстроки;
поиск вхождения.
Операция определения длины строки имеет вид функции, возвращаемое значение которой - целое число - текущее число символов в строке. Операция присваивания имеет тот же смысл, что и для других типов данных.
Операция сравнения строк имеет тот же смысл, что и для других типов данных. Сравнение строк производится по следующим правилам. Сравниваются первые символы двух строк. Если символы не равны, то строка, содержащая символ, место которого в алфавите ближе к началу, считается меньшей. Если символы равны, сравниваются вторые, третьи и т.д. символы. При достижении одной конца одной из строк строка меньшей длины считается меньшей. При равенстве длин строк и попарном равенстве всех символов в них строки считаются равными.
Результатом операции сцепления двух строк является строка, длина которой равна суммарной длине строк-операндов, а значение соответствует значению первого операнда, за которым непосредственно следует значение второго операнда. Операция сцепления дает результат, длина которого в общем случае больше длин операндов. Как и во всех операциях над строками, которые могут увеличивать длину строки (присваивание, сцепление, сложные операции), возможен случай, когда длина результата окажется большей, чем отведенный для него объем памяти. Естественно, эта проблема возникает только в тех языках, где длина строки ограничивается. Возможны три варианта решения этой проблемы, определяемые правилами языка или режимами компиляции:
никак не контролировать такое превышение, возникновение такой ситуации неминуемо приводит к труднолокализуемой ошибке при выполнении программы;
завершать программу аварийно с локализацией и диагностикой ошибки;
ограничивать длину результата в соответствии с объемом отведенной памяти;
Операция выделения подстроки выделяет из исходной строки последовательность символов, начиная с заданной позиции n, с заданной длиной l. В языке PASCAL соответствующая функция называется COPY. В языках PL/1, REXX соответствующая функция - SUBSTR - обладает интересным свойством, отсутствующим в PASCAL. Функция SUBSTR может употребляться в левой части оператора присваивания. Например, если исходное значение некоторой строки S - 'ABCDEFG', то выполнение оператора: SUBSTR(S,3,3)='012'; изменит значение строки S на - 'AB012FG'.
При реализации операции выделения подстроки в языке программирования и в пользовательской процедуре обязательно должно быть определено правило получения результата для случая, когда начальная позиция n задана такой, что оставшаяся за ней часть исходной строки имеет длину, меньшую заданной длины l, или даже n превышает длину исходной строки. Возможные варианты такого правила:
аварийное завершение программы с диагностикой ошибки;
формирование результата меньшей длины, чем задано, возможно даже - пустой строки.
Операция поиска вхождения находит место первого вхождения подстроки-эталона в исходную строку. Результатом операции может быть номер позиции в исходной строке, с которой начинается вхождение эталона или указатель на начало вхождения. В случае отсутствия вхождения результатом операции должно быть некоторое специальное значение, например, нулевой номер позиции или пустой указатель.
На основе базовых операций могут быть реализованы и любые другие, даже сложные операции над строками. Например, операция удаления из строки символов с номерами от n1 включительно n2 может быть реализована как последовательность следующих шагов:
выделение из исходной строки подстроки, начиная с позиции 1, длиной n1-1;
выделение из исходной строки подстроки, начиная с позиции n2+1, длиной длина исходной строки - n2;
сцепление подстрок, полученных на предыдущих шагах.
Впрочем, в целях повышения эффективности некоторые вторичные операции также могут быть реализованы как базовые - по собственным алгоритмам, с непосредственным доступом к физической структуре строки.