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) 

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


crazy_corpse   (2006-07-16 16:54:00) [1]

Кстати может быть кто подскажет я из делфы код вынимаю ctrl-c сюда вставляю ctrl-v а коменты вон во что превращаються какой тут шрифт надод в делфе поставить чтоб так не было.


crazy_corpse   (2006-07-16 16:53:00) [2]

НЕ получились коментарии ну ладно если че я готов все объяснить
Последняя процедура: procedure TForm1.Button4Click(Sender: TObject);
const
dx=20;
dy=20;
lr=6;
var
//äëÿ ñîðòèðîâêè
i:integer;
min:real;
imin,s:integer;
temp_y:array [1..nmax] of real;
// ðèñîâàíèå
WI,HI:integer;
l,v:integer;
drx,dry:integer;
ky:array [1..nmax] of integer;
ymash:real;
//ãðàôèê
gx,gy:real;
px,py:longint;
y0:integer;
begin
 memo1.Visible:=false;
 for i:=1 to n do
   temp_y[i]:=y[i];
 ////////////èùåì ìàêñèìóì/////////////////
 for s:=1 to n-1 do begin
   min:=temp_y[s];
   imin:=s;
   for i:=s+1 to n do
     if temp_y[i]


crazy_corpse   (2006-07-16 16:51:00) [3]

Ладно забудем об этой задачке ее портировать на делфи все равно тупо. Вот еще одна задачка:
Написать в одном модуле алгоритм аппроксимации рядом Фурье и всю визуальную работу с ним, че то типа этого вот че я наваял.
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls, Buttons;

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Label1: TLabel;
   Button1: TButton;
   Button2: TButton;
   Label2: TLabel;
   Edit2: TEdit;
   Button3: TButton;
   Memo1: TMemo;
   Button4: TButton;
   Image1: TImage;
   BitBtn1: TBitBtn;
   Label3: TLabel;
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Button3Click(Sender: TObject);
   procedure Button4Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation
const
 nmax=100;// ìàêñèìàëüíîå êîëëè÷åñòâî òî÷åê
 kmax=5;// ìàêñèìàëüíîå êîëëè÷åñòâî ãàðìîíèê
var
 n:integer=1;//êîëëè÷åñòâî òî÷åê
 k:integer=3;//êîëëè÷åñòâî ãàðìîíèê
 y:array [1..nmax] of real; // ìàññèâ òî÷åê êîòîðûå íàäî àïïðîêñèìèðîâ&# 224;òü
 a0:real;//ïåðâûé ÷ëåí ðÿäà
 suma,sumb:array [1..kmax] of real;//îñòàëüíûå ÷ëåíû ðÿäà
 sa,sb:array [1..kmax] of string;
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 label1.Caption:='Ââåäèòå '+inttostr(n)+'-óþ òî÷êó (íå áîëåå '+inttostr(nmax)+' òî÷åê)';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 //ââîäèì òî÷êè â ìàññèâ åñëè èõ êîëè÷åñòâî íå ïðåâûøàåò ìàêñèìàëüíîãî
 if n


Virgo_Style   (2006-07-16 13:54:00) [4]

вероятно, подразумевалось raise EOutOfRange.Create(...)


crazy_corpse   (2006-07-16 13:36:00) [5]

А вот с try.. except.. мне вот что не понятно MyError какого класса он мне выдает ее как неизвестную переменую.


crazy_corpse   (2006-07-16 12:31:00) [6]

Я не притворялся что это не для себя и в любом случае человек делает все исключительно только для своей пользы. Но не зависимо от этого хотелось бы услышать умные коментарии по алгоритмам. Эти задачи меня попросили решить в PASCAL, я решил там их еще много. Вот для себя то я и хочу узнать как бы это делать побыстрее да получше вот цель превалирующая. Но в то же время уверен что комуто это все таки пригодиться.


Footballer   (2006-07-16 00:30:00) [7]

crazy_corpse ©   (14.07.06 17:02) [12]
тут она че то по кругу начала того. В паскале проще в этом смысле
//че надо сделать?
А надовсего-навсего исправить опечатку!


> while (eps<0) or (eps<1) do begin

while (eps<0) or (eps >1) do begin


Footballer   (2006-07-16 00:26:00) [8]

Согласен с Virgo_Style ©   (14.07.06 20:18) [21]

> Не надо было притворяться, что это не для себя %-)


crazy_corpse   (2006-07-16 00:08:00) [9]

[25] Галинка ©   (15.07.06 19:11)
вот это уже обнадеживает)) спасибо ПРОДОЛЖИМ?


Галинка   (2006-07-15 19:11:00) [10]

Примим правила игры (хотя может это и не правильно).

Проверку правильности ввода я бы сделала не по нажатию кнопки "Считать", а по выходу из самого Едита. т.е. в событии OnExit. и делается она элегантнее в защищенном блоке try ... except.... Типа такого:


procedure Form1.Edit1OnExit(...);
try
eps:=strtofloat(edit1.text);
if (eps<0) or (eps>1) then MyError=EOutOfRange;
except
on EConvertError do MessageBox(0,'Недопустимое знчение !','ОШИБКА',0);
on EOutOfRange do MessageBox(0,'Недопустимое знчение !','ОШИБКА',0);
end;
end;


TUser   (2006-07-15 08:08:00) [11]

crazy_corpse ©   (14.07.06 15:59) [6]
Введите некоторое количество вещественных чисел. Определить произведение минимального и максимального из них.

Да, это трудновато найти в интернете.

crazy_corpse ©   (14.07.06 15:59) [6]
Ну как мне кажеться числа надо вводить в массив и потом сортировать его. А как вам?

Мне так не кажется, т.к. проще и быстрее один раз пробежать по массиву, найдя минимум и максимум. Не за чем его сортировать. Но можешь заюзать один из сотен алгоритмов сортировки, если тебе так проще.

Мой совет автору - решил свои задачи, положи их под сукно на пару недель. Эту пару недель потрать на решение других задач, чуть посложнее. Потом вынимай из-под сукна и думаю - надо их постить на форум или нет.


Leonid Troyanovsky   (2006-07-14 22:05:00) [12]


> Игорь Шевченко ©   (14.07.06 22:01) [22]

> В любом случае правила читать - оно неплохо.


And, в частном случае, графоманство - это плохо.

--
Regards, LVT.


Игорь Шевченко   (2006-07-14 22:01:00) [13]

В любом случае правила читать - оно неплохо.


Virgo_Style   (2006-07-14 20:18:00) [14]

Не надо было притворяться, что это не для себя %-)

P.S. Сортировать массив для того, чтобы выбрать минимальный и максимальный элемент??? У-у-у-у... Как все запущено %-)


crazy_corpse   (2006-07-14 19:25:00) [15]

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


Zeqfreed   (2006-07-14 18:08:00) [16]

Выражение «детский сад в другом месте» было бы как нельзя кстати… Просто мысли в слух, не обращайте внимание, продолжайте.


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

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


crazy_corpse   (2006-07-14 17:45:00) [18]

где это?


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

В азбуке "Делфи за 21 секунду" всё хорошо расписано.


crazy_corpse   (2006-07-14 17:37:00) [20]

ну так может подскажите как правильно и без особых усилий проверить поподает ли число из edit в диапазон?
в паскале то пишу типа в этом цикле readln(eps) к примеру, а здесь так нельзя. Вот и посоветуйте начинающим как получше фисла в программу вводить!


Страницы:   1 2

Наверх

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