Программирование
В качестве языка описания алгоритмов воспользуемся далее языком программирования Паскаль, так как он наиболее подходит для целей обучения и часто (обоснованно) используется в обучении.
На алгоритмическом языке Паскаль любой алгоритм простой (не модульной, не составной) структуры имеет следующий стандартный вид:
Program <имя (заголовок) алгоритма>;
Uses <список подключаемых библиотек, если они нужны>; { комментарии, если нужны }
Label <список меток (имен участков программ), если они нужны>; { комментарии }
Const <список констант (не изменяемых величин), если они нужны>; { комментарии }
Type <список имен и типов структур данных, если они нужны>; { комментарии }
Var <список имен и типов переменных, если они нужны>;{комментарии }
{ < условия задачи и применимости алгоритма > }
{ < цель составления и выполнения алгоритма > }
Begin
<команды ввода входных данных, если они нужны>; { комментарии }
<тело алгоритма (команды управления и преобразования алгоритма)>; { комментарии }
<команды вывода результатов (выходных данных), если они нужны>; { комментарии }
End.
Пример.Программа вычисления объема v правильного цилиндра с радиусом основания r и высотой h.
Program VСil;
Uses Crt { подключение библиотеки ввода/вывода на экран "в звуке и цвете" }
Const pi = 3.14;
Var r, h, v: real;
{ для правильного цилиндра с радиусом основания r и высотой h }
{ вычислить и выдать на экран значение его объема v }
Begin
ClrScr; { команда очистки экрана (от данных предыдущей задачи) }
ReadLn (r, h); { ввод входных параметров }
v:=pi*r*r*h; { вычисление объема по формуле для цилиндра }
WriteLn (‘Вычисленный объем цилиндра равен ’, v) { вывод результата }
End.
Приведем таблицу наиболее часто используемых в языке Паскаль функций и процедур.
Обычная запись | Паскаль |
Квадрат числа х | sqr(x) |
Корень квадратный из x | sqrt (x) |
Модуль |х| | abs (x) |
sin x | sin(x) |
cos x | cos(x) |
tg x | tg(x) |
ctg x | ctg(x) |
arcsin x | arcsin (x) |
arccos x | arccos(x) |
arctg x | arctg(x) |
Натуральный логарифм ln x | ln(x) |
Степень числа е = 2, 7... или еx | exp(x) |
Остаток от деления целого х на целое у | x mod y |
Частное от деления целого х на целое y | x div y |
Целая часть числа х (вещественного) | int(x) |
Случайное число от 0 до х | rnd(x) |
Длина текста х в символах | length (x) |
Пример.Результаты применения этих функций: sqrt(9) = 3, abs(–5) = 5, sin(0) = 0, cos(0) = 1, ln(1) = 0, exp(1 ) =e, 23 mod 5 = 3, 20 mod 5 = 0, 23 div 5 = 4, 20 div 5 = 4, int(2.7) = 2, int(2) = 2, rnd(0) = 0.231356, length(‘информ’) = 6.
Порядок выполнения операций (старшинство операций – по убыванию) в языке Паскаль:
вычисление выражений в скобках;
вычисление стандартных функций;
умножение и деление (обозначаются "*" и "/");
сложение и вычитание (обозначаются "+" и "–").
Рассмотрим базовые простые команды языка Паскаль.
Команда описания (заголовка) алгоритма(программы):
Program <имя алгоритма>;,
где <имя алгоритма> – имя, задаваемое составителем программы (краткое, полное, грамотное отражение сути алгоритма).
Ввод– команда ввода в рассмотрение (втело алгоритма) тех или иных входных параметров:
Read (<список вводимых параметров>);
или
ReadLn (<список вводимых параметров>);.
Первая команда вводит данные с текущей позиции экрана (где стоит курсор), вторая – с новой строки экрана.
Вывод– команда вывода на экран тех или иных входных или выходных параметровалгоритма:
Write (<список выводимых параметров>);
или
WriteLn (<список выводимых параметров>);.
Первая команда выводит данные с текущей позиции экрана (где стоит курсор), вторая – с новой строки экрана.
Присваивание– команда изменения текущего значения переменной вида:
<идентификатор> :=<выражение>;,
где <идентификатор> соответствует имени переменной, <выражение> – корректно записанное выражение. Знак ":=" означает последовательное выполнение двух действий: определение текущего значения <выражения> и замена текущего значения переменной, имя которой задано <идентификатором>, на новое значение, равное значению <выражения>.
Команда начала алгоритма(блока) – команда Begin.
Команда завершения алгоритма(блока) – команда End.
Команда вставки комментариевв тексталгоритмаимеет вид:
<комментируемое в программе> {текст комментария}.
Комментировать можно любой объект в программе. Обычно комментируют переменную, структуру данных, команду, группу команд.
Рассмотрим ряд задач, решаемых с помощью массивов.
Пример. Составим алгоритм (программу) нахождения суммы и произведения всех элементов одномерного массива. Метод решения: начиная с нулевого значения суммы, добавляем поочередно новый элемент ряда и находим значение искомой суммы; начиная с начального, единичного произведения, находим искомое произведение, умножая текущее значение произведения на очередной элемент ряда. Алгоритм (программа) имеет вид
Program SPM1;
Uses Crt;
Var x: array [1..100] of real;
n, i: integer;
s, р: real;
Begin
ClrScr;
WriteLn('Введите размерность массива :'); { приглашение к вводу входного параметра }
ReadLn(n); { ввод входного параметра }
WriteLn('Введите элементы массива:'); { приглашение к вводу массива }
for i:=1 to n do { цикл ввода элементов массива }
begin
write('x[',i,']='); { приглашение к вводу текущего элемента массива}
readln(x[i]) { ввод текущего элемента массива }
end;
s:=0; { начальное значение суммы – нуль }
p:=1; { начальное значение произведение – единица [u1]}
for i:=1 to n do { цикл вычисления суммы и произведения }
begin
s:=s+x[i]; { добавление к сумме очередного слагаемого }
p:=p*x[i] { домножение произведения на очередной множитель }
end;
WriteLn('Полученная сумма равна ', s: 3:3); { вывод полученной суммы }
WriteLn('Полученное произведение равно ', p: 3:3); { вывод полученного произведения }
End.
Пример.Пусть необходимо находить сумму всех нечетных элементов натурального ряда чисел до тех пор, пока эта сумма не превысит значениеn. Слагаемое, при котором эта сумма превыситn– включать в сумму.
"Забудем" временно чисто математическое решение этой задачи – с использованием суммы арифметической прогрессии с шагом 2.
Алгоритм (программа) имеет вид
Program Summa;
Uses Crt; { подключение библиотеки ввода/вывода на экран "в звуке и цвете"}
Var i, n, s: real;
{ для ряда чисел 1, 3, 5, …, }
{ найти и выдать сумму s всех первых чисел ряда, для которых впервые s > n }
Begin
ClrScr; { команда очистки экрана (от данных предыдущей задачи) }
ReadLn (n); { ввод входного параметра }
s:=1; { начальное значение суммы до входа в цикл }
i:=1; { количество просуммированных чисел в начале }
while (s<=n) do { заголовок цикла (проверка условия выхода из цикла) }
begin
i:=i+2; { находим новое слагаемое }
s:=s+i { добавили к предыдущему значению суммы новое слагаемое }
end;
WriteLn (‘Вычисленная сумма равна ’, s); { вывод результата }
End.
- История, предмет, структура информатики
- Информация, ее представление и измерение
- Основные процессы преобразования информации
- Данные, их типы, структуры и обработка
- Системы счисления и действия в них
- Числа конечной точности.
- Виды компьютерной информации
- Текстовая информация
- Звуковая и видеоинформация
- Технические средства реализации информационных процессов
- Из истории развития вычислительной техники
- Архитектура фон Неймана
- Персональные компьютеры
- Классификация компьютеров
- Программные средства реализации информационных процессов
- Базовое программное обеспечение (по).
- Прикладное программное обеспечение.
- Операционные системы
- Инструментальные системы
- Инструментарий решения функциональных задач
- Базы данных
- Хранилища данных
- Базы знаний и экспертные системы.
- Автоматизированные рабочие места
- Компьютерный офис
- Технология «Рабочая группа»
- Технология «Клиент-сервер»
- Гипертекстовые технологии.
- Технологии виртуальной реальности.
- Алгоритмизация.
- Базовые алгоритмические конструкции
- Языки программирования
- Основные компоненты алгоритмического языка:
- Программирование
- Методы разработки и анализа алгоритмов
- Общие сведенья о компьютерных сетях
- Основные программные и аппаратные компоненты сети.
- Классификация информационно-компьютерных сетей
- Топология сети
- Дисциплина обслуживания компьютерных сетей
- Адресация компьютеров в компьютерной сети.
- Сетевое оборудование
- Программное обеспечение компьютерных сетей
- Глобальная компьютерная сеть Интернет
- Доменная система имен и указатели ресурсов
- Серверы, клиенты и протоколы
- Всемирная Паутина
- Навигация.
- Электронная почта
- Служба новостей
- Другие службы Интернета
- Компьютерные преступления и средства защиты информации
- 3. Преступная небрежность в разработке, изготовлении и эксплуатации программно-вычислительных комплексов, приведшая к тяжким последствиям.
- 4. Подделка компьютерной информации.
- 5. Хищение компьютерной информации.
- Защита данных, защита информации
- Правовые аспекты защиты информации
- Кодирование и шифрование информации
- Компьютерные вирусы и антивирусные программы
- Защита от компьютерных вирусов
- Глоссарий