На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 1
ссылка на сообщение  Отправлено: 14.04.18 18:35. Заголовок: есть ли разница в эффективности?


Доброго времени дня. Если допустить, что в моем решении нет ошибок, то от описанного в документе answ27 оно отличается только методом чтения и обработки чисел и наличием массива из 12 целых (ему можно противопоставить массив из констант в решении из документа). есть ли разница в эффективности между этими программами?

задача

1) На вход программы подается 366 строк, которые содержат информацию о среднесуточной
температуре всех дней 2008 года. Формат каждой из строк следующий: сначала записана дата в
виде dd.mm (на запись номера дня и номера месяца в числовом формате отводится строго два
символа, день от месяца отделен точкой), затем через пробел записано значение температуры —
число со знаком плюс или минус, с точностью до 1 цифры после десятичной точки. Данная
информация отсортирована по значению температуры, то есть хронологический порядок
нарушен. Требуется написать программу на языке Паскаль или Бейсик, которая будет выводить на
экран информацию о месяце (месяцах), среднемесячная температура у которого (которых)
наименее отклоняется от среднегодовой. В первой строке вывести среднегодовую температуру.
Найденные значения для каждого из месяцев следует выводить в отдельной строке в виде: номер
месяца, значение среднемесячной температуры, отклонение от среднегодовой температуры.

решение из документа

все квадратные скобки заменю на фигурные ибо иного обхода тэгов не знаю

const DAYS = 366; 
var tMonth: array[1..12] of real;
i, month: integer;
t, tYear, min: real;
c: char;
begin
for i:=1 to 12 do tMonth{i}:= 0;
tYear := 0;
for i:=1 to DAYS do begin
repeat read(c); until c = '.';
read (month);
readln (t);
tMonth[month] := tMonth[month] + t;
tYear := tYear + t;
end;
for i:=1 to 12 do
case i of
2: tMonth{i} := tMonth{i} / 29;
4,6,9,11: tMonth{i} := tMonth{i} / 30;
else tMonth{i} := tMonth{i} / 31;
end;
tYear := tYear / DAYS;
min := abs(tMonth[1] - tYear);
for i:=2 to 12 do
if abs(tMonth{i} - tYear) < min then
min := abs(tMonth{i} - tYear);
writeln(tYear:0:2);
for i:=1 to 12 do
if abs(tMonth{i} - tYear) = min then
writeln(i,' ',tMonth{i}:0:2,' ',tMonth{i}-tYear:0:2);
end.


моё
 
const
M = 12;
DAYS = 366;
var
a: array [1..M] of real; {массив для среднемесячных температур}
c: array [1..M] of integer; {количество дней в каждом месяце}
i, k: integer;
x, t, all, min: real;
Begin
for i := 1 to M do
begin
a{i} := 0;
c{i} := 0;
end;
all := 0; min := 100;
for k := 1 to DAYS do
begin
readln(x, t);
i := (round(x * 100)) mod 100;
a{i} := a{i} + t;
c{i} := c{i} + 1;
all := all + t;
end;
all := all / 366;
for i := 1 to M do begin
a{i} := a{i} / c{i};
if abs(all - a{i}) < min then
min := abs(all - a{i});
end;
writeln(all);
for i := 1 to M do
if abs(all - a{i}) = min then
writeln(i, ' ', a{i}, ' ', min);
end.


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 2 [только новые]


Администратор




Сообщение: 1630
ссылка на сообщение  Отправлено: 14.04.18 20:06. Заголовок: pascal_oleg пишет: е..


pascal_oleg пишет:
 цитата:
есть ли разница в эффективности между этими программами?

Существенной разницы в эффективности нет.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 1 
ПрофильЦитата Ответить



Сообщение: 2
ссылка на сообщение  Отправлено: 14.04.18 20:32. Заголовок: спасибо :sm66: ..


спасибо

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1240
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет