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

1) определите, какое число будет напечатано в результате выполнения следующего алгоритма: var a, b, t, n : integer; function f(x: integer): integer; begin f : = 16*(6-x)*(6-x)-450; end; begin a : = -20; b : = 20; n : = 0; for t : = -20 to 20 do begin if (f(t) > = 0) then begin n : = n+1; end; end; write(n); нужен не просто ответ, а объяснить как нашли нужно скоро егэ сдавать(

👇
Ответ:
loser80
loser80
20.12.2021
Перепишем программу в виде, удобном для анализа алгоритма.
var
  a,b,t,N:integer;
function F(x:integer):integer;
begin
  F:=16*(6-x)*(6-x)-450;
end;
begin
  a:=-20; b:=20;
  N:=0;
  for t:=-20 to 20 do
    if (F(t)>=0) then N:=N+1;
  Write(N)
end.

Переменные a и b получают начальные значения, но дальше не используются, поэтому их рассматривать не нужно.
Все переменные в программе объявлены целочисленными, поэтому анализируем алгоритм также в целых числах.
Переменная t последовательно принимает значения от -20 до 20, следовательно, можно записать, что t ∈ [-20;20]
Для каждого t вычисляется значение некоторой функции F(t) и подсчитывается N - количество случаев, когда значение F(t) неотрицательно. Найденное N затем выводится. Ставится задача определить значение N.
Проанализируем функцию F(t). После простого преобразования получаем
F(t)=16(6-t)²-450
Теперь надо найти решение неравенства F(t)≥0.
\displaystyle 16(6-t)^2-450\geqslant 0; \ (6-t)^2\geqslant \frac{450}{16} ; \ |6-t|\geqslant \sqrt{ \frac{450}{16} }
Поскольку решение выполнятся в целых числах, то значение в правой части неравенства достаточно записать с точностью один знак после запятой.
\displaystyle |6-t|\geqslant \sqrt{ \frac{450}{16}}; \ |6-t|\geqslant 5.3 \\ \begin {cases} 6-t\geqslant 5.3 \\ t-6 \ \textgreater \ 5.3 \end {cases} \to \quad \begin {cases} t\leqslant 0.7 \\ t11.3 \end {cases}
На интервале [-20;20] первому условию удовлетворит 21 точка, второму условию удовлетворят 9 точек. Всего получится 21+9=30 точек.
ответ: Будет выведено число 30
4,6(74 оценок)
Открыть все ответы
Ответ:
Tusovik
Tusovik
20.12.2021

Так как язык не указан, приведу пример на SWI-Prolog.

Код:

read_int(Int) :- read(Int), integer(Int).split_int_by_numbers(0, []) :- !.split_int_by_numbers(N, [Number|Ints]) :- Number is mod(N, 10), RestN is div(N, 10), split_int_by_numbers(RestN, Ints).test_to_div(_, []).test_to_div(N, [Number|Ints]) :- mod(N, Number) =:= 0, test_to_div(N, Ints). test(Int) :- split_int_by_numbers(Int, Numbers), test_to_div(Int, Numbers), write(Int), write(" - Yes!"), nl.test(Int) :- write(Int), write(" - No!"), nl.?- read_int(Int), test(Int).
Напишите программу: С клавиатуры вводится трёхзначное число (число десятков и число единиц не равна
Напишите программу: С клавиатуры вводится трёхзначное число (число десятков и число единиц не равна
Напишите программу: С клавиатуры вводится трёхзначное число (число десятков и число единиц не равна
4,6(3 оценок)
Ответ:
Элайза5
Элайза5
20.12.2021
Здесь нужно использовать вс типизированный файл и, соответственно, вторую файловую переменную (fr2).
Сделать это можно так:
while not eof(fr) and (kol=0) do
begin
read(fr, Marshrut);
if (Marshrut.NK.N <> '11')
   then write(fr2,Marshrut)
   else begin inc(kol); y:=Marshrut; end;
end;
if not eof(fr) then
  begin
  read(fr, Marshrut);
  write(fr2,Marshrut);
  end;
if (kol=1) then  write(fr2,y);
Дальше нужно просто переписать оставшиеся записи из первого файла во второй. Затем оба файла закрыть, первый файл удалить, а второй переименовать (т.е. назвать его так, как назывался первый файл).

Попробуйте ещё вот такой вариант:
(здесь k1 и k2 - целые, а y - типа )
if (Marshrut.NK.N = '11') then
begin
writeln('... ');
inc(kol);
y:=Marshrut;
k1:=FilePos(fr)-1;
k2:=FilePos(fr);
if not eof(fr) then
 begin
 read(fr, Marshrut);
 seek (fr, k1);
 write(fr, Marshrut);
 seek (fr, k2);
 write (fr, y);
 end;

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