Деталь автомобиля описывается инвентарным номером (положительное целое число),
весом (в килограммах), ценой и стоимостью (в рублях), датой начала производства (год,
месяц, день), статусом (имеет или не имеет знак качества) и объемом производства (в
штуках за смену). В заданной последовательности сведений о деталях найти
инвентарные номера деталей с минимальным весом среди деталей без знака качества. Вывести на экран инвентарный номер, объем производства, цену и стоимость деталей, выпускаемых с 1977 года.
Пыталась сделать что-то сама, но у меня не получается, я не знаю с какой стороны подойти..
type Tdate = record
y:integer;
m:1..12;
d:1..31;
end;
type Tdetail = record
Id:integer;
W:integer;
p:integer;
da:Tdate;
St:boolean;
V:integer;
end;
s:array[1..100] of Tdetail;
Buf_d:Tdetail;
i,n:integer;
Function Ves(v1,v2:real);
begin
if v2.st<v1.st then s:=v2
else s:=v1;
end;
Begin
Другие языки программирования и технологии
Помогите с программой на Паскаль! Деталь автомобиля описывается инвентарным номером (положительное целое число), весом..
Для начала нужно задать последовательность деталей.
Их данные можно запросить у пользователя:
Write('Сколько деталей вы хотите описать? ');
ReadLn(num);
for i:=1 to num do
begin
Write('Инвентарный номер: ');
ReadLn(s[i].Id);
Write('…');
{Дальше сообразишь}
end;
Чтобы найти деталь с минимальным весом, будем запоминать ее индекс.
Изначально такая деталь нам неизвестна:
minIndex:=0;
Запускаем цикл:
for i:=1 to num do
begin
В цикле надо прежде всего проверить, есть ли у детали знак качества или нет.
Сравнивать веса нужно только тогда, когда знака нет.
if not s[i].St then {я бы переименовал St в znak}
begin
Если знака нет, то есть два важных варианта:
1) minIndex = 0. Тогда s[i] — первая найденная нами деталь без знака, и можно запомнить ее индекс просто так:
if minIndex = 0 then
minIndex := i
2) minIndex <> 0. Тогда minIndex указывает на деталь без знака, которую мы нашли раньше. В этом случае надо сравнить веса и записать в minIndex индекс более легкой из двух деталей (если i-тая деталь легче, то пишем i, иначе ничего писать не надо):
else if s[i].V < s[minIndex].V then
minIndex := i;
end;
end;
Теперь надо вывести инвентарный номер детали с индексом minIndex (если только minIndex > 0, а то может и не быть деталей без знака качества, и тогда после цикла получим minIndex = 0).
Если может быть несколько деталей с минимальным весом — бежим еще одним циклом и проверяем веса: если вес i-той детали равен весу minIndex-ной детали, то выводим инв. номер i-той детали.
Дальше надо вывести данные о деталях, выпускаемых с 1977 года.
Это еще легче:
• перебираем циклом все детали
• сравниваем год i-той детали с 1977
• если год >= 1977, то выводим данные об i-той детали.
Попробуй написать этот кусок самостоятельно.
Успехов!
Их данные можно запросить у пользователя:
Write('Сколько деталей вы хотите описать? ');
ReadLn(num);
for i:=1 to num do
begin
Write('Инвентарный номер: ');
ReadLn(s[i].Id);
Write('…');
{Дальше сообразишь}
end;
Чтобы найти деталь с минимальным весом, будем запоминать ее индекс.
Изначально такая деталь нам неизвестна:
minIndex:=0;
Запускаем цикл:
for i:=1 to num do
begin
В цикле надо прежде всего проверить, есть ли у детали знак качества или нет.
Сравнивать веса нужно только тогда, когда знака нет.
if not s[i].St then {я бы переименовал St в znak}
begin
Если знака нет, то есть два важных варианта:
1) minIndex = 0. Тогда s[i] — первая найденная нами деталь без знака, и можно запомнить ее индекс просто так:
if minIndex = 0 then
minIndex := i
2) minIndex <> 0. Тогда minIndex указывает на деталь без знака, которую мы нашли раньше. В этом случае надо сравнить веса и записать в minIndex индекс более легкой из двух деталей (если i-тая деталь легче, то пишем i, иначе ничего писать не надо):
else if s[i].V < s[minIndex].V then
minIndex := i;
end;
end;
Теперь надо вывести инвентарный номер детали с индексом minIndex (если только minIndex > 0, а то может и не быть деталей без знака качества, и тогда после цикла получим minIndex = 0).
Если может быть несколько деталей с минимальным весом — бежим еще одним циклом и проверяем веса: если вес i-той детали равен весу minIndex-ной детали, то выводим инв. номер i-той детали.
Дальше надо вывести данные о деталях, выпускаемых с 1977 года.
Это еще легче:
• перебираем циклом все детали
• сравниваем год i-той детали с 1977
• если год >= 1977, то выводим данные об i-той детали.
Попробуй написать этот кусок самостоятельно.
Успехов!
ты на паскальке не напишешь.
Похожие вопросы
- помогите с программами в паскале
- Помогите составить программу на паскале!
- Помогите решить программу в паскале)
- помогите написать программу на паскаль Заданное натуральное число не превосходящее 1000 записать прописью, то есть выве
- помогите доработать программу в паскале пожалуууйста
- Помогите с программой в Паскале, срочно!
- помогите доделать программу по паскалю пожалуйста
- Помогите! нужна программа.!! на паскале.
- Помогите написать программу на паскале
- Помогите с программами в паскале