Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по курсу.docx
Скачиваний:
107
Добавлен:
24.02.2016
Размер:
2.8 Mб
Скачать

2.4. Наша первая программа реализует линейный алгоритм

Наиболее часто в практике программирования требуется организовать расчет некоторого арифметического выражения при различных исходных данных. Например, такого

+ x

z =

Разработка алгоритма обычно начинается с написания схемы. Проду-мывается оптимальная стратегия вычислений, при которой, например, отсутствуют повторения. При написании алгоритма рекомендуется также переменным присваивать по возможности те же имена, которые фигурируют в заданном арифметическом выражении. Для того, чтобы не было "длинных" операторов исходное выражение полезно разбить на ряд более простых. В нашем случае предлагается схема вычислений, представленная на рис. 2.2. Она содержит ввод и вывод исходных данных, линейный вычислительный

V2 2

. _ ^ _ ^ x + m

вычисляется только один раз. Введя переменные a,b,c мы разбили сложное

выражение на ряд простых.

При разработке программы, реализующей этот алгоритм, кроме уже известного нам оператора присваивания необходимо знать, как записать операторы ввода и вывода данных. В языке Паскаль эти операторы выглядят таким образом:

Read(Lr,x,m);

Writeln(Lw,'x=',x:6:2,' m=',m:2); Writeln(Lw,'z=',z:8:3);

x, m

I

x, m

a = V x2 + m2

b=tg2x

c=xm+1

z=b/a+c-a

z

Здесь Lr - логическое имя файла, на котором помещены исходные значения x,y, Lw - логическое имя файла, на который по­мещается результат. Набор символов, за­ключенных в апострофы (например, ' x='), называется строковой константой. При вы­воде строковая константа записывается в файл без изменений. Запись z:8:3 означает, что, например, действительное число -0.254-10 , содержащееся в ячейке z, будет преобразовано и 8 позиций будет отведено под всё число, а 3 позиции под его дробную часть. Таким образом, результат выполнения последнего оператора будет z= -25.400. За­метим, что при такой организации ввода, исходные данные обычно предварительно помещают в некоторый текстовый файл, представляющий последовательность из строк символов. Результат также выводят в текстовый файл. Такие файлы можно гото­вить, обрабатывать и печатать с помощью различных текстовых редакторов, в частно­сти в окне текста Delphi, используя меню

File.

Рис.2.2.

В Delphi чаще всего ввод (вывод) небольшого количества данных про­изводят из так называемых окон однострочных редакторов ( компонент Tedit) или табличных строчных редакторов ( компонент TstringGrid).

Вывод большого числа данных обычно осуществляется в окно много­строчного редактора (компонент TMemo). Окна этих редакторов и пояснения к ним размещаются на Window-окно программы по усмотрению программи­ста. В окна строчных редакторов во время активности программы может по­мещаться любой набор символов, в частности запись чисел, которые необхо­димо ввести. Каждому окну редакторов Tedit и TstringGrid, помещенному на форму в программе в разделе Type вводится ячейка памяти типа String, в ко­торой содержится строка символов, отражаемая в окне.

Для того, чтобы, например, в окне редактора Editl было помещено чис­ло 28.64 в программе достаточно написать Edit1.Text:='28,64'. И обратно, если во время активности программы в окно Edit1 с помощью клавиатуры, будет помещено число 3,14, то оно окажется в ячейке Edit1.Text (вместо пре­дыдущего 28.64).

Для реализации нашей программы на форму поместим два окна Edit1 (под x), Edit2 (под m). Ввиду того, что ввод данных происходит в виде строки, а переменные x, m представляют числа необходимо воспользоваться функ­циями перевода строковой записи числа в действительное или целое его представление:

x:=StrToFloat(Edit1.Text);

m :=StrToInt(Edit2.Text);

Для вывода результатов поместим на форму окно многострочного ре­дактора Memo1. Окно многострочного редактора (компонент IMemo) пред­назначено только для вывода и представляет собой отображение в окне есте­ственной последовательности строк. Для того, чтобы отобразить новую стро­ку, ее необходимо добавить в окно с помощью оператора Memo1.Lines.Add('строка'). Если нужно вывести содержимое действитель­ных или целых переменных их необходимо предварительно преобразовать в строковое представление. Для этого используются функции

FloatToStrF^fffixed^);

// 6 позиций под все число, 2 десятичных знака IntToStr(m); // все цифры числа m

Теперь мы готовы написать нашу первую программу. Для этого помес­тим на форму "кнопку", описываемую компонентом Button1 и сделаем на ней двойной щелчок мышью. После этого в открывшемся окне текстов набе­рем следующую программу:

Procedure TForm1.Button1Click(Sender:Tobject);

// Имя события щелчек мышью по кнопке Button1 вставляет автоматически Var b,c:extended; // описание типов

m:integer; // всех используемых переменных

Begin

х:=StrToFloat(Edit1.Text); m:=StrToInt(Edit2.Text);

Memo1.Lines.Add(,х=,+FloatTostrF(x,fffixed,6,2)+, m='+IntTostr(m));

a:=sqrt(sqr(x)+m*m);

b:=sqr(sin(x)/cos(x));

c:=exp((m+1)*ln(x));

z:=b/a+c*a;

Memo1.Lines.Add('полученный результат');

Memo1.Lines.Add('z='+FloatTostrF(z,fffixed,8,3));

End.

Заметим, что в строке после сдвоенного // пишется произвольный ком­ментарий, который служит для облегчения понимания программы.

После набора программы ее необходимо записать в свой каталог. Для организации нового каталога можно воспользоваться одной из программ для работы с файлами. Например, войдем в программу Far, выберем рабочий

диск, нажмем клавишу F7 и в появившемся окне наберем имя каталога "LAB1N05" (Лаб.№1 вариант 5). В меню "File" Delphi выберем "Save Project As". После открытия своего каталога нажмем "Save Project As" и сохраним с указанием имени предлагаемые файлы Project1 и Unit1. На данном этапе можно присвоить этим программам оригинальные имена, например, PROGRAM1 и LabRab1 соответственно. При записи нового имени модуля не забудьте предварительно заменить его так же в заголовке: Unit LabRab1.

После сохранения сделаем запуск программы, для чего в меню "Run" выберем команду "Run". Если все сделано верно, после компиляции на экра­не высветится Window - окно вашей первой программы, готовой к выполне­нию расчетов. В окнах х и m наберите исходные данные, после чего щелкните мышью на кнопке. В окне Memo появятся результаты расчета вашей про­граммы.

При обнаружении ошибок, в процессе выполнения, переведите про­грамму из режима выполнения Running в режим редактирования, для чего выберите " Run Reset" в меню " Run" . Исправьте ошибки, запишите исправ­ленный вариант, нажав "Save" в меню "File" и запустите программу снова.

Для получения распечатки программы в меню " File" выберите " Print" , установите запрaшиваемые параметры и нажмите "OK".

ЛЕКЦИЯ 3. БАЗОВЫЕ ЭЛЕМЕНТЫ ЯЗЫКА ПАСКАЛЬ