Разработка программ обработки символьных и строковых данных 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Разработка программ обработки символьных и строковых данных



Разработка программ обработки символьных и строковых данных

Цель работы

Приобретение навыков разработки программ отработки символьных и строковых данных на языке Turbo Pascal.

Задание на лабораторную работу

Составить программу обработки строковых данных заданной структуры (в соответствии с вариантом задания (п. 5.7)) и преобразования исходных данных.

Требования к программе

Программа должна выполнять следующие действия:

– ввод данных и вывод сообщений-подсказок перед вводом данных;

– вывод результатов:

– преобразования: выражения типа байт в символ (Chr); изображения символа в код типа байт (Ord); числа (целого или вещественного) в строку (Str) и вывод строки; строки в число целого или вещественного типа (Val) и вывод результатов преобразований.

Порядок выполнения работы

1. Составить вариант задания (п. 5.7, таблицы 5.4, 5, 5.6)

2. Изучить операторы определения переменных символьного и строкового типа (п. 5.5).

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

4. Устно ответить на контрольные вопросы (п. 5.9).

5. Оформить отчет (см. п. 1.10).

5.5. Справки по операторам определения и обработки символьных и строковых данных на языке Turbo Pascal

5.5.1. Операторы определения и обработки символьных данных

Тип данных CHAR обозначает множество символов ASCII, коды которых представлены в таблице (см. приложение 1). Диапазон значений кодов от 0 до 255. Первые 32 символа таблицы кодов ASCII являются управляющими символами, используемыми при работе с внешними устройствами и передаче данных.

Переменная типа CHAR имеет длину 1 байт. Символьные константы задаются путем заключения отдельного символа в апострофы.

Например,

в разделе констант: const sym1 = ‘A’;

или в операторах присваивания: S: = ’B’;

или в выражениях: S > ‘A’.

Переменные символьного типа, например S1 и S2, определяются в разделе переменных по правилу:

var S1, S2: char;

Стандартные функции для данных типа CHAR

Информация о функциях для переменных типа Сhar дана в таблице 5.2.


Таблица 5.2

Назначение функции Идентификатор Тип аргумента Тип функции Пример
Преобразование выражения типа байт в символ Chr Byte char x:=68; y:= chr(x); {y='D'} y:=chr(2*x-5); {y='Г'}
Преобразование изображения символа в код типа байт Ord Char Byte x:='A'; y:=ord(x); {y=128}
Возвращение предыдущего символа Pred Char Char x:='Б'; y:=pred(x); {y='A'}
Возвращение следующего символа Succ Char Char x:='Г'; y:=succ(x); {y='Д'}
Преобразование строчной буквы в прописную Upcase Char Char Ch:=’d’ Y:=Upcase(Ch) {Y=’D’}

Определение переменных строкового типа. Особенности типа STRING

Строка – это последовательность символов кодовой таблицы персонального компьютера.

Доступ к отдельному символу может быть получен путем ссылки на него при помощи индекса. Байт в позиции 0 (доступный лишь при отмене проверки диапазона) хранит число,представляющее длину текущего значения переменной типа STRING.

Применение строковых переменных в качестве селектора в операторе CASE недопустимо.

Формат определения констант строкового типа:

Const <идентификатор>=<значение>;

Например,... С1 = ‘строка 1’;...

Формат определения переменных строкового типа:

{Описание переменной типа String с помощью заданного программистом типа}

Type

<имя типа> = string[максимальная длина строки];

Var

<идентификатор,...>:<имя типа>;

{Описание переменной типа String без заданного программистом типа}

<идентификатор,...>:string[максимальная длина строки];

Максимальная длина строки не более 255; значение 255 можно не задавать.

Пример описания строк и считывания строки:

Program StrTest;

const

S1='Начало работы программы’ {Пример константы строкового типа};

var

S2: string[10];

Begin

WriteLn(S1); {Вывод значения строковой константы}

Write(' Введите строку:');

ReadLn(S2);

WriteLn(' Длина введенной строки ',S,' равна ',ord(S2[0]));

End.

Запись S[0] дает доступ к нулевому байту, содержащему значение текущей длины строки.

