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

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


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

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

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 733
∙ повысить рейтинг »
mklokov
Статус: 4-й класс
Рейтинг: 86
∙ повысить рейтинг »
CradleA
Статус: Профессионал
Рейтинг: 43
∙ повысить рейтинг »

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

Номер выпуска:318
Дата выхода:18.05.2017, 08:15
Администратор рассылки:Андреенков Владимир (Профессор)
Подписчиков / экспертов:19 / 19
Вопросов / ответов:3 / 8

Консультация # 86455: Помогите, пожалуйста: Написать программу на Pascale( используя оператор выбора), которая бы по введенному номеру единицы измерения (1 - дециметр, 2 - километр, 3 - метр, 4 - миллиметр, 5 - сатниметр) и длина орезка L выдавала бы сооответствующее значение длины орезка в метрах....
Консультация # 37513: Помогите пожалуйста решить такую задачу: Как определить объем и площадь граней многогранника в трехмерном пространстве, если известны координаты его вершин. Заранее СПАСИБО. ...
Консультация # 37346: Здравствуйте! Помогите пожалуйста разобраться в системе! Блок-схему я могу составить, но я не могу разобраться в самой системе! Что значит знак восклицания? Скрин здесь - http://error2007error2007.narod.ru/my.jpg Спасибо!...

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

Помогите, пожалуйста:
Написать программу на Pascale( используя оператор выбора), которая бы по введенному номеру единицы измерения (1 - дециметр, 2 - километр, 3 - метр, 4 - миллиметр, 5 - сатниметр) и длина орезка L выдавала бы сооответствующее значение длины орезка в метрах.

Дата отправки: 11.05.2007, 16:26
Вопрос задал: Leeryhomer
Всего ответов: 3
Страница онлайн-консультации »


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

Здравствуйте, Leeryhomer!

Листинг программы:

