Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №6 - Строки и записи

.doc
Скачиваний:
13
Добавлен:
25.05.2014
Размер:
65.02 Кб
Скачать

УГАТУ

Кафедра информатики

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

Строки и записи

Выполнил

Федосеев Е.В. М-120

Проверил

Бажин Д.Н.

Уфа – 2004

Цель работы:

Приобретение навыков алгоритмизации и программирования задач, оперирующих строковыми типами данных:

- ввод и вывод строковых данных;

- обработка строковых данных;

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

Вариант 5:

Проверить, встечается ли в заданном предложении словосочетание «Сальдо счета».

начало

ввод исходной строки (st1)

st2:=сальдо счета

k:=pos (st2,st1)

нет k=0 да

Это словосочетание есть Этого словосочетания нет

конец

Таблица используемых значений

Имя

Тип

Назначение переменной

Описание

st1

string

входящая

Исходная строка

st2

string

внутренняя

Искомое словосочетание

k

integer

внутренняя

Позиция, начала второго предложения

program variant61;

uses wincrt;

Var st1,st2:string;

k:integer;

begin

writeln ('Введите исходную строку');

readln (st1);

st2:='сальдо счета';

k:=pos(st2,st1);

if k=0 then writeln('Этого словосочетания нет')

else writeln('Это словосочетание есть');

end.

Результат работы программы:

Введите исходную строку:

Аавпвап вапвапвап капв ываоывшщао

Этого словосочетания нет

начало

i=1,6

tbl[i]

ввод fam, dr, kurs,

ks

k= i,6

x:=’Б’

с:=pos(x, tbl[k].fam)

нет c=1

да

y:=tbl[k]

tbl[i]:=y

tbl[i]

i=1,6

fam, dr, ks

конец

Таблица используемых значений

Имя

Тип

Назначение переменной

Описание

str

record

внутренняя

Запись сведений о студенте

fam

string [30]

входящая

Поле записи str - фамилия студента

kurs

integer

входящая

Поле записи str - № курса

dr

String [10]

входящая

Поле записи str – Дата рождения

ks

integer

входящая

Поле записи str – Количество семестров

x

string

внутренняя

Начальная буква фамилии

с

integer

внутренняя

Позиция переменной х в фамилии студента

tbl

array [1..6]

внутренняя

Массив

i

integer

внутренняя

№ студента

k

integer

внутренняя

№ студента

y

record

внутренняя

Промежуточная запись

program var62;

type str=record

fam: string [30];

dr: string [10];

kurs: integer;

ks: integer;

end;

var tbl: array [1..6] of str;

i,k,c:integer;

y:str;

x:string;

begin

for i:=1 to 6 do

with tbl[i] do

begin

writeln ('Введите фамилию');

readln (fam);

writeln ('Введите дату рождения');

readln (dr);

writeln ('На каком курсе он учиться');

readln (kurs);

writeln ('Количество семестров');

readln (ks);

end;

for k:=i to 6 do begin

x:='B';

c:=pos(x,tbl[k].fam);

if c=1 then

y:=tbl[k];

writeln ('Список студентов');

tbl[i]:=y;

for i:= 1 to 6 do

with tbl[i] do

writeln (fam, dr, ks);

end;

end.

Результат работы программы:

Введите фамилию: Иванов

Введите дату рождения: 30.12.1984

На каком курсе он учиться: 4

Количество семестров: 6

Введите фамилию: Петров

Введите дату рождения: 21.07.1985

На каком курсе он учиться: 3

Количество семестров: 5

Введите фамилию: Быков

Введите дату рождения: 20.03.1986

На каком курсе он учиться: 2

Количество семестров: 5

Введите фамилию: Мочалкин

Введите дату рождения: 11.05.1984

На каком курсе он учиться: 3

Количество семестров: 4

Введите фамилию: Балванов

Введите дату рождения: 28.11.1986

На каком курсе он учиться: 1

Количество семестров: 5

Введите фамилию: Финк

Введите дату рождения: 28.03.1987

На каком курсе он учиться: 1

Количество семестров: 2

Список студентов

Быков 20.03.1986 5

Балванов 28.11.1986 5