Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.10.2011, 09:36
bars92 bars92 вне форума
Прохожий
 
Регистрация: 22.10.2011
Сообщения: 3
Репутация: 10
Вопрос Вычисление

Спроектировать новое приложение «Геометрия», в котором на форме установить кнопки с надписями: «Радиус», «Диаметр», «Длина окружности», «Площадь окружности» и однострочные поля ввода/вывода этих параметров. При ЩК на кнопках в соответствующих процедурах обработки событий вычислять и выводить в поля редактирования остальные параметры окружности. Например, при вводе радиуса вычислять диаметр, длину окружности и площадь. При вводе длины вычислять диаметр, радиус окружности и площадь, при вводе площади вычислять диаметр, радиус окружности и длину окружности. Исходные и вычисленные данные записать в текстовый файл с пояснениями при ЩК на кнопке «Запись в файл». При Щелчке на кнопке «Чтение из файла» выдать содержимое в многострочное поле Мемо. При Щелчке на кнопке CLOSE выполнить завершение приложения. Кнопки «Запись в файл», «Чтение из файла», CLOSE расположить на панели в нижней части формы.


Как это сделать всё? помогите, хождения по ресурсам гугла меня запутали вообще...
Ответить с цитированием
  #2  
Старый 22.10.2011, 12:44
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

В разделе работа тебе помогут
http://www.delphisources.ru/forum/forumdisplay.php?f=34
Ответить с цитированием
  #3  
Старый 22.10.2011, 15:59
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

1) Устанавливаем делфи.
2) Открываем делфи.
3) Кладем на форму все нужные компоненты.
4) По событиям кнопок ставим нужный код.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #4  
Старый 22.10.2011, 18:59
chainik chainik вне форума
Начинающий
 
Регистрация: 30.06.2008
Сообщения: 140
Репутация: 8882
По умолчанию

вот заготовка такого калькулятора. Полностью не пишу специально.
думай сам.
Не тестировал. Это тоже твоя забота.
Суть в том что при вводе в любое окно происходит вычисление во всех остальных окнах. ТЕ ты вводишь любой параметр и тут же получаешь все остальные.

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    StaticText1: TStaticText;
    StaticText2: TStaticText;
    StaticText3: TStaticText;
    StaticText4: TStaticText;
    procedure EditsChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var
Radius:extended;
FlagErr:boolean;       //true- ошибка ввода

//здесь ты должен написать функции вычисления радиуса
//по длине окр, площади, радиуса
//в последнем случае смысл функции (вычислить радиус по радиусу)
// в том что проверяется корректность ввода
procedure CalcRadius_1(Dlina_Okr:string; out Radius:extended; out FlagErr);
begin
    try
    Radius:=StrToFloat(s)/2/Pi;
    FlagErr:=false;
    except
    FlagErr:=true;
    end
end;

//здесь ты должен написать набор функций
//вычисляющий длину окр, площадь по радиусу
function CalcDlina_okr(Radius:extended; out FlagErr):string;
begin
    try
    Result:=Radius*2*Pi;
    FlagErr:=false
    except
    FlagErr:=true
    end
end;


//это обработчик событий изменения текстовой строки окна
//он общий на все окна
procedure TForm1.EditsChange(Sender: TObject);
begin
//этап 1 вычисляем радиус окружности
if Edit1.Focused then CalcRadius_1(Edit1.Text,Radius,FlagErr)
else
    if Edit2.Focused then CalcRadius_2(Edit1.Text,Radius,FlagErr)
    //и тд по всем окнам

//этап 2 вычисляем по радиусу остальные параметры
//если не было ошибки
if not FlagErr then
    begin
    if not Edit1.Focused then
        Edit1.Text:=CalcDlina_Okr(Radius,FlagErr);
    if not Edit2.Focused then
        Edit2.Text:=CalcSquare_Okr(Radius,FlagErr);
    //и тд по всем окнам
    end;
//этап 3 очищаем окна если произошла ошибка ввода или вычислений
if FlagErr then
    begin
    if not Edit1.Focused then
        Edit1.Text:='';
    if not Edit2.Focused then
        Edit2.Text:='';
    //и тд по всем окнам
    end;
end;




end.

Последний раз редактировалось chainik, 22.10.2011 в 19:03.
Ответить с цитированием
  #5  
Старый 22.10.2011, 20:29
cyber922 cyber922 вне форума
Новичок
 
Регистрация: 07.10.2011
Сообщения: 77
Версия Delphi: Turbo Delphi 20
Репутация: 10
По умолчанию

