Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Решето Эратосфена

Найти все простые числа меньше заданного числа n.

 

Program Eratos(input,output);

Type tNumbers=0,255;

Var n:integer;

Primes: set of tNumbers;

 

Numbers: set of tNumbers;

Begin

Read(n);

Numbers:=[2,n]

Primes:=[ ];

While Numbers<>[] do

Begin

{найти первое в Numbers}

While not (p in numbers) do p:=p+1;

{положить его в Primes }

Primes:=Primes+[p]

{удалить его и все кратные из Numbers}

K:=p;

While k<=n do

begin

Numbers:=numbers - [k];

K:=k+p;

end;

end;

 

{печать Primes}

For k:=1 to n do if k in Primes then write(k);

end.

 

Подпрограммы. Пользовательские процедуры и функции

Вычислить: Y:=(A+b)*C+D*(A-D)/(C-D), где A,B,C,D Î Q

Type tRational;

Var A,B,C,D: tRational;

Y: tRational

Z,T: tRational;

Chis,znam:integer;

Begin

{read(a,b,c,d)}

{y:=a+b};{z:=a-b};{t:=c-d};{z:=z/t}

{z:=d+z}{y:=y+z}

{write(y)}

end;

 

Синтаксис обращения к процедурам

Текст включающий в себя области описаний (констант, типов, процедур и функций) и составной оператор, наз

 

 

Имена → значения

Procedure → имя (список формальных параметров).

Блок → тело процедуры (запись, алгоритм вычислений).

 

Любая функция (процедура) определяется некоторым выражением, но выражение определяет несколько функций. Список формальных параметров состоит из выражений вида: v:t или var v:t, где t – имя типа, v – идентификатор.

V – это не имя переменной (в программистском смысле), она не именует никакую область памяти. С другой стороны, это переменная в математическом смысле, поскольку определена область значений.

 

Область описаний ← Блок → Составные операторы

Объекты, определённые в соответствие определения процедуры в блоке, называются локальными; определённые вне этого блока – глобальными.

Блоки могут быть вложены друг в друга.

(Рисунок)

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

Здесь встречаемся с проблемой конфликта (коллизии) имён – несколько разных объектов могут носить одно и то же имя. Всегда имеется в виду наиболее локальное описание.

 

 

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

Имя программы (список фактических параметров).

Список фактических параметров, разделённых запятыми, список выражений вида е1,…,еn.

Список фактических параметров, согласованных со списком формальных параметров, согласованных по количеству и типу. Вместо параметров переменных могут стоять переменные, вместо параметров значений можно поставить произвольное выражение того же типа.

 

<== предыдущая лекция | следующая лекция ==>
Алгоритмическое определение булевских операций | Семантика
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 253; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.