Значение нулевого байта не должно превышать 255, но нарушение этого правила не вызывает программного прерывания, так как директива компилятора R по умолчанию находится в пассивном состоянии {$R-}. Для обеспечения строгого контроля за диапазоном допустимых значений индекса следует перевести директиву R в активное состояние {$R+}. Активный режим R устанавливается на стадии отладки программ.

Строковые выражения

Выражения, в которых операндами служат строковые данные, называются строковыми. Они состоят из строковых констант, переменных, указателей функций и знаков операций над ними.

Над строками могут выполняться операции отношения и сцепления (конкатенации):

1. Операции отношения: <,>, =, <>, >=, <=. Результат операции отношения будет иметь тип BOOLEAN. Строки сравниваются посимвольно слева направо. При обнаружении первого несовпадающего символа принимается решение о <больше> или <меньше> в соответствии с таблицей кодов ASCII. Если две сравниваемые строки имеют различную длину, но совпадают вплоть до последнего символа более короткой строки, то более короткая строка считается меньшей.

Например:

'Pascal'='pascal' -> false

'prim'<'primer' -> true

'+'<'-' -> true

2. Сцепление: +. Использование знака + позволяет разместить строки одну за другой.

Например:

'Новый'+' '+'год'='Новый год';

Операция + дает тот же результат, что и функция CONCAT, присутствующая в языке Turbo Pascal для обеспечения его совместимости с другими версиями (описывается ниже).

Строковые процедуры и функции

Информация о строковых процедурах и функциях дана в таблице 5.3.


Таблица 5.3

Назначение процедуры или функции Заголовок процедуры или функции   Пример
Удаление N символов строки St начиная с позиции Pos Delete (St: string, Pos,N: byte) St:= 'абвгде'; Delete(St, 4, 2); {St='абве'}
Вставка строки Str1 в строку Str2 начиная с позиции Pos Insert ('*', Str2, 4) Str2:='абвгде'; Insert '*', Str2, 4 {Str2='абв*где'}
Преобразование числового значения величины V(integer или real) и помещение результата в строку St Str (V: real, St: string) V:=1500; Str(V:6, St); {St:=' 1500'}
Преобразование строки St в величину целочисленного или вещественного типа и помещение результата в V Val (St: string,V: real, Code: integer) St:='1.455'; Val(St,V,Cod); {V=1.455, Cod=0}
Сцепление строк St1, St2,... Concat (St1,St2,..,Stn:string): string St1:=’За’; St2:=’дача’; Y:=Concat(St1,St2) (Y=Задача)
Выделение из строки St подстроки длиной N символов начиная с позиции Pos Copy (St: string, Pos,N: byte): string St:='абвгде'; Y:=Copy(St, 2, 3); {Y='бвг'}
Вычисление длины строки St Length (St: string): byte St:='абвгде'; Y:=Length(St); {Y=6}
Определение позиции первого появления в строке St2 подстроки St1 Pos (St1,St2): byte St2:='abcdef'; Y:=Pos('de',St2); {Y=4}

Пример программы

Программа, осуществляющая ввод массива из 10 слов длиной 6-8 символов, в каждом слове заменяет символы 'a' на 'б', а также осуществляет преобразования вещественной и строковой констант.

Program Prim_Str;

Const CH=12.34;

KST= '12.34';

Var X: array [1..10] of string[8]; {Массив слов}

St: srting[7]; {Параметр для процедуры Str()}

V: real; {Параметр для процедуры Val}

Code: byte; {Параметр для процедуры Val}

Dl: integer; {Длина слова в массиве}

n: integer; {Позиция символа 'а'}

i, j: byte; {Переменные цикла}

Begin

{---------------Ввод массива из десяти слов-----------------}

Writeln('Программа обработки данных строкового типа');

Writeln;

Writeln('Введите 10 слов из 6-8 символов');

For i:=1 to 10 do begin

Write(i, ' -е слово ');

Readln(X[i]); end;

{----------------Вывод на экран введенных данных---------------}

Writeln('Введенные слова');

For i:=1 to 10 do Writeln(i, '-ое слово ', X[i]);

dl:=length(X[1]); {определение длины первого слова}

{----------------Вывод кодов символов первого слова--------------}

For i:=1 to dl do

Begin

Write ORD (X [1,i]); Writeln

End;

