- •Утверждаю Зам.Директора по учебной работе
- •Основы Алгоритмизации и программирования учебно-методическое пособие
- •220301 Автоматизированные системы обработки информации и правления
- •Введение
- •Основные этапы решения задач на эвм
- •Глава 1 способы записи алгоритма
- •1.1 Алгоритм и его свойства
- •Схемы алгоритма
- •1.2.1 Алгоритм линейной структуры
- •1.2.2 Алгоритм разветвляющейся структуры
- •1.2.3 Алгоритм циклической структуры
- •1.2 Структуры алгоритмов
- •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, j, p, n, m, k:integer;
begin
write(' введите n, m, k'); readln(n, m, k);
writeln ('введите массив a);
for i:=1 to n do readln (a[i]);
writeln ('введите массив b');
for i:=1 to m do readln (b[i]);
writeln ('введите массив c');
for i:=1 to k do readln (c[i]);
{ удаление элементов из a }
for i=:1to m do
begin
for i:=b[i] to n-1 do a[i]:=a[i+1];
n:=n-1;
end;
{ вставка элементов в a }
for j:=1 to k do
begin
if c[j]>=a[n] then {если c[j] - наибольший - его ставим в конец массива.}
begin
a[n+1]:=c[j]; n:=n+1;
end;
else
for i:=1 to n do
if a[i]>c[j] then
begin
for p: =n down to i do
a[p+1]:=a[p];
a[i]:=c[j];
n:=n+1; go to 3;
end;
3: end;
for i:=1 to n do
writeln (a[i]);
end.
Пример 5.11 Составить программу упорядочивания элементов массива х, состоящего из nd элементов, расположив их в порядке возрастания в том же массиве.
Упорядочивание элементов массива по возрастанию можно выполнить, используя прием нахождения наименьшего элемента. В исходной последовательности найдем наименьший элемент и запомним его порядковый не мер к. Элемент хi поменяем местами с элементом хk. После этого наименьший элемент окажется на первом месте. Такую же процедуру необходимо проделать с оставшимися элементами от 2 до nd. В этом случае наименьший элемент xk нужно поменять местами со вторым элементом. На втором месте окажется второй по величине элемент. Процедуру поиска наименьшего элемента нужно повторить nd-1 раз. Последний элемент сам с собой можно не сравнивать. В алгоритм поиска минимального элемента вводим блок для запоминания порядкового номера этого элемента. Такой метод упорядочивания элементов массива называют методом перестановок.
program perestan; {Упорядочивание элементов массива методом перестановок}
const nmax = 100;
type
mass = array [1 .. nmax] of real;
var
I, j, k, nd : integer;
Xmin : real;
X : mass;
begin
read(nd);
for i := 1 to nd do
begin
write(' Введите ',i,'-й элемент массива ');
readln(x[i])
end;
for i := 1 to nd - 1 do
begin
xmin := x[i]; k := i;
for j := i+1 to nd do
if x[j] < xmin then
begin
xmin := x[j];
k:=j
end;
x[k] := x[i];
x[i] := xmin
end;
for i:= 1 to nd do
write(x[i]:8:2)
end.
B программе под массив x отводится 100 ячеек памяти. Очевидно, что переменная nd не может быть больше 100. Хорошо было бы дополнить программу проверкой nd при вводе. Если введено значение nd большее 100, дать соответствующее сообщение и вернуться на начало ввода.
Пример 5.12 Составить программу упорядочивания элементов массива x, состоящего из nd элементов, расположив их в порядке возрастания в том же массиве. Использовать пузырьковый метод.
Сортировка множества данных является одной из центральных проблем обработки данных. Задачу упорядочивания элементов массива можно решать разными способами. Пузырьковый метод заключается в том, что последовательно сравниваются между собой два соседних элемента и меняются местами, если xj-1 > xj.
program puzirok;
{Упорядочивание элементов массива методом сравнения двух соседних элементов}
const nmax =100;
type
mass = array [1 .. nmax] of real;
