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

Напишите программы на языке pascal (оператор while):
1) напечатать целые числа -10, -5, 0, 5…20
2) найти произведение чисел из диапазона от a до b (a< =b) с шагом h
вход: 1 15 5 вход: 10 100 30
выход: 66 выход: 28
3) для заданного натурального n и действительного x подсчитать сумму
s = 1^{2} + 2^{2} + 3^{2} + + n^{2}
вход: 3 вход: 2
выход: 14 выход: 5
4) напечатать таблицу перевода расстояний в дюймах в сантиметры для
значений 10, 11, 12, … 20 дюймов (1 дюйм=2,54 см)
выход:
10 дюймов=25,4 см
11 дюймов=27,94 см

20 дюймов=50,8 см
5) напечатать все целые значения от a до b с шагом h.
вход: 1 10 2 вход: 5 20 5
выход: 1 3 5 7 9 выход: 5 10 15 20
6) найти сумму чисел из диапазона от a до b с шагом 3.
вход: 1 15 вход: 0 10
выход: 35 выход: 18
7) для заданного натурального n и действительного x подсчитать сумму
s = 1 + \frac{1}{2} + \frac{1}{3} + + \frac{1}{n}
вход: 3 вход: 5
выход: 1.83 выход: 2.28
8) напечатать таблицу соответствия между весом в фунтах и весом в
килограммах для значений 5, 10, 15 … 50 фунтов (1 фунт=0,453 кг)
выход:
5 фунтов=2,265 кг
10 фунтов=4,53 кг

50 фунтов=22,65 кг

Показать ответ
Ответ:
myshkin02
myshkin02
10.02.2020 12:51
Если в нашем распоряжении имеется современная версия PascalABC.Net 3.2, то есть минимум два решить такую задачу. Массив мы будем заполнять случайными числами из интервала [1;98].

Первый использовать имеющуюся в этой версии паскаля возможность находить максимумы и минимумы встроенными в язык средствами. Это очень быстро программируется и обычно страхyет от возможных ошибок при написании более детальных программ.

// PascalABC.NET 3.2, сборка 1353 от 27.11.2016
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(30,1,98); a.Println;
  Writeln('D=',a.Where(x->x.IsEven).Max-a.Where(x->x.IsOdd).Max)
end.

Пример
29 52 58 75 13 77 63 13 17 6 67 17 53 51 14 93 83 30 81 17 93 58 13 71 78 96 42 66 4 91
D=3

Второй не привязан к упомянутой выше версии языка, т.е. может быть использован в школах, исповедующих "доисторический стиль программирования" ))) Естественно, он длиннее и можно будет сравнить количество строк кода. Алгоритм основан на последовательном переборе элементов массива и одновременном получении максимума среди четных и нечетных его элементов.

const
  n=30;
var
  a:array[1..30] of integer;
  i,a1max,a2max:integer;
begin
  Randomize;
  a1max:=0; a2max:=0;
  for i:=1 to n do begin
    a[i]:=Random(98)+1;
    Write(a[i],' ');
    if a[i] mod 2 <> 0 then
      begin if a1max<a[i] then a1max:=a[i] end
    else
      if a2max<a[i] then a2max:=a[i]
    end;
  Writeln;
  Writeln('D=',a2max-a1max)
end.

Замечу, что данный вариант программы содержит фрагмент, в котором школьники (да и не только школьники) часто делают ошибку.
if a[i] mod 2 <> 0 then
  begin if a1max<a[i] then a1max:=a[i] end
else
  if a2max<a[i] then a2max:=a[i]
Выделенные мной begin и end на первый взгляд не нужны. Но в этом-то и ошибка!
По правилам языка паскаль когда внутри одного if встречается другой if и хотя бы один из них неполный, т.е. не содержит else, последний else относится к самому последнему из if, который без его будет неполным.
Запутанно? Поясню на нашем фрагменте.
Его без этих begin ... end можно понимать так:

if a[i] mod 2 <> 0 then
  if a1max<a[i] then a1max:=a[i]
else
  if a2max<a[i] then a2max:=a[i]

Но можно и так:

if a[i] mod 2 <> 0 then
  if a1max<a[i] then a1max:=a[i]
  else
     if a2max<a[i] then a2max:=a[i]

И паскаль, увы, понимает как раз по последнему варианту. Посему как раз begin ... end решают эту проблему. Но... встречается она не очень часто и о ней быстро забывают. А потом нарываютcя и не могут понять причины.

Что ж, выбор как решать - за вами!
0,0(0 оценок)
Ответ:
WaysWhite
WaysWhite
10.03.2023 11:05
Если число 49 записывается как 121, значит первый остаток от деления равен 1, то есть основанием системы счисления является число, кратное 48.

121 имеет 3 разряда, значит основание однозначно меньше 10 и больше 2. Подходят 3, 4, 6, 8.

Учитывая, что в числе 121 три разряда, значит число 48 делилось всего три раза. 
Число 8 не подойдет, т.к. 48/8=6, значит будет всего два деления.
Число 3 не подойдет, т.к. 48/3 = 16, 16/3=5 - то есть тут будет больше трёх знаков.
Число 4 не подойдет, т.к. 48/4=12, а 12 делится на 4 без остатка, но, судя по числу, во втором делении остаток должен быть равен 2.
Остаётся число 6. Проверим

49/6=8 |1
8/6 = 1 |2
1/6=0 |1

121(6)
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота