Составить программу для учета и обработки данных о наличии на складе автомашин, Тас нужно вывести на экран информацию о модели и года выпуска автомашин, цена которых меньше, чем 3000 усл. Ед Пусть запись содержит следующие поля: модель (marka), год выпуска (year) и цена автомобиля (price), а сами записи (в количестве хранятся в массиве а1
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017 // Внимание! Если программа не работает, обновите версию!
begin Writeln('k=', ReadSeqInteger('a,b,c,d=',4).Where(x->(x<0) and (-x mod 10=7)).Count); Writeln('S=',ReadSeqInteger('a,b,c,d=',4). Where(x->(x>-50) and (x <=70) and (x mod 4=0)).Sum); Writeln('S=',ReadSeqInteger('a,b,c,d=',4). Where(x->(abs(x)<=100) and (x mod 4=0)).Sum) end.
Каждый оператор Writeln решает одну из задач. Если надо все отдельно - просто удаляйте два остальных оператора.
1. Вот так это можно написать коротко, быстро и понятно, если разбираться в современном Паскале.
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017 // Внимание! Если программа не работает, обновите версию!
function SoD(Self:integer):integer; extensionmethod; begin while Self>0 do (Result,Self):=(Result+Self mod 10,Self div 10); end;
function Diff(Self:array of integer):integer; extensionmethod; begin Result:=Self.Max.SoD-Self.Min.SoD end;
begin Writeln(ReadArrInteger('Три пятизначных числа:',3).Diff) end.
Пример Три пятизначных числа: 12345 23456 34567 10
2. А вот так примерно учат у нас в школах...
program School; var i,n,max,min,d:integer; begin Write('Введите 1-е пятизначное число: '); Read(n); max:=n; min:=n; for i:=2 to 3 do begin Write('Введите ',i,'-е пятизначное число: '); Read(n); if n<min then min:=n else if n>max then max:=n; end; d:=0; while max>0 do begin d:=d+max mod 10; max:=max div 10 end; while min>0 do begin d:=d-min mod 10; min:=min div 10 end; Writeln(d) end.
// Внимание! Если программа не работает, обновите версию!
begin
Writeln('k=',
ReadSeqInteger('a,b,c,d=',4).Where(x->(x<0) and (-x mod 10=7)).Count);
Writeln('S=',ReadSeqInteger('a,b,c,d=',4).
Where(x->(x>-50) and (x <=70) and (x mod 4=0)).Sum);
Writeln('S=',ReadSeqInteger('a,b,c,d=',4).
Where(x->(abs(x)<=100) and (x mod 4=0)).Sum)
end.
Каждый оператор Writeln решает одну из задач.
Если надо все отдельно - просто удаляйте два остальных оператора.