Сколько байт занимает описанный массив a array boolean of real
Перейти к содержимому

Сколько байт занимает описанный массив a array boolean of real

  • автор:

Записи в языке Pascal

Запись — структурированный тип данных. Записи являются неоднородными неупорядоченными структурами с прямым доступом к компонентам. Компоненты записи называют полями записи.

Обычно запись содержит совокупность разнотипных атрибутов, относящихся к одному объекту.

Например, информация о рекордах по бегу у мужчин для открытых стадионов может содержать следующие атрибуты

рекордсмен страна статус соревнований (Олимпиада, чемпионат мира) длина дистанции год рекорда время

Структурная диаграмма для записи Запись может быть объявлена в разделе type:

идентификатор типа = Record поле1: тип; поле2: тип; … полеN: тип end;
type beg = record fam: string[25]; srtana: string[20]; status: boolean; dlina: longint; god: 1900..2009; vr: string[15]; end; Var a: beg;

К каждому элементу записи можно обратиться, используя составное имя, которое имеет следующую структуру:

a.fam; a.dlina и т.п.

Если, например, требуется полю «status» присвоить значение «true», то это делается так:

a.status := true;

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

type beg1 = record fam: string[25]; srtana: string[20]; status: boolean; dlina: longint; god: 1900..2009; vr: record min: longint; sec: real end end; Var a: beg1;

Поля такой записи, находящиеся на третьем уровне, идентифицируются тройным составным именем. Например,

a.vr.min a.vr.sec

В программе могут использоваться массивы записей.

Любая обработка записей, в том числе ввод и вывод, производится поэлементно.

var b: array[1..200] of beg1; . write('Число рекордсменов? '); readln(n); for i:=1 to n do with b[i] do begin write('Фамилия спортсмена? '); readln(fam); write('Гражданин какой страны спортсмен? '); readln(strana); write('Статус соревнования? '); readln(status); write('Длина дистанции? '); readln(dlina); write('Год проведения соревнования? '); readln(god); write('Время, за которое спортсмен пробежал дистанцию (мин, сек)? '); readln(vr.min, vr.sec); end; .

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

with do ;

Он позволяет, один раз указав имя переменной типа «запись» после слова with, работать в пределах одного оператора (простого или составного) с именами полей как с обычными переменными, т.е. не писать громоздких составных имен.

Объём памяти, занимаемый записью, определяется суммарным объёмом, занимаемым её полями:

type beg1 = record fam: string[25]; srtana: string[20]; status: boolean; dlina: longint; god: 1900..2009; vr: record min: longint; sec: real end end;

Всего получаем: 26+21+1+4+2+4+6=65 байт

Массив, описанный выше, занимает 65 байт × 200 элементов = 13000 байт оперативной памяти.

Записи с вариантами

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

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

Любая запись может иметь только одну вариантную часть, которая должна размещаться в конце записи (после фиксированной части). Однако, внутри какого-либо варианта, в свою очередь, может присутствовать другая вариантная часть, вложенная в первую.

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

Структурная диаграмма для записи с вариантами

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

Type pol=(m,w); people=record fam:string[20]; godro:1900..2007; case mw:pol of m: ( voen: boolean; spec: string[15]); w: ( merry: boolean; child: byte) end; var p1, p2: people;

Все имена элементов должны быть различными, даже если они встречаются в разных вариантах.

К элементам вариантной части можно обращаться так же, как к элементам фиксированной части записи.

P1.mw:=m; p1.voen:=true; p2.child:=2;

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

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

Type pol=(m,w); people=record fam:string[20]; godro:1900..2007; case mw:pol of m: ( voen: boolean; spec: string[15]); w: ( merry: boolean; child: byte) end; 21 + 2 + 1 + max(17, 2) = 41 (байт)

Рассмотрим пример работы с записями без вариантов.

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

program ex_zap; type detal = record a: string[30]; kol, st: integer; end; var a: array [0..99] of detal; n, i, max: integer; begin write('Количество деталей? '); readln(n); for i:=0 to n-1 do With a[i] do begin write('Информация об ', i, ' детали: '); readln(a); readln(kol); readln(st); end; max := 0; for i:= 1 to n-1 do if a[max].kol*a[max].st < a[i].kol*a[i].st then max:=i; writeln('Искомая деталь: ', a[max].a, ' стоимостью ', a[max].st, ' в количестве ', a[max].kol); end.

  1. Чем отличается тип "запись" от других структурированных типов?
  2. Могут ли поля записи быть одного и того же типа?
  3. Как обратиться к отдельному полю записи?
  4. Что такое "оператор присоединения"? В каких целях он используется?
  5. Что такое "запись с вариантами"?
  6. Как определить объем памяти под статическую запись? запись с вариантами?
  7. Как заполнить массив записей?

Решите пожалуйста! Очень срочно!

Задание 3
Вопрос:
Сколько байт занимает описанный массив?
a: array [boolean] of integer;
Запишите число:
___________________________
Задание 4
Вопрос:
Как называются ячейки оперативной памяти, в которых хранятся данные массива?
Выберите один из 4 вариантов ответа:
1) Пункты массива2) Строки3) Индексы4) Элементы массива
Задание 5
Вопрос:
Какие действия возможны над массивами, как над единым целым?
Выберите несколько из 4 вариантов ответа:
1) Присваивание2) Проверка неравенства
3) Сложение4) Проверка равенства

