Вы находитесь на странице: 1из 10

Министерство науки и высшего образования Российской

Федерации

Федеральное государственное бюджетное образовательное


учреждение высшего образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ


УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра радиоэлектронных технологий и экологического


мониторинга (РЭТЭМ)

ОПЕРАТОР ЦИКЛА С ПРЕДУСЛОВИЕМ

отчет по лабораторной работе №6 по дисциплине


«Информационные технологии в управлении техносферной
безопасностью»

Выполнил: ст. гр. 229-1


___________Типсина А.А.
« » 2020 г.

Проверил: преп. каф. РЭТЭМ


Афонин К.Н.
« » 2020 г.

2020
1. Тема и цель работы
Цель работы: закрепление навыков программирования циклических
алгоритмов в интегрированной среде Lazarus.
Задачи работы:
- знакомство с операторами цикла while в программах в интегрированной
среде Lazarus;
- освоение приёмов программирования и отладки циклических алгоритмов с
предусловием в интегрированной среде Lazarus.
2. Индивидуальное задание
Вариант №19. Написать программу, которая выдаст ряд чисел по формуле £
2П Сд1].)!' Первый член ряда вычисляется при п = 1. Вычисление ряда
прекратить, когда очередное слагаемое по абсолютной величине будет
меньше 0.001. Вычислить сумму ряда.
3. Блок-схема алгоритма

Рисунок 3.1 – Алгоритм выполнения задания


4. Откомпилированный текст программы
unit Unit1;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Grids;

type

{ TForm1 }

TForm1 = class(TForm)

Button1: TButton;

Edit1: TEdit;

StringGrid1: TStringGrid;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

public

end;
var

Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);

begin

end;

procedure TForm1.Button1Click(Sender: TObject);

var

a,s,n :Real ;

begin

StringGrid1.ColCount := 2;

StringGrid1.Cells[0,0] := '0';

StringGrid1.Cells[0,1] := '0,75' ;

StringGrid1.Cells [1,0] := '1' ;

StringGrid1. Cells [1,1] := '0,25' ;

a:=1; // сумма s при n =2 и 3 при n=1 получаеться (1+1)/((2^1)*(1-1))=2/0 а на


ноль делить нельзя

n:=4 ;

s:=1 ;
while s>=0.001 do

begin

StringGrid1.ColCount:=StringGrid1.ColCount+1;

StringGrid1.Cells[StringGrid1.ColCount -1,0]:=
IntToStr(StringGrid1.ColCount-1);

s:=(n+1)/((exp(n*ln(2)))*(n-1)) ;

StringGrid1.Cells[StringGrid1.ColCount -1,1]:= FloatToStr(s) ;

a:=a+s;

n:=n+1 ;

end ;

Edit1.Text := FloatToStr(a)

end ;

end.
5. Ответы на контрольные вопросы

1) Цикл, который выполняется пока истинно некоторое условие, указанное


перед его началом

2) Может

3) а) Бесконечно

б) Ни разу

4) for используют в том случае, если число проходов цикла известно


while когда количество проходов цикла не известно

5) Для выхода из цикла предусмотрена процедура break

6) Writeln

7) a=10
6. Результаты выполнения программы

Рис.6.1 – Первичные результаты выполнения программы


7 Вывод
В результате проведённой работы закреплены навыки программирования
циклических алгоритмов в интегрированной среде Lazarus.
Выполнено:
- знакомство с операторами цикла while в программах в интегрированной
среде Lazarus;
- освоение приёмов программирования и отладки циклических алгоритмов с
предусловием в интегрированной среде Lazarus.