- •Содержание
- •Предисловие научного редактора
- •Введение
- •1. Понятие алгоритма. Способы представления алгоритмов
- •В виде компьютерной программы:
- •2. Свойства алгоритмов
- •Язык графического представления алгоритмов
- •4. Общие принципы построения программ
- •5. Структура программы на языке паскаль
- •6. Классификация типов данных, используемых в языке паскаль
- •6.1. Символьный тип
- •6.2. Числовые типы
- •6.2.1. Целые типы
- •6.2.2. Вещественные типы
- •6.3. Логический тип
- •6.4. Типы данных, определяемые программистом
- •7. Основные операторы языка паскаль.
- •7.1. Операторы (процедуры) ввода – вывода
- •7.2. Оператор присваивания
- •7.3. Условный оператор
- •Первый вариант условного оператора:
- •If условие then оператор1 else оператор2;
- •Второй вариант условного оператора (сокращенная форма):
- •If условие then оператор1;
- •If условие1 then
- •If условие2 then оператор21 else
- •If условие3 then оператор31 else
- •7.4. Оператор выбора case
- •7.5. Операторы цикла
- •7.5.1. Оператор цикла с параметром
- •Параметр цикла I меняет свои значения только автоматически, при переходе к следующему шагу цикла. Изменения параметра цикла I в теле цикла запрещены.
- •7.5.2 Оператор цикла с предусловием оператор цикла с предусловием имеет структуру:
- •7.5.3. Оператор цикла с постусловием
- •8. Структурированные типы данных
- •8.1. Массивы
- •8.2. Записи
- •8.3. Файлы
- •2.Связать файловую переменную с именем файла на диске с помощью процедуры Assign(фп, ‘имя_файла_на диске’).
- •3. Открыть файл:
- •4. Выполнить работу с файлом.
- •Закрыть файл при окончании работы: Сlose(фп);
- •9. Процедуры и функции
- •9.1. Процедуры
- •Var I:integer; {I – локальная переменная}
- •9.2. Функции
- •2)Имя функции входит составной частью (как переменная) в некоторое выражение.
- •Задание к лабораторной работе №2.
- •Часть 1. Тема: вычисление по формулам и представление результатов с учетом форматного вывода.
- •Часть 2. Тема: Циклические вычисления с учетом диапазона типа данных и выдача результатов вычислений по шагам.
- •Задание к лабораторной работе №3.
- •Часть 1 .
- •Часть 2.
- •Задание к лабораторной работе №4.
- •Лабораторная работа №5.
Параметр цикла i и, соответственно, н_зн, к_зн могут быть любого порядкового типа (целые – byte, shortint, integer, символьный, булевский, перечислимый,…).
Тело цикла, обозначенное здесь как оп-р, может состоять из одного оператора, то есть быть простым оператором, или из некоторой последовательности операторов, то есть быть составным оператором. Если тело цикла оп-р состоит из двух и более операторов, то они должны быть оформлены как составной оператор, то есть заключаться в алгоритмические скобки BEGIN…END и после слова END, естественно, ставится знак «;». Следовательно, в любом случае оператор цикла заканчивается знаком «точка с запятой».
Параметр цикла I меняет свои значения только автоматически, при переходе к следующему шагу цикла. Изменения параметра цикла I в теле цикла запрещены.
Значение параметра цикла i при выходе из оператора цикла становится неопределенным. Поэтому переменная i, объявленная в программе, может использоваться в качестве параметров цикла в различных независимых операторах цикла, а вне этих операторов - как простая переменная. Например, будет корректным такой фрагмент программы:
Var i, sum_int:integer; sum_r:real;
Begin …
sum_r:=0;sum_int:=0;
For i:=1 to 5 do
sum_r:=sum_r+1/i;{i – параметр цикла }
For i:=1 to 10 do
sum_int:=sum_int+sqr(i);{ i – параметр цикла }
i:=35;{i - переменная}
…
Еnd;
Рекомендации по применению. Оператор цикла с параметром следует применять в тех случаях, когда количество выполнений оператора оп-р известно или может быть вычислено до начала выполнения оператора цикла.
Ниже приводятся программы, иллюстрирующие применение оператора цикла с параметром.
Пример1. Вычислить сумму N элементов арифметической прогрессии а1,а2,а3,…,аN при заданных значениях начального элементе а1 и разности d, позволяющих определить следующий элемент аi+1 из предыдущего ai по формуле аi+1 := ai + d, где i=1,2,…,N:
Program sum_ap;
var i,N:byte;
ai,d,sum: real;
begin
sum:=0;write(‘Задайте целое N и любые аi,d,: ’);
readln(ai,d,N);
for i:=1 to N do
begin sum:=sum + ai;
write(‘Сумма на ’,i,’-м шаге равна ’, sum);
ai:=ai+d
end;
writeln(‘Для выхода из программы нажми Enter’);readln;
end.
Пример 2.
Вычислить при заданном значении аргумента Х значение функции
Y= 11Х10 +10Х9 +9Х8 + 8Х7 + 7Х6 + 6Х5+ 5Х4 + 4Х3 + 3Х2 + 2Х + 1.
Применяя схему Горнера, получим:
Y=((((((((((11X+10)X+9)X+8)X+7)X+6X)+5)X+4)X+3)X+2)X+1).
Program gorner;
Var i:integer;
X,Y:real;
Begin write(‘Задайте значение Х:’); readln(X);
{Вычисление по схеме Горнера:}
Y:=11;
For i:=10 downto 1 do Y:=Y*X+i;
Writeln(‘При Х=’,Х:6:2,’ Y=’,Y:8:4);
Writeln(‘Для выхода из программы нажать Enter’);readln;
End.
7.5.2 Оператор цикла с предусловием оператор цикла с предусловием имеет структуру:
WHILE условие DO оп-р;
где условие – это выражение, принимающее значение false или true.
оп-р – простой или составной оператор, выполняющийся в цикле до тех пор, пока условие = true, иначе программа переходит к выполнению оператора, следующего за оператором цикла.
Пример 3. Вычислить сумму ряда элементов убывающей последовательности S=1+1/22+1/32 +1/42+…+1/k2+… . Вычисление производить до тех пор, пока очередной элемент ряда не станет меньше некоторой заданной величины Е.
Program sum_r;
Label 1;{метка}
Var k:integer;
Sum,a,E:real;{a – очередной элемент ряда}
Begin
1: write(‘Задайте значение Е>0: ’);readln(E);
{Очевидно, что при Е>=1 задача теряет смысл, поэтому
проверяется условие корректности задания значения Е:}
if E>=1 then
begin writeln(‘Значение Е задано не корректно. Надо Е<1’);
goto 1
end;
a:=1;{первый элемент ряда равен 1}
Sum:=0;k;=0;
While a > E do
Begin k:=k+1;a:=1/sqr(k);sum:=sum+a;
writeln(‘На шаге’, k:3, ‘ сумма ряда S=’,sum);
End;
Writeln(‘Решение закончено. Нажмите Enter’);readln
End.
Особенность оператора while состоит в том, что если условие первоначально равно false, то никакие действия внутри оператора цикла ни разу не выполняются и программа сразу переходит к выполнению оператора, следующего за оператором цикла.
