М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
rgn123
rgn123
27.09.2022 22:42 •  Информатика

Паскаль 1. найти и напечатать индексы элементов одномерного массива u размерности h, значения которых равны ключу поиска k. 2. напечатать максимальные значения элементов строк матрицы в размерности m×n и их индексы.

👇
Ответ:
karina5698586
karina5698586
27.09.2022
Поскольку версия языка не указана, а также отсутствует какая-либо информация об ограничениях на технологию программирования, будет использованы все современные возможности PascalABC.NET 3.2 в его последней доступной реализации (сборка 1443 от 19.05.2017).

Внимание! Если у вас программа не работает, обновите версию!

№1

begin
  var u:=ArrRandom(ReadInteger('h='),-10,10); u.Println;
  var k:=ReadInteger('Ключ поиска k=');
  Write('Индексы элементов, совпадающих с ключом: ');
  u.Select((x,i)->(x,i)).Where(x->x[0]=k).Select(x->x[1]+1).Println
end.

Пример
h= 17
-6 -8 -6 -4 -6 8 -9 0 9 1 -1 0 -4 -6 8 -7 3
Ключ поиска k= -6
Индексы элементов, совпадающих с ключом: 1 3 5 14

№2

begin
  var m:=ReadInteger('Количество строк в матрице:');
  var n:=ReadInteger('Количество столбцов в матрице:');
  Writeln('*** Исходная матрица [',m,',',n,'] ***');
  var b:=MatrRandom(m,n,-30,30);
  b.Println(4); Writeln(4*b.ColCount*'-');
  var s:=b.ElementsWithIndexes;
  var max:=s.Select(x->x[2]).Max;
  Write('Максимальные элементы, равные ',max,': ');
  s.Where(x->x[2]=max).ForEach(x->Write('[',x[0]+1,',',x[1]+1,'] '));
  Writeln
end.

Пример
Количество строк в матрице: 10
Количество столбцов в матрице: 15
*** Исходная матрица [10,15] ***
  26  29  19 -10  -6  12 -14   5  14 -18  27   7 -23 -21   8
  22  14 -16  14 -13 -25   5   2  -2  30  29   2  19   4   0
   4   8  25  16   1   4  -2 -18 -30  -1 -23 -26   5  29  19
  28  -4  -9 -12  20 -10 -17 -14 -27 -18 -10  -3  -9 -10  -5
 -21  -3 -29 -17   8 -12  13  -8   9 -26  -7   1 -17 -16 -21
 -30  30   3  10 -28   3 -19   0  14 -20 -10  -9  21   4 -20
 -24 -24  22   6 -11  10 -27  -8 -10   0 -15 -26  12 -16  -4
  19 -30 -29  24 -18  -9  24  12 -12  23  29  28 -12 -27 -12
  27  22  19  -1  28 -13  10   7  26   0  27   7 -17 -21  18
  -1   0 -14 -12  -9 -11 -10  28  -8  19 -17  -5   4  14  -9

Максимальные элементы, равные 30: [2,10] [6,2]
4,6(76 оценок)
Открыть все ответы
Ответ:
Диа200426
Диа200426
27.09.2022
//PascalABC.NET 3.2 сборка 1318

//Вариант по формуле Бине

Var
  n,fibn:real;
  i:integer;
begin
readln(n);
if n<=0 then writeln('Не существует чисел Фиббоначи меньше 0')
else
  begin
  i:=0;
    while fibn<n do
      begin
        fibn:=(power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5);
        inc(i);
      end;
   writeln((power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5)-1);
     end;
 end.

//В лоб

Var
  sum,n,buf,fib0,fib1:integer;
 
 function fibb(fib0,fib1:integer):integer;
  begin
    result:=fib0+fib1;
  end;

begin
fib0:=0;
fib1:=1;
readln(n);
if n<=0 then
   writeln('Не существует чисел Фиббоначи меньше 0')
else
  begin
    if fibb(fib0,fib1)>=n then sum:=0 else
    begin
      while fibb(fib0,fib1)<n do
        begin
         buf:=fib1;
         fib1:=fibb(fib0,fib1);
         fib0:=buf;
        end;
      sum:=fibb(fib1,fibb(fib0,fib1))-1;
   end;
   writeln(sum);
  end;
end.

Пример ввода:
12
Пример вывода:
20
4,4(40 оценок)
Ответ:
sasha235sasha
sasha235sasha
27.09.2022
//PascalABC.NET 3.2 сборка 1318

//Вариант по формуле Бине

Var
  n,fibn:real;
  i:integer;
begin
readln(n);
if n<=0 then writeln('Не существует чисел Фиббоначи меньше 0')
else
  begin
  i:=0;
    while fibn<n do
      begin
        fibn:=(power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5);
        inc(i);
      end;
   writeln((power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5)-1);
     end;
 end.

//В лоб

Var
  sum,n,buf,fib0,fib1:integer;
 
 function fibb(fib0,fib1:integer):integer;
  begin
    result:=fib0+fib1;
  end;

begin
fib0:=0;
fib1:=1;
readln(n);
if n<=0 then
   writeln('Не существует чисел Фиббоначи меньше 0')
else
  begin
    if fibb(fib0,fib1)>=n then sum:=0 else
    begin
      while fibb(fib0,fib1)<n do
        begin
         buf:=fib1;
         fib1:=fibb(fib0,fib1);
         fib0:=buf;
        end;
      sum:=fibb(fib1,fibb(fib0,fib1))-1;
   end;
   writeln(sum);
  end;
end.

Пример ввода:
12
Пример вывода:
20
4,6(5 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