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

Какой результат будет после выполнения следующей программы? var s,d : real; i : integer; begin s: =0 for i: =1 to 49 do begin d: =i*(i+1); s: =s+1/d; end; writeln('s=',s); end. a)s=0,02 b)s=0,98 c)s=0,0002 d)s=1

👇
Ответ:
Ученица950
Ученица950
22.06.2020
Подобные задачи ("значение, которое получат переменные..."), когда для получения ответа надо выполнять цикл значительное количество раз в реальном программировании не имеют никакого смысла.  Всегда можно сделать трассировку и посмотреть. Ниже - пример такой трассировки.

var
  s, d: real;
  i: integer;

begin
  writeln('Трассировка начата');
  s := 0;
  for i := 1 to 49 do
  begin
    d := i * (i + 1);
    s := s + 1 / d;
    writeln('i=', i:2, ', d=', d:4, ', s=', s:8:6);
  end;
  writeln('Трассировка завершена');
  writeln('S=', s);
end.

Трассировка начата
i= 1, d=   2, s=0.500000
i= 2, d=   6, s=0.666667
i= 3, d=  12, s=0.750000
i= 4, d=  20, s=0.800000
i= 5, d=  30, s=0.833333
i= 6, d=  42, s=0.857143
i= 7, d=  56, s=0.875000
i= 8, d=  72, s=0.888889
i= 9, d=  90, s=0.900000
i=10, d= 110, s=0.909091
i=11, d= 132, s=0.916667
i=12, d= 156, s=0.923077
i=13, d= 182, s=0.928571
i=14, d= 210, s=0.933333
i=15, d= 240, s=0.937500
i=16, d= 272, s=0.941176
i=17, d= 306, s=0.944444
i=18, d= 342, s=0.947368
i=19, d= 380, s=0.950000
i=20, d= 420, s=0.952381
i=21, d= 462, s=0.954545
i=22, d= 506, s=0.956522
i=23, d= 552, s=0.958333
i=24, d= 600, s=0.960000
i=25, d= 650, s=0.961538
i=26, d= 702, s=0.962963
i=27, d= 756, s=0.964286
i=28, d= 812, s=0.965517
i=29, d= 870, s=0.966667
i=30, d= 930, s=0.967742
i=31, d= 992, s=0.968750
i=32, d=1056, s=0.969697
i=33, d=1122, s=0.970588
i=34, d=1190, s=0.971429
i=35, d=1260, s=0.972222
i=36, d=1332, s=0.972973
i=37, d=1406, s=0.973684
i=38, d=1482, s=0.974359
i=39, d=1560, s=0.975000
i=40, d=1640, s=0.975610
i=41, d=1722, s=0.976190
i=42, d=1806, s=0.976744
i=43, d=1892, s=0.977273
i=44, d=1980, s=0.977778
i=45, d=2070, s=0.978261
i=46, d=2162, s=0.978723
i=47, d=2256, s=0.979167
i=48, d=2352, s=0.979592
i=49, d=2450, s=0.980000
Трассировка завершена
S=0.98

В исходном тексте программы была синтаксическая ошибка: после оператора S:=0 отсутствовала точка с запятой, на что немедленно указал компилятор.
Практически смысл имеет "трассировка на бумаге" для нескольких выполнений тела цикла с тем, чтобы убедиться в правильности работы алгоритма. И не более того.
Анализ программы показывает, что она вычисляет сумму вида
S=\Sigma^{49}_{i=1} \frac{1}{i(i+1)}
В книге "Интегралы и ряды" М.Прудников и др.., М,: Наука, 1981 на стр. 601 приводится формула 4.1.4.2
\Sigma^n_{k=1} \frac{1}{k(k+m)}= \frac{n}{m} \Sigma^m_{k=1} \frac{1}{k(k+n)}; \\ n=49, m=1 \to \frac{n}{m} \Sigma^m_{k=1} \frac{1}{k(k+n)}=\frac{49}{1} \Sigma^1_{k=1} \frac{1}{k(k+1)}= \frac{49}{1*(1+49)}= \frac{49}{50}=0.98

Итак, сумма может быть легко вычислена для любого количества повторений цикла. Нужно ли вообще в таких случаях писать программу?

Это был урок для делающих первые шаги в увлекательном мире программирования.
4,4(56 оценок)
Открыть все ответы
Ответ:
Cherry5858
Cherry5858
22.06.2020
Может быть, так:
uses graphABC;
Begin
setfontcolor(clRed);
writeln('Белеет парус одинокой');
setfontcolor(clBlue);
writeln('В тумане моря голубом!..');
setfontcolor(clDarkOrchid);
writeln('Что ищет он в стране далекой?');
setfontcolor(clDeepSkyBlue);
writeln('Что кинул он в краю родном?..');
setfontcolor(clDeepPink);
writeln('Играют волны - ветер свищет,');
setfontcolor(clMagenta);
writeln('И мачта гнётся и скрыпит...');
setfontcolor(clDarkGreen);
writeln('Увы! он счастия не ищет');
setfontcolor(clLime);
writeln('И не от счастия бежит!');
setfontcolor(clBrown);
writeln('Под ним струя светлей лазури,');
setfontcolor(clIndigo);
writeln('Над ним луч солнца золотой...')
End.
4,8(23 оценок)
Ответ:
trafimozza
trafimozza
22.06.2020
ответ: 2;
Решение:
1)6 мегапикс. = 6000000 пикс;

2) Пусть x ширина картинки, тогда y ее длина.
Уравнение: X * 1,5Y = 6000000

3) Находим отношение (1,5). Получается уравнение: 6000000 / X * Y = 1,5;

4)Затем по пропорции находим произведение X и Y. Получилось: 6000000 / 1,5 = X * Y; 4000000 = X * Y;

5)Здесь картинка получается квадратом (условно, без уменьшение ширины, без 1,5);

6)Отсюда можно сделать вывод, что умножение Y на 1,5 дает ответ 3, а разрешение картинки равно: X * Y = 2 * 3 = 6 мегапикс.

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