{---------------Преобразование числа в строку -----------------}

Str(CH,St);

Writeln('Число ',CH:7:3,' преобразуется в строку ', St);

{---------------Преобразование строки в число ------------------}

Val(KST, V, Code);

Writeln('Строка ', KST, ' преобразуется в число ', V);

Writeln(' код ошибки ', Code);

{------ Поиск в словах символа 'a' и замена его на символ 'б' ---}

For i:=1 to 10 do begin

{- Определение наличия символа 'а' в слове X[i] и его позиции }

n:=pos('а', X[i]);

{---Запись символа 'б' на место, занимаемое символом 'а'-----}

if n>0 then X[n]:='б' end;

{-----------Преобразование массива из 10 слов в строку и------}

{-----------------вывод результата ---------------------------}

{------предлагается запрограммировать самостоятельно------}

End.


Варианты заданий

Таблица 5.4

№ варианта Исходные данные табл. 5.5 Результат табл. 5.5 Длина слова Количество слов Решаемая задача табл. 5.6
      [3-8]    
      [5-9]    
      [4-10]    
      [6-10]    
      [6-9]    
      [5-8]    
      [6-8]    
      [5-9]    
      [5-8]    
      [3-10]    
      [4-7]    
      [3-10]    
      [3-9]    
      [3-8]    
      [4-10]    
      [4-9]    
      [6-9]    
      [6-10]    
      [3-8]    
      [5-10]    

Таблица 5.5

Структура данных
  Массив слов
  Строка слов, разделенных пробелом

Таблица 5.6

№   Решаемые задачи
  Поменять местами слова с максимальной и минимальной длиной при условии, что такие слова единственные
  Заменить окончания (последние два символа) на 'ая' в словах, длина которых равна 5
  Поменять местами слово, начинающееся на 'a', со словом, оканчивающимся на 'я', при условии, что такие слова существуют и являются единственными
  Удалить последние 3 символа из слов, начинающихся на 'a'
  Удалить первые 3 символа из слов, оканчивающихся на 'ие'
  Дополнить символом '*' слова, имеющие длину меньше максимальной по варианту задания, до максимальной
  Заменить первые 3 символа слов, имеющих выбранную длину, на символ '*'
  Удалить все символы 'а' из слов, длина которых равна выбранной
  Заменить все символы 'a' на 'd' в словах, длина которых меньше выбранной
  Заменить первые строчные буквы на заглавные в каждом слове, длина которого больше выбранной
  Вставить пробел после первых 2-х символов в слова, имеющие длину, на 1 меньше максимальной по варианту задания
  Заменить первую строчную букву на заглавную в словах, имеющих выбранную длину
  Вставить пробел перед последними 2-мя символами в слова, имеющие минимальную по варианту задания длину

Содержание отчета (см. п. 1.10)

5.9. Контрольные вопросы

1. Что такое строка?

2. Каким идентификатором определяются данные строкового типа?

3. Какова максимальная длина строки? Как определить текущую длину строки?

4. Какие выражения называются строковыми?

5. Какие операции допустимы над строковыми данными?

6. Каким образом производится сравнение строк?

7. Как можно обратиться к отдельным символам строки?

8. Каково назначение специальных процедур и функций обработки данных строкового типа?

 

Лабораторная работа №6

Цель работы

Приобретение навыков разработки программ с использованием процедур и функций пользователя на языке Turbo Pascal.

Задание на лабораторную работу

Разработать программу для вычисления значений функции в соответствии с вариантом задания и вывести результаты в табличном виде.

Требования к программе

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

Программа должна состоять из трех подпрограмм (процедура ввода данных, подпрограмма-функция вычисления значения, процедура вывода данных) и основной части программы.

Форма вывода результата.

Значение функции в интервале [a,b] с шагом 0.1
Аргумент Функция
... ...

Выбор значений параметров a, b, c и формата вывода результатов вычислений осуществляется разработчиком программы.

Порядок выполнения работы

1. Получить вариант задания (п. 6.6). Варианты задания содержат данные о функции, начальном и конечном значении аргумента, шаге табуляции, абсолютной погрешности.

2. Изучить структуру Pascal-программы, содержащей процедуры и функции пользователя (п. 6.5).

3. Составить схему программы.

