Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник Задач v2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
660.48 Кб
Скачать

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

  1. Составить программу для вывода заданного слова, заданного цвета в заданной строке на заданном фоне:

    1. Дано слово. Вывести его в правом нижнем углу.

    2. Даны два слова. Объединить их и вывести посередине экрана.

    3. Даны три слова. Вывести их лесенкой по главной диагонали.

    4. Даны четыре слова. Вывести их по углам.

    5. Даны пять слов. Вывести первые четыре по углам, а пятое в середине.

    6. Даны шесть слов. Вывести их лесенкой по главной диагонали.

    7. Даны шесть слов. Вывести их лесенкой по побочной диагонали.

    8. Дано слово из четырех букв. Раскидать его буквы по углам.

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

    10. Дано слово. Вывести его в строчку всеми возможными цветами.

    11. Дано слово. Вывести его в столбик первыми 15-ю цветами (учесть, что при совпадении цвета слова и фона не должно быть промежутка).

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

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

    1. Дано слово. Вывести одним цветом его буквы в строчку.

    2. Дано слово. Вывести одним цветом его буквы в столбик.

    3. Дано слово. Вывести разным цветом его буквы в строчку.

    4. Дано слово. Вывести разным цветом его буквы в столбик.

    5. Дано слово. Вывести его буквы лесенкой по главной диагонали.

    6. Дано слово. Вывести его буквы лесенкой по побочной диагонали.

    7. Дано слово. Вывести его буквы лесенкой по главной и побочной диагонали.

    8. Дано слово. Начертить с помощью букв этого слова квадрат.

    9. Дано слово. Вывести это слово в строчку по буквам в каждой заданной строке начиная с исходной.

    10. Дано слово. Вывести это слово в столбик по буквам 40 раз через пробел.

    11. Дано слово. Вывести на экран с помощью его букв слово XXL.

    12. Дано слово. Вывести в одной и той же позиции это слово по буквам разного цвета.

Записи

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

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

В Паскале для описания типа Запись используется зарезервированное слово Record. В отличии от массива, где различные переменные назывались элементами, запись состоит из полей.

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

Описание записи в языке Паскаль осуществляется с помощью служебного слова Record, вслед за которым описываются компоненты записи. Завершается описание записи служебным словом End.

Type <имя записи>=Record

<имя поля 1>: тип поля;

<имя поля 2>: тип поля;

………

<имя поля N>: тип поля;

End;

Var <имя переменной>: <имя записи>;

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

type TRec = Record

FIO: String[20];

TEL: String[7]

end;

var rec: TRec;

Описание записей возможно и без использования имени типа, например:

Var <имя переменной>: Record

<имя поля 1>: тип поля;

<имя поля 2>: тип поля;

………

<имя поля N>: тип поля;

End;

Например:

var rec: Record

FIO: String[20];

TEL: String[7]

end;

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

rec.FIO, rec.TEL

Такое имя называется составным. Компонентой записи может быть также запись, в таком случае составное имя будет содержать не два, а большее количество имен.

Обращение к компонентам записей можно упростить, если воспользоваться оператором присоединения With.

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

with rec do

оператор;

Здесь rec - имя записи, оператор - оператор, простой или составной. Оператор представляет собой область действия оператора присоединения, в пределах которой можно не использовать составные имена. Например для нашего случая:

with rec do

begin

FIO:='Иванов А.А.';

TEL:='2223322';

end;

Такая алгоритмическая конструкция полностью идентична следующей:

rec.FIO:='Иванов А.А.';

rec.TEL:='2223322';

Инициализация записей может производиться с помощью типизированных констант:

type

RecType = Record

x,y: Word;

ch: Char;

dim: Array[1..3] of Byte

end;

const

Rec: RecType = ( x: 127;

y: 255;

ch: 'A';

dim: (2, 4, 8) );

Особой разновидностью записей являются записи с вариантами, которые объявляются с использованием зарезервированного слова Case. С помощью записей с вариантами вы можете одновременно сохранять различные структуры данных, которые имеют большую общую часть, одинаковую во все структурах, и некоторые небольшие отличающиеся части.

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

type

TFigure = record

type_of_figure: string[10];

color_of_figure: byte;

...

case integer of

1: (x1,y1,x2,y2: integer);

2: (a1,a2,b1,b2,c1,c2: integer);

3: (x,y: integer; radius: word);

end;

var figure: TFigure;

Таким образом, в переменной figure мы можем хранить данные как об отрезке, так и о треугольнике или окружности. Надо лишь в зависимости от типа фигуры обращаться к соответствующим полям записи.

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

В любой записи может быть только одна вариантная часть. После окончания вариантной части в записи не могут появляться никакие другие поля. Имена полей должны быть уникальными в пределах той записи, где они объявлены.

Пример записи с вариантами:

program example;

type

seasons = (spring, summer, autumn, winter);

recvar = record

Date : Byte;

case time_for_vacations : seasons of

spring: (ma : (March, April, May));

summer: (grandpa : (June, July. August));

autumn: (grandma : (September, October, November));

winter: (pa : (December. January, February));

end;

var

my_family : recvar;

begin

my_family.time_for_vacations := spring;

my_family.ma := May;

my_family.time_for_vacations := winter;

my_family.pa := December;

my_family.time_for_vacations := summer;

my_fami1y.grandpa := August;

my_family.time_for_vacations := autumn;

my_family.grandma := September;

end.