Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Программирование задач с записями




Программирование задач с символами и строками

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

Описание строки в разделе описания переменных (Var) на языке Pascal имеет вид:

St: string [ NMax ];

где string – строка, St – имя строки, NMax – максимальное количество символов в строке.

Это означает, что переменная Stявляется строкой, которая может содержать от 0 до NMaxсимволов.

Описание символьной переменной в разделе описания переменных (Var) на языке Pascal имеет вид:

Ch: char;

где char – символьный тип (character), Ch – имя символа.

Это означает, что переменная Chявляется символом.

Пример.

Var god: string[4];

bukva: char;

Это означает, что переменная god – строка, включающая максимум 4 символа, а переменная bukva – единичный символ.

Доступ к символу в строке имеет вид:

St [ Ind ]

где St – имя строки, Ind – индекс символа.

Это означает доступ к символу с номером Ind в строке St.

Пример.

god[3]

Это означает 3-й символ в строке god.

К строкам можно применять следующие операции:

+ (сцепление).

=(равно).

<>(не равно).

<(меньше).

>(больше).

<=(меньше или равно).

>=(больше или равно).

К строкам обычно применяют следующие стандартные функции:

1. Length(St) – длина строки St.

2. Concat(St1,…,StN) – соединение строк St1, …, StN.

3. Copy(St,Ind,N) – скопированные N символов из строки St, начиная с позиции Ind.

4. Pos(PodSt,St) – номер позиции, с которой начинается подстрока PodSt в строке St.

К строкам обычно применяют следующие стандартные процедуры:

1. Insert(PodSt,St,Ind) – вставка подстроки PodSt в строку St, начиная с позиции Ind.

2. Delete(St,Ind,N) – удаление N символов из строки St, начиная с позиции Ind.

Задача 4.

Условие задачи. Ввести строку с названием купленного товара. Если товар не является вещью, то объединить строку с названием товара и слово «вкусно».

Программа.

Program z4;

Var

tovar: string[10];

itog: string[20];

Begin

readln(tovar);

if not(tovar='Вещь')

then itog:=tovar+' - вкусно';

writeln(itog);

End.

Контрольный пример.

Исходные данные: Товар = ‘Кефир’.
Результаты: Итог = ‘Кефир – вкусно’.

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

Поле – именованная величина, являющаяся частью записи.

Описание записи в разделе описания переменных (Var) на языке Pascal имеет вид:

Zap: record

SP1: T1;

SPN: TN

end;

где record – запись, end – конец описания записи, Zap – имя записи, SP1 – список полей 1-й, SPN – список полей
N-й, T1 – тип полей в 1-м списке, TN – тип полей в N-м списке.

Это означает, что переменная Zap является записью, включающей поля в списке SP1 типа T1, … поля в списке SPN типа TN.

Пример.

Var

computer: record

nazv: string[10];

god: integer;

bystr: real;

end;

Это означает, что переменная computer – запись, включающая поля nazv строкового типа, god целочисленного типа, bystr вещественного типа.

Доступ к полю записи имеет вид:

Zap. Pole

где Zap – имя записи, Pole – имя поля.

Это означает доступ к полю Pole записи Zap.

Пример.

computer.nazv

Это означает поле nazv записи computer.

Оператор присоединения имеет вид:

with Zap do Op

где with – с, do – делать, Zap – имя записи, Op – оператор.

Это означает, что с полями записи Zap надо выполнять оператор Op.

Пример 1. Ввести поля записи computer без использования оператора присоединения.

readln(computer.nazv,computer.god,computer.bystr);

Пример 2. Ввести поля записи computer с использованием оператора присоединения.

with computer do readln(nazv,god,bystr);


Задача 5.

Условие задачи. Задана запись студента с полями: фамилия, год рождения, средний балл за сессию. Начислить студенту стипендию, если известно, что за все отличные оценки начисляется стипендия в 1000 рублей, а за остальные оценки стипендия не начисляется.

Программа.

Program z5;

Var

student: record

fam: string[10];

god: integer;

ball: real;

end;

stip: real;

Begin

with student do

readln(fam,god,ball);

if student.ball=5 then stip:=1000 else stip:=0;

writeln('Стипендия – ',stip:7:2,' рублей');

End.

Контрольный пример.

Исходные данные: Фамилия – Иванов Год рождения – 1989 Средний балл – 5.
Результаты: Стипендия – 1000 рублей.

Задача 6.

Условие задачи. Дан массив студентов из полей записи: фамилия, год рождения, средний балл за сессию. Найти студента с максимальным средним баллом.

Программа.

Program z6;

Type

student = record

fam: string;

god: integer;

ball: real;

end;

Var

A: array [1..50] of student;

i,imax,n: integer;

max: real;

Begin

readln(n);

for i:=1 to n do

with A[i] do

readln(fam,god,ball);

max:=A[1].ball;

imax:=1;

for i:=1 to n do

if A[i].ball>max then

begin

max:=A[i].ball;

imax:=i;

end;

writeln('Фамилия -',A[imax].fam,' с баллом ',A[imax].ball);

End.

Контрольный пример.

Исходные данные: Фамилия Год рождения Средний балл за сессию
Иванов   3,5
Петрова   4,1
Сидоров   4,7
Результаты: Фамилия – Сидоров с баллом 4,7.



Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 398; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.