4. Запустить интегрированную среду программирования. Ввести текст программы, записать файл на диск, откомпилировать его с использованием среды Turbo Paskal. После успешной компиляции задать для просмотра в окне отладчика значения исходных данных. Установить видимымиодновременно окна редактора с текстом программы и окно просмотра. Исполнить программу в пошаговом режиме с входом в процедуры и функции и пронаблюдать за изменениями значений переменных в основной программе, в процедурах и функциях. Обратить внимание на передачу значений при вызове процедур и функции от фактических параметров основной программы формальным параметрам, на возвращение вычисленных подпрограммами значений в точку вызова главной программы, а также на характер изменения значений локальных и глобальныхпеременных.

5. Устно ответить на контрольные вопросы (п.6.9).

6. Оформить отчет (см. п. 1.10).

Варианты заданий

№ варианта Функция Начальное значение Шаг Конечное значение Абсолют. погрешность результата
    0,1   0,0001
    0,2   0,001
    0,5   0,00001
    0,1   0,0001
    0,2   0,001
    0,5   0,00001
    0,1   0,0001
    0,2   0,001
    0,5   0,00001
    0,1   0,0001
    0,2   0,001
    0,5   0,00001
    0,1   0,0001
    0,2   0,001
    0,5   0,00001
    0,1   0,0001
    0,2   0,001
    0,5   0,00001
    0,1   0,0001
    0,5   0,001

Содержание отчета (см. п. 1.10)

6.8. Контрольные вопросы

1. Что называется подпрограммой?

2. Какова структура программы с подпрограммами?

3. Какова структура процедур?

4. Какова структура подпрограммы-функции?

5. В чем состоит различие и сходство подпрограмм-процедур и подпрограмм-функций в Turbo Paskal?

6. Как обратиться к процедурам и функциям?

7. Что называется параметром и каково его назначение?

8. Назначение формальных и фактических параметров и их взаимосвязь.

9. Опишите последовательность событий при вызове процедур или функций.

10. Для чего используется пошаговый режим с заходом в процедуры и как его осуществить?

11. Каковы отличия параметров-значений от параметров-переменных, особенности их описания и применения?

12. Чем отличаются локальные и глобальные параметры? Какова область их действия?


Лабораторная работа № 7

Цель работы

Освоение методики проектирования Pascal-программ с использованием операций с файлами.

Задание на лабораторную работу

Разработать две программы, выполняющие заданные последовательности действий над данными определенного типа с использованием файлов в соответствии с вариантом задания.

Требования к программе

Программа должна выполнять:

– вывод сообщения о разработчике и о назначении программы;

– ввод данных в режиме диалога.

Сохранение данных в файле и чтение данных из файла организовать как процедуру или функцию.

Выполнить контроль ошибок при открытии файлов.

Порядок выполнения работы

1. Получить вариант задания (п. 7.7, таблица 7.1).

2. Изучить процедуры и функции, используемые для работы с файлами, и необходимые для выполнения данной лабораторной работы (п. 7.5).

3. Разработать алгоритм подготовки и обработки данных на основе заданных операций.

4. Подготовить текст программы и отладить программу с использованием среды Turbo Pascal; см. пример п. 7.6.

5. Устно ответить на контрольные вопросы (п. 7.9).

6. Оформить отчет (см. п. 1.10).

Операции ввода-вывода

Операции ввода-вывода (чтения из файла и записи в файл) реализуются с помощью процедур: Read, Write.

Правила записи операторов:

Read(F, A, B, C,...);

Write(F1, X, Y, Z,...);

F, F1 – имена файловых переменных, к которым были применены операции открытия Reset и Rewrite соответственно,

A, B, C – переменные, типы которых совпадают с базовым типом файловой переменной F,

X, Y, Z – выражения, типы которых совпадают с базовым типом файловой переменной F1.

Примеры:

Read(F, A); {чтение значения одного элемента файла}

Read(F, B, C); {последовательное чтение значений двух элементов}

Read(F, M[i]); {чтение значения одного элемента и присвоение прочитанного значения элементу массива (запись в массив)}

Write(F1, X); {запись значения одной переменной в файл}

Write(F1, X, Y); {последовательная запись значений двух переменных в файл}

Write(F1, M[i]); {запись значения i-го элемента массива в файл}

Write(F1, X, X*X, X+Y, X/(Y-Z)); {последовательная запись в файл значений указанных выражений}

................

Выполнение процедуры Read происходит следующим образом. Начиная с текущей позиции указателя файла будут последовательно читаться значения, содержащиеся в файле. Каждое прочитанное значение будет присваиваться очередной переменной из тех, которые указаны в вызове процедуры. После чтения очередного значения указатель файла будет смещаться на следующую позицию. Если в процессе выполнения процедуры Read текущий указатель файла будет установлен на позицию, не содержащую информации (то есть будет достигнут конец файла),то чтение будет прекращено,процедура Read завершится преждевременно, и возникнет ситуация ‘конец файла». Возникновение этой ситуации можно проверить с помощью встроенной функции EOF.

При выполнении процедуры Write значение очередного выражения будет помещено в файл в место, отмеченное текущим указателем. После этого текущий указатель будет передвинут на одну позицию и действия повторятся для следующего выражения из списка параметров вызова процедуры Write.

Текстовые файлы

Содержимое текстового файла рассматривается как последовательность символьных строк переменной длины, разделенных специальной комбинацией кодов, «конец строки» (13 или 0Dh), «перевод строки» (10 или 0Ah). Текстовый файл завершается специальным кодом «конец файла» (26 или 1Ah).

Представителем текстового файла в Pascal-программе является переменная файлового типа, которая должна быть описана с указанием стандартного типа text; например,

var MyText: text;

Для текстовых файлов применимы вышеопределенные начальные и завершающие операции (Assign, Reset, Rewrite, Flush, Close).

Текстовый файл может быть открыт для дополнения с помощью процедуры Append (F); эта процедура открывает файл для записи, но не очищает его, а устанавливает текущий указатель файла за последней записью.

Для записи в текстовый файл и чтения из него используются процедуры ReadLn и WriteLn. Эти процедуры осуществляют те же действия, что и соответствующие процедуры Read и Write, но после операций чтения и записи производят переход к следующей строке текстового файла.

Для контроля за окончанием текстового файла можно использовать функцию EOF.

Функция SeekEoLn(F) производит поиск конца текущей строки. Она пропускает все символы-разделители значений в строке (пробелы и табуляции) и устанавливает текущий указатель файла либо на конце строки (и тогда возвращает true), либо на первом значащем символе.

Функция SeekEoF(F) осуществляет поиск конца файла и действует аналогично функции SeekEoLn, но кроме символов-разделителей она пропускает символы концов строк (то есть переходит со строки на строку) в поисках кода конца файла. Если код 1Ah найден, то функция возвращает true, в противном случае – false.

Пример структуры программы

program file_operation; {Программа для работы со списком сотрудников}

uses crt;

type

zap=record {Определение записи с полями «фамилия» - name, «тарифная ставка» - tarif}

name:string[15];

tarif:LongInt

end;

var

F1: file of zap;

s: zap; c: char;

procedure out_fil; {Процедура сохранения данных в файле}

var file_name: string;

begin

..... {Задание имени файла для сохранения}

assign(F1, file_name);

... {Открытие файла для записи и контроль ошибок при выполнении этой операции}

repeat

