Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Sitkin_Informatika_Programmirovanie_v_DELPHI.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
600.56 Кб
Скачать

Задание

Дополнить проекты предыдущей лабораторной работы кон-струкциямиконтроля синтаксисавводимых данных.

Содержаниеотчёта

  • цельработыиполнаяформулировказадания;

  • блок-схемыалгоритмовконструкцийконтролясинтаксиса;

  • текстымодулейдополненныхпроектов;

  • примеры работы приложений с указанием компонентов приналичиивполяхвводаданныхссинтаксическимиошибками;

  • выводыпоработе.

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

Контрольныевопросы

  1. Скакойцельюследуетконтролироватьвводимыеданные?

  2. Почему, помимо контроля вводимого с клавиатуры символа на до-пустимость, следует предусматривать и другой контроль, например,дополнятьимпроцедурусвычислениямиилиблокироватькнопку?

  3. По какой причине конструкции контроля целесообразно оформлятьв виде собственных (пользовательских) подпрограмм? Почему ещёцелесообразнееэтиподпрограммыпоместитьвсобственныймодуль?

Лабораторнаяработа№7

Алгоритмыповторений

Цель работыприобретение умений разработки и программнойреализациициклических алгоритмов.

Повторяющийся(циклический)алгоритмалгоритм, в которомрезультат достигается многократным выполнением одних и тех жедействий. Однократный проход таких действий называютитерацией.В программировании возможность реализовать циклические алгорит-мыобеспечивается операторами цикла.

Операторцикласпредварительнымусловием

Этоуниверсальныйоператорцикла,онимеетследующийвид

whileусловиеdoоператорS

гдеwhileиdoслужебные слова;условиепеременная или выра-жение логического типа;операторSоператор, называемый теломцикла.Блок-схемаалгоритма,реализуемогооператоромциклас

предусловием,представленанарис.7.1.Перед

операторS

условиеда

Рис.7.1

нет

каждойитерациейопределяетсязначение

условия, пока оно принимает значениеTrue,выполняетсяоператорS. ОператорSможетбыть составным. Т.е. если необходимо, чтобы вциклевыполнялосьнесколькооператоров,тоих необходимо заключить в операторные скоб-киbeginиend.Еслиусловиепринимает

значениеFalseссамогоначала,тотелоцикланевыполнитсяниразу.

Пример7.1

Разработаемалгоритмвычислениязначенийфункции

x2,

y

x,

x0

x0

дляаргументаxнапромежуткеотaдоbсшагомhиреализуемего.

Послевводалевойиправой

границдиапазонаaиbишагаприращенияh, аргументxдолженпоследовательнопринимать зна-

чения:a,a+h,a+2h,…,b.Длякаждого из этих значений вычис-ляется значение функцииyв за-висимости от условияx0 и, вме-сте с соответствующим ему зна-чениемаргументаx,выводитсянакаждойитерации.Послеэтого

значение аргументаxувеличива-ется на шагhи происходит воз-вращениекначалуцикла.Если

значениеxнепревысилоb,тоосуществляетсяследующаяите-рация, и всё повторяется, покаxнепревыситb.Довходавцикл

следуетзадатьначальноезначе-ниеаргументаx=a,откоторогов

цикле начнёт увеличиваться значениеx. Блок-схема алгоритма пред-ставленанарис.7.2,апример работыприложениянарис.7.3.

Реализуем разработанный алгоритм в проекте. Для ввода значе-нийa,bиhвынесем на форму три компонентаEdit, а для пояснений книмтриLabel. Для вывода результатов разместим на форме четвёр-тый компонентLabel, для которого следует установить значениеTrueсвойстваAutoSize(автоподбор размера по содержимому), т.к. заранеенеизвестно, сколько значений будет выведено в компонент, посколькуэто будет определяться введёнными пользователем размерами диапа-зонаишага.РасчётивыводзначенийсвяжемссобытиемButton1Click.

procedureTForm1.Button1Click(Sender:TObject);

vara,b,h,x,y:real;

begin

a:=StrToFloat(Edit1.Text);b:=StrToFloat(Edit2.Text);h:=StrToFloat(Edit3.Text);x:=a; //начальное значениехwhilex<=bdo

begin//началотелацикла

ifx<=0theny:=sqr(x)elsey:=x;Label4.Caption:=Label4.Caption+#13+

Рис.7.3

+'x=' +FloatToStr(x) +#9+'y='+FloatToStr(y);

вывод вLabelзначений предыдущей итерации + перевод строки и добавлениезначенийхиyтекущейитерации,т.е. накоплениетаблицыс каждойитерацией

x:=x+h;//увеличениезначенияхнашаг

end;//конецтелацикла

end;//конецпроцедуры

Вслучаевводапользователемh0илиabциклнесможетза-вершитьсяпроизойдёт«зацикливание»,чтонужнопредотвратить.