var l:real;
k:integer;
begin
write(\'izmerenie=\');read(k); {номер единицы измерения}
write(\'dlina=\');read(l); {длина отрезка}
case k of
1: write(l/10:5:3,\' m\');
2: write(l*1000:5:3,\' m\');
3: write(l:5:3,\' m\');
4: write(l/1000:5:3,\' m\');
5: write(l/100:5:3,\' m\');
end;
readln;
end.


Good Luck!!!

Консультировал: Gh0stik
Дата отправки: 11.05.2007, 19:57
Рейтинг ответа:

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


Консультирует Устинов С.Е.:

Здравствуйте, Leeryhomer!


const a: array[1..5] of string=(\'dm\',\'km\',\'m\',\'mm\',\'cm\');
var L:real;
i:byte;
begin
i:=0;
repeat
write(\'Nomer ed. izm=\'); readln(i);
until (i in [1..5]);
write(\'Dlina (\',a[i],\')=\'); readln(L);
case i of
1: L:=L/10;
2: L:=L*1000;
3: L:=L;
4: L:=L/1000;
5: L:=L/100;
end;
writeln(\'Dlina v metrah=\',L:5:2);
readln;
end.

Консультировал: Устинов С.Е.
Дата отправки: 11.05.2007, 20:00
Рейтинг ответа:

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


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

Здравствуйте, Leeryhomer!
program www;
uses crt;
var
i:integer;
l:real;
begin
write(\'VVEDITE CHISLO \');readln(L);
write(\'VVedite nomer \');readln(i);
case i of
1: L:=10*l;
2: L:=1000*l;
3: ;
4: L:=0.001*l;
5: l:=0.01*l;
end;
writeln(l:5:3);
readln;
end.
Удачи

Консультировал: Tribak
Дата отправки: 11.05.2007, 20:09
Рейтинг ответа:

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

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

Помогите пожалуйста решить такую задачу:
Как определить объем и площадь граней многогранника в трехмерном пространстве, если известны координаты его вершин.
Заранее СПАСИБО.

Дата отправки: 14.03.2006, 18:22
Вопрос задал: Koval
Всего ответов: 2
Страница онлайн-консультации »


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

Здравствуйте, Koval!

Ну с площадью-то все просто. Во-первых, тебе нужно выбрать все вершины, лежащие в одной плоскости. Сделать это просто, используя свойство, что три вектора лежать в одной плоскости тогда и только тогда, когда их смешанное произведение равно 0.
Т.е. по координатам вершин определяешь все возможные вектора. Далее выбираешь любые 2 вектора, идущие из одной вершины. Они будут определять плоскость. Далее проверяешь оставшиеся вектора на принадлежность этой плоскости. Получаешь все вершины, лежащие в данной плоскости. Повторяешь эти операции для всех остальных вершин.
Теперь, ты имеешь координаты вершин многоугольника. Требуется определить его площадь. Но для однозначного определения многоугольника требуется еще знать порядок вершин. Если эта информация тебе не задана, то задача не имеет решения. Допустим, что исходный многогранник является выпуклым. Тогда и каждая грань представляет собой выпуклый многоугольник. Координаты вершин однозначно определяют выпуклый многоугольник.
Для построения правильного следования вершин многоугольника нужно выбрать любую вершину и найти такую вторую вершину, чтобы все оставшиеся вершины находились в одной полуплоскости относительно прямой, проходящей через эти 2 вершины. Таких точек будет 2, одна при обходе многоугольника по часовой стрелке, вторая - против. Далее, приняв найденную вершину за начало нового отрезка, выбираешь из оставшихся вершин по тому же критерию. И продолжаешь до тех пор, пока все вершины не закончатся.
Теперь, имея список вершин многоугольника, можно определить его площадь. Для этого выбираешь любую вершину и разбиваешь многоугольник на треугольники отрезками, выходящими из этой вершины во все остальные. Площадь многоугольника есть сумма площадей этих треугольников. А площадь треугольника есть половина векторного произведения векторов, построенных на сторонах треугольника, выходящих из одной вершины.

А с объемом что-то ничего хорошего в голову не приходит. Даже для выпуклого многогранника.

Консультировал: Ayl
Дата отправки: 14.03.2006, 20:08
Рейтинг ответа:

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


Консультирует Полховский Александр Владимиро:

Здравствуйте, Koval!
Данный ответ будет содержать несколько пояснительных чертежей, который находятся на моём сайте.
Итак, начнём. Для примера я взял куб (чтоб не сильно много, и чтоб показывало все возможные ситуации).

Вот чертёж нашего куба. Именно его должен видеть пользователь при вводе данных для восьми-вершинной фигуры.

Вот наглядные примеры обхода точек и анализа соседей:


Пример


Немного об идее: она заключается в том, что для каждой точки мы имеем информацию о точках-соседях. Проходя кадую точку, мы по-порядку выявляем все грани, в которых лежит эта точка, и выискивая все остальные точки, лежащие в найденных гранях. Заодно по ходу считаем площядь.

При это требуется чёткий ввод всех данных для точек, эквивалентных пользо вательскому варианту. Будет несколько не удобно, так как во многих случаях названия точек не будут совпадать, но это терпимо.

Что касается определения площади, то её мы определяем из площади треугольников, которые "сходятся" в одну общую вершину. Примерно так.


Так. Пока писал, десять раз поменял алгоритм, поэтому с рисунками погорячился. Их всего 3. Для лучшего понимания процесса напишу весь алгоритм действий от начала и до конца в подробностях. К сожалению, без иллюстраций. Комментарии буду выделять другим цветом.


==========================================================

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

A:BDF
B:ACG
C:BDH
D:ACE
E:DFH
F:AEG
G:BFH
H:CEG

Каким образом это хранить и как с этим работать - Ваше решение. Главное суть уловить. Итак, начнём.



Дико извиняюсь. Разбор полётов занял более 10000 символов, поэтому продолжение читайте здесь


=====================================================

Как определять принадлежность точки данной плоскости предыдущий эксперт Вам объяснил вроде. Площадь тоже. Осталось только методы подобрать. И нашатырь возьмите, если преподавателю собираетесь это показывать.

Что касается объёма... вчера меня озарило. Объём можно определить тем же способом. Только там мы брали плоскости граней, образованный тремя точками (обходимой точкой и 2 её соседями). А здесь надо рассматривать объёмы треугольных пирамид, образованные уже четырьмя точками (обходимой точки и 3 её соседями) (если сами не разберётесь, могу пример написать). Да, эта задача на порядок сложнее. Определение объёма по векторам - вещь тяжёлая. Но это уже проблема вторая. Главное, что метом найден.

Вот, собственно, конец. А кто слушал - молодец.

Кто рассказывал тоже :)

Удачи.

Консультировал: Полховский Александр Владимиро
Дата отправки: 18.03.2006, 02:08
Рейтинг ответа:

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

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

Здравствуйте!
Помогите пожалуйста разобраться в системе! Блок-схему я могу составить, но я не могу разобраться в самой системе! Что значит знак восклицания?
Скрин здесь - http://error2007error2007.narod.ru/my.jpg
Спасибо!

Дата отправки: 12.03.2006, 17:19
Вопрос задал: Москвин Роман Валерьевич
Всего ответов: 3
Страница онлайн-консультации »


Консультирует Полховский Александр Владимиро:

Здравствуйте, Москвин Роман Валерьевич!
Преподаватель вполне компетентен в таких вопросах. Его тоже можноспрашивать.
Ну раз уж Вы тут, отвечу.
! - факториал.
n!=1*2*3*...*n;
2!=1*2=2;
3!=1*2*3=6;
И так далее.
0!=1 (не спрашивайте, почему. До сих пор сам не понял)
Надо полагать, у Вас 2 массива с числами. Ну с блок-схемой у Вас проблем нет, как я понял. Дерзайте.

Консультировал: Полховский Александр Владимиро
Дата отправки: 12.03.2006, 17:46
Рейтинг ответа:

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


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

Здравствуйте, Москвин Роман Валерьевич!
в догонку к предыдущему оратору замечу, что в постановке задачи вероятно ошибка. Написано, что
10 <= i <= 25
25 <= i <= 45
Должно быть,
10 <= n <= 25
25 < n <= 45

Консультировал: wils0n
Дата отправки: 12.03.2006, 17:51
Рейтинг ответа:

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


Консультирует Сергей:

Здравствуйте, Москвин Роман Валерьевич!
Восклицательный знак обозначает следующее:
N! = 1 * 2 * 3 * 4 * ... * (n-1) * n
и называется ФАКТОРИАЛ!!!!

Консультировал: Сергей
Дата отправки: 13.03.2006, 09:08
Рейтинг ответа:

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


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

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

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


В избранное