- •Утверждаю Зам.Директора по учебной работе
 - •Основы Алгоритмизации и программирования учебно-методическое пособие
 - •220301 Автоматизированные системы обработки информации и правления
 - •Введение
 - •Основные этапы решения задач на эвм
 - •Глава 1 способы записи алгоритма
 - •1.1 Алгоритм и его свойства
 - •Схемы алгоритма
 - •1.2 Структуры алгоритмов
 - •1.2.1 Алгоритм линейной структуры
 - •1.2.2 Алгоритм разветвляющейся структуры
 - •1.2.3 Алгоритм циклической структуры
 - •1.2.4 Алгоритм со структурой итерационных циклов
 - •1.2.5 Алгоритм со структурой вложенных циклов
 - •Глава 2 программа на языке высокого уровня
 - •2.1 Системы программирования
 - •2.2 Характеристика языка программирования Паскаль
 - •2.3 Алфавит и структура программы на Паскале Алфавит программы
 - •Структура программы
 - •Глава 3 Стандартные типы данных
 - •3.1 Данные. Типы
 - •3.2 Вещественные типы
 - •3.3 Целочисленные типы
 - •3.4 Символьный тип
 - •3.5 Логический тип
 - •4 Представление основных структур программирования: итерация, ветвление, повторение
 - •4.1 Линейная структура (следование)
 - •Var X,y,f: real;
 - •4.2 Разветвляющая структура (ветвление)
 - •4.3 Циклическая структура (повторение)
 - •4.3.1 Оператор цикла с параметром
 - •I : Integrer; {номер числа }
 - •4.3.2 Оператор цикла с постусловием
 - •I,n: integer;
 - •4.3.3 Оператор цикла с предусловием
 - •4.3.4 Итерационные циклы
 - •Var r,a:real;
 - •Приближенное вычисление функций
 - •Решение уравнений приближенными методами
 - •Метод деления отрезка пополам
 - •Xsl, Xpr, a, b, e, y1, y2, Lev, Prav, y: Real;
 - •Метод Ньютона
 - •Метод прохождения отрезка с переменным шагом
 - •Вычисление определенных интегралов
 - •1. Метод прямоугольников
 - •X: Real;
 - •2. Метод трапеций
 - •X: Real;
 - •Глава 5 Типы данных, определяемые пользователем
 - •5.1 Пользовательский тип данных
 - •5.1.1 Типизированные константы
 - •5.1.2 Перечисляемый тип
 - •I:1..6; loto: num;
 - •5.2 Массивы
 - •I : integer;
 - •5.2.1. Работа с одномерными массивами
 - •I,sum : integer;
 - •Var a: array [1..N] of real;
 - •Var I,s,r: integer;
 - •I : list;
 - •I : integer;
 - •X : mass;
 - •I, j, p, n, m, k:integer;
 - •I, j, k, nd : integer;
 - •Xmin : real;
 - •X : mass;
 - •Var I, j, nd : integer;
 - •X : mass;
 - •5.2.2 Работа с двумерными массивами( матицы)
 - •Var I,j,n : integer;
 - •I,j,n,m : integer;
 - •5.2.3 Сортировка массивов
 - •Сортировка методом "пузырька"
 - •X : Array [1..Nmax] Of Real;
 - •X : Array [1..Nmax] Of Real;
 - •Сортировка выбором
 - •Обменная сортировка
 - •Var m:array[1..1000] of integer;
 - •I,z,n:integer; Key:byte;
 - •Сортировка слиянием
 - •Var { Описание массивов и переменных}
 - •X, y: array[1..1000] of integer;
 - •5.3 Строковые типы
 - •Var s: string[10];
 - •5.3.1 Операции над строками
 - •5.3.2 Стандартные процедуры и функции для строк
 - •Функция Length
 - •Функция Upcase
 - •Функция Copy
 - •Функция Роs
 - •I, n, p: integer;
 - •I: integer;
 - •I: integer;
 - •Insert (word2, text, I);
 - •Insert (chr (k-32), t, I);
 - •Insert (chr (k-80), t, I);
 - •Insert (‘е’, t, I);
 - •Глава 6 Процедуры и функции
 - •6.1 Процедуры
 - •I : Integer;
 - •I, n: integer;
 - •Input _ mas (k, n);
 - •I,n : Integer;
 - •I,k : Integer;
 - •6.2 Функции
 - •I:Integer;
 - •2) Массивы;
 - •I,n : Integer;
 - •I : Integer;
 - •I,tn,tk:Real;
 - •Глава 7 Программирование рекурсивных алгоритмов
 - •7.1 Понятие рекурсии
 - •7.2 Техника построения рекурсивных алгоритмов
 - •7.3 Формы рекурсий
 - •If Prim(I) then
 - •7.4 Рекурсия и итерация
 - •7.5 Программирование с использованием рекурсии
 - •Var p: Integer;
 - •Var X, y: Integer; begin
 - •Var z: Real; begin
 - •Var I:integer; j:real;
 - •Глава 8 Файлы
 - •8.1 Текстовые файлы
 - •I,n : Integer; {Вспомогательные переменные}
 - •8.2 Типизированные файлы
 - •X,m,s : Real;
 - •8.3 Нетипизированные файлы
 - •Глава 9 Записи
 - •9.1 Описание записи
 - •I: integer;
 - •9.2 Оператор присоединения
 - •I, j, k, m : integer;
 - •X: real;
 - •9.3 Вложенные записи
 - •9.4 Записи с вариантами
 - •Information: record
 - •I, k, n : integer;
 - •Vedom : Array [1..Nmax] Of Stud;
 - •I,j : Integer;
 - •Vedom : File Of Stud;
 - •Vedom : File Of Stud;
 - •I,j,kdv,k2 : Integer;
 - •If Not Eof (Ftel) Then
 - •If Not Eof(Ftel) then
 - •If Not Eof(FilComp) then
 - •Глава 10 Динамические структуры данных
 - •10.1 Распределение памяти при выполнении программ
 - •Верхняя граница памяти ms-dos
 - •10.2 Ссылочные переменные
 - •10.3 Процедуры управления кучей
 - •10.4 Использование переменных ссылочного типа
 - •I: Integer;
 - •I, k : Integer;
 - •Val(b, k, code);{Превратили второй символ в ч исло}
 - •10.5 Списки
 - •Var Ch : Char;
 - •Var Ch : Char;
 - •10.6 Деревья
 - •10.7 Константы ссылочного типа
 - •Глава 11. Язык Паскаль. Графический модуль Graph Список используемой литературы Основная
 - •Дополнительная
 
I,n : Integer;
Function SumMas (k:Integer;X:Mas):Real;
{Нахождение суммы элементов массива вещественных чисел}
Var
I : Integer;
S : Real; { Вспомогательная переменная - сумма}
Begin
S := 0;
For i := 1 to k Do
S:=S + X[i];
SumMas:=S;
End; { SumMas }
Begin
{ Основная программа }
Writeln(’Введите размер массивов’);
ReadLn(n);
Writeln(’Введите первый массив’);
For i := 1 to n Do
ReadLn (A[i]);
Writeln(’Введите второй массив’);
For i := 1 to n Do
ReadLn (B[i]);
Suma := SumMas(n,A);
Sumb := SumMas(n,B);
Writeln(’Сумма чисел 1-го массива =’,Suma:8:2);
Writeln(’Сумма чисел 2-го массива =’,Sumb:8:2);
WriteLn(’Работа окончена. Нажмите клавишу ENTER’);
Readln;
End.
Пример 6.6 Составить программу вычисления n! С использованием функции.
Первый вариант задачи.
program factorial;
Описательная часть основной программы:
var
n, k: integer;
function fac (k: integer): integer;
Описательная часть подпрограммы:
var
p, i: integer
begin
Исполнительная часть подпрограммы:
p:=1
for i:=1 to k do
p: = p*i;
fac: =p;
end;
Исполнительная часть основной программы:
begin
write ('введите n');
readln (n);
for k: = 1 to n do
writeln (fac(k));
end.
n, k - глобальные переменные.
p, i - локальные переменные.
fac - имя "функции", возвращает результат в основную программу. Может в подпрограмме присутствовать в операторах присваивания только слева от знака "=".
Второй вариант задачи вычисления n!
program factorial;
var
n: integer;
function fac (i: integer): integer;
begin
if i=1 then fac: = 1
else fac: = i * fac(i-1);
end;
begin
writeln ('введите n');
readln (n);
writeln ('n! = ', fac(n));
end.
Подпрограмма-функция многократно обращается сама к себе. Вычисление начинается с конца i = n и до i = 1.
Пример 6.7 Составить программу для вычисления определенного интеграла
tk
2t
I= S--------------- dt
sqrt(1-sin2t)
tn
по методу Симпсона. Вычисление подинтегральной функции реализовать с помощью функции, имя которой передается как параметр. Значение определенного интеграла по формуле Симпсона вычисляется по формуле:
ISimps=2*h/3*(0.5*F(A)+2*F(A+h)+F(A+2*h)+2*F(A+3*h)+...
+2*F(B-h)+0.5*F(B))
где A и B - нижняя и верхняя границы интервала интегрирования, N - число разбиений интервала интегрирования, h=(B-A)/N, причем N должно быть четным.
Program INTEGRAL;
type
Func= function(x: Real): Real;
var
I,tn,tk:Real;
N:Integer;
{$F+}
Function Q(t: Real): Real;
begin
Q:=2*t/Sqrt(1-Sin(2*t));
end;
{$F-}
Procedure Simps(F:Func; a,b:Real; N:Integer; var INT:Real);
var
sum, h: Real;
j:Integer;
begin
if Odd(N) then N:=N+1;
h:=(b-a)/N;
sum:=0.5*(F(a)+F(b));
for j:=1 to N-1 do
sum:=sum+(j mod 2+1)*F(a+j*h);
INT:=2*h*sum/3
end;
begin
WriteLn(' ВВЕДИ TN,TK,N');
Read(TN,TK,N);
Simps(Q,TN,TK,N,I);
WriteLn('I=',I:8:3)
end.
