Для тех ,кто решил зарегистрироваться на форуме «Беседка» !
Категорически запрещена регистрация  с одноразового и временного e-mail !Такие пользователи будут отправляться в бан без объяснения причин.
После регистрации необходимо активировать свою учетную запись .Если Вы в почте не обнаружили письмо с активацией рекомендуется проверить папку «Спам».
С уважением
 Администрация форума

Автор Тема: Язык Pascal в среде Delphi  (Прочитано 42055 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Olga

  • *
  • Сообщений: 236
  • Пол: Женский
  • Имя : Ольга

Re: Язык Pascal в среде Delphi 7
« Ответ #45 : 10 Января 2013, 18:49 »
Пока с калькулятором оставим.У меня сразу вызвало вопросы со второй лаб.Сразу начались ошибки
Цитата
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure Edit1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
const
  U=20;
  R=14;
  X=2;
  t=17;
  Z=0.828;

var
  Form1: TForm1;
  A:Real;
  B:Real;

implementation

{$R *.dfm}

procedure TForm1.Edit1Change(Sender: TObject);
begin
 Edit1.Text:=StrToConst(U=20);
end;


end.
И вот  ошибку выдает.Как мне вывести Const в Edit.Text?

Оффлайн технарь

  • *
  • Сообщений: 12704
  • Пол: Мужской
  • Имя : Владимир

Re: Язык Pascal в среде Delphi 7
« Ответ #46 : 10 Января 2013, 20:43 »
У меня авария - вчера систему откатывал, теперь без паскаля сижу. Но это временно...

Если я ничего не путаю ошибка здесь

U=20;
  R=14;
  X=2;
  t=17;
  Z=0.828;

Правильно по моему так, но у себя проверить пока не могу...
U:=20;
  R:=14;
  X:=2;
  t:=17;
  Z:=0.828;

Оффлайн технарь

  • *
  • Сообщений: 12704
  • Пол: Мужской
  • Имя : Владимир

Re: Язык Pascal в среде Delphi 7
« Ответ #47 : 10 Января 2013, 20:45 »
И в коде процедуры ошибка

procedure TForm1.Edit1Change(Sender: TObject);
begin
 Edit1.Text:=StrToConst(U=20);
end;

нужно так

procedure TForm1.Edit1Change(Sender: TObject);
begin
 Edit1.Text:=IntToStr(U);
end;

Цитата
Как мне вывести Const в Edit.Text?
Константы инициируются при объявлении и в дальнейшем не меняются (на то они и константы). Обращаются к ним по их именам.

Функции StrToConst скорее всего не существует (да и направление желаемого преобразования выбрано не верно). В данном случае нужно вероятно применить функцию IntToStr
А в целом - тип константы определяется по её форме на момент объявления.
В вашем примере константы U, R, x и t являются Int, а константа Z - Real;

Оффлайн Olga

  • *
  • Сообщений: 236
  • Пол: Женский
  • Имя : Ольга

Re: Язык Pascal в среде Delphi 7
« Ответ #48 : 10 Января 2013, 21:47 »
Вот что я сотворила на ваш суд-критику
(открыть/скрыть)
[attach=1]

Оффлайн Olga

  • *
  • Сообщений: 236
  • Пол: Женский
  • Имя : Ольга

Re: Язык Pascal в среде Delphi 7
« Ответ #49 : 10 Января 2013, 22:28 »
Хочется решить теперь третью лаб.
 Содержание задания.
   Изменить Заголовок формы.  Заголовок должен содержать группу, ФИО студента,  вариант задания.
   Изменить цвет формы и размер шрифта (произвольно).
   Используя компонент OleContainer, отобразить аналитический вид функции, оформленный в MS Equation 3.0 . 
   Значения X и Y ввести произвольно.
   Для реализации алгоритма использовать оператор выбора case.
   При не выполнении области определения функции выдать на форму соответствующее сообщение.

Требования к выполнению задания
в тетради необходимо:

   Нарисовать блок-схему алгоритма.
   Записать текст обработчика (программы).

   Для выполнения данной лабораторной работы рекомендуется использовать компоненты:  OleContainer, Button, Edit, Label .2.   F = Min(U, x),
                                       
[attach=1]





Оффлайн технарь

  • *
  • Сообщений: 12704
  • Пол: Мужской
  • Имя : Владимир

Re: Язык Pascal в среде Delphi 7
« Ответ #50 : 10 Января 2013, 23:23 »
U=20;  R=14;  X=2;  t=17;  z=0.828;
Получается, что у вас было правильно. Вот я блин, советчик.  :smile:


 Для реализации алгоритма использовать оператор выбора case.
Я на этом месте тогда и споткнулся. Не понял, в каком месте в данном задании этот оператор нужно применить.

Оффлайн Olga

  • *
  • Сообщений: 236
  • Пол: Женский
  • Имя : Ольга

Re: Язык Pascal в среде Delphi 7
« Ответ #51 : 11 Января 2013, 00:19 »
  отобразить аналитический вид функции, оформленный в MS Equation 3.0 . 
А это вот как сделать?

Оффлайн технарь

  • *
  • Сообщений: 12704
  • Пол: Мужской
  • Имя : Владимир

Re: Язык Pascal в среде Delphi 7
« Ответ #52 : 11 Января 2013, 01:36 »
На память уже не помню, а делфи поставить пока не могу - куда то дистрибутив пнул, нужно заново качать.

Оффлайн Olga

  • *
  • Сообщений: 236
  • Пол: Женский
  • Имя : Ольга

Re: Язык Pascal в среде Delphi 7
« Ответ #53 : 11 Января 2013, 01:52 »
Я вот нашла,только не знаю как фигурную большую скобку сделать и как х в квадрате написать,пришлось написать х*х.

Оффлайн Olga

  • *
  • Сообщений: 236
  • Пол: Женский
  • Имя : Ольга

Re: Язык Pascal в среде Delphi 7
« Ответ #54 : 11 Января 2013, 18:01 »
Почитала про case,решила попробовать,насамое интересное ошибку выдает в другом месте
Извините, Вам не разрешено просматривать этот текст. Пожалуйста, войдите или зарегистрируйтесь.

А вот как программу писала
(открыть/скрыть)
Извините, Вам не разрешено просматривать этот текст. Пожалуйста, войдите или зарегистрируйтесь.

Оффлайн Olga

  • *
  • Сообщений: 236
  • Пол: Женский
  • Имя : Ольга

Re: Язык Pascal в среде Delphi 7
« Ответ #55 : 12 Января 2013, 13:42 »
Щас разбираюсь с case,но вот то что сделала и выложила-неверно,надо все переделывать  :cry:

Оффлайн lexus

  • *
  • Сообщений: 1527
  • Пол: Мужской
  • Статус : ути-пути

Re: Язык Pascal в среде Delphi 7
« Ответ #56 : 12 Января 2013, 18:23 »
насамое интересное ошибку выдает в другом месте
Так пишет, что не знает таких идентификаторов. Olga, так надо при написании использовать букву q(Ку), а не g, и тогда компилятор должен распознать имя.

Щас разбираюсь с case
Olga, кэйс немногим сложнее, чем конструкция if или цикл. Там главное в вариантах выбора не забыть в конце вписать break, иначе пойдёт перебирать все последующие варианты.  (((

Оффлайн lexus

  • *
  • Сообщений: 1527
  • Пол: Мужской
  • Статус : ути-пути

Re: Язык Pascal в среде Delphi 7
« Ответ #57 : 12 Января 2013, 18:29 »
Константы инициируются при объявлении и в дальнейшем не меняются (на то они и константы).
Там есть ещё понятие типизированных констант. Это нечто промежуточное между обычными переменными и обычными константами. Можно рассматривать, как переменные с присвоенными начальными значениями, а можно, как константы, значения которых можно менять(!). Правда в отличие от переменных в использовании  типизированных констант есть некоторые ограничения, в частности касающиеся передачи их в функцию в качестве аргумента по ссылке.  ink

Оффлайн Olga

  • *
  • Сообщений: 236
  • Пол: Женский
  • Имя : Ольга

Re: Язык Pascal в среде Delphi 7
« Ответ #58 : 13 Января 2013, 17:25 »
кэйс немногим сложнее, чем конструкция if или цикл. Там главное в вариантах выбора не забыть в конце вписать break, иначе пойдёт перебирать все последующие варианты
Если можно,то давай поподробнее,дело в том,что у меня не константы,а переменные.Вот написала код программы,но опять у меня вылезает ошибка(что то с типом?)
(открыть/скрыть)
Извините, Вам не разрешено просматривать этот текст. Пожалуйста, войдите или зарегистрируйтесь.




Оффлайн lexus

  • *
  • Сообщений: 1527
  • Пол: Мужской
  • Статус : ути-пути

Re: Язык Pascal в среде Delphi 7
« Ответ #59 : 13 Января 2013, 18:32 »
Olga, я там в своём прошлом посте насчёт обязательности break немного попутал, это в С++ в операторе switch и в большинстве скриптовых языков он необходим, а в делфях case автоматически будет ограничиваться единственным вариантом.

Теперь об ошибках, на что ругается и о case вообще. Во-первых в любом случае у Вас оператор case не закрыт своим end (есть только энд от TForm1.Button1Click, ну или наоборот). Это раз. Во-вторых, у case  существует определённый синтаксис и нельзя его нарушать.

Почитайте справку к делфям, там синтаксис конструкции описан (у меня Делфи 6, не думаю что в 7-ой версии сильно отличается).
Цитата
case selectorExpression of

  caseList1: statement1;
  ...
  caseListn: statementn;
else
  statements;
end

В-третьих, и это одно из самых важных, на selectorExpression и caseListn накладываются вполне определённые ограничения. В частности, для Делфи 6  точно selectorExpression  должен иметь порядковый тип (ordinal, что это такое смотрите справку). Это может быть, к примеру, целый тип или символьный, а вот тип строки использовать уже нельзя.

У Вас выше все caseListn представляют целые непрерывные интервалы (континуум), в то время, как должно быть конкретное значение. Ну и даже из логики и невзирая на ограничения не совсем понятно, что это такое:
case x,y


Если судить о постановке задачи по коду, в Вашем случае лучше всего использовать обычный разветвлённый оператор if.