
- •Утверждаю Зам.Директора по учебной работе
- •Основы Алгоритмизации и программирования учебно-методическое пособие
- •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 Список используемой литературы Основная
- •Дополнительная
Var I,s,r: integer;
a : array [ 1.. n ] of integer;
begin
for i := 1 to n do {Ввод одномерного массива а}
begin
write('Введите ',i,'-й элемент массива ');
readln(a [i])
end;
write(‘Введите число для поиска');
readln(s);
for i := 1 to n do
begin
if a[i] = s then
begin
r := r + 1;
writeln('Обнаружено ',r,'-e вхождение числа ',s,' в массив а в позиции ',i);
end;
end;
if r <>0 then writeln('Число ',s,' встречается в массиве а ',r,' раз')
else writeln('Число ',s,' не встречается в массиве а’)
end.
Перед оператором ввода readln(a[i]) выполняется оператор вывода writeln('Введите ',i,'-й элемент массива '), который представляет собой подсказку для пользователя при вводе исходной информации. При i = 1 на экране высветится:
Введите 1-й элемент массива
маркер остановится в конце выведенной строки, ЭВМ приостановит выполнение программы до момента ввода пользователем численной информации.
При i = 2 на экране высветится информация:
Введите 2-й элемент массива
и так далее до конца выполнения цикла.
Пример 5.8 Найти минимальный и максимальный члены последовательности а, состоящей из 10 элементов.
Присвоим переменным min и max значение первого элемента и далее будем перебирать все элементы последовательности от 2 до n, сравнивая аi с max и с min. Если аi окажется больше, чем max, то max присваивается значение аi. Если аi окажется меньше, чем min, то min присваивается значение аi. По окончании цикла max примет значение наибольшего элемента последовательности, a min - наименьшего.
program minmax; {Поиск миним. и максим. элемента}
const n = 10;
tyре
list= 1..n;
vаг
I : list;
min, max : integer;
a : array [list] of integer;
begin
for i := 1 to n do
begin
write('Введите ',i,'-й элемент массива ');
readln(a [i])
end;
min := a[1]; max := min;
for i:= 2 to n do
begin
if a[i] > max then max := a[i];
if a[i] < min then min := a[i];
end;
write ('Максимальный элемент = ', max, ' Минимальный элемент = ',min)
end.
В программе показано, что заданная в разделе описания типов переменная list может быть использована в качестве граничной пары в описании массива.
Пример 5.9 Все члены последовательности х из 10 элементов сдвинуть на одну позицию вправо.
Каждому последующему элементу хi присваивается значение предыдущего хi-1. Для хi такого значения не существует, следовательно, х1 = 0.
program sdvig; {Сдвиг массива на одну позицию вправо}
const n = 10;
type
mass = array [1 .. n] of integer; {Определение массивового типа}
var
I : integer;
X : mass;
begin
for i := 1 to n do
begin
write('Введите ',i,'-й элемент массива ');
readln(x[i])
end;
for i:= n downto 2 do x[i] := x[i-1]; x[1] := 0;
writeln('Результат');
for i:= 1 to n do write(x[i] :4);
end.
В программе определен новый тип данных - массивовый, состоящий из десяти компонент целого типа.
Пример 5.10 Даны три массива:a(n), b(m), c(k). Массив a(n)- упорядочен, a[i]<a[i+1]. Из a(n) - удалить m элементов с номерами, хранящимися в b(m) ,(m<n). Затем в массив a(n) - вставить k элементов, не нарушая упорядоченности из массива c(k). n-m+k 100
Program prim;
label 3;
type
mas = array [1..100] of integer;
var
a, b, c: mas;