Вопрос № 102875: Помогите пожалуйста решить эти задачки
1. В заданный непустой текст входят только цифры и буквы. Определить, удовлетворяет ли он следующему свойству: текст является записью десятичного числа, кратного 6
2. Дана точка М(x, y). Присво...
Вопрос № 102.875
Помогите пожалуйста решить эти задачки
1. В заданный непустой текст входят только цифры и буквы. Определить, удовлетворяет ли он следующему свойству: текст является записью десятичного числа, кратного 6
2. Дана точка М(x, y). Присвоить z = 1, если точка внутри эллипса (x*x)/(a*a)+(y*y)/(b*b)=1 и z = 0, если точка вне эллипса
3. Четыре точки заданы своими координатами X(x1, x2, x3), Y(y1, y2, y3), Z(z1, z2, z3), T(t1, t2, t3).Выяснить, какие из них находятся на минимальном расстоянии друг от друга и вывести на печать значение этого расстояния. Вычисление расстояния между двумя точками оформить в виде процедуры.
4. Даны m векторов x1=(x11, x21, x31), ..., xm=(x1m, x2m, x3m). Написать программу нахождения суммы этих векторов.
5. Дана действительная квадратная матрица порядка n. Вычислить сумму тех ее элементов, расположенных на главной диагонали и выше нее, которые превосходят по величине все элементы, расположенные ниже главной диагонали. Если на главной диагонали и выше нее нет элементов с указанным свойством, то ответом должно служить сообщение об этом.
Отправлен: 21.09.2007, 12:40
Вопрос задал: Audiz (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Coupler
Здравствуйте, Audiz!
По поводу задач 3 и 5: их решение Вы найдете в ответах на вопросы 89467 и 90051, а также в приложении.
Приложение:
Ответ отправил: Coupler (статус: Практикант)
Ответ отправлен: 21.09.2007, 12:52 Оценка за ответ: 5 Комментарий оценки: В ответе очень хорошо разьяснен принцып решения задачи. Спасибо!
Отвечает: kopfschwarz
Здравствуйте, Audiz!
1)
sum:=0;
t:=true; //предположим, что в тексте только число
for i:=1 to Length(s) do
begin
if s[i] in ['0'..'9'] then
sum:=sum+ord(s[i])-30 //код 0 - 30, 1 - 31 и т.д., поэтому вычетаем 30.
else
begin
t:=false; // встретилась буква, значит не число.
break //выходим из цикла
//делимость на 6 означает делимость на 3 (если сумма цифр делится на 3) и на 2 (если число оканчивается на четную цифру).
if (t)and(sum mod 3 = 0)and(ord(s[Length(s)]) nod 2 = 0) then
writeln('Число кратно 6'),
else
writeln('Текст не удовлетворяет свойству')
end;
2) все точки можно хранить в массиве m из четырех элементов.
type point = record x,y,z:real; end;
procedure Distance(A,B:point; out d:real);
begin
d:=sqrt(sqr(A.x-B.x)+sqr(A.y-B.y)+sqr(A.z-B.z));
end;
begin
d:=Distance(m[1],m[2]);
for i:=1 to 4 do
for j:=i+1 to 4 do
begin
Distance(m[i],m[j],d);
if d<min then min:=d;
end;
writeln(d);
end;
4) векторы будем хранить в массиве vect.
type point = record x,y,z:real; end;
var vect = array [1..m] of point
begin
res.x:=0;
res.y:=0;
rez.z:=0;
for i:=1 to m do
begin
res.x:=res.x+vect[i].x;
res.y:=res.y+vect[i].y;
res.z:=res.z+vect[i].z;
end;
end;
--------- Please, don't say you're sorry & Express yourself, don't repress yourself!
Ответ отправил: kopfschwarz (статус: Студент)
Ответ отправлен: 21.09.2007, 14:52 Оценка за ответ: 5 Комментарий оценки: без коментариев, все просто и ясно