Цитата:
Сообщение от Bargest
1) Устанавливаем делфи.
2) Открываем делфи.
3) Кладем на форму все нужные компоненты.
4) По событиям кнопок ставим нужный код.


Cспасибо)) Хоть какие то наметки, с чего начать))))))
Ответить с цитированием
  #6  
Старый 22.10.2011, 20:53
cyber922 cyber922 вне форума
Новичок
 
Регистрация: 07.10.2011
Сообщения: 77
Версия Delphi: Turbo Delphi 20
Репутация: 10
По умолчанию

Цитата:
Сообщение от chainik
вот заготовка такого калькулятора. Полностью не пишу специально.
думай сам.
Не тестировал. Это тоже твоя забота.
Суть в том что при вводе в любое окно происходит вычисление во всех остальных окнах. ТЕ ты вводишь любой параметр и тут же получаешь все остальные.

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    StaticText1: TStaticText;
    StaticText2: TStaticText;
    StaticText3: TStaticText;
    StaticText4: TStaticText;
    procedure EditsChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var
Radius:extended;
FlagErr:boolean;       //true- ошибка ввода

//здесь ты должен написать функции вычисления радиуса
//по длине окр, площади, радиуса
//в последнем случае смысл функции (вычислить радиус по радиусу)
// в том что проверяется корректность ввода
procedure CalcRadius_1(Dlina_Okr:string; out Radius:extended; out FlagErr);
begin
    try
    Radius:=StrToFloat(s)/2/Pi;
    FlagErr:=false;
    except
    FlagErr:=true;
    end
end;

//здесь ты должен написать набор функций
//вычисляющий длину окр, площадь по радиусу
function CalcDlina_okr(Radius:extended; out FlagErr):string;
begin
    try
    Result:=Radius*2*Pi;
    FlagErr:=false
    except
    FlagErr:=true
    end
end;


//это обработчик событий изменения текстовой строки окна
//он общий на все окна
procedure TForm1.EditsChange(Sender: TObject);
begin
//этап 1 вычисляем радиус окружности
if Edit1.Focused then CalcRadius_1(Edit1.Text,Radius,FlagErr)
else
    if Edit2.Focused then CalcRadius_2(Edit1.Text,Radius,FlagErr)
    //и тд по всем окнам

//этап 2 вычисляем по радиусу остальные параметры
//если не было ошибки
if not FlagErr then
    begin
    if not Edit1.Focused then
        Edit1.Text:=CalcDlina_Okr(Radius,FlagErr);
    if not Edit2.Focused then
        Edit2.Text:=CalcSquare_Okr(Radius,FlagErr);
    //и тд по всем окнам
    end;
//этап 3 очищаем окна если произошла ошибка ввода или вычислений
if FlagErr then
    begin
    if not Edit1.Focused then
        Edit1.Text:='';
    if not Edit2.Focused then
        Edit2.Text:='';
    //и тд по всем окнам
    end;
end;




end.
спасибо, хоть есть с чего начать)
Ответить с цитированием
  #7  
Старый 23.10.2011, 08:26
cyber922 cyber922 вне форума
Новичок
 
Регистрация: 07.10.2011
Сообщения: 77
Версия Delphi: Turbo Delphi 20
Репутация: 10
Плохо Вычисления

Цитата:
Сообщение от Bargest
1) Устанавливаем делфи.
2) Открываем делфи.
3) Кладем на форму все нужные компоненты.
4) По событиям кнопок ставим нужный код.


Я извиняюсь конечно, но ты видать учился, в институте,где у тебя была возможность в любой момент у преподавателей спросить, узнать о том, как делать, и как делать правильно, а у меня нет такой возможности, поскольку я учусь ДИСТАНИОННО и помочь, рассказать, показать по близости мне НЕКОМУ, в силу своих обстоятельств... Потому и собираю информацию по кусочкам отовсюду!
А то, что вы написали Выше, я думаю совсем не к месту.
С уважением cyber922
Ответить с цитированием
  #8  
Старый 23.10.2011, 09:38
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от cyber922
Я извиняюсь конечно, но ты видать учился, в институте,где у тебя была возможность в любой момент у преподавателей спросить, узнать о том, как делать, и как делать правильно, а у меня нет такой возможности, поскольку я учусь ДИСТАНИОННО и помочь, рассказать, показать по близости мне НЕКОМУ, в силу своих обстоятельств... Потому и собираю информацию по кусочкам отовсюду!
А то, что вы написали Выше, я думаю совсем не к месту.
С уважением cyber922
Захочешь - найдешь повод, не захочешь - найдешь причину.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #9  
Старый 23.10.2011, 14:58
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