write(‘Введите фамилию или * (признак окончания ввода ‘);

readln(s.name);

if s.name <> ‘*’ then

begin

writeln(‘Введите тариф’);

readln(s.tarif);

write(F1,s)

end

until s.name = ‘*’;

close(F1)

end;

procedure IN_fil; {Процедура чтения данных из файла и вывода на экран}

var file_name: string;

begin

... {Задание имени файла для чтения}

assign(F1, file_name);

... {Открытие файла для чтения и контроль ошибок при

выполнении этой операции}

writeln(‘------ Список... -------‘); {Заголовок списка}

repeat {Цикл чтения данных из файла и вывода на экран}

read(F1,s);

writeln(s.name, ‘ ‘,s.tarif)

until Eof(F1);

close(F1)

end;

begin { ---- Начало головной части программы ----}

repeat { Цикл сохранения данных. Если при каждом обращении к процедуре Out_fil задавать разные имена файлов, то этот

цикл позволит сохранить несколько списков; каждый список в своем файле}

clrscr;

Out_fil;

writeln(‘Закончить ввод списков? (Y/N)’); readln;

until (c = ‘Y’) or (c=’y’);

repeat { Цикл чтения данных. Этот вариант позволяет просмотреть списки из разных файлов, имена которых задаются при каждом обращении к процедуре In_fil}

clrscr;

In_fil;

writeln(‘Закончить просмотр списков? (Y/N)’); readln(с);

until (c = ‘Y’) or (c=’y’);

end. {Окончание программы}

Варианты заданий

Таблица 7.1

№ варианта Тип данных (табл. 7..2) Задание имени файла (табл. 7.3) Сообщение об ошибках (табл. 7.4) Последовательность операций над данными (табл. 7.5)
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         

Таблица 7.2

№ варианта Тип данных в файле
  Текст
  Вещественные числа
  Целые числа
  Записи со структурой табл. 7.6
  Записи со структурой табл. 7.7
  Записи со структурой табл. 7.8
  Записи со структурой табл. 7.9
  Записи со структурой табл. 7.10

Таблица 7.3 Таблица 7.4

№ варианта Вариант задания имени файла   № варианта Вариант вывода сообщений об ошибках
  Ввод с клавиатуры     Краткий
  Строковая константа в программе     Расширенный

Таблица 7.5

№ варианта Вариант цепочки операций над данными
  Ввод с клавиатуры и запись в массив, запись из массива в файл, чтение из файла и вывод на экран
  Ввод с клавиатуры и запись в файл, чтение из файла и вывод на экран, дополнение файла
  Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран
  Ввод с клавиатуры и запись в массив, запись из массива в файл, дополнение файла, чтение из файла и вывод на экран

 

Структуры данных для программы (к табл. 7.2)

Таблица 7.6 Таблица 7.7

Товар   Сотрудник
Наименование Цена Количество   Фамилия Должность Оклад
             

Таблица 7.8 Таблица 7.9

Студент   Фирма
Фамилия Экзаменационные оценки   Название Курс акций
  Математика Информатика     покупка продажа
             

Таблица 7.10

Автомобиль
Марка Мощность Максимальная скорость

Содержание отчета (см. п. 1.10)

7.9. Контрольные вопросы

1. Что такое «файл»?

2. Что такое «указатель текущей записи»?

3. Какую структуру может иметь имя файла?

4. Из каких элементов может состоять файл? Как нумеруются элементы файла?

5. Каково назначение переменных файлового типа? Как могут быть определены такие переменные в Pascal-программе?

6. Каков состав и каково назначение установочных и завершающих операций с файлами? Какие параметры используются при обращении к соответствующим процедурам?

7. Каковы правила записи операторов чтения из файла и записи в файл?

8. Как происходит выполнение процедур чтения из файла (записи в файл)?

9. Какая процедура предназначена для явного изменения значения текущего указателя в файле? Какие параметры используются при этом?

10. Каково назначение функций FileSize, FilePos, EOF?

11. Как организовать обработку ошибок при работе с файлами? Каков алгоритм обработки? Какие операторы могут быть использованы для этого?

12. Что такое «текстовый файл»? Как определить в Pascal-программе файловые переменные для работы с текстовыми файлами?

13. Какие процедуры используются для открытия текстовых файлов, для чтения из файла, записи в файл?

14. Как организовать сохранение в файле данных, вводимых с клавиатуры?

15. Как организовать чтение данных из файла и вывод на экран?


Основная литература

1. Немнюгин С.А. Turbo Pascal: Практикум. – СПб., Питер, 2001.

2. Немнюгин С.А. Turbo Pascal: Практикум. – СПб., Питер, 2001.

3. Довгаль С.И. и др. Персональные ЭВМ: Турбо Паскаль v.7.0, объектное программирование, локальные сети: Уч. пос. – Киев: Информсистема сервис, 1993. 480 с.

4. Кнут Д. Искусство программирования для ЭВМ. Т. 1. Основные алгоритмы. – М.: Мир, 1976. 736 с.

5. Зуев Е.А. Программирование на языке Turbo Pascal 6.0, 7.0. – М.: Радио и связь, 1993.

6. Белецкий Я. Турбо Паскаль с графикой для персональных компьютеров. – М.: Машиностроение, 1991. 320 с.

7. Епанешников. Программирование в среде Турбо Паскаль v.7.0. – М.: ДИАЛОГ-МИФИ, 1996.

8. ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.

9. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс: Уч. пос. – М.:, Нолидж, 1997. 616 с.

10. Долгушева Л.Н., Пикулин В.В. Основы алгоритмизации и языки программирования: Уч.-практич. пос. – Пенза: Изд-во Пенз. технол. ин-та, 2003.

Дополнительная литература

1. Алгоритмизация и основы программирования / Г.И. Светозарова. – М.: Высшая школа, 1987. 128 с.

2. Йенсен К., Вирт Н. Паскаль: руководство для пользователя. – М.: Фин. и стат., 1989. 255 с.

3. Васюкова Н.Д., Тюляева В.В. Практикум по основам программирования. Язык Паскаль: Уч. пос. – М.: Выс. шк., 1991. 160 с.

4. Вирт Н. Алгоритмы + структуры данных = программы. – М.: Мир, 1985. 406 с.

5. Хершель Р. Turbo Pascal 4.0/5.0. – 1992.

6. Краткое руководство по Turbo Pascal 5.5. – М.: НПФ "И.В.К. Софт", 1991. 84с.

7. Йодан Э. Структурное проектирование и конструирование программ. – М.: Мир, 1979. 416 с.

8. Зуев Е.А. Язык программирования Turbo Pascal 6.0. – М.: Унитех, 1992. 298 с.

9. Фокс Дж. Программное обеспечение и его разработка. – М.: Мир, 1985. – 238 с.

10. Зелковиц М. Принципы разработки программного обеспечения. – М.: Мир, 1982. 368 с.

11. Бондарев В.М. Основы программирования. – Харьков: Фомио; Ростов н/Д: Феникс, 1998.


Приложение. Титульный лист

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ РФ

ПЕНЗЕНСКАЯ ГОСУДАРСТВЕННАЯ ТЕХНОЛОГИЧЕСКАЯ АКАДЕМИЯ

КАФЕДРА ИНФОРМАТИКИ

Отчет о лабораторных работах по дисциплине

«Информатика и программирование»

Выполнил:

ст. группы 07А1

Иванов В.М.

Проверил:

ст. преп. каф.

«Информатика»

Петров В.В.

Пенза, 2008 г.

Разработка программ обработки символьных и строковых данных

Цель работы

Приобретение навыков разработки программ отработки символьных и строковых данных на языке Turbo Pascal.

Задание на лабораторную работу

Составить программу обработки строковых данных заданной структуры (в соответствии с вариантом задания (п. 5.7)) и преобразования исходных данных.

Требования к программе

Программа должна выполнять следующие действия:

– ввод данных и вывод сообщений-подсказок перед вводом данных;

– вывод результатов:

– преобразования: выражения типа байт в символ (Chr); изображения символа в код типа байт (Ord); числа (целого или вещественного) в строку (Str) и вывод строки; строки в число целого или вещественного типа (Val) и вывод результатов преобразований.

Порядок выполнения работы

1. Составить вариант задания (п. 5.7, таблицы 5.4, 5, 5.6)

2. Изучить операторы определения переменных символьного и строкового типа (п. 5.5).

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

4. Устно ответить на контрольные вопросы (п. 5.9).

5. Оформить отчет (см. п. 1.10).

5.5. Справки по операторам определения и обработки символьных и строковых данных на языке Turbo Pascal

5.5.1. Операторы определения и обработки символьных данных

Тип данных CHAR обозначает множество символов ASCII, коды которых представлены в таблице (см. приложение 1). Диапазон значений кодов от 0 до 255. Первые 32 символа таблицы кодов ASCII являются управляющими символами, используемыми при работе с внешними устройствами и передаче данных.

Переменная типа CHAR имеет длину 1 байт. Символьные константы задаются путем заключения отдельного символа в апострофы.

Например,

в разделе констант: const sym1 = ‘A’;

или в операторах присваивания: S: = ’B’;

или в выражениях: S > ‘A’.

Переменные символьного типа, например S1 и S2, определяются в разделе переменных по правилу:

var S1, S2: char;



Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 1094; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.42.94 (0.262 с.)