PDA

Просмотр полной версии : помогите!!!



Ася
25.11.2006, 22:16
помогите, плиз, решить задачи в Дельфи:
1. Пересчитать все пары «соседних» простых чисел, не превосходящих заданного N, троичные представления которых получаются друг из друга в обратном порядке (первая такая пара – это 5 и 7).
2. Задано множество точек М в трехмерном пространстве. Найти такую из них, что шар заданного радиуса с центром в этой точке содержит максимальное число точек М.
3. Элементы каждого из массивов A и B упорядочены по неубыванию. Объединить элементы этих двух массивов в один массив C так, чтобы они снова оказались упорядоченными по неубыванию.
4. Говорят, что матрица имеет седловую точку aij, если aij является минимальным в i-й строке и максимальным в j-ом столбце. Найти седловую точку матрицы.
5. Имеется некоторый текст, слова разделены пробелами. Найти все слова, имеющие указанное окончание.

Хыиуду
04.12.2006, 11:39
По-моему, проблемы тут могут возникнуть только с первой задачей. Остальные не так уж сложны.
2. Проверяешь в цикле все точки. Проверяешь во вложенном цикле расстояние от текущей точки до одной из остальных. Если оно меньше R - увеличиваешь счетчик для этой точки. После этого еще раз проверяешь все точки, у которой счетчик больше - та и есть искомая.
3. К примеру, так:
ma:=1;
mb:=1;
for i:=1 to length(c) do
if A[ma]<=B[mb] then
begin
c[i]:=A[ma];
ma:=ma+1;
end
else begin
c[i]:=B[mb];
mb:=mb+1;
end;
4. Сделать цикл по всем строкам. В каждой строке вложенным циклом найти минимальный элемент. После этого еще один вложенный цикл по тому столбцу, где стоит этот элемент. Если в столбце есть элемент, больший, чем найденный минимум - переходим к следующей строке, если все элементы меньше, чем найденный - он и является седловой точкой.
5. Считывать в строку из текста буквы, пока не появится символ "пробел". После этого проверить: if pos(last,newword)=length(newword)-length(last)+1, то вывести это слово. last - заданное окончание, newword - только что считанное слово. После этого очистить эту строку и продолжать читать, пока текст не кончится.

somewhere
04.12.2006, 12:47
1. Пересчитать все пары «соседних» простых чисел, не превосходящих заданного N, троичные представления которых получаются друг из друга в обратном порядке (первая такая пара – это 5 и 7).
Хыиуду, тут вроде тоже проблем нет.

1. Найти все простые числа до N.
2. Создать процедуры перевода в троичную систему и обратно.
3. В цикле перебирать все соседние простые числа и проверять условие.

Хочу напомнить, что для того, чтобы проверить является ли число простым достаточно проверить, делиться ли это число (допустим K) на нечетные числа до Sqrt(K). В идеале достаточно проверять делимость на простые числа до Sqrt(K) (думаю, не надо объяснять, почему). Для получение списка простых чисел можно использовать для этого рекурсию.

Про переводы в разные системы на форуме куча инфы.