Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Пример выполнения задания. Пусть, например, имеются некоторые данные о заводах города, сведенные в следующий документ: Наиме-нование завода Основные сведения ПримечаниеПусть, например, имеются некоторые данные о заводах города, сведенные в следующий документ:
Необходимо описать массив записей, содержащий данную информацию, произвести расчет и заполнить итоговую строку, а результат отпечатать. Для решения данной задачи следует обеспечить ввод массива записей, эхо–печать введенных данных, накопления суммы по каждому полю записи для формирования итоговой строки таблицы и вывод полученного результата. Схема алгоритма в общем виде представлена на рис. 6.1.
Рис. 6.1. Схема алгоритма обработки записей.
Текст программы будет иметь следующий вид: {Цель: обработка массива записей } {Переменные:Nmax - максимальное число записей } {Summary-массив записей, plant-строка записи } {name-наименование завода, information-основные сведения } {area-площадь завода, production-объём продукции, plan- по плану } {fact-фактически, person-обслуживающий персонал } {superior-с высшим образованием, second-со средним образованием } {note-примечание } {n - вводимое число записей } {i - номер текущей записи } {k - параметр цикла, } {s1, s2, s3, s4, s5 -суммы колонок. } program Example; const Nmax=10; type plant= record name:string[5]; information: record area:integer; production: record plan:real; fact:real end; person:record superior:integer; second:integer end end; note:string[8] end; var Summary:array [1..Nmax] of plant; s1,s4,s5,i,k,n:integer; s2,s3:real; begin {Example} writeln ('введите количество заводов <=10'); readln(n); {ввод записей} for i:=1 to n do with Summary[i] do begin writeln('введите данные о',i,'-м заводе:'); write ('наименование'); readln (name); with information do begin write('занимаемая площадь'); read(area); with production do begin writeln ('производство продукции'); write('по плану'); read(plan); write('фактически'); read(fact); end; with person do begin writeln ('численность персонала'); write('с высшим образованием:'); read(superior); write('со средним образованием:'); readln(second) end end; write ('примечание:'); readln(note); end; {вывод заголовка таблиц} for k:=1 to 80 do write('_'); writeln; writeln('|','|':15,'основные сведения':33,'|':18,'|':13); write('|','|':15); for k:=1 to 50 do write('_'); write('|','|':13); writeln('|','Наименование |':15,'PL |':10, 'Объем продукции':18,'|':4,'Персонал':13,'|':6,'Примечание|':13); write('|','|':15,'|':10); for k:=1 to 40 do write('_'); write('|','|':13); writeln('|','|':15,'|':10,'по плану|':11,'факт.':7,'|':4, 'высшее |':9,'среднее|':10,'|':13); for k:=1 to 80 do write('_'); writeln; {вывод строк таблиц} for i:=1 to n do with Summary[i] do begin writeln('|',name,' ':12-Length(name),'|':2, information.area:8,'|':2, information.production.plan:8:1,'|':2, information.production.fact:9:1,'|':2, information.person.superior:7,'|':2, information.person.second:8,'|':2, note,' ':12-Length(note),'|'); for k:=1 to 80 do write('_'); writeln; end; {формирование и вывод итоговой строки} s1:=0; s2:=0; s3:=0; s4:=0; s5:=0; for i:=1 to n do with Summary[i].information do begin s1:=s1+area; s2:=s2+production.plan; s3:=s3+production.fact; s4:=s4+person.superior; s5:=s5+person.second; end; with Summary[n+1] do begin name:='Итого'; information.area:=s1; information.production.plan:=s2; information.production.fact:=s3; information.person.superior:=s4; information.person.second:=s5; writeln('|',name,' ':12-Length(name),'|':2,s1:8,'|':2, s2:8:1,'|':2,s3:9:1,'|':2,s4:7,'|':2,s5:8,'|':2,'|':13); end; for k:=1 to 80 do write('_'); writeln; end.{example}
|