Студопедия — Пример.
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Пример.

 

Префикс – обязательная предшествующая часть составного идентификатора для имен полей в структуре типа запись Паскаля. Очень часто у программиста возникает желание не указывать префикс в имени полей, например, когда идет постоянное использование одних и тех же записей. В языке Паскаль предусмотрена такая возможность, реализуемая при помощи оператора присоединения, который в общем виде выглядит так:

 

with <имя_записи> do <действие с полем записи>;

 

Следует обратить внимание на то, что после служебного слова do может стоять только один оператор, но он может быть составным (любая последовательность операторов, заключенная в операторные скобки begin end).

Например, фрагмент из предыдущей программы с использованием оператора присоединения будет выглядеть так:

Пример фрагмента программы c записью и префиксом Паскаля

for I:=1 to 100 do

with student[I] do

begin

writeln (‘введите сведения о’, I, ‘-м студенте’);

writeln (‘введите фамилию, имя и отчество’);

readln (fio);

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

readln (dat_r);

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

readln(adres);

writeln (‘введите курс’);

readln(curs);

writeln (‘введите группу’);

readln (grupp);

end;

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

 

1. Чем отличается тип "запись" от других структурированных типов?

2. Могут ли поля записи быть одного и того же типа?

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

4. Что такое "оператор присоединения"? В каких целях он используется?

5. Как заполнить массив записей?

Пример.

Создать электронную картотеку публикаций, позволяющую после запроса о виде публикации произвести ввод параметров указанной публикации. В картотеке хранятся сведения о публикациях трёх видов: книги, статьи и рефераты.

Рассмотрим структуру каждого вида публикаций:

ü Книга (book)

Автор (author)

Название (title)

Год (year)

Издательство (publishinghouse)

Страницы (pages)

ü Статья (article)

Автор (author)

Название (title)

Год (year)

Журнал (journal)

Номер журнала (numberofjournal)

Начальная страница (begpagej)

Конечная страница (endpagej)

ü Реферат

Автор (author)

Название (title)

Год (year)

Номер реферативного журнала (numberofpaper)

Начальная страница (begpagerj)

Конечная страница (endpagerj)

 

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

 

program publications;

uses crt;

const N=25;

type

kind=(book,article,paper);

publication = record

{фиксированная часть записи}

author,title: string;

year:word;

{вариантная часть записи}

case kindp:kind of

book: (publishinghouse:string;

pages: word);

article: (journal:string;

numberofjournal:byte;

begpagej, endpagej:word);

paper:(numberofpaper:byte;

begpagerj, endpagerj:word);

end;

var

pub: publication;

j:word;

begin

clrscr;

writeln('Vihod - nedopustimiy vid publicacii');

repeat

writeln('Vid publicacii (0..2)= '); readln(j);

if j in [0..2] then

with pub do begin

kindp:=kind(j);

write('author: '); readln(author);

write('nazvanie: '); readln(title);

write('god: '); readln(year);

case kindp of

book: begin

write('izdatelstvo: '); readln(publishinghouse);

write('Obem, ctr: '); readln(pages);

end;

article: begin

write('nazvanie gurnala: '); readln(journal);

write('nomer gurnala: '); readln(numberofjournal);

write('stranici: '); readln(begpagej,endpagej);

end;

paper: begin

write('nomer ref.gurnala: '); readln(numberofpaper);

write('stranici: '); readln(begpagerj,endpagerj);

end;

end;

end;

until not(j in [0..2]); {повторять до недопустимого вида публикации}

readkey

end.

 

 

Постановка задачи:

  1. Описать тип данных запись в соответствии с заданной предметной областью, выбрав наиболее оптимальные типы для полей записи.
  2. Организовать массив записей.
  3. Выполнить ввод данных в массив.
  4. Выполнить поиск данных в соответствии со своим вариантом и вывод на экран результатов поиска.
  5. Упорядочить данные по указанному признаку.
  6. Вывести отсортированные данные.

 

Содержание отчёта:

  1. Постановка задачи.
  2. Блок-схема алгоритма. Описание входных и выходных данных.
  3. Текст программы (с обязательным электронным вариантом).
  4. Результаты работы программы (скрины).

 

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

 

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

 

  1. Описать структуру с именем AEROFLOT, содержащую следующие поля: название пункта назначения рейса, номер рейса, тип самолёта. Написать программу, выполняющую следующие действия:

