Вопросы новичка. Я раньеш писал на VB, сейчас перехожу на паскаль.
, Возникает много вопроссов.., не предлагайте мне читать учебники по так
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.37] |
|
|
| Страницы: (3) [1] 2 3 все ( Перейти к последнему сообщению ) |
Вопросы новичка. Я раньеш писал на VB, сейчас перехожу на паскаль.
, Возникает много вопроссов.., не предлагайте мне читать учебники по так
|
|
|
|
|
Вопросы новичка. Я раньеш писал на VB, сейчас перехожу на паскаль.
Возникает много вопросов.., не предлагайте мне читать учебники по таким вопросам, учебники у меня некоторые есть и сначала я гляну там, прежде чем задавать их. Встретился с простейшими проблемами, в VB не приходилось с ними сталкиваться. Начну с первого, дальше буду продолжать. Задача такова: нужно одно число разделить на другое Пытался я это в лазарусе сделать ![]() ![]() unit deng; {$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons, Menus, ActnList; . . . . . . . . . var MForm: TMForm; inf: Text; outf: Text; u, v, w : string;//ansistring; p, m: string; code1, code2: integer; uu, vv, ww: integer; pp, mm : integer; vr: integer; implementation { TMForm } . . . . . . . . . procedure TMForm.Button3Click(Sender: TObject); begin u := Edit1.text; w := Edit3.text; Val(u, uu, code1 ); Val(w, ww, code2 ); vv := uu / ww; Str(vv, v); Edit2.text := v; end; . . . . . . . . . initialization {$I deng.lrs} end. Происходит ошибка. Мотивипует он это так: deng.pas(111,14) Hint: use DIV instead to get an integer result deng.pas(111,18) Hint: Type size mismatch, possible loss of data / range check error deng.pas(111,14) Error: Incompatible types: got "Extended" expected "LongInt" deng.pas(189) Fatal: There were 1 errors compiling module, stopping DIV - не подходит, т. к. необходимо расчитать с сотыми (до сотых) Добавлено Цитата simsergey @ Мотивипует Я имел ввиду мативирует |
|
Сообщ.
#2
,
|
|
|
|
В результате деления получается дробное число. Используй переменную приемник вещественного типа: real, double, extended...
и не забывай про деление на 0. |
|
Сообщ.
#3
,
|
|
|
|
Програмка простенькая (пока ее пишу для себя)
Сказать пользователю программы вот это нельзя Баланс: 200 рублей Кол-во дней: 30 дней В день: 6.666666666666667E+000 рублей Надо хотяб округлить до копеек... Например: 6.67 рублей |
|
Сообщ.
#4
,
|
|
|
|
Говорили же — Паскаль сначала изучите
…Str(X:Width:Decimals; var S:String) |
|
Сообщ.
#5
,
|
|
|
|
Цитата ZenIA @ Str(X:Width:Decimals; var S:String) Приведи пример пожалуйста... |
|
Сообщ.
#6
,
|
|
|
|
Цитата simsergey @ не предлагайте мне читать учебники по таким вопросам, учебники у меня некоторые есть и сначала я гляну там, прежде чем задавать их. Добавлено намек ясен? |
|
Сообщ.
#7
,
|
|
|
|
Значит, так...
Цитата e-moe @ намек ясен? Ясен... Не нашел я этого в учебниках.Цитата ZenIA @ Str(X:Width:Decimals; var S:String) Я догадался, о чем речь... В моем случаи это наверно выглядит так ![]() ![]() u := Edit1.text; w := Edit3.text; Val(u, uu, code1 ); Val(w, ww, code2 ); vv := uu / ww; Str(vv:1:2, v); Edit2.text := v; Переменные vv, uu, ww - double. Да, так все работает нормально... |
|
Сообщ.
#8
,
|
|
|
|
Цитата simsergey @ Не нашел я этого в учебниках. Значит, читай другие учебники + Руководство по языку |
|
Сообщ.
#9
,
|
|
|
|
Цитата volvo877 @ Значит, читай другие учебники + Руководство по языку Спасибо, гляну А как выполнить действие при выходе из проги? Добавлено Цитата volvo877 @ Чтобы получить ответ, нужно задать правильный вопрос. Но чтобы правильно задать вопрос, нужно знать большую часть ответа... Но если знаешь ответ, зачем задавать вопросс? |
|
Сообщ.
#10
,
|
|
|
|
???
Аварийно процедурой Halt, а корректно путем завершения главной процедуры (код между устанвками begin и end. — она в тексте стоит последняя) или выхода из нее командой Exit. Перед этим при необходимости освободить динамическую память, контексты дисплея, уничтожить объекты Виндовс, прервать сеанс связи и т.д. u := Edit1.text; w := Edit3.text; Val(u, uu, code1 ); Val(w, ww, code2 ); vv := uu / ww; Str(vv:1:2, v); Edit2.text := v; А для рубликов циферок не маловато ли??? Ps. А хелпов у Вас что нету? |
|
Сообщ.
#11
,
|
|
|
|
Цитата ZenIA @ А для рубликов циферок не маловато ли??? На самом деле я про гривни... Цитата ZenIA @ у Вас Пожалуйста, давайте перейдем на ТЫ, а то мне не по себе как-то... Добавлено Цитата ZenIA @ Аварийно процедурой Halt, а корректно путем завершения главной процедуры (код между устанвками begin и end. — она в тексте стоит последняя) или выхода из нее командой Exit. При нажатии на красный крестик (справо вверху) необходим выполнить пару действи, перед закрытием программы |
|
Сообщ.
#12
,
|
|
|
|
Лазарусом не пользуюсь, но по аналогии с Дельфи должно быть нечто вроде OnCloseQuery формы?
|
|
Сообщ.
#13
,
|
|
|
|
Или, на пример, если не поддерживаются события, перехватив сообщение wm_close главного окна
![]() ![]() type TForm1 = class(TForm) procedure wmClose(var I);message wm_close;{Обработчик сообщения wm_close} end; procedure TForm1.wmClose(var I); begin {Щас чего-то натворю !!!!!} MessageBox(Handle,'Программа закрывается!','До свидания',0); Close; end; end. Завершение программы зависит от объектной и операционной систем… Ну поскольку, похоже, работаете с объектной системой Дельфи под Винду (говорил же, берите сразу Дельфу) — значит надо разрывать главный цикл программы ОДНИМ ИЗ ПРИВЕДЕННЫХ СПОСОБОВ: 1. Закрыть приложение Application.Terminate; 2. Разрушить главное окно DestroyWindow(Handle) или Close 3. Послать всем окнам сообщение wm_close путем вызова PostQuitMessage(0) или, что менее принято, закрыв процесс функциями ExitProcess или TerminateProcess. Цитата Пожалуйста, давайте перейдем на ТЫ, а то мне не по себе как-то... Обращайтесь ко мне как хотите, а у меня вежливая форма обращения — это профессиональная привычка. |
|
Сообщ.
#14
,
|
|
|
|
Ладно, будем подумать...
Добавлено Цитата ZenIA @ MessageBox(Handle,'Программа закрывается!','До свидания',0); А как MessageBox будет в лазарусе... |
|
Сообщ.
#15
,
|
|
|
|
Наверное, пока вопрос закрыт.
Буду искать другой компилятор и учить другой язык. Спасибо за ВАШИ ответы... Добавлено Цитата ZenIA @ говорил же, берите сразу Дельфу Надо будет поискать! |