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

RusFAQ.ru: Программирование на Delphi


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

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 517
от 29.06.2006, 15:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 365, Экспертов: 67
В номере:Вопросов: 4, Ответов: 8


Вопрос № 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 других дружественных чисел? С чего мне следует начать?
Отправлен: 23.06.2006, 22:56
Вопрос задал: Павел Игнатьевич (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Решетник Д
Здравствуйте, Павел Игнатьевич!
Попробуйте просто перебором всех чисел...
Берете число Х. ищете его дружественное (через делители). Потом ищете дружественное этого числа У, и если Х и У равны, то числа дружественные.
В чем проблема-то? Хотя это "грязный" алгоритм...
Получается примерно так:

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, чтобы программа прогоняла их по кругу. И ещё можно ли менять уровень звука исполняемого файла во время работы? Заранее спасибо.
Отправлен: 24.06.2006, 01:17
Вопрос задал: Виталий Зелинский (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: 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). Далее:

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

Посоветуйте с чего мне стоит начать работу?
Отправлен: 24.06.2006, 12:34
Вопрос задал: Павел Игнатьевич (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Решетник Д
Здравствуйте, Павел Игнатьевич!
.я бы Вам посоветовал скачать сборник задачек (олимпиалных) с решениями (или без), например, Акулова и решать их.
В приложении несколько решений.

!Написано без проверки. возможно требует изменений

Приложение:

---------
Жизнь коротка, чтобы писать на ассемблере

Ответ отправил: Решетник Д (статус: 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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.34 от 01.06.2006
Яндекс Rambler's Top100

В избранное