
- •230701 Прикладная информатика (по отраслям)
- •Содержание
- •Требования к минимуму содержания основной профессиональной образовательной программы по специальности 080802 Прикладная информатика (по отраслям)
- •Рабочая программа
- •Пояснительная записка
- •Тематический план учебной дисциплины
- •Содержание учебной дисциплины
- •Тема 1.4. Составление алгоритмов с помощью блок-схем
- •Тема 1.5. Методы и правила надежного программирования. Способы конструирования программ
- •Раздел IV. Процедуры и функции.
- •Тема 4.1. Подпрограммы
- •Тема 4.2. Параметры и аргументы, связь формальных и фактических параметров
- •Раздел V. Программирование рекурсивных алгоритмов
- •Тема 5.1. Рекурсивные процедуры и функции
- •Тема 5.2. Примеры рекурсивного программирования
- •Раздел VIII. Ввод и вывод информации: текстовые файлы
- •Тема 8.1. Файлы и их виды
- •Тема 8.2. Оперирование текстовыми файлами.
- •Раздел IX. Структурированный тип записи
- •Тема 9.1. Записи и их описание
- •Тема 9.2. Использование таблиц с разнотипными полями. Записи.
- •Раздел X. Модульное программирование
- •Тема 10.1. Методы работы с модулями. Стандартные модули языка Pascal.
- •Тема 10.2. Создание модульных программ
- •Критерии оценок
- •Литература
- •Теоретический курс Основные понятия языка Состав языка
- •Алфавит и лексемы
- •Константы
- •Имена, ключевые слова и знаки операций
- •Типы данных
- •Классификация типов
- •Стандартные типы данных Логические типы
- •Целые типы
- •Вещественные типы
- •Символьный тип
- •Порядковые типы
- •Приведение типов
- •Линейные программы
- •Переменные
- •Выражения
- •Структура программы
- •Оператор присваивания
- •Процедуры ввода-вывода
- •Ввод с клавиатуры
- •Вывод на экран
- •Операторы ветвления
- •Условный оператор if
- •Оператор варианта case
- •Операторы цикла
- •Цикл с предусловием while
- •Цикл с постусловием repeat
- •Цикл с параметром for
- •Рекомендации по использованию циклов
- •Процедуры передачи управления
- •Оператор перехода goto
- •Перечисляемый тип данных
- •Интервальный тип данных
- •Массивы
- •Двумерные массивы
- •Операции
- •Процедуры и функции для работы со строками
- •Множества
- •Операции над множествами
- •Текстовые файлы
- •Бестиповые файлы
- •Компонентные файлы
- •Прямой доступ
- •Совместимость типов
- •Совместимость по присваиванию
- •Подпрограммы
- •Процедуры
- •Функции
- •Глобальные и локальные переменные
- •Виды параметров подпрограмм
- •Параметры-значения
- •Параметры-переменные
- •Параметры-константы
- •Открытые массивы и строки
- •Параметры процедурного типа
- •Рекурсивные подпрограммы
- •Описание модулей
- •Использование модулей
- •Стандартные модули Паскаля
- •Модуль System
- •Модуль Crt
- •Модули Dos и WinDos
- •Модуль Graph
- •Модуль Strings
- •Задания для самостоятельной работы студентов
- •1. Знакомство с интегрированной средой программирования pascal
- •1. Общие положения
- •Начало работы
- •Интерфейс ide
- •Комбинации клавиш
- •2. Подготовка текста программы
- •5. Компиляция
- •5.1. Ошибки времени компиляции
- •6. Пробный запуск программы на выполнение
- •6.1. Ошибки времени выполнения программы
- •7. Запуск программы на исполнение
- •8. Завершение работы
- •9. Практическое задание
- •2. Организация работы программ линейной структуры
- •1. Управление режимами вывода данных на экран дисплея
- •1.1. Управление положением курсора на экране монитора
- •1.2. Стандартный модуль crt. Подключение модулей с помощью Uses. Процедура очистки экрана дисплея ClrScr. Функция ReadKey
- •1.3. Процедуры работы с цветом (TextColor,TextBackground)
- •2. Практическое задание – решение задач линейной структуры
- •3. Решение задач с условием
- •3. Составной оператор
- •Практическое задание – решение задач с условием
- •4. Решение задач на множественный выбор
- •5. Организация циклов с помощью оператора for
- •1.Особенности циклов
- •2. Оператор цикла с параметром (со счетчиком) for ... Do
- •3. Вложенные циклы
- •2.1. Структура вложенных циклов
- •6. Организация циклов с помощью оператора while
- •7. Организация циклов с помощью оператора repeat
- •8. Организация программ с использованием процедур
- •1. Общие положения
- •2. Описание процедуры, оператор процедуры
- •2.1. Формальные и фактические параметры
- •2.2. Параметры-значения и параметры-переменные
- •2.3. Область действия имен
- •2.4. Процедуры без параметров
- •3. Массив в процедуре
- •9. Организация программ с использованием функций
- •10. Организация программ с использованием рекурсий
- •1. Особенности рекурсии
- •11. Решение задач на обработку элементов одномерного массива
- •1. Стандартные операции с массивами
- •12. Решение задач на обработку элементов двумерного массива
- •1. Многомерные массивы
- •2. Ввод-вывод двумерного и многомерного массива
- •3. Стандартные (типовые) задачи на двумерных массивах
- •4. Практическое задание - решение задач с использованием массивов
- •13. Решение задач по обработке символьных данных
- •1. Таблица кодирования символов
- •Б азовая таблица кодировки ascii
- •2. Запись символов, специальные и управляющие символы
- •3. Операции отношения
- •4. Встроенные функции
- •14. Решение задач по обработке строковых данных
- •1. Внутреннее представление строки
- •2. Операции над строками
- •3. Строковые встроенные функции
- •4. Примеры использования процедур и функций
- •5. Практическое задание
- •Методические указания
- •15. Решение задач по обработке множественного типа
- •1. Описание множественного типа
- •2. Присваивание значений переменным множественного типа
- •3. Операции над множествами
- •3.6. Нахождение элемента во множестве
- •3.7. Приоритеты операций при работе с множествами
- •4. Практическое задание
- •16. Решение задач по обработке структурированного типа - запись
- •1. Описание записи
- •2. Обращение к элементу записи
- •3. Оператор присоединения
- •4. Практическое задание
- •Образцы контрольных работ
- •Контрольно-измерительные материалы
3. Строковые встроенные функции
Тип данных String используется при обработке текстов, а это означает, что нам необходимо уметь:
копировать часть строки;
удалять часть строки;
вставлять подстроку (т. е. часть строки) в данную строку;
осуществлять поиск подстроки (т. е. часть строки) в данной строке.
Для реализации этих операций в Паскале существуют стандартные процедуры и функции (см. табл. 11).
Таблица 11
Функции и процедуры |
Назначение |
Length (Z: String): Integer; |
Возвращает текущую длину строки Z |
Concat (Zi, [Z2,..., Zn] : String) : String; |
Возвращает слияние (конкатенацию) строк Z1, Z2 ,..., Zn |
Copy (Z: String; Index: Integer; Count: Integer): String; |
Возвращает подстроку строки Z длиной Count, начинающуюся с позиции Index. |
Pos (Substr: String; Z: String): Byte; |
Определяет первое вхождение подстроки Z в строку Substr и возвращает 0, если Z не содержит Substr или номер первого символа Substr в Z. |
Insert (Source: String; Var Z : String;Index : Integer); |
Вставляет в строку Z подстроку Source, начиная с позиции Index . |
Delete (Var Z: String; Index: Integer; Count: Integer); |
Удаляет из строки Z подстроку длиной Count, начинающуюся с позиции Index. |
Str (N : [:Width[:Decimals]]; Var Z: String); |
Преобразует числовое значение N в строковое Z. Возможно задание формата для N. |
Val (Z; Var N; Var Code: Integer); |
Преобразует строковое значение Z (строку цифр) в значение числовой переменной N. |
4. Примеры использования процедур и функций
Рассмотрим работу функций на конкретных примерах. Используются две процедуры, которые корректно удаляют и вставляют символы в строку. При удалении символов оставшаяся часть строки подтягивается к началу, чтобы занять образовавшуюся после удаления «дырку». При вставке, наоборот, строка раздвигается, чтобы вместить вставляемые символы.
Пример 3.
Надо удалить из строки St пять символов, начиная с 1-ой позиции.
St: = 'река Волга';
Delete (St, 1, 5);
В результате St = 'Волга '.
Пример 4.
Удалить все пробелы из начала строки st (пробелы в начале строки называются ведущими пробелами):
While st [1] = ‘ ’ Do Delete (st, 1,1);
Аналогичный фрагмент можно написать для удаления пробелов из конца строки (завершающих пробелов):
While St [Length (St)] = ‘ ‘ do Delete (St, Length (St), 1);
Пример 3.
Вставить подстроку S2 в строку S1, начиная с 16-ой позиции.
S1 : =' Я разрабатываю программы '; S2 : = 'хорошие ';
Insert (S2,S1, 16);
В результате S1 = ' Я разрабатываю хорошие программы '.
При вставке в начало и конец строки действие процедуры Insert аналогично выполнению операции конкатенации. Так, в примере со вставкой звездочек в конец строки можно заменить s : = s +' * ' на Insert (' * ', s , length ( s ) + 1).
При вставке символов нужно обязательно контролировать длину полученной строки, чтобы не потерять последние символы. При такой потере никакого сообщения об ошибке не выдается.
Пример 4.
Определить длину строки 123456789.
n : = Length ('123456789');
Результат работы функции n = 9.
Пример 5.
Выделить из строки S1 пять символов, начиная с 1-ой позиции.
S1: = 'Turbo Pascal';
S2: = Copy (S1, 1, 5);
S3: = Copy (S1, 7, 3);
В результате получим S2 = ' Turbo ', S3 =' Pas '.
Пример 6.
Объединить три строки символов в строке S.
S : = Concat ('АА1', 'XX', 'Y');
В результате S =' AAXXY '.
Функция Concat выполняет те же действия, что и операция конкатенации. Например, для приведенного случая то же самое можно было записать так:
s : = 'АА' + 'XX' + 'Y';
Пример 7.
Результат работы функции pos имеет целочисленный тип и равен номеру той позиции, в которой находится 1-ый символ подстроки. Если в строке подстроки не найдено, результат равен нулю.
S1 : = 'Turbo Pascal';
nl: = Pos ('Pascal', S1);
n2 : = Pos ('паскаль', S1) ;
В результате nl = 7; n2 = 0 так как 'паскаль' и 'Turbo Pascal' — это разные строки.
Задача 1
Проверить, является ли введенная совокупность символов именем месяца.
Program Lab 14_1;
Uses Crt;
Const inst: Array [1 .. 12] of String [ 10 ] = ('yanuar', 'febr', 'marz', 'april', 'may', 'juni', 'juli', 'august', 'sebtember', 'october', 'november', 'december');
Month: Boolean = False;
Var Str: String [10];
i: Integer;
Begin
ClrScr;
WriteLn ('Введите имя месяца');
ReadLn (Str);
For I: =1 To 12 Do
Begin
If Str = inst [i] Then Month = True;
If Month Then WriteLn('Введено имя месяца')
Else WriteLn('Heт имени месяца');
End;
End.
Задача 2
Определить количество гласных и согласных букв во вводимой строке.
Program Lab 14_2;
Uses Crt;
Const n = 30;
Var a: String [n];
p: String [7];
g, s, i, j, k: Integer;
BEGIN
ClrScr;
p: = 'aejiouy';
WriteLn (' Введите текст ');
k: = 0;
Repeat
k: = k+ 1;
Read (a[kj);
Until (k = n) Or (a[k] ='.');
WriteLn;
g: = 0; s:= 0;
For i: = 1 To k Do
For j: = 1 To 7 Do
If a[i] = p[j] Then g: = g+l;
s: = k - 1 - g;
WriteLn ('Гласных = ', g);
WriteLn (' Согласных =', s);
End.
Протокол работы программы: введите текст
aaeiidf
Гласных = 5
Согласных = 2