Delphi 2007: Что год текущий нам готовит?.. |
Из неофициальных источников появилась некоторая интересная информация по поводу развития Delphi в 2007 году.
Компания-разработчик нашего любимого RAD-средства, проанализировав пожелания Delphi-сообщества, изменила свои первоначальные планы на текущий год.
Основные моменты:
1) В марте 2007 года выйдет Delphi 2007 (win32)
Плохая новость: в мартовской версии Delphi 2007 не будет юникода;
Хорошая новость: юникод будет в середине лета!
И это не единственная хорошая новость! В мартовской версии Delphi 2007 обещают много интересных "вкусностей", в том числе DBX4 и полную поддержку VISTA.
2) В марте 2007 года должен появиться новый и очень интересный продукт — Delphi for PHP — полноценное RAD-средство для разработки на PHP.
3) Выход новых версий продуктов линейки Turbo предполагается в конце 2007 года.
4) И еще небольшой сюрприз: стоимость Turbo Delphi Pro снизилась до 250$.
Вот так, коротенько...
Елена Филиппова
Всего в теме 1215 сообщений
Добавить свое сообщение
Отслеживать это обсуждение 
№ 655 12-02-2008 15:04 |  |
Ответ на »сообщение 651« (Geo)
___________________________
А что будем лелать, если чайник испортится, и свисток не сработает? :)
Так что меееелкий такой thred'ик не помешает: в нем человек прислушивается к свистку, и по свистку, или если не дожидается сигнала (по 5 мин. таймеру) - бросает все остальные дела и бежит на кухню.
У меня там есть для этой цели блок try - finally в исправленном варианте.
Даже не представляю, возможно ли такое сделать в терминах ФП.
№ 654 12-02-2008 14:56 |  |
Ответ на »сообщение 653« (Geniepro)
___________________________
>>> Навреное, это в большей степени зависит от учителя... ;о)
А при равных сопсобностях учителей? ;-)
№ 653 12-02-2008 14:47 |  |
Ответ на »сообщение 646« (Aleg Azarousky)
___________________________
>>> Наверное, детям все же так понятней будет.
Навреное, это в большей степени зависит от учителя... ;о)
№ 652 12-02-2008 14:37 |  |
Ответ на »сообщение 644« (Geniepro)
___________________________
Кстати, я вот поторопился, не протестировал программу и ошибку логическую пропустил.
Надо не так: пропускать_пока условие (x:xs) =
если (условие x) то x
иначе (пропускать_пока условие xs) а вот так: пропускать_пока условие (x:xs) =
если не (условие x) то x
иначе (пропускать_пока условие xs) В предыдущем варианте мы бы не дождались, когда закипит вода в чайнике, а сразу бы бухнули заварку. Так что упс! :о(
№ 651 12-02-2008 14:32 |  |
Ответ на »сообщение 650« (Aleg Azarousky)
___________________________
>>> Тогда Вам нужно добавить код для создания отдельного thread'a под процедуру Закипел.
Зачем? Не человек кипятит чайник, а плита. Так что этот thread -- это внутренняя реализация Чайника. Считаем, что у нас чайник со свистком: подает сигнал, когда закипел ;-)
№ 650 12-02-2008 14:24 |  |
Ответ на »сообщение 649« (Geo)
___________________________
Тогда Вам нужно добавить код для создания отдельного thread'a под процедуру Закипел.
Интересно, сколько параллельных thread'ов (дел) может выполнять человек ?...
№ 649 12-02-2008 14:10 |  |
Ответ на »сообщение 647« (Aleg Azarousky)
___________________________
За такой код:
while not Чайник.Кипит do begin
Wait(100);
Application.ProcessMessages;
end;
убивать сразу :D
Делаем как-то так:
procedure НачатьПриготовлениеЧая;
var
Чайник: ТЧайник;
begin
Чайник := Плита.ВзятьЧайник;
Кран.НалитьВодуВ(Чайник, 1000);
Плита.ЗажечьГаз;
Чайник.ПоставитьНа(Плита);
Чайник.КогдаЗакипел := Закипел;
end;
procedure Закипел(Чайник);
var
Чашка: ТЧашка;
begin
Чайник.Заварить(Чай);
Чашка := Полка.ВзятьЧашку;
Чайник.НалитьВ(Чашка, 250);
Чашка.НасыпатьСахар(2);
Чашка.ПоставитьНа(Стол);
end;
№ 648 12-02-2008 14:04 |  |
Ответ на »сообщение 647« (Aleg Azarousky)
___________________________
Наверное, правильнее даже так:
function ЧашкаСЧаем: ТЧашка;
var
Чашка: ТЧашка;
Чайник: ТЧайник;
begin
Чайник := Плита.ВзятьЧайник;
Кран.НалитьВодуВ(Чайник, 1000);
Плита.ЗажечьГаз;
try
Чайник.ПоставитьНа(Плита);
while not Чайник.Кипит do begin
Wait(100);
Application.ProcessMessages;
end;
finally
Плита.ПогаситьГаз;
end;
Чайник.Заварить(Чай);
Чашка := Полка.ВзятьЧашку;
Чайник.НалитьВ(Чашка, 250);
Чашка.НасыпатьСахар(2);
Return := Чашка;
end;
А то мало ли что может случиться :)
№ 647 12-02-2008 13:58 |  |
В ООП будет веселее:
function ЧашкаСЧаем: ТЧашка;
var
Чашка: ТЧашка;
Чайник: ТЧайник;
begin
Чайник := Плита.ВзятьЧайник;
Кран.НалитьВодуВ(Чайник, 1000);
Плита.ЗажечьГаз;
Чайник.ПоставитьНа(Плита);
while not Чайник.Кипит do begin
Wait(100);
Application.ProcessMessages;
end;
Чайник.Заварить(Чай);
Чашка := Полка.ВзятьЧашку;
Чайник.НалитьВ(Чашка, 250);
Чашка.НасыпатьСахар(2);
Return := Чашка;
end;
Кран, Полка, Плита, Чай - считаем объектами, определенными вне нашей функции.
№ 646 12-02-2008 13:39 |  |
Ответ на »сообщение 644« (Geniepro)
___________________________
М-да... У Вас и у Макса получилось как-то совсем по-разному...
А теперь дело за вами -- представьте решение на Паскакале! Или на Лого... ;о)
В процедурном стиле на псевдо-Паскале наверное как-то так:
Программа Чай;
Начало
НалитьВодуВЧайник(1000);
ЗажечьГаз;
ПоставитьЧайникНаПлиту;
пока не ЧайникКипит делать
начало
Ждать(100);
ОтобразитьПрогрессБар;
конец;
ЗаваритьЧай;
НалитьЧайВЧашку;
НасыпатьСахар(2);
Конец.
Наверное, детям все же так понятней будет.
Добавить свое сообщение
Отслеживать это обсуждение 
Дополнительная навигация: |
|