Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка (Информатика).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.12 Mб
Скачать

XI, s, X, e: real;

K: INTEGER;

BEGIN

X:=0.3;

E:=0.01;

K:=0;

XI:=1;

S:=XI; Рис.4

WHILE ABS(XI)>E DO

BEGIN

K:=K+1;

XI:=XI*X/K;

S:=S+XI;

END;

WRITELN (‘FUNCTION EXP(0.3)=’, S:5:2)

END.

В программе EXPONENT число повторений цикла WHILE, регистрируемое переменной К, заранее неизвестно и окончательно вычисляется лишь по выходе из цикла при выполнении условия ABS (XI)E.

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

  1. Какие программы называются циклическими?

  2. Перечислите типы циклических структур. В чём их особенности?

  3. Назовите блоки, из которых состоит циклический алгоритм.

  4. Что такое параметр цикла?

  5. Что из себя представляет и для чего предназначен оператор цикла For?

  6. Что такое условные операторы цикла и какие они бывают в Turbo Pascal?

  7. Чем отличается цикл с постусловием от цикла с предусловием?

  8. Перечислите основные правила организации цикла с параметром.

  9. Из каких операторов может быть сформировано тело цикла?

  10. В чём отличие циклов со счётчиком от итерационных циклов?

  11. Выражение какого типа служит критерием завершения итерационного цикла?

  12. Укажите особенности алгоритмов в задачах, где параметр цикла типа REAL.

  13. Запишите фрагмент программы, где параметр цикла величина убывающая.

  14. В чем сущность алгоритмов вычисления конечных сумм и произведений?

  15. Могут ли быть разветвления внутри итерационного цикла?

  16. Может ли управляющая переменная итерационного цикла использоваться в записи оператора FOR.

5.7. Варианты заданий

Составить алгоритмы и программы вычисления выражений

  1. при x = 0, 1, 2,…10.

  1. .

  1. .

  1. при x = 1…10.

  1. где R=0.65.

  1. при n = 1…6.

  2. .

  1. при x = 1.1; a = 2.2; n = 1…8.

  1. a= -3(0,2)3; b=2

  1. y= -3(1)3

  1. Y=ex ; Z=e2x ; x=0,01(0,01)0,1

  2. Y=ln x; P=lg x; S=log2 x; x=1(1)8

  1. Y=sin x+/cos x; x=0,15(0,15)1,5

  1. x=1,5(0,5)5,5

  1. A=sin x +2cos x; B=3tg x; x=0,1(0,01)0,18

  1. Y=arctg x; ; x=1(1)10

  1. , с погрешностью ε = 0.01

  1. , с погрешностью ε = 0.01

  1. , с погрешностью ε = 0.01

  1. , с погрешностью ε = 0.01

  1. , с погрешностью ε = 0.01

  1. , с погрешностью ε = 0.001

Тема 6. Ввод с клавиатуры и формы представления выходной информации

Цель работы: изучение особенностей ввода и вывода данных в режиме, управляе­мом списком, а также основных правил печати результатов с использованием стандартных модулей Турбо-Паскаля.

6.1. Операторы ввода и вывода

Операторы ввода и вывода начинаются с имен процедур: Read и Readln (процедуры ввода), Write и Writeln (процедуры вывода). Окончание имени In означает, что после ввода или вывода курсор переходит в начало следующей строки, иначе он остается справа от выведенного значения (набираемое для ввода значение также выводится на экран). Если нужно перевести курсор до начала ввода или вывода, выполняйте оператор Writeln (без скобок и объектов вывода). Несколько таких операторов обеспечат вывод группы пустых строк.

На дисплее текст программы может заменяться "экраном пользователя" — черно-белым кадром, где отображаются выво­димые результаты, системные сообщения, а также вводимые значения, набираемые на клавиатуре. Поэтому будем допускать выражения типа "набрать в строке экрана значение".

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

Read (a1, a2, . . . ,an); { число переменных в списке может быть любым}

Readln (a1, a2, . . . ,an); {если переменных больше одной , то они разделяются запятыми}

Readln;

где a1, a2, . . . ,an – имена переменных.

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

Рассмотрим действия пользователя при вводе данных А, В, С.

Вариант 1: один оператор ввода Readln (А,В,С); пользова­тель набирает значения в одной строке, разделяя пробелами, и нажимает Enter или после набора каждого значения нажимает Enter — ими будет занято 3 строки экрана.

Вариант 2: три оператора Readln(A); Readln(B); Readln(C); после набора каждого значения обязательно нажатие Enter. Если же значения А, В, С набрать в одной строке и нажать Enter, оператор Readln(A) введет значение А и перейдет на новую строку, а следующий оператор Readln(B) будет ожидать набора значения В: ему недоступны значения из предыдущей строки.

Вариант 3: три оператора Read(A); Read(B); Read(C); действия пользователя — такие же, как в варианте 1; курсор останется справа от значения С. Эти примеры даны для того, чтобы показать различия процедур Read и Readln.

В текущей строке можно производить исправления наби­раемых данных, но как только вы нажали Enter, т.е. перевели курсор в следующую строку, они становятся недоступны. Дроби допускаются лишь десятичные и в их записи запятую заменя­ют точкой, например, взамен 1/3 набирают 0.3333333. Разделителем значений может быть лишь пробел.

Оператор Readln; обеспечивает режим ожидания нажатием клавиши Enter. Его используют для приостановки процесса выполнения программы.

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

Write (a1, a2, . . . ,an); - вывод информации одной строкой;

Writeln (a1, a2, . . . ,an); - переход на новую строку после выдачи информации;

Writeln; - пропуск строки,

где a1, a2, . . . ,an – имена переменных.

Элементом списка может быть: число целое или вещественное (5.73; 1.42Е+10); символ ('a', 'z'); строка ('данные эксперимента'); булево значение (true или false). Кроме этого, в качестве элементов списка могут использоваться идентификатор константы, переменной, указатель, вызов функции, если она возвращает значение целого типа, вещественное число, символ или строку. Элементы списка выводятся на печать в заданном операто­ром Writeln порядке.

С помощью оператора вывода строится последовательность значений, которая является результатом выполнения программы. Запишем вывод А, В и С. Операторы Writeln(A), Writeln(B), Writeln(C) выведут значения А, В, С в отдельные стро­ки. Действие операторов Write(A,B,C), Writeln(A,B,C) различает­ся лишь конечным положением курсора по отношению к выве­денным значениям. Разделителей между ними нет. Визуально различимые значения выдаст на дисплей оператор

Writeln( А,’ ‘,В,’ ‘,С ), выводящий пробелы между числами А и В, В и С, или оператор

Writeln(‘A = ', А, ' В = ', В, 'С = ', С), который, кроме чисел, выведет 3 символьных строки, поясняю­щих и одновременно разделяющих числовые значения.

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

Writeln ( А , ’ ‘ , В , ‘ ‘, С); Readln;

в этом случае экран пользователя закрывается текстом програм­мы лишь после нажатия Enter. Если нужно еще раз изучить результаты, нажимайте Alt+F5, а чтобы вернуть программу на экран — любую литерную клавишу. Для очистки экрана перед выводом используют процедуру CLRSCR. Она доступна, если в начале программы записано предложение Uses CRT; .

Если экран пользователя заполнен, вывод очередных строк (внизу) приводит к вытеснению самых верхних строк. Чтобы приостановить вывод данных, нажимайте Ctrl+S; нажатие любой клавиши продолжит вывод.

Рассмотрим пример использования в программе процедур Writeln и Write. Справа представлены результаты выполнения процедур, т. е. информация, выводимая на внешнее устройство (дисплей):

A := 728; B := 3; C := 879;

COLOR:= ' RED ';

WRITELN (A, B);

WRITE(A, B);

WRITELN ( C );

WRITELN (A, '_':3, B, '_':5, C);

WRITE (B, '_', C, '___', C);

WRITELN ('INTEGER');

WRITELN(COLOR,'ROSE');

7283

7283879

728_ _ _3_ _ _ _ _879

3_879_ _ _879INTEGER

RED ROSE

В тексте операторов Write и Writeln могут находиться выражения, которые вычисляются и выводятся, но не сохраняются в памяти компьютера.