Ввод с клавиатуры данных в массив, состоящий из семи элементов типа AEROFLOT; вывод на экран номеров рейсов и типов самолётов, вылетающих в пункт назначения, название которого совпало с введённым с клавиатуры. Упорядочить структуры по возрастанию номеров рейсов.

 

  1. Описать структуру с именем TRAIN, содержащую следующие поля: название пункта назначения, номер поезда, время отправления. Написать программу, выполняющую следующие действия:

Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN, вывод на экран информации о поездах, отправляющихся после введённого с клавиатуры времени. Упорядочить структуры по алфавиту (название пункта назначения).

 

  1. Описать структуру с именем NOTE, содержащую следующие поля: фамилия, имя, номер телефона, дата рождения (массив из трёх чисел). Написать программу, выполняющую следующие действия:

Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE, вывод на экран информации о человеке, чья фамилия введена с клавиатуры. Упорядочить структуры по алфавиту (фамилии).

 

  1. Таблица содержит результаты спортивных соревнований: Ф.И.О., время на 100 м, время на 1 км, прыжок в высоту, прыжок в длину. Составить массив структур SPORTSMEN и заполнить его сведениями о 6 спортсменах. Определить лучшего спортсмена по каждому виду спорта. Упорядочить структуры по алфавиту (фамилии).

 

  1. Описать структуру с именем PRICE, содержащую следующие поля: название товара, название магазина, в котором продаётся товар, стоимость товара в гривнах. Написать программу, выполняющую следующие действия:

Ввод с клавиатуры данных в массив, состоящий из десяти структур типа PRICE, вывод на экран информации о товаре, название которого введено с клавиатуры, если таких товаров нет, выдать соответствующее сообщение. Упорядочить структуры по алфавиту (название товара).

 

  1. Описать структуру с именем ORDER, содержащую следующие поля: расчётный счёт плательщика, расчётный счёт получателя, перечисляемая сумма в гривнах. Написать программу, выполняющую следующие действия:

Ввод с клавиатуры данных в массив, состоящий из восьми структур типа ORDER, вывод на экран информации о сумме, снятой с расчётного счёта плательщика, введённого с клавиатуры. Упорядочить структуры по возрастанию перечисляемых сумм.

 

  1. Описать структуру с именем ZNAK, содержащую следующие поля: фамилия, имя, знак зодиака, дата рождения (массив из трёх чисел). Написать программу, выполняющую следующие действия:

Ввод с клавиатуры данных в массив, состоящий из восьми структур типа ZNAK, вывод на экран информации о человеке, чья фамилия введена с клавиатуры. Упорядочить структуры по алфавиту (фамилии).

 

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

Ввод с клавиатуры данных в массив, состоящий из десяти структур типа WORKER, вывод на экран фамилий работников, чей стаж работы в организации превышает значение, введённое с клавиатуры. Упорядочить структуры по убыванию стажа работы.

 

  1. Описать структуру с именем MARSH, содержащую следующие поля: название начального пункта маршрута, название конечного пункта маршрута, номер маршрута. Написать программу, выполняющую следующие действия:

Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа MARSH, вывод на экран информации о маршрутах, которые начинаются или кончаются в пункте, название которого введено с клавиатуры. Упорядочить структуры по возрастанию номера маршрута.

 

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

Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа BAZA, вывод на экран информации о человеке, чья фамилия введена с клавиатуры. Упорядочить структуры по возрасту (по убыванию).

 

  1. Описать структуру с именем PRODUCT, содержащую следующие поля: название продукта, количество этого продукта на складе в кг, цена и стоимость товара в гривнах. Написать программу, выполняющую следующие действия:

