
- •Смоленский гуманитарный университет
- •Часть 1. Основы алгоритмизации
- •Тема 1 «Алгоритмы линейной структуры»
- •Ход работы
- •Тема 2 «Алгоритмы разветвляющейся структуры»
- •Ход работы
- •Тема 3 «Алгоритмы циклической структуры»
- •Ход работы
- •Тема 4 «Вложенные циклы»
- •Ход работы
- •Тема 5 «Массивы»
- •Ход работы
- •Часть 2. Программирование
- •Тема 6 «Линейная структура программы»
- •Примеры решения задач
- •Ход работы
- •Тема 7 «Разветвляющая структура программы»
- •Примеры решения задач
- •Ход работы
- •Тема 8 «Циклическая структура программы»
- •Примеры решения задач
- •1 Способ
- •2 Способ.
- •1 Способ
- •2 Способ
- •1 Способ
- •2 Способ
- •1 Способ
- •2 Способ
- •Ход работы
- •Тема 9 «Понятие подпрограммы. Организация процедур и функций»
- •Примеры решения задач
- •Ход работы
- •Тема 10 «Рекурсия»
- •Примеры решения задач
- •Ход работы
- •Тема 11 «Строковый тип данных. Методы работы со строками»
- •Ход работы
- •Тема 12 «Тип данных массив»
- •Примеры решения задач
- •1 Способ
- •2 Способ
- •1 Способ
- •2 Способ
- •1 Способ
- •2 Способ
- •Алгоритм
- •1 Способ
- •2 Способ
- •1 Способ
- •2 Способ
- •Алгоритм
- •Работа программы
- •Ход работы
- •Тема 13 «Тип данных - запись»
- •Ход работы
- •Тема 14 «Файлы. Типы файлов. Методы работы с файлами»
- •Примеры решения задач
- •1 Способ
- •2 Способ
- •Ход работы
- •Тема 15 «Множества»
- •Ход работы
- •Тема 16 «Работа с мультимедиа»
- •Ход работы
- •Максимова Наталья Адександровна Основы программирования
- •214014, Г. Смоленск, ул. Герцена, 2
1 Способ
Program Problem12;
uses WinCrt;
const
n = 20;
type
t = array[1..n] of integer;
var
a : t;
max : integer;
{----------------------------------------------------------------------------------------}
Procedure create(n : integer; var a : t);
var
i : integer;
begin
randomize;
writeln('Заданный массив целых чисел');
for i := 1 to n do
begin
a[i] := random(201) - 101;
write(a[i], ' ')
end;
writeln
end;
{----------------------------------------------------------------------------------------}
Procedure maximum(n : integer; a : t; var max : integer);
var
i : integer;
begin
max := a[1];
for i := 2 to n do if max < a[i] then max := a[i]
end;
{----------------------------------------------------------------------------------------}
begin
create(n, a);
maximum(n, a, max);
writeln('Наибольший элемент массива ', max)
end.
2 Способ
Program Problem12a; {Рекурсия}
uses WinCrt;
const
n = 20;
type
t = array[1..n] of integer;
var
a : t;
max : integer;
{----------------------------------------------------------------------------------------}
Procedure create(n : integer; var a : t);
var
i : integer;
begin
randomize;
writeln('Заданный массив целых чисел');
for i := 1 to n do
begin
a[i] := random(201) - 101;
write(a[i], ' ')
end;
writeln
end;
{----------------------------------------------------------------------------------------}
Procedure maximum(n : integer; var max : integer);
label 1;
begin
if n = 0 then goto 1
else if a[n] > max then max := a[n];
maximum(n - 1, max);
1: end;
{----------------------------------------------------------------------------------------}
begin
create(n, a);
maximum(n, max);
writeln('Наибольший элемент массива ', max)
end.
Задача 13. Процедура упорядочивания массива выбором.
Решение
Procedure choice(n : integer);
var
i, j, k, p : integer;
begin
for i := 1 to n do
begin
k := i;
for j := i + 1 to n do if x[j] < x[k] then k := j;
p := x[i]; x[i] := x[k]; x[k] := p
end;
writeln('Упорядоченный массив');
for i := 1 to n do write(x[i], ' '); writeln
end;
Задача 14. Вычислить значение многочлена используя формулу Горнера. Коэффициенты полинома удобно представить массивом (2; 0; -1; 4; 0; 0; -5; 6; 1). Порядок полинома n равен 8.
Решение