Помощь - Поиск - Пользователи - Календарь
Полная версия: Одномерный мвссив, максимум отклонений от нормы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Nastenka
Здравствуйте! помогите пожалуйста ПРАВИЛЬНО решить задачу!!!Известен месячный план выпуска некоторой продукции и объемы выпущенной продукции заводом за год (помесячно). Определить месяц, в котором было максимальное отклонение от плана. В качестве результата вывести номер месяца и отклонение. Это решение,как считает мой преподаватель,неправильно((

uses crt;
const plan=70;
var
volume:array [1..12] of integer;
max,j,i,diff:integer;

begin
clrscr;
randomize;
max:=0;
writeln('Plan = ', plan);
writeln('volume :');
for i:=1 to 12 do begin
volume[i]:=random(101)+1;
diff:=abs(plan-volume[i]);
if max<diff then begin
max:=diff;
j:=i;
end;
writeln(i,'_month :',volume[i]);{ writeln(' difference:',diff); }
end;
write('max: ',max,'; month: ',j);
end.


Тегами не забываем пользоваться...
Lapp
Цитата(Nastenka @ 26.12.2010 22:24) *
помогите пожалуйста ПРАВИЛЬНО решить задачу!!!
...
Это решение,как считает мой преподаватель,неправильно((
Лично я не вижу в этом решении существенных недочетов. А чем преподаватель мотивирует свои слова?

В качестве догадок, что ему может не нравиться, могу привести следующее:
1. отделить цикл случайной генерации массива от цикла поиска;
2. вводить данные вручную или из файла;
3. вывод осуществлять в более понятном формате (не "max", а "Максимальное отклонение от плана было в 6 месяце и составило 65 единиц";
4 ...
5. убрать clrscr (впрочем, это я размечтался..))
Nastenka
привееет! да она говорит ,что так нельзя выводить writeln('Plan = ', plan) и спрашивает зачем вообще здесь randomize...

Вячеслав Л.
Цитата
что так нельзя выводить writeln('Plan = ', plan)
Что преподаватель подразумевает под этим? Что твои комментарии недостаточны полные? Если так, то сделай их более развернутыми . Ошибки с точки зрения программирования здесь нет.

Цитата
зачем вообще здесь randomize
Randomize нужен для вызова процедуры генерации случайных чисел. Если его убрать, то числа будут случайные, но каждый раз одни и те же.
Lapp
Lapp
Цитата(Nastenka @ 27.12.2010 16:28) *
привееет! да она говорит ,что так нельзя выводить writeln('Plan = ', plan) и спрашивает зачем вообще здесь randomize...

Боюсь, что ничего добавить не могу.
Да, Randomize нужен, чтоб "сбивать" случайную последовательность, генерируемую функцией Random, иначе при каждом запуске программы она будет повторяться. Такая повторяемость очень удобна для отладки, но неприемлема для окончательного варианта программы. Впрочем, в твоей программе случайность не нужна как таковая, поэтому Randomize можно выкинуть на фик.
мисс_граффити
Либо она считает, что числа нужно брать не случайные (а вводить), либо просто спросила, ЗАЧЕМ здесь randomize (такой вопрос вовсе не значит, что он не нужен).
Ну еще в порядке догадок - может, "месячный план" подразумевает массив? то есть в разные месяцы план разный.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.