В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
NoRoblem
NoRoblem
13.09.2022 02:04 •  Информатика

Археологи раскопали древний храм, ко входу в который ведет лестница, шириной в 1 (один) метр, из м ступенек различной длины и высоты. лестница построена из каменных блоков 1x1x1 метр. археологи хотят для удобства туристов, чтобы лестница состояла из меньшего количества ступенек n. для этого они могут также устанавливать каменные блоки 1x1x1. какое минимальное количество блоков необходимо, чтобы сделать лестницу в n ступенек, если известны начальная длина и высота каждой ступеньки. высоты и длины ступенек новой лестницы могут различаться.

входные данные
в первой строке через пробел заданы два целых числа m и n (1 ≤ n < m ≤ 100). далее идут m строк, содержащих пару целых чисел l и h - длина и высота i-ой ступеньки соответственно (1 ≤ l, h ≤ 101). ступеньки нумеруются снизу вверх.

выходные данные
в выходной файл выведите единственное число - ответ на .

Показать ответ
Ответ:
Юлия34567
Юлия34567
03.11.2022 08:34
{
 PascalABC.NET, но все кроме writeln() должно работать и на TurboPascal.
 вводит числа рандомно и находит среднее арифметическое
 чётных чисел и среднее арифметическое индексов нечётных чисел.
}

PROGRAM A4;
const
    num = 16;
var
    MT:array [1..num] of byte;// массив чисел
    i,j:byte;// счетчики
    even_sum:integer;// сумма четных
    even_num:byte;// количество четных

    indx_sum:integer;// сумма нечетных индексов
    indx_num:byte;// количество нечетных индексов
    
BEGIN
  // условно ввели набор чисел
  randomize();
  for i:=1 to num do
    MT[i] := random(256);
  writeln('Начальный массив ', num ,' случайных чисел');
  writeln(MT);
 
  // сам алгоритм
  even_sum := 0;
  even_num := 0;
 
  indx_sum := 0;
  indx_num := 0;
 
  writeln(' ');
  write('Четные числа: ');

  for i:=1 to num do begin
    if not odd(MT[i]) then begin
      write(MT[i], ' ');
      even_sum := even_sum + MT[i];
      even_num := even_num + 1;
    end;
    if odd(i) then begin
      indx_sum := indx_sum + i;
      indx_num := indx_num + 1;
    end;
  end;
 
  writeln(' ');
  writeln('Количество четных чисел ', even_num);
  writeln('Среднее арифметическое четных чисел = ',
           even_sum, '/', even_num , ' = ', even_sum/even_num );
 
  writeln(' ');
  writeln('Количество нечетных индексов нечётных чисел ', indx_num);
  writeln('Среднее арифметическое индексов нечётных чисел ',
           indx_sum, '/', indx_num, ' = ', indx_sum/indx_num);
END.

Составьте программу с названием а[1..20] которая вводит числа рандомно и находит среднее арифметичес
0,0(0 оценок)
Ответ:
egorlapin2004
egorlapin2004
02.08.2020 07:13
Строго объяснять не вижу смысла, поскольку придется тратить время на разъяснение массы попутных вещей, начиная от λ-исчисления и Алонзо Чёрча. Если бы Вам было понятно одно из определений, вроде "Лямбда-выражение — это анонимная функция, с которой можно создавать типы делегатов или деревьев выражений", Вы бы не стали писать сюда вопрос. Поэтому постараюсь рассказать "на пальцах" и примерах.

"Лямбды" - это функции (а также, выражения и процедуры), позволяющие эффектно в одном месте и объявить их, и использовать, причем, зачастую, даже не давая этим функциям имени (анонимные функции). Вот такие они "одноразовые".

Записывается лямбда обычно в форме t -> f(t) и читается "t переходит в f(t)".
Фактически, тут много общего с обычной функцией, имеющей формальный параметр t и определяющей в своем теле значение при Конечно, параметр может быть и не один.

Изюминка "лямбд" в том, что они могут использоваться на правах простых переменных. Например, можно присвоить переменной "лямбду" и передать её, как параметр в программную единицу вместо функции, например
var f:real->real:=t->3*Sin(t)+Cos(t); Tab(f,0,10,0.1);

Лямбды очень активно присутствуют в операциях, пришедших в PascalABC.NET из LINQ .Net, в частности, в проецировании и фильтрации.
var n:=ArrGen(20,i->2*i+5).Where(t->Cos(t/6)<0).Count;

Последние версии PascalABC.NET 3.3 имеют очень развитые средства для программирования в функциональном стиле, построенные на "лямбдах".
Примеры множественного использования лямбд можно найти в файлах, входящих в стандартную поставку, в также в Справочном руководстве по библиотеке численных методов, ставшей стандартной с версии 3.3.0.1552 от 20.10.2017 (файл \Program Files\PascalABC.NET\Doc\NumLibABC.pdf)
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота