Составить программу, которая выдает на экран True, если заданная своими координатами точка лежит внутри выделенной области:

Результат работы программы:

Uses crt;

Var x, y:integer; L:Boolean;

Begin

Write(‘введите Х и У ->’);

Readln(x, y);

L:=((x<=0) and (Sqr(x)+Sqr(y)<=9) and (y>=-x-3)) or ((Sqr(x)+Sqr(y)<=25) and (x>0));

Writeln(‘Точка лежит в задвнной области? - ’,L);

readkey;

end.

введите Х и У ->1 1

Точка лежит в задвнной области? - True

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

PROGRAM DEMO1;

USES CRT;

TYPE WEEK=(MONDAY, TEUSDAY, WEDNESDAY, THURSDAY, FRIDAY, SATYRDAY, SUNDAY);

VAR DAY: WEEK;

BEGIN

DAY:=THURSDAY;

IF (DAY=SUNDAY) OR (DAY=SATYRDAY) THEN WRITELN(‘УИКЕНД’)

ELSE WRITELN(‘РАБОЧИЕ ДНИ’);

{или - IF (DAY<SATYRDAY) THEN WRITELN( ‘РАБОЧИЕ ДНИ’) ELSE WRITELN (‘УИКЕНД’);}

READLN;

END.

Применение перечисляемых типовделает программы нагляднее.

Тип – диапазон (интервальный тип)этот тип получается путем введения ограничения на уже определенный некоторый простой тип. Ограничения определяются заданием диапазона – минимального и максимального значений констант в этом диапазоне. Тип, из которого выбирается диапазон (отрезок), называется базовым типом. Левая граница диапозона на должна превышать правую. Диапазоны для вещественных типов не допускаются. Например, рассмотрим типы:

НЕ нашли? Не то? Что вы ищете?

TYPE A=10..100;

WEEK=(MONDAY, TEUSDAY, WEDNESDAY, THURSDAY, FRIDAY, SATYRDAY, SUNDAY);

WORKDAY=MONDAY..FRIDAY;

WEEKEND= SATYRDAY.. SUNDAY;

Базовый тип для диапазона А – тип INTEGER; для диапазонов WORKDAY и WEEKEND – перечисляемый тип WEEK.

Использование диапазонов позволяет более экономично распределять память, особенно в случае данных типа INTEGER. Декларация интервального типа указывает компилятору, что для переменных возможны только значения в заданном интервале, тем самым в программе автоматически организуется проверка корректности операций присвоения (см. приложение 1, СТРУКТУРА ТИПОВ ДАННЫХ).

2.  Функции, используемые для работы с порядковыми переменными.

Название функция

Назначение

Тип аргумента

Тип функции

Readkey

Ввод данных без «Эхо», т. е. программа передает значение нажатого символа без нажатия на клавишу Enter и вывода на экран вводимого символа.

Пример записи: A:=readkey;

Нет

CHAR

Pred(x)

Определение предшественника взятого символа х

Порядковый

Порядковый

Succ(x)

Определение последующего символа за взятым символом х

Порядковый

Порядковый

Ord(x)

определяет код символа. Например, Ord(‘A’) - 65

Порядковый

Целочисленный

Chr(x)

определяет символ по коду. Например, Chr(65) - ’A’

Целочисленный

CHAR

Low(х)

возвращают минимальное значание указанного диапозона переменной Х

Целочисленный

Тип-диапозан

Логический

Целочисленный

Тип-диапозан

Логический

High(х)

возвращают максимальное значание указанного диапозона переменной Х

Пример использования различных порядковых типов переменных:

Текст программы:

Результат работы программы:

uses crt;

type d=(x, y,z, k,l, m,n);

d2=k..n;

var a:d;

b:x..z;

c:d2;

f, f1:20..500;

i:integer;

i1:word;

i2:byte;

i3:longint;

i4:boolean;

ch:char;

begin

clrscr;

a:=d(2);

b:=z;

c:=d(5);

c:=pred(c);

if a=z then writeln('Z');

if a=b then writeln('EYS');

if c=l then writeln('L');

c:=succ(c);

if c=m then writeln('M');

i:=ord(c); write(i);

writeln(low(i),' ',high(i));

writeln(low(i1),' ',high(i1));

writeln(low(i2),' ',high(i2));

writeln(low(i3),' ',high(i3));

writeln(low(i4),' ',high(i4));

f1:=low(f);

writeln(f1,' ',high(f));

readkey;

end.

Z

EYS

L

M

5

-32

0 65535

0 255

False True

20 500

3.  Условный оператор (выбор одного из двух направлений)

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

if <условие> then <оператор 1> [ else <оператор 2> ];

если тогда иначе

Условие – логическое выражение, которое может быть истинным или ложным.

оператор 1, оператор 2 – какой либо оператор, в том числе и составной оператор, т. е. несколько операторов, объединенных операторными скобками begin end.

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

Принцип работы оператора:

¨  проверяется условие

¨  если условие истинно (верно), то выполняется оператор 1

¨  если условие ложно (неверно), то выполняется оператор 2

¨  если else <оператор 2> отсутствует, то, при ложности условия, выполняется следующий за if оператор.

Например, из двух чисел a и b вывести на экран значение большего числа.

if a > b then writeln (‘большее число a - ’, a)

else writeln (‘большее число b - ’, b);

Внимание! Перед словом else нельзя ставить точку с запятой. Обратите внимание на запись служебных слов и операторов. Каждое слово else под своим, словом if. Для большей наглядности и «читаемости» текста программы операторы, следующие за словами then и else можно писать на следующей строке.

Возможная форма оператора: if <условие> then

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

Пример использования оператора:

Вычислите значение функции f(x) в зависимости от значения аргумента x.

if x<0 then y=x;

if x=0 then y=0;

if x<0 then y=sqr(x);

Вложенные операторы if

Возможно использовать в качестве оператор1 или оператор2 других условных операторов:

if <условие1> then if <условие2> then <оператор1> else <оператор2>;

Вложенность операторов if неограниченна.

4.  Ветвление на несколько направлений (оператор – переключатель, или оператор выбора или оператор варианта):

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

case <переменная или выражение> of

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

<список значений выбора2>:<оператор2>;

. . .

<список значений выбора N>:<оператор N>;

[else <оператор>]

end;

Переменная может быть любого порядкового типа, кроме longint (word, boolean, integer, char или перечисляемый тип). (см. приложение 1, СТРУКТУРА ТИПОВ ДАННЫХ)

Список значений выбора - это значения, которые могут принимать переменная или выражение, перечисленные через запятую или, если значения принадлежат какому-либо интервалу, с использованием лексемы " . . " (1..7 или 'а' ..'м')

Оператор - любой оператор, в том числе составной.

Принцип работы оператора:

¨  Значение переменной или выражения сравнивается с предложенными списками значений

¨  Если найдено нужное значение, выполняется соответствующий оператор

¨  Если нужное значение не найдено в перечисленных списках, выполняется оператор после else

¨  Если else отсутствует, то, когда нужное значение не найдено, выполняется следующий за case оператор.

Ветви здесь представлены элементами выбора, разграниченными точкой с запятой, а слово else с последующим оператором могут отсутствовать. Элемент выбора – это оператор, например составной, снабжённый одной или несколькими константами выбора:

Пример использования оператора:

Написать программу, которая за­пра­шивает номер месяца и вы­во­дит название времени года

uses crt;

var month : integer;

begin

writeln (‘введите номер месяца от 1 – 12’);

readln (month);

case month of

1,2,12 : writeln(‘зима’);

3,4,5 : writeln(‘весна’);

6,7,8 : writeln(‘лето’);

9,10,11 : writeln(‘осень’);

else writeln (‘ошибка ввода!’);

end;

repeat until keypressed;

end.

5.  Операторы безусловного перехода goto и halt:

goto <метка>

перейти к

halt [<код>]

выход из программы

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

Метка - это любое целое число от 0 до 9999 или идентификатор

Метки необходимо описывать в разделе описаний перед описанием переменных.

Например, LABEL 1, 2, lab3;

Метки ставятся в программе перед операторами в начале строки, после метки - двоеточие.

Например, 1: repeat until keypressed;

ЗАМЕЧАНИЕ:

-  Нельзя входить и выходить из функций и процедур с помощью операторов goto и halt

-  Нельзя входить в циклы с помощью операторов goto и halt, но можно досрочно их заканчивать

-  Из программы можно выйти оператором halt

Пример использования оператора:

Составить программу проверки знания таблицы умножения.

program pt1;

uses crt;

label 1;

var a, b:integer;x, y,z:integer;t:char;

begin

clrscr;

writeln ('ПРОГРАММА ПРОВЕРКИ ТАБЛИЦЫ УМНОЖЕНИЯ.');

writeln ('Выход из программы - Q, продолжение - любая другая клавиша');

randomize;

1: x:= random(10);y:= random(10);

write(' ',x,' x ',y,' = ?');

read(z);

if z=x*y then writeln ('правильно!')

else writeln ('неправильно! ');

writeln ('продолжить?(y/n)')t:=readkey;

if (t='N') or (t='n') then halt else goto 1;

end.

Практические задания:

1.  Отработка навыков использования операторов ветвления

Составить программу движения символа * под управлением клавиш 2,4,6,8. Q – выход из программы.

uses crt;

label 1;

var x, y:word;q:char;

begin

clrscr;

x:=40;y:=12;

1:textcolor(14);gotoxy(x, y);write('*');

q:=readkey;

textcolor(0);gotoxy(x, y);write('*');

if q='2' then y:=y+1;

if q='8' then y:=y-1;

if q='4' then x:=x-1;

if q='6' then x:=x+1;

if (q='q') or (q=’Q’) then halt;

goto 1;

readkey;end.

Составить программу подсчета суммы введенных с клавиатуры чисел. Признак конца ввода – число 0.

program pt1;

uses crt;

label 1;

var x, z:integer;t:char;

begin clrscr;

writeln ('ПРОГРАММА ПОДСЧЕТА СУММЫ ВВЕДЕНЫХ ЧИСЕЛ.');

gotoxy(50,22);writeln ('Выход из программы - число 0');

1: write('Введите число'); read(x);

if х=0 then goto 2 else begin z:=z+x; goto 1;end;

2: writeln('сумма введенных чисел - ',z);

readkey;end.

Написать программу, которая проверяет, является ли четным введенное с клавиатуры число

Uses crt;

Var n:integer;

Begin

Readln(n);

Write(‘число’, n,’-‘);

If n mod 2=0 then writeln(‘четное’)

else writeln(‘нечетное’);

readkey; End.

Написать программу, которая запрашивает номер месяца и выводит название времени года.

Uses crt;

Var month: integer;

Begin

Writeln (‘Введите номер месяца от 1 – 12);

Readln(month);

Case month of

1,2,12: writeln(‘Зима’);

3..5: writeln(‘Весна’);

6..8: writeln(‘Лето’);

9..11: writeln(‘Осень’);

else writeln(‘число д. б. от 1 до 12’);

end;

readkey;end.

2.  Задача. Развивая предельно возможную скорость своего движения, жираф пробегает за 23 с 335,8 м. Заяц пробегает за 55 с 918,5 м. Кому из этих животных вы присвоите звание чемпиона, сопоставляя их скорости?

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4