Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
infa_otvetyavp.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
481.28 Кб
Скачать

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

Синтаксис:

repeat

оператор;

оператор;

...

оператор

until выражение

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

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

Пример.

repeat

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

ReadLn(x);

until x>0;

 

Билет 9

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

Y= 1+ 1/2+ 1/3 + …+ 1/ n

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

Y:= 1+1/2+1/3+1/4+1/5

Если же значение n не фиксируется, а является исходным данным, вводимым в процессе выполнения программы (и даже константой, описанной в программе), то аналогичный оператор присваивания записать невозможно. Ибо запись вида Y:=  1+1/2+1/3+…+1/ n в языках программирования недопустима.

Для устранения возникающих трудностей служат операторы цикла. Они позволяют повторять выполнение отдельных частей программы. Можно выделить четыре ператора цикла, присутствующих в том или ином виде во всех языках программирования: простой арифметический оператор цикла (цикл с параметром с шагом 1), сложный арифметический оператор цикла (цикл с параметром произвольного шага), итерационный оператор цикла с предусловием, итерационный оператор цикла с постусловием.

Билет 10,11

Функции в Паскале Структура описания и механизм использования функции аналогичен  процедуре с учетом некоторых особенностей. Описание состоит из заголовка и блока (тела функции).            FUNCTION <имя>(<сп. форм. пар.>):<тип>;                 <блок>; где:  FUNCTION  – зарезервированное слово функция; <имя> - имя функции, является уникальным, выбирается по общим                                правилам, желательно чтобы оно отражало смысл   функции;     <сп. форм. пар.>  - список формальных параметров т.е. список имен обозначающих исходные данные функции с указанием их типов;     <тип> -  тип результата возвращаемого функцией и присваиваемого имени функции;    <блок> - тело процедуры представляющее разделы описаний и раздел операторов, представляющий составной оператор  (совокупность операторов,  заключенных в операторные  скобки BEGIN END).      Разделы описаний функции содержат те же разделы что и основная программа, в том числе описания подпрограмм низшего уровня (вложенных). В содержательной части функции ее имени должен быть присвоен результат работы функции. Вызов функции представляет собой операнд (указатель функции) в отличии от процедуры обращение к которой представляет оператор. Он имеет вид: <имя>(<сп. факт. пар.>); где:      <имя> - имя функции (указатель);      <сп. факт. пар.> - список фактических параметров. Это список конкретных значений, имен и выражений подставляемых вместо формальных параметров и передаваемых в функцию.   Отличие процедуры от функции Функция в отличие от процедуры возвращает единственное скалярное значение Результат вычисления функции присваивается имени, а процедуре входит в список параметров. Имя функции имеет тип. Обращение к функции представляет операнд, а процедуры оператор.     

Процедуры в Паскале Структура процедуры аналогична структуре программы и состоит из заголовка и блока (тела процедуры).            PROCEDURE <имя>(<сп. форм. пар.>);                 <блок> где      PROCEDURE – зарезервированное слово процедура; <имя>             - имя процедуры, является уникальным, выбирается по общим пра- вилам, желательно чтобы оно отражало смысл процедуры; <сп. форм. пар.>   - список формальных параметров т.е. список имен обозначаю- щих  исходные данные и результат работы процедуры с указани- ем их типов;        <блок>            - тело процедуры представляющее разделы описаний и раздел операторов,  представляющий составной оператор (совокупность операторов,  заключенных в операторные скобки BEGIN END). Разделы описаний процедуры содержат те же разделы что и основная программа, в том числе описания подпрограмм низшего уровня (вложенных). Глобальные объекты – это объекты, описанные в разделах описаний основной программе. Областью их действия является программа и все, содержащиеся в ней подпрограммы. Локальные объекты – это объекты, описанные в разделах описаний подпрограммы. Областью их действия является подпрограмма и все содержащиеся в ней подпрограммы низшего уровня. Локальные описания отменяют глобальные. Оператор вызова процедуры активизирует процедуру. Он имеет вид: <имя>(<сп. факт. пар.>); где:       <имя> - имя процедуры;       <сп. факт. пар.> - список фактических параметров. Это список конкретных значений, имен и выражений подставляемых вместо формальных параметров и передаваемых в подпрограмму, а так же возвращаемые  результаты обработки. Список фактических параметров может отсутствовать. Между формальными и фактическими параметрами существует взаимно  - однозначное соответствие по количеству, порядку следования и типу.   Виды параметров в Паскале Различают четыре вида параметров: - параметры- значения;    - параметры- переменные;    - параметры- процедуры;    - параметры- функции. Параметры- значения – используются для передачи исходных данных в подпрограмму. Формальные параметры при этом записываются через запятую с указанием их типов. Они получают значения фактических параметров, но не могут передавать свои значения фактическим параметрам. Параметры- переменные – играют роль как входных, так и выходных (возвращаемых) параметров процедуры. В списке формальных параметров они перечисляются после слова  Var с  указанием их типов. Параметры- процедуры – указываются после слова Procedure. Параметры- функции - . указываются после слова Function.

На первом этапе создания программных приложений в Дельфи мы будем работать со следующими компонентами, позволяющими выполнить ввод и вывод данных, поясняющих надписей и т.п.: EDIT                           - однострочный редактор для ввода, вывода и модификации данных MEMO                       - многострочный текстовый редактор для вывода, ввода и изменения LABEL                       - метка, для размещения заголовков, и других поясняющих надписей STATICTEXT - метка, для размещения надписей в рельефной рамке STRINGGRID            - таблица строк, используется для ввода/вывода данных в виде двумерной таблицы.  Каждый компонент получает свое имя (имя компонента и номер, например EDIT1 – первый однострочный редактор, размещенный на форме, EDIT2 - второй однострочный редактор, размещенный на форме и т.д.) Доступ к компонентам осуществляется с помощью соответствующих свойств компонентов, причем для каждого компонента эти свойства могут быть разными.

Имя компонента         Свойство для ввода/вывода EDIT                             TEXT              (в программе записывается EDIT1.TEXT) MEMO                         TEXT              (в программе записывается MEMO 1.TEXT) LABEL                          CAPTION (только вывод)               (LABEL1.CAPTION) STATICTEXT               CAPTION (только вывод)               (STATICTEXT1.CAPTION) STRINGGRID              массив CELLS [номер столбца, номер строки] в программе записывается  STRINGGRID1.CELLS[ j,i ] Для компонента MEMO часто используется свойство «строка» LINES в сочетании с методом «добавить» ADD. (  в программе записывается MEMO1.LINES.ADD ( )  ). Указанные свойства этих компонентов имеют строковый тип, т.е. тип STRING, поэтому при вводе числовых данных необходимо выполнить соответствующие преобразования данных -         при вводе надо перевести данные из строкового типа в числовой, а именно в целочисленный тип или вещественный тип с помощью функций STRTOINT ( ) или STRTOFLOAT ( ); -         при выводе данные надо перевести из целочисленного или вещественного типа в строковый с помощью функций  INTTOSTR ( )  или  FLOATTOSTR ( ) Для выполнения этих операций используется оператор присваивания « := »языка Паскаль. В левой части оператора записывается имя компонента и его свойство, разделителем является точка, а в правой части – соответствующее значение.  В правой части можно записать  любые данные строкового типа, т.е. записанные в апострофах или имя компонента и через точку его свойство, откуда берутся данные. Для многострочного редактора существует несколько способов вывода данных: -         способ 1   Memo1.Text := ‘вывод с потерей всего выведенного ранее’; -         способ 2   Memo1.Text := Memo1.Text  + ‘вывод с сохранением выведенного ранее’; -         способ 3   Memo1.Lines.Add (‘ добавить строку и вывести все, что в апострофах‘) ;

ЦИКЛЫ В ПАСКАЛЕ

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]