Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

1 Операторы цикла Цикл ~ это многократно повторяющиеся фрагменты програ

Работа добавлена на сайт samzan.net: 2016-03-30

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 20.5.2024

  1.  ОБЩАЯ ЧАСТЬ

1.1   Операторы цикла

       Цикл – это многократно повторяющиеся фрагменты программ. Алгоритм циклической структуры – это алгоритм, содержащий циклы. 
В ТР существует три оператора цикла:
В ТР существует три оператора цикла:

  •  цикл с предусловием;
  •  цикл с постусловием;
  •  цикл с параметром.

Для всех циклов характерны следующие особенности:

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

 

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

Оператор цикла с предусловием реализует следующую базовую конструкцию:

Формат записи:
While  L do  OP;
где:
 
While       - пока не;
do    – выполнить;
L     –  выражение логического типа;
OP – тело цикла; оператор (простой или составной).

Рис. 9.3. Структурная схема оператора цикла с предусловием

 

Работа оператора: Вычисляется значение логического выражения, если вычисленное значение истинно, то выполняется оператор OP после чего повторяется проверка условия и выполнение операторов тела цикла. В противном случае осуществляется выход из цикла.

Вычисление значения логического выражения предшествует выполнению операторов тела цикла, поэтому этот оператор цикла называется циклом с предусловием.

     Пример 9.3.  Составить программу вычисления функции  y для заданного значения x.

где: C=2,7;  n=2;  a=0.5;   0<t<1;  Dt=0,1.

Program Ex_2;  
Uses crt;
Var
y, C,  a, t     :real;
n               :integer;
Begin
clrscr;
Writeln('
Введите C, a,  n');    Read(C, a,  n);
Writeln('
Результат:');
Writeln('t’:5,’y’:15);
t:=0;
While t<1 do
Begin
y:=C*exp(a*t)*cos(n*t);  
 
Writeln(t:4:1,’ ‘:5, y:10);
t:=t+0.1;
End;
End.

 

Оператор цикла с постусловием в языке Паскаль

Оператор цикла с постусловием реализует следующую конструкцию:

Формат записи:
        Repeat
             OP
       Until   L;
где:
 
Repeat   - повторять;
Until  – пока не;
L     –  выражение логического типа;
OP – тело цикла; оператор (простой или составной).

Рис. 9.4. Структурная схема оператора цикла с постусловием

 

 

Работа оператора: Выполняется оператор OP после чего вычисляется значение логического выражения L, если вычисленное значение False, то  снова выполняется оператор OP  в противном случае осуществляется выход из цикла.

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

В отличие от цикла с предусловием, в цикле с постусловием тело цикла выполняется о крайней мере один раз не зависимо от условия.
В операторе цикла с постусловием  ключевые слова
 Repeat и  Until играют роль операторных скобок.
Пример 9.4. Составить программу вычисления функции  y для заданного значения x.


где: C=2,7;  n=2;  a=0.5;   0<t<1;  Dt=0,1.

Program Ex_2;  
Uses crt;
Var
y, C,  a, t       :real;
n                 :integer;
Begin
clrscr;
Writeln('
Введите C, a,  n');
Read(C, a,  n);
Writeln('
Результат:');  Writeln('t’:5,’y’:15);
t:=0;
Repeat
y:=C*exp(a*t)*cos(n*t);  
 
Writeln(t:4:1,’ ‘:5, y:10);
t:=t+0.1;
Untile t>=1;
End.

 

 

Оператор цикла с параметром в языке Паскаль

Оператор цикла с параметром реализует следующую базовую конструкцию:

Рис. 9.5. Структурная схема оператора цикла с параметром.

Формат записи:
    1.   For P:=Pn to Pk do OP;
    2.   For P:=Pk downto Pn do OP;
где:
 
For   - для;
to  – до;
downto – уменьшая до
do     –  выполнить;
OP – тело цикла; оператор (простой или составной);
P  - параметр цикла, переменная порядкового типа; 
Pn, Pk – начальное и конечное значение параметра.

 

Работа оператора: Вычисляется начальное значение параметра цикла Pn и присваивается параметру P.  Проверяется условие P?Pk, и если оно Trueвыполняются операторы тела цикла  OP . После чего наращивается  значение P на единицу и опять проверяется условие P?Pk . Если условие False  осуществляется выход из цикла.
В операторе с
 downto шаг изменения параметра цикла равен –1.

  1.  Множества

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

Все элементы множества должны принадлежать одному из порядковых типов, содержащему не более 256 значений. Этот тип называется базовым типом множества. Базовый тип задается диапазоном или перечислением.

Область значений типа множество — набор всевозможных подмножеств, составленных из элементов базового типа. В выражениях на языке Паскаль значения элементов множества указываются в квадратных скобках: [1,2,3,4], ['а',‘b','с'], ['a'..'z'].

Если множество не имеет элементов, оно называется пустым и обозначается как []. Количество элементов множества называется его мощностью.

Множество может принимать все значения базового типа. Базовый тип не должен превышать 256 возможных значений. Поэтому базовым типом множества могут быть byte, char, boolean и производные от них типы.

Множество в памяти хранится как массив битов, в котором каждый бит указывает является ли элемент принадлежащим объявленному множеству или нет. Максимальное число элементов множества 256, а данные типа множество могут занимать не более 32 байт.

Число байтов, выделяемых для данных типа множество, вычисляется по формуле:

ByteSize = (max div 8) - (min div 8) + 1,

где max и min — верхняя и нижняя границы базового типа данного множества.

Номер байта для конкретного элемента Е вычисляется по формуле:

ByteNumber = (E div 8) - (min div 8),

номер бита внутри этого байта по формуле:

BitNumber = E mod 8

Не имеет значения порядок записи элементов множества внутри конструктора. Например, [1, 2, 3] и [3, 2, 1] — это эквивалентные множества.

Каждый элемент в множестве учитывается только один раз. Поэтому множество [1, 2, 3, 4, 2, 3, 4, 5] эквивалентно [1..5].

Переменные множественного типа описываются так:
Var <идентификатор> : set of <базовый тип>;

Например:

Var A, D : Set Of Byte;

B : Set Of 'a'..'z';

C : Set Of Boolean;

Нельзя вводить значения во множественную переменную процедурой ввода и выводить процедурой вывода.

Множественная переменная может получить конкретное значение только в результате выполнения оператора присваивания:
<множественная переменная> := <множественное выражение>;

Например:

A : = [50, 100, 150, 200];

B : = ['m', 'n', 'k']; C : = [True, False];

D : = A;

  1.  Работа со строками

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

var s: string[n];

var s: string;

n - максимально возможная длина строки - целое число в диапазоне 1..255. Если этот параметр опущен, то по умолчанию он принимается равным 255.

Строковые константы записываются как последовательности символов, ограниченные апострофами. Допускается формирование строк с использованием записи символов по десятичному коду (в виде комбинации # и кода символа) и управляющих символов (комбинации ^ и некоторых заглавных латинских букв).

Пример:

'Текстовая строка'
#54#32#61
'abcde'^A^M

Пустой символ обозначается двумя подряд стоящими апострофами. Если апостроф входит в строку как литера, то при записи он удваивается.

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

Выражения типа char можно присваивать любым строковым переменным.

В Турбо Паскаль имеется простой доступ к отдельным символам строковой переменной: i-й символ переменной st записывается как st[i]. Например, если st - это 'Строка', то st[1] - это 'С', st[2] - это 'т', st[3] - 'р' и так далее.

Над строковыми данными определена операция слияния (конкантенации), обозначаемая знаком +. Например:

a := 'Turbo';

b := 'Pascal';

c := a + b;

В этом примере переменная c приобретет значение 'TurboPascal'.

Кроме слияния над строками определены операции сравнения <,>,=,<>,<=,>=. Две строки сравниваются посимвольно, слева направо, по кодам символов. Если одна строка меньше другой по длине, недостающие символы короткой строки заменяются символом с кодом 0.

 

Процедуры и функции для работы со строками

В системе Turbo Pascal имеется несколько полезных стандартных процедур и функций, ориентированных на работу со строками. Ниже приводится список этих процедур и функций с краткими пояснениями.

Length(s:string):integer

Функция возвращает в качестве результата значение текущей длины строки-параметра

Пример.

n := length('Pascal'); {n будет равно 6}

Concat(s1,[s2,...,sn]:string):string

Функция выполняет слияние строк-параметров, которых может быть произвольное количество. Каждый параметр является выражением строкового типа. Если длина строки-результата превышает 255 символов, то она усекается до 255 символов. Данная функция эквивалентна операции конкатенации "+" и работает немного менее эффективно, чем эта операция. 
 

Copy(s:string; index:integer; count:integer):string

Функция возвращает подстроку, выделенную из исходной строки s, длиной count символов, начиная с символа под номером index.

Пример.

s := 'Система Turbo Pascal';

s2 := copy(s, 1, 7); {s2 будет равно 'Система'}

s3 := copy(s, 9, 5); {s3 будет равно 'Turbo'}

s4 := copy(s, 15, 6); {s4 будет равно 'Pascal'}

Delete(var s:string; index,count:integer)

Процедура удаляет из строки-параметра s подстроку длиной count символов, начиная с символа под номером index.

Пример.

s := 'Система Turbo Pascal';

delete(s,8,6); {s будет равно 'Система Pascal'}

Insert(source:string; var s:string;index:integer)

Процедура предназначена для вставки строки source в строку s, начиная с символа index этой строки.

Пример.

s := 'Система Pascal';

insert('Turbo ',s,9); {s будет равно 'Система Turbo Pascal'}

Pos(substr,s:string):byte

Функция производит поиск в строке s подстроки substr. Результатом функции является номер первой позиции подстроки в исходной строке. Если подстрока не найдена, то функция возвращает 0.

Пример.

s := 'Система Turbo Pascal';

x1 := pos('Pascal', s); {x1 будет равно 15}

x2 := pos('Basic', s); {x2 будет равно 0}

Str(X: арифметическое выражение; var st: string)

Процедура преобразует численное выражение X в его строковое представление и помещает результат в st. 
 

Val(st: string; x: числовая переменная; var code: integer)

Процедура преобразует строковую запись числа, содержащуюся в st, в числовое представление, помещая результат в x. x - может быть как целой, так и действительной переменной. Если в st встречается недопустимый (с точки зрения правил записи чисел) символ, то преобразование не происходит, а в code записывается позиция первого недопустимого символа. Выполнение программы при этом не прерывается, диагностика не выдается. Если после выполнения процедуры code равно 0, то это свидетельствует об успешно произошедшем преобразовании.

В дополнение приведем некоторые функции, связанные с типом char, но которые тем не менее часто используются при работе со строками. 
 

Chr(n: byte): char

Функция возвращает символ по коду, равному значению выражения n. Если n можно представить как числовую константу, то можно также пользоваться записью #n. 
 

Ord(ch: char): byte;

В данном случае функция возвращает код символа ch. 
 

UpCase(c: char): char;

Если c - строчная латинская буква, то функция возвращает соответствующую прописную латинскую букву, в противном случае символ c возвращается без изменения.

 

  1.  Операторы цикла итерационного типа

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

Синтаксис:

while выражение do оператор

Оператор после do будет выполняться до тех пор, пока логическое выражение принимает истинное значение (True). Логическое выражение является условием возобновления цикла. Его истинность проверяется каждый раз перед очередным повторением оператора цикла, который будет выполняться лишь до тех пор, пока логическое выражениеистинно. Как только логическое выражение принимает значение ложь (False), осуществляется переход к оператору, следующему за while.

Выражение оценивается до выполнения оператора, так что если оно с самого начала было ложным (False), то оператор не будет выполнен ни разу.

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

Пример.

eps:=0.001;

while x > eps do x:=x/2;

 

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

Синтаксис:

repeat

  оператор;

  оператор;

  ...

  оператор

until выражение

Операторы между словами repeat и until повторяются, пока логическое выражение является ложным (False). Как только логическое выражение становится истинным (True), происходит выход из цикла.

Так как выражение оценивается после выполнения операторов, то в любом случае операторы выполнятся хотя бы один раз.

Пример.

repeat

  WriteLn('Введите положительное число');

  ReadLn(x);

until x>0;

  1.  Основые компоненты Delphi

Окно инспектора объектов (вызывается c помощью клавиши F11) предназначено для изменения свойств выбранных компонентов и состоит из двух страниц. Страница Properties (Свойства) предназначена для изменения необходимых свойств компонента, страница Events (События) – для определения реакции компонента или формы на то или иное событие (например, щелчок “мыши” на кнопке – событие OnClick, создание формы – OnCreate).

Окно формы представляет собой проект Windows-окна программы. На этом окне в процессе написания программы размещаются необходимые компоненты.

Редактор кода программы предназначен для просмотра, написания и редактирования текста программы. В системе DELPHI используется язык программирования Object Pascal. При первоначальной загрузке в окне текста программы находится текст, содержащий минимальный набор операторов для нормального функционирования пустой формы в качестве Windows-окна. При помещении некоторого компонента в окно формы текст программы автоматически дополняется описанием необходимых для его работы библиотек стандартных программ (раздел uses) и типов переменных (раздел type).

  1.  Однострочные и многострочные редакторы

Компоненты ввода и отображения текстовой информации. Кнопки, индикаторы, управляющие элементы.

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

1. Label (Метка) – надпись. Отображение текста, который не изменяется пользователем. Ее будем использовать для вывода комментариев на форму. Свойства: Caption (задается выводимый текст), Color, Top, Left и т.д.

2. Edit –строка ввода-вывода. Этот компонент можно использовать как для ввода данных – одного числа, одного символа, одной строки, так и для вывода этих же данных. Доступ ко всем данным, находящимся в окне, осуществляется с помощью свойства Edit1.Text. И для получения чисел необходимо использовать функции преобразование типов:

StrToInt(Edit1.Text) – преобразование строки в целое число;

StrToFloat(Edit1.Text) – преобразование строки в действительное число;

IntToStr(n) – преобразование целого числа в строку;

IntToFloat(x) – преобразование действительного числа в строку.

3. Memo – отображение, ввод и редактирование многострочных текстов. Основное свойство – Lines.

 4. StringGrid – представляет собой таблицу, содержащую строки. Данные таблицы могут быть только для чтения или редактируемые. Для того, чтобы вывести с его помощью числовой массив, необходимо сначала преобразовать числовые данные в строки. Доступ к отдельной ячейке таблицы осуществляется с помощью следующего метода: StringGrid1.Cells[Col,Row]. Количество можно менять по необходимости. Для этого предназначены свойства StringGrid1.ColCount и StringGrid1.RowCount. Их значения можно менять как программно, так и в инспекторе объектов.

5. ListBox – отображение стандартного окна списка Windows, позволяющего из него выбирать пункты.

6. ComboBox – объединяет функции ListBox и Edit.

Некоторые общие свойства компонентов

 Свойства компонента так же, как и свойства формы, можно изменить при помощи Object Inspector. Для того чтобы свойства требуемого компонента были выведены в окне Object Inspector, нужно выделить этот компонент (щелкнуть мышью на его изображении).

1. Enabled – определяет, активен ли компонент.

2. Height – высота.

3. Hint – всплывающая подсказка.

4. Left – положение компонента относительно левого края формы.

5. Name – имя компонента.

6. Top – отступ от верха формы.

7. Visible – определяет видимость компонента.

8. Width – ширина.

9. Caption – Отображаемый текст

  1.  Программирование линейных алгоритмов

Простейшие задачи имеют линейный алгоритм решения (имееют структуру "следование").

Алгоритм линейной структуры представляет собой последовательность действий и не содержит каких-либо условий.

Таким образом, в таких алгоритмах все этапы решения задачи выполняются строго последовательно, т.е. линейные алгоритмы выполняются в естественном порядке его написания и не содержит разветвлений и повторений.

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

  1.  Типы данных

Простые типы данных Pascal и Delphi: числа с плавающей запятой (real), целые (integer), символьный (char), логический (boolean) и перечисления (конструктор нового типа, введённый в Pascal(классовые объединения в Delphi)).

Целочисленные типы:

Тип

Диапазон

Формат

/bt

Byte

0..255

Беззнаковый

1

ShortInt

−128..127

Знаковый

1

SmallInt

−32768..32767

Знаковый

2

Word

0..65535

Беззнаковый

2

Integer

-32 768..32 767

Знаковый

2

Cardinal

=LongWord

Беззнаковый

4

LongWord

0..4294967295

Беззнаковый

4

LongInt

−2147483648..2147483647

Знаковый

4

Int64

−9223372036854775808..9223372036854775807

Знаковый

8

QWord

0..18446744073709551615

Беззнаковый

8

Числа с плавающей запятой:

Тип

Диапазон

Ко-о значащих цифр

/bt

поддержка

Real

-39..38

11-12

6

любая

Single

-45..38

7-8

4

кроме borland

Extended

-4951..4932

19-20

10

кроме borland

Comp

−2E64+1..2E63-1

19-20

8

кроме borland

Currency

−922337203685477.5808..

922337203685477.5807

19-20

8

кроме borland




1. Тема Основні відомості про компанію
2. тема образования в Республике Беларусь
3. Тема Побудова багаточлена Лагранжа
4. У померанца[4] Через два дня был крещён именем Адольф
5. АДМИРАЛ БЕНБОУ Сквайр [дворянский титул в Англии] Трелони доктор Ливси и другие джентльмены попросили мен
6. Негізгі 'ралдарды' т'сінігі ж'не жіктелуі
7. Реферат- Автотранспорт и экология города
8. Обобязательных резервах кредитных организаций от 29 марта 2004 года ’ 255П
9. на тему Государственные внебюджетные фонды- состав структура направление развития Выполнила с.html
10. Детский сад общеразвивающего вида 86 Нижнекамского муниципального района Республики Татарстан
11. Мониторинг развития письменной связной речи в начальной школе
12. тематики и информатики
13. Формы государственного правления
14. Техническое документирование
15. Реферат 3411 Теоретические аспекты антиинфляционного регулирования в экономической системе государства
16. реферат дисертації на здобуття наукового ступеня кандидата технічних наук Маріуполь 2008
17. Богодухновенное ангелогласное пение в системе средневековой музыкальной культуры.html
18. Якутский медицинский колледж
19. А. Баиров И. Б. Осипов
20. Различные пути преодоления заниженной самооценк