Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Консультации по информатике


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Megaloman
Статус: Мастер-Эксперт
Рейтинг: 311
∙ повысить рейтинг »
Gluck
Статус: 6-й класс
Рейтинг: 221
∙ повысить рейтинг »
Лысков Игорь Витальевич
Статус: Мастер-Эксперт
Рейтинг: 0
∙ повысить рейтинг »

∙ Информатика

Номер выпуска:375
Дата выхода:19.01.2021, 16:45
Администратор рассылки:Коцюрбенко Алексей Владимирович (Старший модератор)
Подписчиков / экспертов:27 / 30
Вопросов / ответов:3 / 5

Консультация # 107951: Цилиндр объема единица имеет высоту h. Определить радиус основания цилиндра для значений h, равных 0.5, 1, 1.5, ..., 5....
Консультация # 184308: Уважаемые эксперты! Пожалуйста, ответьте на вопрос: 1.Перевести числа 91 и 117 к последующей цепочке - 10->16->2->8->10 2.Выполнить над числами 91 и 117 операции сложение,вычитания,деления в двоичной системе счисления С проверкой правильности решения ...
Консультация # 188385: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Дан массив, содержащий 2015 неотрицательных целых чисел. Пиком называется не крайний элемент массива, который больше обоих своих соседей. Необходимо найти в м ассиве самый высокий пик, то есть пик, значение которого максимально. Если в массиве нет ни одного пик...

Консультация # 107951:

Цилиндр объема единица имеет высоту h. Определить радиус основания цилиндра для значений h, равных 0.5, 1, 1.5, ..., 5.

Дата отправки: 04.11.2007, 10:07
Вопрос задал: Николаев Денис
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Gh0stik:

Здравствуйте, Николаев Денис!

Поскольку объем цилиндра как извесно равен V = π·r2·h, при V = 1 получаем, что r = √(1/(π·h)).

Непосредственно решение задачи:
var h:real;
r:array [1..10] of real; {описуем массив к котором будут храниться значения радиуса}
i:integer;
begin
h:=0.5; i:=1;
while h<=5 do {цикл изменения переменной h с заданным шагом}
begin
r[i]:=sqrt(1/(pi*h)); {расчет радиуса для конкретной высоты цилитдра}
writeln(\'h=\',h:3:1,\' r=\',r[i]:4:4); {результат выводим на экран}
h:=h+0.5;
inc(i);
end;
end.


Good Luck!!!

Консультировал: Gh0stik
Дата отправки: 04.11.2007, 10:59
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Енин Александр Иванович:

Здравствуйте, Николаев Денис!
Вот решение Вашей проблемы:

Приложение:

Консультировал: Енин Александр Иванович
Дата отправки: 04.11.2007, 11:41
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 184308:

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:

1.Перевести числа 91 и 117 к последующей цепочке - 10->16->2->8->10
2.Выполнить над числами 91 и 117 операции сложение,вычитания,деления в двоичной системе счисления

С проверкой правильности решения

Дата отправки: 24.10.2011, 11:38
Вопрос задал: Посетитель - 383792
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Лысков Игорь Витальевич (Мастер-Эксперт):

Здравствуйте, Посетитель - 383792!
1.
10->16: делим на 16 с запоминанием остатка, который будет очередной 16-ричной цифрой, пока не получим 0
91
1) 91/16 = 5 * 16 + 11 (0bh)
2) 5/16 = 0 * 16 + 5 (05h)
Запишем 16-ричные цифры в обратном порядке.
Т.о. 91 = 5bh

117
1) 117/16 = 7 * 16 + 5 (05h)
2) 7/16 = 0 * 16 + 7 (07h)
Т.о. 117 = 75h

16->2: расписываем каждую 16-ричную цифру побитно
5bh = 0101 1011b = 1011011b
75h = 0111 0101b = 1110101b

2->8: объединяем по три бита, начиная с младшего, при необходимости дополняем старшими нулями
1011011b = 001 011 011b = 133o
1110101b = 001 110 101b = 165o

8->10: умножаем 8-ричные разряды на соотствующую степень восьмерки и складываем
133o = 1*82 + 3*8 + 3 = 64 + 24 + 3 = 91
165o = 1*82 + 6*8 + 5 = 64 + 48 + 5 = 117

2.
Складываем столбиком, как в десятичной арифметике, только учитываем, что 0+0=0, 0+1=1+0=1, 1+1=10b

 1011011b
+
 1110101b
 --------
11010000b

Проверим, для этого преобразуем 11010000b в десятичную сс (умножаем на соответствующие степени 2 и складываем)
11010000b = 1*27 + 1*26 + 0*25 + 1*24 + 0*23 + 0*22 + 0*21 + 0*20 = 128 + 64 + 16 = 208 = 91 + 117

Вычитаем столбиком, как в десятичной арифметике, учитываем, что 0-0=1-1=0, 1-0=1, 0-1=1 с заемом
 1110101b
-
 1011011b
 --------
   11010b

Проверим, для этого преобразуем 11010b в десятичную сс (умножаем на соответствующие степени 2 и складываем)
11010b = 1*24 + 1*23 + 0*22 + 1*21 + 0*20 = 16 + 8 + 2 = 26 = 117 - 91

Деление делается следующим образом:
1) выравниваем делитель так, чтобы старший бит = 1 был под старшим битом делимого, дополняя справа нулями.
Число шагов подсчета равно количеству добавленных нулей (разнице длины делимого и делителя) + 1.
В нашем случае, делитель и делимое имеют по 7 бит, значит число шагов = 7-7+1 = 1
2) обнуляем частное
3) смотрим, делимое ≥ делителя или нет.
Если ≥, то отнимаем от делителя "сдвинутый" (в нашем случае, никуда не сдвигался) делитель и вдвигаем в частное 1
Если <, то вдвигаем в частное 0
Сдвигаем делитель на 1 бит вправо (в нашем случае, это не требуется)
Повторяем шаг 3) необходимое число раз
Получаем частное и в делимом посл е вычитаний останется остаток.
В нашем случае имеем всего один шаг:
 1110101b    -> отнимается -> частное = 1
-
 1011011b
 -------
   11010b     -> остаток = 1ah = 26

Проверяем: 117/91 = 1 и 26 в остатке

PS Числа записаны в следующих системах счисления: буковка 'h' за числом - 16-ричная, 'o' - 8-ричная, 'b'-двоичная, без буковки - десятичная

Консультировал: Лысков Игорь Витальевич (Мастер-Эксперт)
Дата отправки: 24.10.2011, 12:23
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 188385:

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:

Дан массив, содержащий 2015 неотрицательных целых чисел. Пиком
называется не крайний элемент массива, который больше обоих своих
соседей. Необходимо найти в массиве самый высокий пик, то есть пик,
значение которого максимально. Если в массиве нет ни одного пика, ответ
считается равным 0.
Например, в массиве из шести элементов, равных соответственно 4, 9, 2, 17,
3, 8, есть два пика – 9 и 17, максимальный пик равен 17.
Напишите на одном из языков программирования программу для решения
этой задачи. Исходные данные объявлены так, как показано ниже.
Запрещается использовать переменные, не описанные ниже, но разрешается
не использовать часть из описанных.

const
N=2015;
var
a: array [1..N] of integer;
i, j, k: integer;
begin
for i:=1 to N do
readln(a[i]);

end.

В качестве ответа Вам необходимо привести фрагмент програм мы, который
должен находиться на месте многоточия. Вы можете записать решение также
на другом языке программирования (укажите название и используемую
версию языка программирования, например, Free Pascal 2.4). В этом случае
Вы должны использовать те же самые исходные данные и переменные, какие
были предложены в условии.

Дата отправки: 08.12.2015, 23:14
Вопрос задал: Посетитель - 399097 (Посетитель)
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Лысков Игорь Витальевич (Мастер-Эксперт):

Здравствуйте, Посетитель - 399097!

Код (Pascal) :: выделить код
k:=0;
for i:=2 to N-1 do
  begin
    if (a[i]>a[i-1])and(a[i]>a[i+1]) then
      begin
        if k<a[i] then k := a[i];
      end
  end
writeln(k);

Консультировал: Лысков Игорь Витальевич (Мастер-Эксперт)
Дата отправки: 09.12.2015, 12:02
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Зенченко Константин Николаевич (Старший модератор):

Здравствуйте, Посетитель - 399097!

Смотрите код:

Код (Pascal) :: выделить код
const
  n=6;{ извращение вводить 2015 значений ;}
var
  a:array[1..n]of integer;
  i,j,k:integer;
begin
  for i:=1 to n do
    readln(a[i]);
  { . . . }
  for i:=2 to n-1 do
    if(a[i]>a[i-1])and(a[i]>a[i+1])and(a[i]>k)then k:=a[i];
  { . . . }
  writeln('Result:',k);
end.

ТР7.0
Удачи!

Консультировал: Зенченко Константин Николаевич (Старший модератор)
Дата отправки: 09.12.2015, 12:14
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное