Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Программы, работающие на компьютеры можно разделить на 3 категории: ⇐ ПредыдущаяСтр 4 из 4
1. прикладное программное обеспечение, непосредственно обеспечивающее выполнение необходимых пользователям работ: редактирование текстов, рисование картинок, обработку информационных массивов и т.д.(WORD Excel Изд. и граф редактор) 2. системные программное обеспечение, программы, выполняющие различные вспомогательные функции, например создание копий, используемой информации, проверку работоспособности устройств компьютера и т.д. (программы-оболочки для DOS является NORTON COMMANDER, драйверы позволяют работать с тем или иным внешним устройством), вспомогательные программы (утилиты) - программы-русификаторы, антивирусные программы, архиваторы) 3. программное обеспечение, обеспечивающее создание новых программ для компьютера Среди системных программ, с которыми приходится иметь дело пользователям компьютеров, занимает операционные системы. Программное обеспечение или системы программирования – являются инструментами для программистов профессионалов и позволяют разрабатывать программы на различных языках программирования (Basic, Pascal, C++ и системах визуального программирования Visual Basic, Delphi) Лекция 5 Данные в языке Turbo-Pascal 7.0. Стандартные функции языка Turbo-Pascal. Структура программы на языке Турбо Паскаль. Операторы Turbo-Pascal. Программирование линейных алгоритмов.
Исторический экскурс языка Турбо-Паскаль, на котором будем программировать: Первая версия языка программирования ПАСКАЛЬ была разработана на кафедре информатики Стенфордского университета швейцарским ученым Никлаусом Виртом в 1968 году и опубликована в 1971 году. Язык был назван в честь великого французского математика Блеза Паскаля. ПАСКАЛЬ Блез (1623-1662) французский философ, писатель, математик и физик. (Блез Паскаль изобрел и сконструировал первое механическое счетное устройство, позволяющее складывать в десятичной системе счисления, в котором числа "набирались" на специальных дисках. Диски были механически связаны, при сложении можно было учесть "перенос единицы" в следующий десятичный разряд). В то время как Бейсик 5 лет уже существовал, Паскаль на его фоне выглядел скромно – программы казались громоздкими и сложным, но через некоторое время его популярность возросла, язык совершенствовался. Паскаль был создан в учебных целях для наглядной иллюстрации теории алгоритмов. Сейчас различают версии Паскаля (TURBO-PASCAL, Boland Pascal, Borland Pascal FOR Windows) используются по преимуществу, где требуется значительные вычисления, алгоритмические и графические ресурсы. К нашему времени ПАСКАЛЬ пережил семь версий. ПАСКАЛЬ 7.0 появился в 1992 году. Наряду со всеми преимуществами, которые унаследованы от предыдущей версии (многооконный режим работы, возможность использования мыши, возможность использования процедур ассемблера и др.) появилась возможность исправлять ошибки даже неопытным пользователям, были расширены возможности объектно-ориентированного программирования. PASCAL - язык программирования высокого уровня!!!
Достоинствами языка Паскаль являются: 1. Простой синтаксис языка. Небольшое число базовых понятий. Программы на Паскале достаточно легко читаемы. 2. Достаточно низкие аппаратные и системные требования, как самого компилятора, так и программ, написанных на Паскале. 3. Универсальность языка. Язык Паскаль применим для решения практически всех задач программирования. 4. Поддержка объектно-ориентированного программирования.
Алфавит языка · – это набор символов, разрешенных к использованию и «понимаемых» компьютером, т.е. набор для составления программы: · 26 латинских строчных и 26 латинских прописных букв A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z · Знак подчеркивания _ · 10 арабских цифр 0…9 · Специальные символы: + - * / =., ':; () [ ] @ ^ # $ · Составные символы: - оператор присваивания:= - знаки сравнения (логические операции) < > <= >= - знак подмножества .. - составные скобки (..) { } (* *) Идентификатором называют последовательность букв, цифр и знака подчеркивания «_», начинающуюся с буквы, которая может быть использована в качестве имени, константы, метки, типа, переменной, процедуры, функции, модуля, может содержать произвольное количество символов, но значащими являются 63 символа. Допустимые идентификаторы: х3, С_1, GGG Недопустимые идентификаторы: х+3, 1с, х/3, зим Ключевыми словами называются идентификаторы, зарезервированные в языке, которые нельзя использовать в качестве имен - это FOR, IF, DO, Program, USES, ARRAY,BEGIN, END…
Специальные символы используют для записи арифметическо-логических операций, для связок между операторами и блоками программы. Приведем назначение ряда символов в Паскале.
Данные – это простейшие объекты программной обработки. Типы данных определяют: 1. Место, отводимое в памяти для хранения данного; 2. Возможные операции преобразования с этими данными. Типы данных подразделяют на простые и структурированные или структуры. Простые типы данных: целый, нецелый(вещественны), символьный и логический. Ø Структура данных это отношение между другими данными. К структурам относятся массивы, записи и файлы. Ø Простые данные Особенности Турбо-Паскаля: Все данные должны быть описаны (в начале программы необходимо указывать тип всех фигурирующих в ней величин). Простые данные (одно число, один символ и т.д.) могут соединяться в более сложные структуры, такие, как массив и запись.
Характеристики основных типов данных
Арифметические целые
Строковые
Логические
Арифметические вещественные
└───── 8 бит ────┘2 8 бит = 1 байт Если последовательность будет из 8 единиц, то = Полученный диапазон [0..255] определяется типом Byte (беззнаковый)
знаковый 15 бит 2
бит Если последовательность будет из 16 единиц, то = Полученный диапазон [-32768..32767] определяется типом Integer (знаковый).
255, 32767, 65537 и т.д. считаются мировыми программными константами. Эти значения следуют из объема памяти, необходимого для хранения величин приведенных типов в памяти ЭВМ, так максимальное значение байтовой переменной равно число, которое будет переведенным в двоичную систему дает нам максимальное число, занимаемых байт. Битовое представление каждого кодируемого символа не выйдет за пределы 8 бит.
Стандартные функции языка Турбо-Паскаль Паскаль обладает большим набором “вшитых” в него математических функций. Функция – это преобразователь входного параметра или параметров в одно выходное значение. Например, функция sin(x) преобразует поданный ей угол в радианах в его синус. Термин “вшитый” означает, что упоминания имени функции и значения аргумента достаточно программе для ее выполнения, подобно тому, как нам хватает записи sin(x) для того, чтобы понять, что речь о синусе аргумента x.
Нестандартные функции
Структура программы на языке Турбо Паскаль
Структурированность программы – одно из характерных отличий Паскаля от Бейсика. Любая программа, написанная на Паскале, имеет две структурные части: 1 часть - блок описаний, содержащий идентификаторы - константы, метки, типы, переменные, процедуры, функции, модули, объекты. 2 часть - основной блок программы (исполняемая часть программы) – в этом разделе происходит преобразование данных, переданных из 1 структурной части. В общем виде написанная на Паскале программа должна содержать следующие разделы: Program имя программы; Uses список используемых модулей; Label список меток в основном блоке программы; Const определение констант программы; Type описание типов; Var описание глобальных переменных программы; [Определение процедур и функций; Begin Основной блок программы End.
Label,Const, Type могут быть введены при необходимости. Поэтому более короткий вид программы: Begin <операторы языка> End.
1.Раздел `PROGRAM` - это внутреннее имя программы, как правило указывающее на ее сущность (не обязательное). Пример: Program MGUPI_ti; 2.Раздел ‘USES’ - этот раздел позволяет использовать стандартные библиотеки Паскаля. Перечислим несколько: 1) CRT – отвечает за работу с текстом, окна, цвета, звук, управление курсором. 2) GRAPH – осуществляет управление графическим режимом. 3) SYSTEM – реализует стандартные математические функции Паскаля(sin, sqrt и т.д.), этот модуль подключается по умолчанию. Пример: Uses crt; 3.Раздел ‘ LABEL’. Программа на Паскале пишется без нумерации строк, но при необходимости такие номера (так называемые метки) поставить можно. Пример: Program TI; Uses crt; Label 10; Begin 10:writeln(‘Зацикливание’); Goto 10; End. 4.Определение констант ‘CONST’ - это идентификатор, соответствующий значению, которое не может изменяться в процессе работы программы. Пример: Const h=0.15; N=15; A=’Для продолжения нажмите пробел’; Обратите внимание на то, что определяемые константы относятся к различным типам: real, integer, string. Эти типы указывать не надо: ЭВМ сама растащит значения по типам. Замечание. В Паскаль “вшита” лишь одна константа Pi равная 3.1415926…. 5.Определение типов ‘TYPE’ Все, не относящиеся к “вшитым” стандартным типам, подлежит определению в разделе Type. Создаваемый тип может быть ПРОСТЫМ или СОСТАВНЫМ. По способу определения простые типы делятся на перечисляемые и диапазонные. При определение перечисляемого типа следует перечислить все возможные значения переменной: Type Personages=(TIti, PRpr, ICic); Boolean2=(false, true, no_info); Color=(Red, Green, Blue, Orange); Для определения диапазонного типа указываются крайние значения переменной: Type Digits=0..9; Century=1..20; RusLetters=’A’..’Я’; При определение составного типа в структуры определяются данные известных машине типов. Самые известные такие структуры – МАССИВ и ЗАПИСЬ (рассмотрим в дальнейших лекциях).
6.Описание переменных ‘VAR’ - переменные, которые будут фигурировать в программе, должны быть описаны в разделе VAR. При описании указывается имя и ее тип. Пример: Var i: byte;q: real;c:char; 7. Begin {начало работы программы} Основной блок программы {группа операторов, отделенных друг от друга точкой запятой} End. {конец программы}
Оператор перехода GOTO <метки>
Обычно операторы в программе выполняются в том порядке, в каком они записаны. Оператор перехода прерывает естественный порядок выполнения программы и указывает, что дальнейшее выполнение должно продолжаться, начиная с оператора, помеченного меткой, указанной в операторе перехода. Пример записи оператора перехода: goto 218;
Оператор присваивания имеет следующую структуру:
ИМЯ_ПЕРЕМЕННОЙ:=АРИФМЕТИЧЕСКОЕ ВЫРАЖЕНИЕ; Оператор выполняется следующим образом: 1) В арифметическое выражение подставляются текущие значения переменных, хранящиеся в оперативной памяти ЭВМ. 2) Вычисляется значение арифметического выражения. 3) Результат записывается в ячейку, где хранится переменная, чье имя стоит в операторе слева. При этом прежнее значение этой переменной затирается. Пример: x:=5; x:=x+2; Количество операторов присваивания в одной строчке неограниченно. Отметим: 1. Нельзя присваивать переменной значение не родственного типа (например, строковой переменной – целое значение; целой переменной – логическое и т. п.). 2. Нельзя присваивать переменной значение родственного типа, занимающее в памяти больший объем (например, символьной переменной – строковое значение; байтовой переменной – целое со знаком значение; целой переменной – вещественное значение и т. п.).
Стандарты ввода – вывода данных
Оператор печать, т.е. вывода на экран на Паскале имеет вид: Write(список вывода); Writeln(список вывода); Различие между ними заключается в том, что после выполнения печати списка вывода в первом случае курсор остается в той же строке (и, следовательно, последующая печать или ввод будут осуществляться в этой же строке, сразу за предыдущими), а во втором случае в данной строке уже ничего не будет напечатано, и курсор перескочит на начало следующей строки. В списке вывода могут быть перечисленные через запятую переменные и константы, вызванные как своими именами, так и значениями: Writeln(a,b,c); Write(‘Вывести х ‘);Writeln(‘x’,x); Переменная вещественного типа (х) будет выведена на печать в Е-форме(с плавающей точкой), что сделает ее трудночитаемой. Пример: x=4.91E-0008 () Для того чтобы в процессе вывода выдать вещественные данные в приемлемом виде, используют так называемый формат вывода с фиксированной точкой (F-форма): Writeln(‘x= ‘,x:m:n); Число m называют шириной поля, число n – точностью числа. Ширина поля – это число позиций, отводимых под запись всего числа. Точность – число позиций, отводимых на его десятичную часть. Пример: Writeln(‘Pi= ‘,Pi:7:4); На экране Pi=3.1416 Writeln(‘Pi= ‘,Pi:7:1); На экране Pi=3.1 Оператор ввода данных с клавиатуры выглядит следующим образом: Read(список ввода); Readln(список ввода); Здесь в списке ввода должны перечисляться имена вводимых переменных. Их можно вводить как списком, так и поодиночке: Readln(x, y); = Readln(x); Readln(y); При вводе данных из списка вводимые значения можно вводить по одному, нажимая клавишу “Enter” после набора каждого значения, либо набирать в одной строке, разделяя значения произвольным количеством пробелов.
Составной оператор Составной оператор – группа операторов, отделенных друг от друга точкой с запятой, начинающихся со служебного слова BEGIN и заканчивающихся служебным словом END. Begin <оператор_1>; … <оператор_n>; End;
Программирование линейных алгоритмов В линейных алгоритмах результат получается после выполнения одной последовательности действий. Начало⤍ряд операторов⤍конец. Пример: Вычислить площадь параллелограмма. Значения а (основание) и h (высота) ввести с клавиатуры. Program TI; Uses crt; {стандартная библиотека} Var {раздел описания переменных} a,h:real; s:real; {площадь параллелограмма} begin {начало работы программы} clrscr; {ф-ция очистки экрана, в данном очистит не весь экран, а только заданное текстовое окно } write(‘a=’); readln(a); write(‘h=’); readln(h); s:=a*h; writeln(‘s=’,s:6:2,’кв.см’); {вывод на экран результата} Repeat Until Keypressed; {стандартная функция из библиотеки CRT, приводит к задержке окна результатов до нажатия любой клавиши} End. Лекция 6 Процедуры и функции. Условные структуры.
Функции Function Рассмотрим раздел FUNCTION на примере вычисления значения функции: Реализовать формулу перехода из градусов в радианы (так как тригонометрические функции понимают лишь аргумент в радианной мере (см. ниже Примечание)) несложно, но выписывать ее придется четыре раза. С этой целью имеет смысл один раз запрограммировать ее и четыре раза вызывать. Делается это с помощью организации функции в разделе FUNCTION:
Function Имя_функции (входные параметры): тип_результата; Label внутренние метки функции; Const определение локальных констант; Type определение типов; Var описание локальных переменных функции; Begin Основной блок функции End;
Глобальные и локальные переменные, формальные и фактические переменные и параметры в функциях и процедурах в языке Pascal Термин «ЛОКАЛЬНЫЙ» применимо к меткам, константам и переменным, описанным в разделе FUNCTION, означает, что эти метки, константы и переменные с этими именами могут фигурировать лишь в тексте основного блока функции. При этом следует давать имена локальным переменным, константам и даже – входным параметрам, отличающиеся от имен параметров, фигурирующих в основном блоке программы (так называемых ГЛОБАЛЬНЫХ параметров) во избежание путаницы. Совпадение меток может привести к выдаче сообщения об ошибке «Duplicate Label Number», а локальная переменная «перекроет» свою глобальную напарницу, что очень трудно предугадать в процессе анализа программы. Приведенная структура в точности копирует в миниатюре структуру программы. Тогда текст функции перевода из градусов в радианы (назовем ее GradRad) будет выглядеть так:
Function GradRad(fi:real):real; begin GradRad:=fi*Pi/180; end; При описании и в тексте функции фигурирует не конкретное значение, а некоторый параметр ‘fi’, для которого и выписана формула. Такой параметр называется ФОРМАЛЬНЫМ. Потом, после вызова функции (например, GradRad(17)) в нее будет передано конкретное значение аргумента (17), для которого функция и будет вычислена. Такой параметр называют ФАКТИЧЕСКИМ. Для перестраховки fi описан типом real, хотя в нашем примере значения целы. Зато именно такой текст функции годится для любой программы. Примечание. Тригонометрические функции sin(x) и cos(x) обрабатывают аргумент, представленный в радианной, а не градусной мере. Поэтому выражение sin(30) соответствует синусу 30 радиан, а не 30 градусов и, следовательно, не равно 0.5. Аргумент может быть пересчитан из градусной меры в радианную по формуле Соответственно значение функции ArcTan(x) получается в радианной мере, и для его пересчета в градусы используют формулу
Пример: Вычислить значение
Program Trigonometry; Uses crt; {стандартная библиотека} Var {раздел описания переменных} y: real; Function GradRad(fi: real):real; {функция перевода угла из градусной меры в радианную} Begin GradRad:=fi*pi/180 End; Begin ClrScr; y:=sin(GradRad(17))-cos(GradRad(82)); y:=y+sin(GradRad(28))/cos(GradRad(28)); Writeln(' y= ', y:6:2); {вывод на экран результата} Repeat Until KeyPressed; {стандартная функция из библиотеки CRT, приводит к задержке окна результатов до нажатия любой клавиши} End.
Результат работы программы y=0.685.
Процедуры Procedure
Операции, схожие с функциями, именуемые процедурами, но лишенные конкретного числового значения. Разница состоит в том, что конечная цель процедуры – не получение, конкретного одного значения (будь то число, символ, строка, логическая величина), что соответствует функции, а выполнение некоторых операций. Поэтому при организации процедуры тип результата не указывается. Самыми простыми примерами таких операций могут являться распечатка массивов, упорядочивание набора чисел и т. д.
Примечание:
Пример: Пусть необходимо поменять местами значения вводимых переменных х и у. Эта операция весьма распространена. Поэтому имеет смысл сделать ее стандартной, описав как процедуру. Назовем ее “Swap” (перестановка). Этой процедуре необходимо подавать значения двух переменных. При организации процедур важно помнить одно правило: если передаваемые в процедуру параметры будут в ней изменяться, их описание следует предварять словом Var. Тогда программа примет вид: Program Change; Uses CRT; {стандартная библиотека} Var x, y:Real; Procedure Swap(Var aa, bb:real); Var rr:Real; Begin rr:=aa; aa:=bb; bb:=rr end; Begin Write(‘x= ‘); Readln(x); Write(‘y= ‘); Readln(y); Swap(x,y); Writeln(‘x= ‘,x:4:1,’ y = ‘,y:4:1); {вывод на экран результата} Repeat Until KeyPressed; {стандартная функция из библиотеки CRT, приводит к задержке окна результатов до нажатия любой клавиши} End. Результат работы программы: x=4 y=6 x= 6.0 y= 4.0
Условные операторы Условные операторы позволяют проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Таким образом, условные операторы – это средство ветвления вычислительного процесса. Следует отметить: v выбор последовательности операторов осуществляется во время выполнения программы в зависимости от выполнения условия; v условие – это выражение логического типа, которое может принимать одно из двух значений: true (истина-условие выполняется) или false (ложь-условие не выполняется); v при помощи логических операций and (логическое «И») и or (логическое «ИЛИ») из простых условий можно строить сложные.
Оператор ‘IF-THEN’ Оператор IF-THEN (“Если-то”) форма записи имеет вид: If (условие) Then Begin Оператор; Оператор; ... End; Работает следующим образом: Если стоящее в скобках условие истинно, то выполняются операторы, стоящие между Begin и End, а если ложно – программа сразу переходит на конец оператора. Отличие оператора If-Then от оператора If-Then-Else состоит в том, что условная структура If-Then-Else реализует так называемое двойное ветвление.
Пример 1. Вычислить квадратный корень из числа x. При вводе отрицательного значения x ЭВМ выведет сообщение об ошибке “Invalid Floating Point Operation”. Нужно составить программу, которая в случае отрицательного значения x выводила на экран сообщение: 'Недопустимое значение', в случае x>=0 выводила результат. Фрагмент программы: Write(‘x =’); Readln(x); If (x>=0) Then Begin y:=Sqrt(x); Writeln(‘Sqrt(x)=’,y:6:2); End; If (x<0) Then Write (‘Недопустимое значение’);
Любое условие есть величина логическая (типа Boolean), принимающая значение True в том случае, когда условие истинно, и False – в обратном случае. В силу этого обстоятельства условие If (x<0) then Оператор; являет собой сокращенную запись условия
If ((x<0)=True) then Оператор; Более краткое If (x<0) then Оператор;
Оператор ‘IF-THEN-ELSE’ Оператор IF-THEN-ELSE (“Если-То-Иначе”) предусматривает двойное ветвление, форма записи имеет вид: If (условие) Then Begin Оператор1; End Else Begin Оператор2; End; Поставленная после первого End точка с запятой ‘;’ (разделитель операторов) приведет к ошибке, тогда будет означать конец оператора. После ELSE точку с запятой не ставить. Пример1.Найти максимум из двух целых чисел a и b, введенных с клавиатуры. Фрагмент программы: if (a>b) then max:=a else max:=b;
Тройное ветвление Выбор идет из трех возможных вариантов.
Пример 1Ввести x и вычислить y:
Program TI_1; Uses crt; Var x,y:real; Begin Write(‘x=’); readln(x); If x<-1 then y:=ln(abs(x)) else If (x>=-1) and (x<0) then y:=sin(x) else y:=cos(x); Writeln(‘x=’,x:5:2,’ y=’,y:5:2); Readkey; {функция будет ожидать нажатия на любую клавишу} End.
Блок схема
Пример 1.Найти min из трех вещественных чисел. Program Poiskmin; Uses crt; Var a,b,c,min:real; Begin Write(‘a=’); Readln(a); Write(‘b=’); Readln(b); Write(‘c=’); Readln(c); If (a<b) Then If (a<c) Then min:=a Else If (b<c) then min:=b Else min:=c; Writeln(‘min(a,b,c)=’,min:6:2); Repeat Until KeyPressed; End.
Пример 2. Найти max из трех вещественных чисел.
Фрагмент программы: If (a>b) Then If (a>c) Then max:=a Else If (b>c) then max:=b Else max:=c;
Более сокращенный вариант If (a>b) Then max:=a Else max:=b; If (c>max) Then max:=c;
Оператор варианта ‘CASE…OF’
Сложное ветвление N-го порядка имеет один существенный недостаток: Приходится писать большое количество однотипных операторов IF-THEN-ELSE. Такую структуру может заменить компактный оператор варианта CASE-OF. Синтаксис этого оператора представлен ниже:
CASE имя_переменной OF <Вариант1>: [Оператор_1]; …………………. <ВариантN>: [Оператор_N]; ELSE [Оператор_N+1]; END;
Если переменная с именем, указанным после CASE, принимает значение одного из нижеприведенных диапазонов, то выполняется соответствующий блок операторов. Если ни в один из диапазонов ее значение не попадает, то выполняется альтернативные операторы, стоящие после ELSE. Если же альтернативная ветвь отсутствует, то программа выходит из оператора, ничего не исполнив.
Пример:
Program ZACHET; Uses crt; Label metka; Var examination:char; Begin metka: write(‘зачет (Y/N)?-’); readln(examination); Case examination of ‘Y’: write(‘зачет’); ‘N’: write(‘не зачет’); ‘I’: write(‘не явка’); Else Goto metka; End; Repeat Until KeyPressed; End.
На экране зачет (Y/N)?-Да нужно повторить ввод, т.к. набрано на русском языке. зачет (Y/N)?-Y зачет Лекция 7 Циклические структуры. Вложенные циклы. Рекурсивные функции. Операторы прерывания.
Циклическим (циклом) называется такой алгоритм, в котором некоторая группа действий повторяется неоднократно. Группа действий, повторяемая в цикле, называется телом цикл. Однократное выполнение тела цикла называется шагом. Для того чтобы алгоритм не зацикливался (не стал бесконечным), циклом надо управлять. Для это используется специальная величина – параметр цикла. Параметр (переменная) цикла – это величина, которая изменяется от шага к шагу и по значению которой определяются, продолжать исполнение цикла или закончить его. Если количество повторений известно заранее, то это определенный цикл, если определяется в процессе работ цикла, то это неопределенный цикл. Циклы по числу повторений делятся на циклы с заданным числом повторений и итерационные. -В итерационных циклах выполнение цикла оканчивается при выполнении общего условия, связанного с проверкой монотонно изменяющейся величины. - Вложенные циклы – это, когда определённый цикл повторяется многократно в другом цикле охватывающем данный.
Определенные циклы ‘FOR…DO…’ Определенный цикл FOR-DO (цикл со счетчиком) имеет следующую структуру: (ОТ ДО) FOR <перем_цикла>:=<нач_знач> TO <конеч_знач> DO Begin <тело_цикла> End; <перем_цикла> - переменная цикла- любая переменная целочисленного типа (Например INTEGER, кроме REAL). Переменную цикла также называют счетчиком. <нач_знач> - начальное значение - выражение того же типа; <конеч_знач> - конечное значение - выражение того же типа; <тело_цикла> - произвольная последовательность операторов Турбо Паскаля; При выполнении оператора FOR вначале вычисляется выражение <нач_знач> и осуществляется присваивание <перем_цикла>:=<нач_знач>. После этого циклически повторяется: - проверка условия <перем_цикла> <= <конеч_знач>; если условие не выполнено, оператор FOR завершает свою работу; - выполнение операторов входящих в <тело_цикла>; - наращивание переменной <перем_цикла> на единицу; Первая форма записи оператора FOR с последовательным увеличением счетчика. ü Для целой переменной строится цикл с шагом +1 по возрастанию параметра for i:=1 to 8 do Оператор; В этом случае i последовательно принимает значения 1,2,3,..,8. ü Попытка организовать цикл «от большего к меньшему» for i:=8 to 1 do Оператор; не приведет к ошибке, но будет пройден лишь один шаг (i=8).
Пример: Написать программу для вычисления суммы N первых натуральных чисел, т.е. требуется вычислить 1+2+3+…N
Program PRIMER; Var N: integer; {последнее число суммы- исходное данное} i, s:integer; {счетчик цикла и слагаемое, сумма результата} Begin Write(‘N’);Readln(N); {Вводим значение N} s:=0; {Начальное значение суммы} for i:=1 to N do {Цикл подсчета суммы} s:=s+i; Writeln(‘S = ’, s); {вывод на экран результата} End.
Замечание 1. Условие <перем_цикла> <= <конеч_знач>, управляющее работой цикла FOR-DO проверяется перед выполнением тела цикла: если условие не выполняется в самом начале работы цикла FOR-DO, цикл не будет выполнен ни разу. Замечание 2. Шаг наращивания параметра цикла строго постоянен и равен 1. Замечание 3. Внутри
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-07-18; просмотров: 77; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.111.9 (0.451 с.) |