Задание 6
Вопрос:
Как обратится к элементу массива а с индексом 5?
Запишите ответ:
__________________________________________
Задание 7
Вопрос:
Как называется структурный тип данных, используемый для хранения пронумерованных величин одного типа?
Выберите один из 4 вариантов ответа:
1) Регулярный тип2) Комбинированный тип
3) Составной тип4) Строковый тип
Задание 8
Вопрос:
Какие варианты описания элементов массива являются правильными?
Выберите несколько из 4 вариантов ответа:
1) c: array [char] of 1..7; 2) m: array [integer] string;
3) t: array [real] of real; 4) a: array [1..2] of byte;
Задание 9
Вопрос:
Сколько байт оперативной памяти в среде Pascal ABC занимает описанный двумерный массив?
a: array [1..50, 1..70] of integer;
Запишите число:
___________________________

Задание 10
Вопрос:
Какая величина в языке Pascal называется массивом?
Выберите один из 4 вариантов ответа:
1) Величина составного типа
2) Величина одного из числовых типов
3) Величина регулярного типа
4) Величина символьного типа

Голосование за лучший ответ

1,а=4*б а+б+а=180 4*б+б+4*б=180 === б=20 а=80

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

Очень срочно! Даю много баллов! Задание 1
Вопрос:
Сколько байт оперативной памяти будет занимать описанный массив?
t: array [1..80] of boolean; (логический тип!!ВС)
Запишите число:
___________________________

Задание 3
Вопрос:
Сколько байт занимает описанный массив?
a: array [boolean] of integer;
Запишите число:
___________________________
Задание 4
Вопрос:
Как называются ячейки оперативной памяти, в которых хранятся данные массива?
Выберите один из 4 вариантов ответа:
1) Пункты массива 2) Строки 3) Индексы 4) Элементы массива
Задание 5
Вопрос:
Какие действия возможны над массивами, как над единым целым?
Выберите несколько из 4 вариантов ответа:
1) Присваивание 2) Проверка неравенства
3) Сложение 4) Проверка равенства

Задание 6
Вопрос:
Как обратится к элементу массива а с индексом 5?
Запишите ответ:
__________________________________________
Задание 7
Вопрос:
Как называется структурный тип данных, используемый для хранения пронумерованных величин одного типа?
Выберите один из 4 вариантов ответа:
1) Регулярный тип 2) Комбинированный тип
3) Составной тип 4) Строковый тип
Задание 8
Вопрос:
Какие варианты описания элементов массива являются правильными?
Выберите несколько из 4 вариантов ответа:
1) c: array [char] of 1..7; 2) m: array [integer] string;
3) t: array [real] of real; 4) a: array [1..2] of byte;
Задание 9
Вопрос:
Сколько байт оперативной памяти в среде Pascal ABC занимает описанный двумерный массив?
a: array [1..50, 1..70] of integer;
Запишите число:
___________________________

Задание 10
Вопрос:
Какая величина в языке Pascal называется массивом?
Выберите один из 4 вариантов ответа:
1) Величина составного типа
2) Величина одного из числовых типов
3) Величина регулярного типа
4) Величина символьного типа

Массивы

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

Данный тест необходимо пройти после просмотра видеоурока.
Система оценки: 5 балльная

Список вопросов теста

Вопрос 1

Сколько байт оперативной памяти будет занимать описанный массив?

t: array [1..80] of boolean;

Выберите один из 4 вариантов ответа:

Варианты ответов
Вопрос 2

Сколько элементов в описанном массиве?

d: array [byte] of byte;

Запишите число:

Вопрос 3

Сколько байт занимает описанный массив?

a: array [boolean] of real;

Запишите число:

Вопрос 4

Как называются ячейки оперативной памяти, в которых хранятся данные массива?

Выберите один из 4 вариантов ответа:

Варианты ответов
  • Пункты массива
  • Строки
  • Индексы
  • Элементы массива
Вопрос 5

Какие действия возможны над массивами, как над единым целым?

Выберите несколько из 4 вариантов ответа:

Варианты ответов
  • Присваивание
  • Проверка неравенства
  • Сложение
  • Проверка равенства
Вопрос 6

Как обратится к элементу массива а с индексом 5?

Запишите ответ без пробелов:

Вопрос 7

Как называется структурный тип данных, используемый для хранения пронумерованных величин одного типа?

Выберите один из 4 вариантов ответа:

Варианты ответов
  • Регулярный тип
  • Комбинированный тип
  • Составной тип
  • Строковый тип
Вопрос 8

Какие варианты описания элементов массива являются правильными?

Выберите несколько из 4 вариантов ответа:

Варианты ответов
  • c: array [char] of 1..7;
  • m: array [integer] string;
  • t: array [real] of real;
  • a: array [1..2] of byte;
Вопрос 9

Сколько байт оперативной памяти в среде Pascal ABC занимает описанный двумерный массив?

a : array [1..50, 1..70] of integer ;

Выберите один из 4 вариантов ответа:

Варианты ответов
Вопрос 10

Какая величина в языке Pascal называется массивом?

Выберите один из 4 вариантов ответа

Варианты ответов
  • Величина составного типа
  • Величина одного из числовых типов
  • Величина регулярного типа
  • Величина символьного типа

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *