Главная » Просмотр файлов » Воробьева А.П., Соппа М.С. - Система программирования Турбо Паскаль 7.0

Воробьева А.П., Соппа М.С. - Система программирования Турбо Паскаль 7.0 (1092189), страница 8

Файл №1092189 Воробьева А.П., Соппа М.С. - Система программирования Турбо Паскаль 7.0 (Воробьева А.П., Соппа М.С. - Система программирования Турбо Паскаль 7.0) 8 страницаВоробьева А.П., Соппа М.С. - Система программирования Турбо Паскаль 7.0 (1092189) страница 82018-02-14СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 8)

writeln (‘Введите числа a, b, c’);

read (a, b, c);

y := a;

if b<y then y := b;

if c<y then y := c;

writeln (‘y =’, y:6:2);

End.

Полный условный оператор

Общий вид записи:

IF <логическое выражение> THEN P1 ELSE P2;

где P1, P2 – любые операторы.

Работа оператора

Вычисляется логическое выражение, и если оно имеет значение TRUE, то выполняется оператор P1, стоящий после служебного слова THEN. В противном случае выполняется оператор P2, стоящий после служебного слова ELSE .

Графическая интерпретация оператора

В блок-схемах полному условному оператору соответствует структура ЕСЛИ – ТО – ИНАЧЕ.


Замечание. Операторы P1 и P2 входят в конструкцию полного условного оператора как единственные. Если возникает необходимость выполнить в ветвях несколько операторов, то их заключают в операторные скобки BEGIN…..END. Вид записи условного оператора в этом случае следующий.

IF <логическое выражение> THEN

begin

<оператор 1>;

……………... P1

<оператор n>;

end

ELSE

begin

<оператор 1>;

……………... P2

<оператор m>;

end;

Пример1. Вычислить значение переменной у по одной из двух ветвей:

y =

Блок-схема


Программа

Program P_1;

Var

x, y: real;

Begin

writeln (‘Введите число x’);

read (x);

if x>0 then y := ln(x) else y := exp(x);

writeln (‘y =’ , y:6:2);

End.

Пример 2. Вычислить корни полного квадратного уравнения ax2+bx+c=0. В программе предусмотреть проверку дискриминанта на знак. Если дискриминант окажется отрицательным, то вывести сообщение «Корни мнимые».

Программа

Program P_2;

Var

a, b, c, d, x1, x2: real;

Begin

writeln(‘Введите коэффициенты уравнения’);

read (a, b, c);

d := bb – 4ac;

if d<0 then

writeln (‘Корни мнимые’)

else

begin

x1 := (-b + sqrt(d)) / (2a);

x2 := (-b - sqrt(d)) / (2a);

writeln(‘x1=’, x1:5:2, ‘ x2=’, x2:5:2);

end;

End.

Вложенные структуры условных операторов

Структура называется вложенной, если после служебных слов THEN и ELSE используются вновь условные операторы. Число вложений может быть произвольным. При этом справедливо следующее правило: служебное слово ELSE всегда относится к ближайшему выше слову THEN. Для удобства чтения вложенных структур рекомендуется при программировании избегать по-возможности запись вложенного условного оператора после слова THEN.

Пример. Вычислить значение y по одной из трех ветвей:

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

Вариант 1. (Без использования вложенной структуры).

Блок-схема



Программа

Program P_V1;

Var

x, y: real;

Begin

writeln(‘Введите число x’);

read(x);

if x>=1 then y := sqrt(x)/2;

if (x>0) and (x<1) then y := exp(1/3*ln(x))/3;

if x<= 0 then y := exp(1/4*ln(abs(x)))/4;

writeln(‘y =’, y:6:2);

End.

Вариант 2. ( Использование вложенной структуры).

Блок-схема


Программа

Program P_V2;

Var

x, y: real;

Begin

writeln(‘Введите число x’);

read(x);

if x>=1 then

y := sqrt(x)/2

else

if x>0 then

y := exp(1/3*ln(x))/3

else

y := exp(1/4*ln(abs(x)))/4;

writeln(‘y =’, y:6:2);

End.

5.3. Оператор выбора

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

Общий вид записи:

CASE <селектор> OF

<список констант выбора 1>: <оператор 1>;

………………………………………………

<список констант выбора n>: <оператор n>;

END;

Селектор – это выражение целого или символьного типа.

Константы выбора – всевозможные значения селектора. Константы выбора в списке перечисляются через запятую.

Работа оператора CASE

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

Пример 1. Написать оператор выбора для вычисления y.

case n of

1: y := x;

2, 3: y := 2 * sqrt(abs(x));

4: y := exp(x);

end;

Графическая интерпретация оператора

В блок-схемах оператору CASE соответствует структура ВЫБОР.

Д ля приведенного выше примера эта структура выглядит следующим образом:

Замечание. Если в строке выбора необходимо записать несколько операторов, то их заключают в операторные скобки BEGIN....END.

Пример 2. Вычислить значение y.

Если значение x не принадлежит рассматриваемым промежуткам, то вывести на экран соответствующее сообщение.

В задаче переменная x является вещественной и не может использоваться в качестве селектора оператора CASE. Введем новую переменную целого типа, которой присваивается целая часть значения x:

n := trunc(x);

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

Program P_2;

Var

x, y: real;

n: integer;

Begin

writeln(‘Введите число x’);

read (x);

if (x<1) or (x>=5) then

writeln(‘x не принадлежит ‘,

‘рассматриваемой области’)

else

begin

n := trunc(x);

case n of

1: y := sin(x);

2: y := exp(-x);

3: y := ln(x);

4: y := sin (x)/cos(x);

end;

writeln(‘y=’, y:6:2);

end;

End.

5.4. Контрольные задания

  1. Записать в Турбо Паскале логические выражения.

а)  а  b;

б) –1  x 1 или 2  x  4;

в) переменная x находится вне интервала [a, b];

г) все точки на плоскости находятся выше оси абсцисс;

д) все точки на плоскости находятся либо в первом, либо в третьем квадрантах;

е) все точки на плоскости лежат выше прямой: y = 1 + x.

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

а ) б)

в) г)

x

д) e)

  1. Начертить на плоскости область, в которой логическое выражение имеет значение TRUE.

а) (x >= 0) and (y >= 0) and (y <= x) or (y <= -1);

б) (xx +yy <= 1) and (y >= 0) and not(y < x);

в) (y >= x) and (y >= -x);

г) (y <= 2) and (x <= 2) or (xy < 0);

д) (xy >= 0) and (y <= x) and (x < 1) and (y >-1);

е) (xx + yy <= 4) and (y >= xx).

  1. Записать в Турбо Паскале логические выражения и вычислить их при: i =5; j =2; k =2; a =TRUE; b =FALSE.

а) i 1 a   (b  j > k);

б) (i 1a)  (b  j= k);

в) (i = j2 + 1)  a  b;

г) i> j + k  a   b;

д) a  b  (i*j > k2);

е) (a   b  j2 = k2)   b.

Глава 6. Циклические вычислительные

процессы

Циклические вычислительные процессы характеризуются наличием многократно повторяющихся участков вычислений (циклов).

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

6.1. Операторы цикла с условием

Различают два вида операторов с условием:

  1. оператор цикла WHILE (пока);

  2. оператор цикла REPEAT (повторять до тех пор пока).

Оператор цикла WHILE

Общий вид записи:

WHILE < логическое выражение > DO < тело цикла>;

Тело цикла – единичный оператор, выполняемый в цикле.

Работа оператора

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

Графическая интерпретация оператора

В блок-схемах оператору цикла WHILE соответствует структура ЦИКЛ-ПОКА.


Пример 1. Алгоритм табулирования функции с одной переменной.

Вычислить таблицу значений функции:

при , изменяющемся в интервале [-0.5, 2.5] с шагом 0.1.

заданные вещественные числа.

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

Блок-схема


Программа

Program TAB_1;

Var

a, b, x, y: real;

Begin

writeln(‘Введите исходные данные’);

read(a, b);

writeln (‘ x y(x)’);

x := -0.5;

while x <= 2.5 do

begin

y := ln(abs(x))/(a*a - b*b);

writeln(x:8:1, y:8:1)

x := x + 0.1;

end;

End.

Оператор цикла REPEAT

Общий вид записи:

REPEAT

<тело цикла>;

UNTIL <логическое выражение>;

Работа оператора

Выполняется тело цикла, после чего вычисляется логическое выражение, определяющее условие выхода из цикла. Если логическое выражение имеет значение FALSE, то повторяется выполнение тела цикла. В противном случае оператор цикла REPEAT завершает свою работу.

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

Графическая интерпретация оператора

В блок-схемах оператору цикла REPEAT соответствует структура ЦИКЛ-ДО.


Выход из цикла

Пример 2. Решить предыдущую задачу табулирования функции с использованием оператора цикла REPEAT.

Программа

Program TAB_2;

Var

a, b, x, y: real;

Begin

writeln(‘Введите исходные данные’);

read(a, b);

writeln(‘ x y(x)’);

x := -0.5;

repeat

y := ln(abs(x))/(a*a - b*b);

writeln(x:8:1, y:8:1)

x := x + 0.1;

Характеристики

Тип файла
Документ
Размер
1,05 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6289
Авторов
на СтудИзбе
315
Средний доход
с одного платного файла
Обучение Подробнее