cyber922
Да, я учился в институте. И так сложилось, что ни разу не подходил к преподам с вопросами, все делал сам. И на форумах задавал вопросы не в виде "Как написать программу чтоб вот тыкаю на кнопку и она мне все посчитала" а в виде "Вот сделал так-то, не работает, где ошибка?", в результате чего без проблем научился программировть. Так что не надо пытаться вызвать чью-то жалость, все равно мало кто будет писать программу за вас.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 23.10.2011 в 15:01.
Ответить с цитированием
  #10  
Старый 23.10.2011, 15:56
chainik chainik вне форума
Начинающий
 
Регистрация: 30.06.2008
Сообщения: 140
Репутация: 8882
По умолчанию

А я вот вообще не учился на программера.
Тогда еще и не слышали о персоналках и тому подобное.
Я радиоинженер
А в программирование пошел сам.
Сам ставил себе задачи, сам их решал и сам на них учился.
Помни простую истину
Получить занния в Интернете нельзя.
В Интернете их можно только нахвататься.
Знания может дать только Концентрированный Накопитель Информации Гутенберга (сокращенно К.Н.И.Г.А)

Здесь отлаженная задача.
Но ты хоть РАЗБЕРИСЬ в ней!!!!!
Вложения
Тип файла: zip Tmp6.zip (208.6 Кбайт, 4 просмотров)
Ответить с цитированием
  #11  
Старый 23.10.2011, 17:18
cyber922 cyber922 вне форума
Новичок
 
Регистрация: 07.10.2011
Сообщения: 77
Версия Delphi: Turbo Delphi 20
Репутация: 10
Радость Вычисления

Цитата:
Сообщение от chainik
А я вот вообще не учился на программера.
Тогда еще и не слышали о персоналках и тому подобное.
Я радиоинженер
А в программирование пошел сам.
Сам ставил себе задачи, сам их решал и сам на них учился.
Помни простую истину
Получить занния в Интернете нельзя.
В Интернете их можно только нахвататься.
Знания может дать только Концентрированный Накопитель Информации Гутенберга (сокращенно К.Н.И.Г.А)

Здесь отлаженная задача.
Но ты хоть РАЗБЕРИСЬ в ней!!!!!
Блин, по коду я понимаю что и как сделано, а в самом начале я не могу собрать все мысли в одну кучу
паскаль делал почти всё сам даже ссессию сдал по нему на 4) А вот delphi чёт ваще не поддается. ТОчнее поддается, но не так как требует препод......
Когда имеется возможность провести занятия с преподователем, у меня всё хорошо получается, а все модули котоорые она даёт и книги, сижу зазубриваю..... Но вот с практикой самому проблемы...
Если чё, прошу прощения))

Последний раз редактировалось cyber922, 23.10.2011 в 22:47.
Ответить с цитированием
  #12  
Старый 23.10.2011, 17:37
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Все очень просто. Так сложилось, что на данном форуме крайне негативно относятся к темам содержащим только текст задания. Вот если-бы к этому задаю вы приложили свой код и описали проблему, тогда вы и ответ и помощь получили почти наверняка без лишне полемики. Есть альтернативные форумы, куда вы можете обратится, там вам могут дать ответ в виде готовой программы, но вот ценность подобных ответов нулевая, т.к. сами вы ничему так и не научитесь.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #13  
Старый 23.10.2011, 20:52
chainik chainik вне форума
Начинающий
 
Регистрация: 30.06.2008
Сообщения: 140
Репутация: 8882
По умолчанию

мне показалось что ты все таки не совсем халявщик.
Если будут вопросы по проге- пиши постараюсь ответить.
Хочешь разобраться-только приветствую.
А что до Паскаля- по здесь действительно есть проблемы.
Я начинал с ТурбоПаскаля 4.5 (DOS) и последующий переход на Delphi
сопровождался определенными проблемами.
Дело в том что обычный код представляет собой последовательность операторов.
И программист к этому быстро привыкает.
В Delphi все не так. Это интерактивная система и построена она по совсем другим принципам.
Здесь нет какого- то единого текста программы. Вместо этого есть объхекты и описание их свойств.
Как будто единый текст распался на множество кусков, казалось бы не связанных друг сдругом.
На самом деле это только так кажется и Delphi очень многое делает за нас, соединяя
разрозненные свойства в единое целое.
И к этой системе надо привыкнуть.

Желаю успеха

Последний раз редактировалось chainik, 23.10.2011 в 21:13.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:46.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025