Ввод с клавиатуры данных в массив, состоящий из десяти структур типа PRODUCT, вывод на экран информации о продукте, название которого введено с клавиатуры, если таких продуктов нет, выдать соответствующее сообщение. Вывести общую сумму на все ввезённые на склад продукты. Упорядочить структуры по количеству продуктов, имеющихся в наличии.

 

  1. Описать структуру с именем TUR, содержащую следующие поля: название страны, в которую организован тур, код путёвки, стоимость путёвки, вид транспорта (автобус, поезд, самолёт). Написать программу, выполняющую следующие действия:

Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TUR, вывод на экран информации о турах в страну, название которой введено с клавиатуры. Упорядочить структуры по возрастанию стоимости тура.

 

  1. Описать структуру с именем HOSPITAL, содержащую следующие поля: фамилия, имя, отчество, номер участка, год рождения, адрес. Написать программу, выполняющую следующие действия:

Ввод с клавиатуры данных в массив, состоящий из десяти структур типа HOSPITAL, вывод на экран фамилий больных, проживающих на участке, номер которого введён с клавиатуры. Упорядочить структуры, расположив фамилии в алфавитном порядке.

 

  1. Организовать массив структур с именем PUPIL и поместить в него сведения о нескольких учениках (фамилия, имя, отчество, дата рождения, домашний адрес, телефон, класс). Вывести фамилии и классы по введённому с клавиатуры году рождения. Упорядочить структуры по возрасту.

 

  1. Организовать массив структур и поместить в него сведения о результатах сдачи последней сессии (фамилия, имя, отчество студента, оценки по 5 экзаменам). Определить средний балл каждого и вывести на экран с указанием фамилий. Упорядочить структуры по возрастанию среднего балла.

 

  1. Организовать массив структур и поместить в него сведения о нескольких студентах (Фамилия, имя, отчество, дата рождения, домашний адрес, телефон). Вывести фамилии тех, кому исполнилось n лет. Упорядочить структуры по алфавиту (фамилии).

 

  1. Табель успеваемости группы студентов содержит следующие сведения: номер по порядку, фамилию, имя, отчество студента, средний балл каждого. Организовать массив структур и поместить в него эти сведения. Вывести количество студентов со значением среднего балла не менее 3,5. Упорядочить структуры по алфавиту (фамилии).

 

  1. Описать структуру с именем STUDENT, содержащую следующие поля: фамилия, имя, отчество, номер группы, успеваемость (массив из пяти элементов). Написать программу, выполняющую следующие действия:

Ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT, вывод на экран фамилий и номеров групп для всех студентов, имеющих оценки 4 и 5. Упорядочить структуры по убыванию суммы набранных баллов.

 

  1. Описать структуру с именем STUDENT, содержащую следующие поля: фамилия, имя, отчество, номер группы, успеваемость (массив из пяти элементов). Написать программу, выполняющую следующие действия:

Ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT, вывод на экран фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2. Упорядочить структуры по алфавиту (фамилии).

 

  1. Организовать массив структур и поместить в него сведения о результатах сдачи последней сессии (номер по порядку, фамилия, имя, отчество студента, оценки по 3 экзаменам). Определить и вывести процент успеваемости группы. Упорядочить структуры по алфавиту (фамилии).

 

  1. Описать структуру с именем NOTE, содержащую следующие поля: фамилия, имя, номер телефона, дата рождения (массив из трёх чисел). Написать программу, выполняющую следующие действия:

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

 




<== предыдущая лекция | следующая лекция ==>
ЗАПИСИ в Паскаль | Апреля 2015 (Запись Воспоминаний № 2)

Дата добавления: 2015-09-15; просмотров: 1383. Нарушение авторских прав; Мы поможем в написании вашей работы!



Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Виды и жанры театрализованных представлений   Проживание бронируется и оплачивается слушателями самостоятельно...

Что происходит при встрече с близнецовым пламенем   Если встреча с родственной душой может произойти достаточно спокойно – то встреча с близнецовым пламенем всегда подобна вспышке...

Реостаты и резисторы силовой цепи. Реостаты и резисторы силовой цепи. Резисторы и реостаты предназначены для ограничения тока в электрических цепях. В зависимости от назначения различают пусковые...

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

Машины и механизмы для нарезки овощей В зависимости от назначения овощерезательные машины подразделяются на две группы: машины для нарезки сырых и вареных овощей...

Классификация и основные элементы конструкций теплового оборудования Многообразие способов тепловой обработки продуктов предопределяет широкую номенклатуру тепловых аппаратов...

Studopedia.info - Студопедия - 2014-2024 год . (0.014 сек.) русская версия | украинская версия