Работа по записи.Описать комбинированный тип - Pascal
Формулировка задачи:
Описать комбинированный тип, содержащий основные сведения о компьютере: модель материнской платы, частота процессора, объем оперативной памяти, объем винчестера, наличие картридера, модель монитора, наличие установленной операционной системы. Определить для 3-х инициализированных экземпляров записи:
***** а) модель материнской платы компьютеров, объем оперативной памяти которых меньше указанный;
***** б) модель монитора на тех компьютеров, имеющих картридер.
Вот что я смог сделать но дальше не могу понять,
если вам не сложно, когда(если) будете печатать
ответ можете объяснить или под кодом или в самом
коде в "{комментариях}", какую роботу вы провели
uses crt;
type
komp=record
model_mp: string [20];
chastota_proc: real;
obem_op_pam: real;
obem_vin4est: integer;
nali4ie_kartridera: boolean;
model_manitora: string[10];
nali4ie_op_susm: boolean;
end;Решение задачи: «Работа по записи.Описать комбинированный тип»
textual
Листинг программы
const
N = 3;
type
TComputer = record
motherboard, display: String[20]; //мать и монитор
clockrate, ram, hard: Word; //частота в MHz, ram в MB, винт в GB
os, cardreader: Boolean;
end;
var
ar: Array[1..N] Of TComputer;
i: 1..N;
targetRam: Word;
c: Char;
begin
WriteLn('Ввод данных:');
for i := 1 to N do
with ar[i] do
begin
Write('Модель МП? '); ReadLn(motherboard);
Write('Частота просессора (в MHz)? '); ReadLn(clockrate);
Write('Объём RAM (в MB)? '); ReadLn(ram);
Write('Объём жёсткого диска (в GB)? '); ReadLn(hard);
Write('Модель монитора? '); ReadLn(display);
repeat
Write('Установлена ли ОС (y - да | n - нет)? ');
ReadLn(c);
until (c in ['y', 'n', 'Y', 'N']);
os := (c in ['y', 'Y']);
repeat
Write('Имеется ли картридер (y - да | n - нет)? ');
ReadLn(c);
until (c in ['y', 'n', 'Y', 'N']);
cardreader := (c in ['y', 'Y']);
WriteLn('=======================================================');
end;
WriteLn;
Write('Введите максимальный объём RAM (в MB): '); ReadLn(targetRam);
WriteLn('Модели МП, объем RAM которых меньше ', targetRam, ':');
for i := 1 to N do
with ar[i] do
if (ram < targetRam)
then
WriteLn(motherboard);
WriteLn;
WriteLn('Модели мониторов компьютеров, в которых имеется картридер:');
for i := 1 to N do
with ar[i] do
if (cardreader)
then
WriteLn(display);
end.
Объяснение кода листинга программы
- Объявляется константа
Nсо значением 3. - Описывается комбинированный тип
TComputerв виде записи, которая содержит следующие поля:- motherboard (тип String[20]) - модель материнской платы
- display (тип String[20]) - модель монитора
- clockrate (тип Word) - частота процессора в MHz
- ram (тип Word) - объем оперативной памяти в MB
- hard (тип Word) - объем жесткого диска в GB
- os (тип Boolean) - наличие операционной системы
- cardreader (тип Boolean) - наличие картридера
- Объявляются переменные:
- ar (тип Array[1..N] Of TComputer) - массив структур TComputer
- i (тип 1..N) - переменная для цикла
- targetRam (тип Word) - максимальный объем оперативной памяти
- c (тип Char) - временная переменная для ввода символа
- Начинается выполнение основной программы.
- Выводится приглашение к вводу данных.
- Выполняется цикл ввода данных о компьютерах с использованием вложенной конструкции
with:- Для каждого компьютера в массиве ar[i] запрашивается информация о материнской плате, частоте процессора, объеме ОЗУ, объеме жесткого диска, мониторе, наличии операционной системы и картридера.
- Затем пользователю предлагается ввести максимальный объем RAM.
- Выводятся модели материнских плат с объемом RAM меньше введенного значения.
- Выводятся модели мониторов компьютеров, в которых имеется картридер.
- Программа завершается. Этот код сначала создает массив структур TComputer, затем заполняет его данными пользователей об нескольких компьютерах. После этого программа запрашивает у пользователя максимальный объем оперативной памяти и выводит модели материнских плат, у которых объем оперативной памяти меньше введенного значения, а также модели мониторов компьютеров, в которых имеется картридер.