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

Заполните алгоритмические кроссворды. Придумайте задания для привиденных блок схем. Напишите к ним программы. СДЕЛАЙТЕ ТРАССИРОВКУ ПРОГРАММ

Показать ответ
Ответ:
24.12.2022 10:19
Program test;
var  a: array of integer;  b: array of integer;  c: array of integer;  aa, bb, cc: integer;
begin  writeln('Введите размер массива a');  readln(aa);  writeln('Введите размер массива b');  readln(bb);  a := new integer[aa];  b := new integer[bb];  c := new integer[aa + bb];  cc := 0;  aa := 0;  bb := 0;  writeln('Заполнение массива a');  while(aa < Length(a)) do   begin    readln(a[aa]);    aa := aa + 1;  end;  writeln('Заполнение массива b');  while(bb < Length(b)) do   begin    readln(b[bb]);    bb := bb + 1;  end;  while(cc < Length(c)) do   begin    if(cc < Length(a)) then begin      c[cc] := a[cc]    end else begin      c[cc] := b[cc - Length(a)];    end;    cc := cc + 1;  end;  writeln('Полученный массив');  cc:=0;  while(cc < Length(c)) do   begin    writeln(c[cc]);    cc:=cc+1;  end;end.
0,0(0 оценок)
Ответ:
shitovilya
shitovilya
24.04.2022 18:53
1) Решение методом рекурсии.
Программа проста в понимании, но неэффективна при больших значениях
var
  n: integer;
function f(i: integer): longint;
begin
  if i < 2 then
    f := 1
  else
    f := f(i - 1) + f(i - 2);
end;
begin
  read(n);
  writeln(f(n));
end.

2) Решение методом динамического программирования. Намного быстрее метода с рекурсией.
var
  i, n: integer;
  f: array[0..50] of longint;
begin
  read(n);
  f[0] := 1;
  f[1] := 1;
  for i := 2 to n do
    f[i] := f[i - 1] + f[i - 2];
  writeln(f[n]);
end.

3) Решение методом моделирования. Использует меньше памяти.
var
  n, a, b, i: integer;
begin
  read(n);
  if n < 2 then
    a := 1
  else
  begin
    a := 0;
    b := 1;
    for i := 0 to n do
    begin
      b := a + b;
      a := b - a;
    end;
  end;
  writeln(a);
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота