Вопрос № 47162: Здравствуйте уважаемые эксперты!
Два числа называют дружественными, если каждое из них равно сумме всех делителей другого, кроме самого этого числа. Например,
220 и 284 есть дружественные числа, т. к. делителями первого являются числа 1, 2, ...Вопрос
№ 47170: Здравствуйте уважаемые эксперты. Подскажите, как можно задать список звуковых файлов для MediaPlayer, чтобы
программа прогоняла их по кругу. И ещё можно ли менять уровень звука исполняемого файла во время работы? Заранее спасибо....Вопрос № 47180: Здравствйте, господа Эксперты! Помогите,пожалуйста, с таким вопрсом:
есть текстовый файл, строки пронумерованы (т.е. начинаются с числа - пример в приложении). Как прочитать из этого файла строку
с определенным номером и поместить ее, например, в Lab...Вопрос № 47207: Доброе
время суток эксперты!
Даны натуральное число n и символы S(1), ..., S(k). Если k < n, то добавить количество символов до n, повторяя последовательность
S(1), ..., S(k). Далее:
заменить первую букву каждого слова на заглавную <...
Вопрос № 47.162
Здравствуйте уважаемые эксперты!
Два числа называют дружественными, если каждое из них равно сумме всех делителей другого, кроме самого этого числа. Например,
220 и 284 есть дружественные числа, т. к. делителями первого являются числа 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 и 110, сумма
которых равна 284, а делителями второго - числа 1, 2, 4, 71 и 142, которые в сумме дают 220.
Как мне написать программу для отЫскания 15 других дружественных чисел? С чего мне следует начать?
Отвечает: Решетник Д
Здравствуйте, Павел Игнатьевич!
Попробуйте просто перебором всех чисел...
Берете число Х. ищете его дружественное (через делители). Потом ищете дружественное этого числа У, и если Х и У равны, то
числа дружественные.
В чем проблема-то? Хотя это "грязный" алгоритм...
Получается примерно так:
function getfriend(k: integer): integer;
var i: integer;
begin
result := 0;
for i := 1 to (k div 2) do
if (k div i = 0) then result := result + i;
end;
а для каждого проверяемого числа нужно сделать так:
y := getfriend(getfriend(x));
if x = y then beep(); //подходит
--------- Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус:
9-ый класс)
Ответ отправлен: 24.06.2006, 14:30 Оценка за ответ: 5 Комментарий
оценки: Спасибо большое!
Вопрос
№ 47.170
Здравствуйте уважаемые эксперты. Подскажите, как можно задать список звуковых файлов для MediaPlayer, чтобы программа прогоняла
их по кругу. И ещё можно ли менять уровень звука исполняемого файла во время работы? Заранее спасибо.
Отвечает: Mo-skin
Здравствуйте, Виталий Зелинский!
Весишь на та таймер:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if MediaPlayer1.Position>=Mediaplayer1.Length then
begin
MediaPlayer1.Stop;
MediaPlayer1.Rewind;
MediaPlayer1.Play;
end;
end;
2) да можно ф-цией WaveOutSetVolume()
--------- Чем больше женщину мы меньше,- тем меньше больше мы ее!
Ответ отправил: Mo-skin (статус:
1-ый класс)
Ответ отправлен: 24.06.2006, 09:50
Вопрос
№ 47.180
Здравствйте, господа Эксперты! Помогите,пожалуйста, с таким вопрсом: есть текстовый файл, строки пронумерованы (т.е. начинаются
с числа - пример в приложении). Как прочитать из этого файла строку с определенным номером и поместить ее, например, в Label?
Если можно, поподробнее. Заранее спасибо!
Приложение:
Отправлен: 24.06.2006, 05:10
Вопрос задал: Neiroman (статус: 1-ый
класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: sir henry
Здравствуйте, Neiroman!
Если Вы используете традиционные Паскадевские способы открытия файлов (AssignFile()< Reset()...), то единственный способ
- последовательное чтение строк и с помощью функции Pos(), например, выяснение, содержиться ли нужное число в данной строке.
Если да, то предъявляем на всеобщее обозрение.
Если у Вас нумерование строк в файле последовательное и непрерывное (например 0..110), то файл целиком можно сначала загрузить
в TStringList, а потом из TStringList'а предьявить строку по ее индексу. Однако в этом случае нумкрация в самом файле будет
ненужна, т.к. TStringList автоматом загружает каждую строку в отдельную позицию.
Ответ отправил: sir henry (статус:
Академик) Россия, Красноярск ---- Ответ отправлен: 24.06.2006, 08:42
Отвечает: Gh0stik
Здравствуйте, Neiroman!
Вот привожу примеры, как это можно сделать.
Пример №1
procedure TForm1.Button10Click(Sender: TObject);
var n,ps:integer;
f:textfile; st:string;
begin
n:=3;//номер строки которую надо вывести
{====первый способ====}
AssignFile(f,'string.txt');
reset(f);
ps:=0;
while (not eof(f)) and (ps<>n) do
begin
inc(ps);
Readln(f,st);
end;
Label1.Caption:=st;
CloseFile(f);
end;
Пример №2
procedure TForm1.Button11Click(Sender: TObject);
var st_list:TStringList;
n:integer;
begin
n:=3;//номер строки которую надо вывести
{====второй способ====}
st_list:=TStringList.Create;
st_list.LoadFromFile('string.txt');
Label1.Caption:=st_list.Strings[n-1];
st_list.Free;
end;
string.txt - файл с данными.
Удачи!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии
с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус:
Студент)
Ответ отправлен: 24.06.2006, 10:34
Отвечает: METALLDOCTOR
Здравствуйте, Neiroman!
Поочерёдно считывайте строки в String, и если у этого СТРИНГА первые элементы будут нужным числом, то выходите из цикла и
записывайте значение.
Примерно так:
Приложение:
--------- Ни о чём не жалею!
Ответ отправил: METALLDOCTOR (статус:
4-ый класс)
Ответ отправлен: 24.06.2006, 11:29
Вопрос
№ 47.207
Доброе время суток эксперты!
Даны натуральное число n и символы S(1), ..., S(k). Если k < n, то добавить количество символов до n, повторяя последовательность
S(1), ..., S(k). Далее:
заменить первую букву каждого слова на заглавную
удалить все повторяющиеся буквы, стоящие рядом
удалить цифры, если они встречаются
определить сколько раз входит в последовательность каждый символ
Отвечает: Решетник Д
Здравствуйте, Павел Игнатьевич!
.я бы Вам посоветовал скачать сборник задачек (олимпиалных) с решениями (или без), например, Акулова и решать их.
В приложении несколько решений.
!Написано без проверки. возможно требует изменений
Приложение:
--------- Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус:
9-ый класс)
Ответ отправлен: 24.06.2006, 14:20
Отвечает: Gh0stik
Здравствуйте, Павел Игнатьевич!
Немного дополню предыдущий ответ.
Функция которая может удалить цифры, если они встречаются:
function no_chislo(s:string):string;
const chs=['0'..'9'];
var sn:string;
i:integer;
begin
sn:='';
for i:=1 to length(s) do
if not (s[i] in chs) then sn:=sn+s[i];
no_chislo:=sn;
end;
Пример ее работы:
procedure TForm1.Button12Click(Sender: TObject);
begin
ShowMessage(no_chislo('asdfasdf351345dsfa23fqwe223fdsf7078'));
end;
Удачи!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии
с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус:
Студент)
Ответ отправлен: 24.06.2006, 14:46 Оценка за ответ: 5
Отвечает: sir henry
Здравствуйте, Павел Игнатьевич!
В дополнение к первому ответу я Вам советую купить учебник по Дельфи и внимательно, сидя перед компьютером, прочитать его.
Например Фаронов "Дельфи. Учебный курс".
Именно с этого и нужно начинать работу.
Ответ отправил: sir henry (статус:
Академик) Россия, Красноярск ---- Ответ отправлен: 24.06.2006, 15:50