0 / 0 / 0
Регистрация: 02.06.2016
Сообщений: 1
1

(из ЕГЭ) Потянет ли на максимальный балл по С4 информатика?

27.06.2016, 06:20. Показов 2329. Ответов 6
Метки нет (Все метки)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
var
  a: array of real;
  i, k, N: integer;
  min: real;
 
begin
  readln(N);
  setlength(a,N+1);
  min := 1000001;
  for i := 1 to N do readln(a[i]);
  for i := 1 to N - 3 do for k := i + 3 to N do if a[i] * a[k] < min then min := a[i] * a[k];
  writeln(min);
end.
Каждую секунду датчик передаёт по каналу связи неотрицательное вещественное число - результат некоторых измерений. Временем, в течение которого происходит передача, можно пренебречь.
Необходимо найти в заданной серии показаний датчика минимальное произведение двух показаний, между моментами передачи которых прошло не менее 3 секунд. Значение каждого показания датчика не превосходит 1000. Общее количество показаний не превышает 10000.
Напишите на любом языке программирования программу для решения поставленной задачи. Ваша оценка будет зависеть не только от правильности программы, но и от того, насколько она эффективна.
Программа считается эффективной по времени, если время работы программы пропорционально количеству полученных показаний прибора N, то есть при увеличении N в k раз время работы программы должно увеличиваться не более чем в k раз.
Программа считается эффективной по памяти, если размер памяти, использованной в программе для хранения данных, не зависит от числа N и не превышает 1 килобайт. Максимальная оценка за правильную программу, эффективную по времени и по памяти, - 4 балла.
Максимальная оценка за правильную программу, эффективную по времени, но не эффективную по памяти - 3 балла.
Максимальная оценка за правильную программу, неэффективную ни по времени, ни по памяти, - 2 балла.
Перед программой укажите версию языка и кратко опишите использованный алгоритм.
В первой строке задаётся число N - общее количество показаний прибора. Гарантируется, что N > 3. В каждой из следующих N строк задаётся одно неотрицательное вещественное число - очередное показание датчика.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2016, 06:20
Ответы с готовыми решениями:

ЕГЭ Информатика С2
/*Опишите на русском языке или на одном из языков программирования алгоритм суммирования...

ЕГЭ Информатика
На вход программы подаются прописные латинские буквы, ввод этих символов заканчивается точкой....

ЕГЭ Информатика С4
Задача: После единых выпускных экзаменов по информатике в район пришла информация о том, какой...

ЕГЭ Информатика С2
Найти и вывести наименьший номер элемента массива, равного Х, или сообщение, что такого элемента...

6
Эксперт Pascal/Delphi
2383 / 1295 / 1491
Регистрация: 29.08.2014
Сообщений: 4,651
27.06.2016, 06:58 2
думаю, что нет. Решение (практически линейное) сводится к поиску двух минимальных значений на расстоянии друг от друга в 3 показания датчика. и в ответе напечатать их произведение.

у вас еще и ошибочка не большая есть - в вашем случае между показаниями прошло - 2 секунды.
1 - показание(берем в анализ)
2 - пропуск
3 - пропуск
4 - пропуск (вы берете это)
5 - берем в анализ
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7495 / 4365 / 2774
Регистрация: 22.11.2013
Сообщений: 12,496
Записей в блоге: 1
27.06.2016, 09:10 3
Joy,
расстояние не ровно в 3 показания, а не менее 3 показаний.

Добавлено через 2 минуты
beryanov,
программа неэффективна ни по времени (цикл в цикле), ни по памяти (хранит N значений).
0
Эксперт Pascal/Delphi
2383 / 1295 / 1491
Регистрация: 29.08.2014
Сообщений: 4,651
27.06.2016, 13:40 4
bormant, да, слова "и более" пропустил
0
257 / 234 / 185
Регистрация: 02.04.2016
Сообщений: 898
27.06.2016, 19:12 5
В конце книги есть пример нормальной программы на паскале, посмотри.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7495 / 4365 / 2774
Регистрация: 22.11.2013
Сообщений: 12,496
Записей в блоге: 1
27.06.2016, 19:36 6
Лучший ответ Сообщение было отмечено Joy как решение

Решение

Что-то вроде:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const d=3;
var
  a: array[0..d-1] of Real;
  n, i: Integer;
  x, mn, m: Real;
begin
  ReadLn(n);
  for i:=0 to d-1 do ReadLn(a[i]);
  mn:=1e38; m:=1e38;
  for i:=d to n-1 do begin
    ReadLn(x);
    if a[i mod d]<mn then mn:=a[i mod d];
    if x*mn<m then m:=x*mn;
    a[i mod d]:=x;
  end;
  WriteLn(m);
end.
1
0 / 0 / 0
Регистрация: 03.03.2018
Сообщений: 1
03.03.2018, 10:07 7
Pascal
1
if a[i mod d]<mn then mn:=a[i mod d];
В этом коде я не понял что это a[i mod d]. Не могли вы мне досконально объяснить?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2018, 10:07
Помогаю со студенческими работами здесь

Логика. Информатика. ЕГЭ
На числовой прямой даны два отрезка : P = и Q = . Выберите такой отрезок A, что...

ЕГЭ Информатика С2 (Массивы)
Здравствуйте, решаю задачи для подготовки к ЕГЭ,все вроде бы легко,но проблема в том, что все...

Егэ информатика 27 задача
Спрошу коротко , почему у меня ошибка на 18 строчке ? #include &lt;iostream&gt; using namespace std ;...

Посчитать средний балл ЕГЭ в группе по информатике
В группе учатся 20 студентов. Дано ФИО, дата получения, средний балл ЕГЭ по месту жительства....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru