11538

Программирование циклических алгоритмов. Операторы организации циклов repeat, whyle, for языка Pascal

Лекция

Информатика, кибернетика и программирование

Программирование циклических алгоритмов Цель лабораторной работы: изучить простейшие средства отладки программ в среде DELPHI. Составить и отладить программу циклического алгоритма. Операторы организации циклов repeat whyle for языка Pascal Под циклом понимается...

Русский

2015-01-26

68.73 KB

44 чел.

Тема 3. Программирование циклических алгоритмов

Цель лабораторной работы: изучить простейшие средства отладки программ в среде DELPHI. Составить и отладить программу циклического алгоритма.

3.1. Операторы организации циклов repeat, whyle, for языка Pascal

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

Для организации повторений в языке Pascal предусмотрены три различных оператора цикла.

Оператор

  repeat

   <операторы>

  until<условие>;

организует повторение операторов, помещенных между ключевыми словами repeat и until, до тех пор, пока не выполнится <условие>=true, после чего управление передается следующему за циклом оператору.

Оператор

  While<условие>do begin

   <операторы>

      end;

организует повторение операторов, помещенных между begin и end, до тех пор, пока не выполнится <условие>=fulse. Заметим, что если <условие>=fulse при первом входе, то <операторы> не выполнятся ни разу, в отличие от repeat, в котором хотя бы один раз они выполнятся.

Оператор 

 for i:=i1 to i2 do begin

<операторы>

   end;

организует повторение операторов при нарастающем изменении переменной цикла i от начального значения i1 до конечного i2 с шагом “единица”. Заметим, что если i2>i1, то <операторы> не выполнятся ни разу. Модификация оператора for i:=i2 downto i1 do begin <операторы> end  организует повторения при убывающем изменении i на единицу.

3.2. Средства отладки программ в DELPHI

Практически в каждой вновь написанной программе после запуска обнаруживаются ошибки.

Ошибки первого уровня (ошибки компиляции) связаны с неправильной записью операторов (орфографические, синтаксические). При обнаружении ошибки компилятор DELPHI останавливается напротив первого оператора, в котором обнаружена ошибка. В нижней части экрана появляется текстовое окно, содержащее сведения обо всех ошибках найденных в проекте. Каждая строка этого окна содержит имя файла, в котором найдена ошибка, номер строки с ошибкой и характер ошибки. Для быстрого перехода к интересующей ошибке необходимо дважды щелкнуть на строке с ее описанием. Для получения более полной информации о характере ошибки необходимо обратится к HELP нажатием клавиши F1. Следует обратить внимание на то, что одна ошибка может повлечь за собой другие, которые исчезнут при ее исправлении. Поэтому следует исправлять ошибки последовательно, сверху вниз и, после исправления каждой ошибки компилировать программу снова.

Ошибки второго уровня (ошибки выполнения) связаны с ошибками выбранного алгоритма решения или с неправильной программной реализацией алгоритма. Эти ошибки проявляются в том, что результат расчета оказывается неверным либо происходит переполнение, деление на ноль и др. Поэтому перед использованием отлаженной программы ее надо протестировать, т.е. сделать просчеты при таких комбинациях исходных данных, для которых заранее известен результат. Если тестовые расчеты указывают на ошибку, то для ее поиска следует использовать встроенные средства отладки среды DELPHI.

 В простейшем случае для локализации места ошибки рекомендуется поступать следующим образом. В окне редактирования текста установить курсор в строке перед подозрительным участком и нажать клавишу F4 (выполнение до курсора). Выполнение программы будет остановлено на строке, содержащей курсор. Теперь можно увидеть, чему равно значение интересующих переменных. Для этого можно поместить на нужную переменную курсор (на экране будет высвечено ее значение) либо нажать Ctrl-F7 и в появившимся диалоговом окне указать интересующую переменную (с помощью данного окна можно также изменить значение переменной во время выполнения программы). Нажимая клавишу F7 (пошаговое выполнение), можно построчно выполнять программу, контролируя изменение тех или иных переменных и правильность вычислений. Если курсор находится внутри цикла, то после нажатия F4 расчет останавливается после одного выполнения тела цикла. Для продолжения расчетов следует нажать <Run> меню Run.

3.3. Порядок выполнения задания

 Задание: написать и отладить программу, которая выводит таблицу значений функции S(x) для х изменяющихся в интервале от X1 до X2 c шагом h.

     

Панель диалога представлена на рис.3.1.

Текст программы приведен ниже.

Рис. 3.1

unit tema3;

interface

uses

 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

 StdCtrls, ExtCtrls;

type

 TForm1 = class(TForm)

   Memo1: TMemo;

   Button1: TButton;

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   Edit1: TEdit;

   Edit2: TEdit;

   Edit3: TEdit;

   Edit4: TEdit;

   procedure FormCreate(Sender: TObject);

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

begin

 Edit1.text:='0';

 Edit2.text:='2';

 Edit3.text:='5';

 Edit4.text:='0,25';

 Memo1.Clear;

 Memo1.Lines.Add('Результаты ст. гр.920201 Петрова И.И.');

end;

procedure TForm1.Button1Click(Sender: TObject);

var x1,x2,x,h,a,s:extended;

    N,k,c:integer;

begin

    

    x1:=StrToFloat(Edit4.Text);

       Memo1.Lines.Add(' x1='+Edit1.Text);

    x2:=StrToFloat(Edit2.Text);

       Memo1.Lines.Add(' x2='+Edit2.Text);

    N:=StrToInt(Edit3.Text);

       Memo1.Lines.Add(' N='+Edit1.Text);

    h:=StrToFloat(Edit4.Text);

       Memo1.Lines.Add(' h='+Edit4.Text);

       c:=-1;    x:=x1;

 repeat

        a:=1;    S:=1;

     for k:=1 to N do

          begin

             a:=c*a*x/k;

             s:=s+a;

          end;

    Memo1.Lines.Add('при x='+FloatToStrF(x,ffFixed,6,2)+'   сумма ='

                                  +FloatToStrF(s,ffFixed,6,2));

        x:=x+h;

 until x>x2;

end;

end.

 После отладки программы составьте тест (N=2, X1=0, X2=1, h=3), установите курсор на первый оператор (N:= ), нажмите клавишу F4. После этого нажимая клавишу F7, выполните пошаговую программу и проследите, как меняются все переменные в процессе выполнения.

3.4. Выполнение индивидуального задания

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

Индивидуальные задания

В заданиях с №1 по 15 (табл. 3.1.) необходимо вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) для x изменяющихся от xn до xk с шагом h=(xn-xk)/10. Близость значений S(x) и Y(x) во всем диапазоне значений x указывает на правильность вычисления S(x) и Y(x).

           Таблица 3.1

S(x)

n

Y(x)

1

2

3

4

5

6

1

0.1

1

16

2

0.1

1

10

3

0.1

1

12

4

0.1

1

8

5

0.1

1

14

6

0.1

1

8

7

0.1

1

12

8

0.1

1

10

9

0.1

1

14

Окончание табл. 3.1

1

2

3

4

5

6

10

0.1

0.5

15

11

0.1

1

10

12

0.1

1

8

13

-2

-0.1

16

14

0.2

0.8

12

15

0.1

0.8

18

16. Подсчитать k - количество цифр в десятичной записи целого неотрицательного числа n.

17. Переменной t присвоить значение 1 или 0 в зависимости от того, является ли натуральное число k степенью 3.

18. Дано n вещественных чисел. Вычислить разность между максимальным и минимальным из них.

19. Дана непустая последовательность различных натуральных чисел, за которой следует 0. Определить порядковый номер наименьшего из них.

20. Даны целое n>0 и последовательность из n вещественных чисел, среди которых есть хотя бы одно отрицательное число. Найти величину наибольшего среди отрицательных чисел этой последовательности.

21. Дано n вещественных чисел. Определить, образуют ли они возрастающую последовательность.

22. Дана последовательность из n  целых чисел. Определить, со скольких отрицательных чисел она начинается.

23. Определить k – количество трехзначных натуральных чисел, сумма цифр которых равна n(1<=n<=27). Операции деления (/, div и mod) не использовать.

24. Вывести на экран в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр (операции деления не использовать).

25. Переменной t присвоить значение 1 или 0 в зависимости от того, можно или нет натуральное число n представить в виде трех полных квадратов.

26. Дано натуральное число n. Выяснить, входит ли цифра 3 в запись числа n2.

27. Дано натуральное число n. Найти сумму его цифр.

28. Дано целое n>0, за которым следует n вещественных чисел. Определить, сколько среди них отрицательных.

29. Дано натуральное число n. Переставить местами первую и последнюю цифры числа n.

30. Дано натуральное число n. Заменить порядок следования цифр числа n на обратный.


 

А также другие работы, которые могут Вас заинтересовать

82867. ВПЛИВ ФОНУ ЖИВЛЕННЯ НА ПРОДУКТИВНІСТЬ І ЯКІСТЬ ПОСІВНОГО ТОМАТУ 285.79 KB
  Стан вивченості питання впливу добрив на процеси росту рівень урожаю та показники якостітоматів. Приріст надземної маси та фотосинтетична діяльність рослин томатів залежно від добрив. В умовах зрошення де створюються оптимальні умови зволоження ґрунту для сільськогосподарських культур...
82868. Оценка эффективности информационно-аналитического обеспечения муниципального управления (на материалах Администрации г. Смоленска) 1.05 MB
  Принятие эффективных управленческих решений требует организации целесообразной системы информационно-аналитического обеспечения, объективно отражающей сложившуюся ситуацию. Информационно-аналитическое обеспечение управления предполагает связь информации с системами управления организацией и управленческим процессом в целом.
82869. ОСОБЕННОСТИ ВЗАИМОДЕЙСТВИЯ ЖУРНАЛИСТА И СПЕЦИАЛИСТА ПО СВЯЗЯМ С ОБЩЕСТВЕННОСТЬЮ С ЦЕЛЬЮ ПРОДВИЖЕНИЯ КОСМЕТОЛОГИЧЕСКОЙ КОМПАНИИ 278.5 KB
  В данной работе мы рассматриваем взаимосвязь PR-специалистов и субъектов публичной коммуникации как взаимосвязанный и взаимообусловленный процесс распространения информации среди целевой общественности процесс селекции информации с учетом информационных запросов целевой общественности а так же на примере косметологической компании...
82870. Учет товаров в розничной торговле (на примере ООО «НиК») 646.5 KB
  Первая глава посвящена теоретическим аспектам учета движения товаров на предприятиях розничной торговли. Во второй главе рассмотрен анализ системы бухгалтерского учета движения товаров в розничном предприятии ООО НИК В третьей главе представлены рекомендации по совершенствованию учета товародвижения в ООО НиК.
82871. Разработка направлений эффективного управления дебиторской и кредиторской задолженностью на примере ООО «Юропеан Трэвел Групп» 633.5 KB
  Актуальность темы исследования обосновывается необходимостью и важностью данного явления в функционировании предприятия. Экономическая значимость данной темы признается обоснованной для развития хозяйствующего субъекта в силу значительного влияния состояния дебиторской задолженности на финансовое состояние предприятия.
82872. Организация работы производства ресторана с французской кухней на 75 мест 523.5 KB
  Определение количества блюд и напитков подлежащих изготовлению.Разбивка блюд по ассортименту в соответствии с коэффициентами потребления. К региональной кухне относятся блюда которые на протяжении веков готовили жители различных исторических областей страны. Её неповторимые блюда отличались разнообразием и изысканностью.
82873. Разработка всасывающей пневмотранспортной установки производительностью 6 т/ч 375 KB
  Здесь происходит отделение основной массы сыпучего материала от транспортирующего воздуха. Все элементы расположены по направлению движения воздуха после отделителей соединены между собой воздуховодами. Питатель всасывающей установки выполняет функцию загрузочного устройства для подачи материала в движущуюся струю воздуха...
82874. Качество жизни населения и исследование ее уровня 181.5 KB
  Актуальность темы курсового проекта заключается в том, что уровень и качество жизни населения являются одними из важнейших социально-экономических категорий, характеризующие благосостояние населения в Республике Башкортостан и определяют положение региона в целом.
82875. Оценка приспособленности грузовой платформы автомобиля КАМАЗ-4308-А3 (4х2) с прицепом НЕФАЗ-8560-62-02 к перевозке грузов и исследование расчетным методом тягово-скоростных свойств 276.56 KB
  Величину полезной работы можно оценить объемом перевозок т или производительностью ткм поэтому одним из важнейших условий определяющих эффективность эксплуатации АТС является степень приспособленности кузова АТС к превозке наиболее вероятных грузов.