Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2014, 01:08   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не, по потокам я Вам не советчик...
гуглите....
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.01.2014, 14:47   #12
Костяхалк
Пользователь
 
Регистрация: 22.01.2014
Сообщений: 21
По умолчанию

если на дыбаю код . то адо будет оформить программу . можно будет расчитывать?
Костяхалк вне форума Ответить с цитированием
Старый 23.01.2014, 15:34   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Костяхалк Посмотреть сообщение
если на дыбаю код . то адо будет оформить программу . можно будет расчитывать?
ну, если "на дыбаешь", то можешь...
Если будут попытки решения задачи с твоей стороны, будешь читать примеры, пытать применить к своей задаче, то тебе обязательно помогут (не я, так кто-то другой).
Главное, не расчитывать, что кто-то добрый придёт и всё за тебя сделает (хотя и такое бывает, но лучше на это не надеяться, пусть будет приятным сюрпризом!)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.01.2014, 16:01   #14
Костяхалк
Пользователь
 
Регистрация: 22.01.2014
Сообщений: 21
По умолчанию

я же пытаюсь. это не видно?
Костяхалк вне форума Ответить с цитированием
Старый 23.01.2014, 16:27   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Костяхалк Посмотреть сообщение
я же пытаюсь. это не видно?
видно, видно.

Но так же видно, что явно какая-то проблема с использованием процедуры Synchronize

поэтому, допустим, вот я ничего не понимаю в вашем коде с потоками.
Попытайтесь мне объяснить, какие действия Вы вынесли в поток и как Вы это сделали.


p.s. это Вы должны сделать не для того, чтобы я понял, а чтобы Вам стало понятно, что там в коде написано и для чего. ок?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.01.2014, 18:22   #16
Костяхалк
Пользователь
 
Регистрация: 22.01.2014
Сообщений: 21
Печаль

Извините меня пожалуйста а можно уйти от этой процедуры

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Вы должны сделать не для того, чтобы я понял, а чтобы Вам стало понятно, что там в коде написано и для чего. ок?
бедный мой мозг ... было бы время понять это




_____________________________
Не надо плодить подряд несколько коротких сообщений!
Это нарушение правил...
для того, чтобы через минуту/другую дописать сообщение,
не надо создавать ещё один новый пост.
нажимайте на предыдущем кнопку "Правка"
и дописывайте в своё сообщение, что Вы хотели добавить!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 23.01.2014 в 22:38.
Костяхалк вне форума Ответить с цитированием
Старый 23.01.2014, 22:42   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Костяхалк Посмотреть сообщение
Извините меня пожалуйста а можно уйти от этой процедуры
не знаю... я же Вам правду говорю - я в потоках не компетентен!
Надо доки почитать, примеры посмотреть...

Я, если честно, не понимаю, что в данной задаче вообще выносить в отдельный поток!!

Цитата:
Сообщение от Костяхалк Посмотреть сообщение
бедный мой мозг ... было бы время понять это
ну, время - деньги! Причём, обычно не хватает и того и другого.
Но иногда, если есть деньги, можно немного времени выиграть!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.01.2014, 14:57   #18
Костяхалк
Пользователь
 
Регистрация: 22.01.2014
Сообщений: 21
По умолчанию

есть два кода . полностью рабочих . нужна разобраца что блин происходит вообще)
Костяхалк вне форума Ответить с цитированием
Старый 27.01.2014, 15:03   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Костяхалк Посмотреть сообщение
есть два кода . полностью рабочих . нужна разобраца что блин происходит вообще)
Так. Разбирайтесь.
Вопросов в вашем сообщении я не увидел.
Просто сообщение о том, что Вам нужно в этих кодах разобраться.
Или Вы хвастаетесь?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.01.2014, 15:19   #20
Костяхалк
Пользователь
 
Регистрация: 22.01.2014
Сообщений: 21
По умолчанию

я уже писал что не знаком с данным языком. . 1 вот код номер раз
Код:
unit Unit1;

interface

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

type
  TfrmMain = class(TForm)
    memResults: TMemo;
    btnOk: TButton;
    edNum: TEdit;
    lbNum: TLabel;
    procedure btnOkClick(Sender: TObject);
   
  private
    { Private declarations }
  public
    { Public declarations }
  end;

 TmyTread = class(TThread)    // описание типа потока
  private
   // переменные, которые нужны потоку для работы
    number: cardinal; // исходное число (задается из основного потока при запуске текущего потока)
    result,result1: string;  // результат, сформированный  в формате строки

    // процедура обращения к визуальному компоненту (Memo)
    procedure WriteRes;
    { Private declarations }
  protected
    procedure Execute; override;
  end;


var
  frmMain: TfrmMain;

implementation
 


{$R *.dfm}

procedure TfrmMain.btnOkClick(Sender: TObject);
  var s: string;   // вспомогательная строковая переменная
      num: cardinal;  // введенное пользователем число
      cod: integer;  // код преобразования строка -> число

      Thr: TmyTread; // переменная типа "поток TmyThread"

begin
   s:=edNum.Text; // "считываем" введенное пользователем значение
   val(s,num,cod);  // пытаемся преобразовать считанный текст в число
   if (cod<>0) OR (num=0)
     then // если преобразовать введенное пользователем значение в целое число не удалось или пользователь ввел ноль
       begin
         memResults.Lines.Add(s+' - некорректное значение'); // добавляем запись в Memo
         edNum.clear; // выделяем введенное пользователем значение
         edNum.SetFocus; // устанавливаем фокус в поле для ввода исходного числа
         exit; // выходим из процедуры обработки события
       end;

    // если пользователь ввел корректное данное
    edNum.Clear; // очищаем поле ввода
    edNum.SetFocus; // устанавливаем в него фокус

    Thr := TmyTread.Create(True);  // вызываем конструктор (метод Create) для нашего потока, т.е. создает новый поток
    Thr.FreeOnTerminate := True;   // устанавливаем свойство  FreeOnTerminate в true (когда поток будет завершен, он освободит ресурсы)
    Thr.number:=num; // передаем число
    Thr.Resume; // запускаем поток

end;

procedure TmyTread.Execute;
  var k,i,count,count1,j,i1,j1: cardinal;
begin
i:=1;
j:=2;
count:=0;
count1:=0;
k:=0;
if number=1 then count1:=5
else
begin
if number=2 then count1:=5
else
begin
if number=3 then count1:=5
else
begin
         while k<number do
         begin
         count:=0;
         count1:=0;
         i:=i+1;
         for i1:=1 to i do
         begin
         if (i mod i1)=0 then count:=count+1;
         if count=2 then
          begin
          j:=number-i;
          for j1:=1 to j do
         if (j mod j1)=0 then count1:=count1+1;
         end;
         end;
         if count1=2 then k:=number+1
         else k:=k+1;
            end;
   end;
   end;
         end;
if ((i+j)=number) and (count=count1) then
begin
         str(i,result);
         str(j,result1);
         end
         else
         begin
                frmMain.memResults.Lines.Add('НЕТ!!!');
   exit;
     end;
   Synchronize(WriteRes);


end;

procedure TmyTread.WriteRes;
begin
     frmMain.memResults.lines.add('Да:   ' + result +'+'+ result1);
end;


end.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 27.01.2014 в 15:24.
Костяхалк вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ЦИКЛЫ (паскаль) - представить N в виде суммы факториалов натуральных чисел, содержащей наименьшее число слагаемых Katya20 Помощь студентам 7 09.01.2012 01:21
Можно ли число N представить в виде сумы двух квадратов натуральных чисел? Dima170792 Помощь студентам 2 24.06.2011 08:53
всякое целое число можно представить в виде трех простых stasey91 Помощь студентам 3 14.04.2011 21:44
Дано натуральное число n. Можно ли представить его в виде суммы двух квадратов натуральных чисел? Сеня Помощь студентам 3 29.01.2009 01:17