Практическое занятие №6 Программирование циклов на языке Паскаль
Цель работы: научиться реализовывать несложные циклические программы в среде программирования PascalABC.NET.
Оборудование: персональный компьютер, инструкция к работе, среда программирования PascalABC.NET
Теоретические сведения
Паскаль - язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623-1662) и разработан в 1968-1971 гг. Никлаусом Виртом. Первоначально был разработан для обучения, но вскоре стал использоваться для разработки программных средств в профессиональном программировании.
Паскаль популярен среди программистов по следующим причинам:
Прост для обучения.
Отражает фундаментальные идеи алгоритмов в легко воспринимаемой форме, что предоставляет программисту средства, помогающие проектировать программы.
Позволяет четко реализовать идеи структурного программирования и структурной организации данных.
Использование простых и гибких структур управления: ветвлений, циклов.
Надежность разрабатываемых программ.
Язык и система программирования PascalABC.NET. Команды в окне программы на русском языке.
Программы на языке Паскаль имеют блочную структуру
Общая структура программы на языке Паскаль
Рrogram ИМЯ..; {заголовок программы}
Uses ...; {раздел описания модулей}
Var ..; {раздел объявления переменных}
...
Begin {начало исполнительной части программы}
... {последовательность
... операторов}
End. {конец программы}
Алгоритмы с циклической структурой на языке Паскаль
Командой повторения или циклом называется такая форма организации действий, при которой одна и та же последовательность действий повторяется до тех пор, пока сохраняется значение некоторого логического выражения. При изменении значения логического выражения на противоположное повторения прекращаются (цикл завершается).
Различают циклы с известным числом повторений (цикл с параметром) и итерационные циклы (с пред- и постусловием).
В цикле с известным числом повторений параметр изменяется в заданном диапазоне. Если в цикле изменяется простая переменная, то она является параметром цикла; если в цикле изменяется переменная с индексом, то индекс этой переменной является параметром цикла.
Для организации цикла с известным числом повторений в Паскале используется оператор FOR.
Здесь УП — параметр, изменяющийся в цикле; нз, кз — выражения порядкового типа, обозначающие начальное и конечное значение параметра цикла. Шаг изменения номера параметра цикла равен 1. Параметр УП может быть как положительным, так и отрицательным. Соответственно, цикл может работать как по возрастанию, так и по убыванию значений своего параметра.
Структура цикла, организованного с помощью этого оператора, на языке Паскаль имеет вид:
for i := a to b do begin оператор end;
или
for i := a down to b do begin оператор end;
Шаг изменения номера параметра цикла равен 1, если в заголовке цикла стоит to, и -1 при downto. Возможность указания произвольного шага в языке Паскаль отсутствует: в таких случаях приходится использовать циклы с условиями.
Порядок выполнения цикла с шагом 1 следующий: вычисляются значения начального и конечного значений параметра цикла; параметр УП(i) принимает начальное значение (нз), если УП(i) меньше или равно конечному значению (кз), исполняется тело цикла; значение параметра цикла увеличивается, т. е. i=i+1; проверяется условие УП(i)кз (для отрицательного шага условие УП(i)кз), и при его выполнении цикл повторяется. Выход из цикла осуществляется, если УП(i) (УП(i)кз для шага -1), и выполняется оператор, следующий за оператором цикла.
Если в операторе цикла с параметром начальное или конечное значение параметра заданы переменными или выражениями, то значения этих переменных должны быть определены в программе до оператора цикла. Не следует внутри цикла изменять параметр цикла, его начальное и конечное значения с помощью операторов присваивания или ввода.
Циклы могут быть вложенными, т. е. при выполнении одного цикла внутри него выполняется еще один или даже несколько циклов. Однако следует иметь в виду, что время выполнения вложенных циклов прямо пропорционально произведению конечных значений их параметров.
Итерационные циклические алгоритмы
По сравнению с циклом с параметром, рассмотренным нами выше, итерационные циклы являются универсальными. Для организации итерационных циклов используются операторы цикла с предусловием — цикл «ПОКА» и цикла с постусловием цикл «ДО».
Эти операторы не задают закон изменения параметра цикла, поэтому необходимо перед циклом задавать начальное значение параметра с помощью оператора присваивания, а внутри цикла изменять текущее значение этого параметра.
Для оператора цикла с предусловием проверяется значение логического выражения: если оно имеет значение true, то операторы, входящие в цикл, выполняются, в противном случае осуществляется выполнение оператора, следующего за циклом.
Цикл с постусловием выполняется хотя бы один раз. Затем проверяется значение логического выражения если оно false, то операторы, входящие в цикл, выполняются, в противном случае осуществляется выход из цикла.
Входить в цикл можно только через его начало, т. е. нельзя входить внутрь цикла с помощью управляющего оператора, так как в этом случае параметр цикла не определен.
Практическая часть
Задание 1
Выполнить готовые циклические программы из таблицы
Вывод последовательности 1 3 5 7 9 с помощью разных циклов. var i,x: integer; begin // с помощью for и промежуточной переменной x := 1; for i := 1 to 5 do begin write(x,' '); x := x + 2; end; writeln; // С помощью for без промежуточной переменной for i := 1 to 5 do write(2*i-1,' '); writeln; // С помощью while x := 1; while x begin write(x,' '); x := x + 2; end; writeln; // С помощью repeat x := 1; repeat write(x,' '); x := x + 2; until x=10; end. Сумма и произведение введенных чисел. var s,p: real; begin writeln('Введите 10 чисел: '); s := 0; p := 1; for var i := 1 to 10 do begin var x: integer; read(x); s += x; p *= x; end; writeln('Сумма введенных чисел = ',s); writeln('Произведение введенных чисел = ',p); end. Вычисление n! var n: integer; begin write('Введите n (n readln(n); var fact := 1; for var i := 2 to n do fact *= i; writeln(n,'! = ',fact); end. Вычисление an var n: integer; a: real; begin write('Введите a,n: '); readln(a,n); var p := 1.0; for var i := 1 to n do p *= a; writelnFormat('{0} в степени {1} = {2}',a,n,p); end. | Вывод английских букв var c: char; begin for c := 'a' to 'z' do write(c,' '); writeln; c := 'A'; while c begin write(c,' '); c := succ(c); end; end. Числа Фибоначчи. const n = 25; begin var a := 1; var b := 1; write(a,' ',b,' '); for var i := 3 to n do begin var c := a + b; write(c,' '); a := b; b := c; end; end. Минимум из введенных. const n = 10; var min: integer; begin writelnFormat('Введите {0} значений: ',n); min := integer.MaxValue; for var i := 1 to n do begin var x: integer; read(x); if x min := x; end; writeln('Минимальное значение = ',min); end. Алгоритм Евклида поиска НОД var a,b,c: integer; begin writeln('Введите a,b: '); read(a,b); while b0 do begin c := a mod b; a := b; b := c; end; writeln ('Наибольший Общий Делитель = ',a); end. Вывод таблицы умножения. const n = 9; begin for var i:=1 to n do begin for var j:=1 to n do write(i*j:4); writeln; end; end. Вывод цифр числа var x: integer; begin write('Введите x: '); readln(x); write('Цифры числа x в обратном порядке: '); while x0 do begin write(x mod 10,' '); x := x div 10; end; end. |
Задание 2
Создать блок-схему алгоритма для второго задания.
Содержание отчета
Название работы.
Цель работы.
Задание и его решение.
Вывод по работе.
Контрольные вопросы
Что такое среда программирования?
Опишите среду программирования Pascal ABC.NET
Как сохранить текст программы?
Какова структура программы на языке Pascal?
Алгоритмическая структура «цикл»
Этапы решения задач на компьютере.
Литература
И.Г.Семакин, Т.Ю.Шеина, Л.В.Шестакова. Информатика, углубленный уровень,10 класс ч. 1, 2014 год
10