Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ВОПРОСЫ АЛГОРИТМОВ!


Страницы:   1 2

crazy_corpse ©   (2006-07-14 15:09:00) 

ПРЕДЛОЖЕНИЕ:
Предлагаю в этом раздельчике писать свои задачи и решения для них, главным здесь будет являться алгоритм решения. Использование каких-то компонентов делфи и вопросы программирования в делфи будет обсуждаться только если это непосредственно может помочь при решении задачи
ПРИЧИНА:
В инете трудно искать алгоритмы некоторых задач, а если здесь начать собирать некоторое подобие задачника то это мне как кажеться будет ничего себе.
ПОЧЕМУ ЗДЕСЬ?
Да потому что тут то все мастера и "вертяться" )). Помогут подскажут.
Еще одним условие или как бы желанием будет улучшение алгоритмов этим мастерами. Надеюсь помогут.


Плохиш   (2006-07-14 17:15:00) [21]


>  end;//тут она че то по кругу начала того. В паскале проще
> в этом смысле

А ты что хотел. Хочешь сказать, что в паскале циклы подругому работают?
А ну живо пошёл азбуку учить.


Jeer   (2006-07-14 17:10:00) [22]

2006 - 1985 = 6

Нарушаем арифметику.


crazy_corpse   (2006-07-14 17:02:00) [23]

Следующая задача:
Введите некоторое малое число eps>0, имеющее смысл погрешности вычисления (например, 0,001; 0,0005 и т.д.), и число x в пределах 0.5<x<10.5 и вычислите следующее выражение:
y=1+x/1!+x^2/2!+...+x^n/n!+...;
Вычисления прекратите, когда очередное слагаемое станет по модулю меньше, чем eps. Выведите x,y,eps и количество использованных слагаемых.
Поехали!
На формочку кидаем лейблы и едиты которые помогут ам ввести eps, и х, и еще один лейбл для вывода нужной инфы.
Щас вот короче начал писать и возни вопросик, Как проверить правильность ввода в edit вот в этой конкретной задаче:
пишу че то типа

procedure TForm1.Button1Click(Sender: TObject);
begin
 while (eps<0) or (eps<1) do begin
   eps:=strtofloat(edit1.text);
   label1.Caption:='Вы вели eps не из диапазона 0..1. Повторите ввод' ;
 end;
 while (x<0.5) or (x>10.5) do begin
   x:=strtofloat(edit2.Text);
   label2.Caption:='Вы вели х не из диапазона 0,5..10,5. Повторите ввод';
 end;//тут она че то по кругу начала того. В паскале проще в этом смысле
//че надо сделать?
end;


crazy_corpse   (2006-07-14 16:37:00) [24]

Удалено модератором


Джо   (2006-07-14 16:25:00) [25]

http://algolist.manual.ru/forum/


Джо   (2006-07-14 16:25:00) [26]

> а то на этой ссылке ведь не форум там опфтом то не поделишься.

Там есть и форум, зачем дезинформировать?


crazy_corpse   (2006-07-14 16:09:00) [27]

http://algolist.manual.ru
кстати по этой ссылке действительно можно нарыть много инфы, но ведь задачи решаемы в универах достаточно однообразны, и я хотел просто помочь новичкам ведь имея готовый алгоритм все просто. Да и самому было бы полезно посмотреть да пообсуждать на пригодность и универсальность сами алгоритмы а то на этой ссылке ведь не форум там опфтом то не поделишься.


crazy_corpse   (2006-07-14 16:03:00) [28]

Удалено модератором


crazy_corpse   (2006-07-14 15:59:00) [29]

Вот и первая моя задачка и к ней алгоритмик начнем с малого, прошу все совету по алгоритму писать не укоснительно если они возникают конечно))
Задача
Введите некоторое количество вещественных чисел. Определить произведение минимального и максимального из них.
Решение
Ну как мне кажеться числа надо вводить в массив и потом сортировать его. А как вам? Может надо просто при вводе запоминать минимальный сразу и сравнивать его с последующими? Но как бы то не было пишу алгоритм с массивом.
//процедура ввода массива
//сразу возникает вопрос может можно использовать динамический массив каким то образом?
const
nmax=100;
type
tmy_array=array [1..nmax] of real;
var
a:tmy_array;
n:integer=1;
{$R *.dfm}
// вводим числа
procedure TForm1.VvestiClick(Sender: TObject);
begin
a[n]:=strtofloat(edit1.Text);
n:=n+1;
end;

var
min:real;
imin,s:integer;
i:integer;
procedure TForm1.KonecClick(Sender: TObject);
begin
//n получилась на еденицу больше так что надо бы убрать
n:=n-1;
vvesti.Visible:=false;// убераем кнопочку она нам не нужна больше
//сортировка выбором можно обсудить более "лучший метод" сортировки
 for s:=1 to n-1 do begin
   min:=a[s];
   imin:=s;
   for i:=s+1 to n do
     if a[i]<min then begin
       min:=a[i];
       imin:=i;
     end;
   a[imin]:=a[s];
   a[s]:=min;
 end;
 // Перемножаем первый и последний член
 label1.caption:='Произвдеенеие первого и последнего члена равно '+
 floattostr(a[1])+'*'+floattostr(a[n])+'='+floattostr(a[1]*a[n]);
 //Убираем и эту кнопку показываем кнопку выхода из программы
 close.Visible:=true;//для этого выбираем компоненнт bitbtn на вкладке additional и выставяем свойству kind значение bkclose;
 close.Kind:=bkclose;
 konec.Visible:=false;
end;

Ну вот вроде все. Для примера.


unknown   (2006-07-14 15:20:00) [30]

Кладовку и единую базу процедур и ф-й для чего придумывали?


Джо   (2006-07-14 15:19:00) [31]

Автору: есть такой проект http://algolist.manual.ru


DrPass   (2006-07-14 15:17:00) [32]


> Предлагаю в этом раздельчике писать свои задачи и решения
> для них

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


Vlad   (2006-07-14 15:16:00) [33]


> crazy_corpse ©   (14.07.06 15:09)  

Так тут целый форум этому посвящен, зачем выдлять специальный раздел?


Джо   (2006-07-14 15:15:00) [34]

Так алгоритмы чего? Ж:)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо