- •Котов владислав викторович доцент, профессор кафедры робототехники и автоматизации производства, доктор технических наук
- •1.Введение в информатику
- •1.1.История развития информатики
- •1.2. Структура курса. Рекомендуемая литература
- •1.3.История развития вычислительной техники
- •2.Понятие информации
- •2.1.Информация и её свойства
- •2.2.Дискретный источник информации
- •2.3.Мера информации по Хартли
- •2.4.Мера информации по Шеннону
- •3. Общая характеристика процессов сбора, передачи, обработки и накопления информации
- •3.1.Процессы сбора, передачи, обработки и накопления информации
- •3.2.Этапы обращения информации в информационно-измерительных и управляющих системах
- •4.Технические средства реализации информационных процессов
- •4.1.Структура персонального компьютера
- •4.2.Периферийное оборудование персонального компьютера
- •5.Программные средства реализации информационных процессов
- •5.1.Виды программного обеспечения
- •5.2.Операционные системы. Организация и средства человеко-машинного интерфейса в ос Windows
- •5.3.Прикладное программное обеспечение
- •6.Способы представления и хранения текстовой и числовой информации
- •6.1.Хранение информации в компьютере. Кодирование символьных данных. Кодовые таблицы ascii, ansi, koi-8
- •6.2.Знаковые и позиционные системы счисления. Правила перевода чисел из одной системы счисления в другую
- •6.3.Основные арифметические операции в двоичной системе
- •6.4.Булева алгебра. Основные операции и правила булевой алгебры
- •7.Алгоритмизация и программирование
- •7.1.Понятие алгоритма
- •7.2.Основные условные элементы для создания схем алгоритмов
- •7.3.Примеры простейших алгоритмов
- •8.Языки программирования высокого уровня. Основы языка Паскаль
- •8.1.Языки программирования высокого уровня
- •8.2.Запись программы на Паскале
- •8.3.Основные типы данных в Паскале
- •8.4.Структура Паскаль-программы
- •9.Оператор присваивания. Ввод-вывод в программах на Паскале
- •9.1.Оператор присваивания. Запись арифметических выражений
- •9.2.Процедуры ввода данных с клавиатуры
- •9.3.Процедуры вывода данных на экран
- •Условный оператор
- •9.4.Алгоритмы с ветвлением
- •9.5.Структура и синтаксис условного оператора
- •9.6.Задание логических выражений для передачи управления
- •9.7.Составные условия с использованием логических операторов
- •Операторы циклов с неопределённым числом повторений
- •9.8.Назначение операторов циклов. Циклы с пред- и постусловием
- •9.9.Структура и синтаксис оператора while
- •9.10.Структура и синтаксис оператора repeat … until
- •Оператор цикла с параметром
- •9.11.Цикл с параметром. Структура и синтаксис оператора for
- •9.12.Примеры программирования итерационных алгоритмов
- •Диапазонный тип данных. Массивы
- •9.13.Диапазонные типы данных
- •9.14.Массивы. Описание и использование массивов
- •Процедуры и функции
- •9.15.Структурный подход к разработке программы. Подпрограммы
- •9.16.Понятие подпрограммы, виды подпрограмм в Паскале.
- •9.17.Синтаксис объявления и использования процедур
- •9.18.Синтаксис объявления и использования функций
- •9.19.Примеры использования подпрограмм на Паскале
- •9.20.Параметры-значения и параметры-переменные
- •Строковый тип данных
- •9.21.Общие сведения о работе со строками символов
- •9.22.Процедуры и функции обработки строк
- •Работа с файлами
- •9.23.Понятие файла. Типы файлов в Паскале
- •9.24.Инициализация файловых переменных
- •9.25.Процедуры открытия файлов
- •9.26.Ввод-вывод данных в файл и общие подпрограммы для работы
- •Работа с графикой
- •9.27.Графический и текстовый режимы работы видеоадаптера
- •9.28.Инициализация графического режима
- •9.29.Основные средства библиотеки Graph для работы с графикой
- •Программное обеспечение и технологии программирования
- •9.30.Технология структурного программирования
- •9.31.Принципы проектирования программ «сверху-вниз» и «снизу-вверх»
- •9.32.Модульный принцип программирования
- •9.33.Технология объектно-ориентированного программирования
- •9.34.Основные критерии оценки качества программ
- •Базы данных
- •9.35.Общее представление о базах данных
- •9.36.Основные понятия систем управления базами данных
- •9.36.1.Классификация субд
- •9.36.2.Основные функции субд
- •9.37.Уровни представления данных
- •9.38.Основные модели данных
- •9.38.1.Понятие модели данных
- •9.38.2.Типы структур данных
- •9.38.3.Сетевая модель данных (смд)
- •9.38.4.Иерархическая модель данных (имд)
- •9.39.Реляционные базы данных
- •Домен 1 . . .. . Домен 2 . . . . . . . . .Домен 3 (ключ) . . . .Домен 4 . . . ..Домен 5
- •9.39.1.Достоинства и недостатки рмд
- •9.39.2.Операции реляционной алгебры
- •Локальные и глобальные сети эвм
- •9.40.Понятие о сетях эвм
- •9.41.Классификация сетей: локальные и глобальные сети эвм
- •9.42.Понятие топологии. Виды сетевых топологий
- •9.43.Информационные технологии, основанные на сетях
- •Методы защиты информации
- •9.44.Основы защиты информации и сведений, составляющих государственную тайну
- •9.45.Организационные методы защиты информации
- •9.46.Криптографическая защита информации
- •Экономические и правовые аспекты информационных технологий
- •9.47.Система стандартов на программную документацию
- •9.48.Виды программ и программных документов
- •9.49.Основные стадии и этапы разработки программ и программной документации
7.3.Примеры простейших алгоритмов
1) Привести пример линейного алгоритма для вычисления полинома:
Входные данные: x
Выходные данные (результат работы алгоритма): y
y = 2x^2 + 5x +3
2) Привести пример алгоритма с ветвлением для вычисления корней квадратного уравнения
ax^2 + bx + c = 0
Входные данные: a, b, c
Выходные данные: x1, x2
Внутренние переменные (промежуточные результаты) – D — дискриминант
дискриминант D = b^2 – 4ac
Если D > 0, то два корня X1,2 = (-b +/- sqrt(D))/(2a)
Если D = 0, – один корень
Если D < 0 – вещественных корней нет (выдать сообщение).
3) Привести пример циклического алгоритма вычисления наибольшего общего делителя (можно по двум схемам – с постусловием и предусловием). Показать, что алгоритм с предусловием эффективнее, поскольку автоматически предотвращает ошибку от деления на ноль, в случае, если второй операнд вводится равным нулю.
Раздел №8 (2 часа)
Языки программирования высокого уровня. Основы языка Паскаль
План:
• Языки программирования высокого уровня
• Запись программы на Паскале
• Основные типы данных в Паскале
• Структура Паскаль-программы
8.Языки программирования высокого уровня. Основы языка Паскаль
8.1.Языки программирования высокого уровня
На предыдущих лекциях было показано, что процессор способен выполнять лишь самые элементарные операции, типа сложения или умножения небольших целых чисел, пересылки результата в некоторую ячейку памяти или чтения числа из нее. Процессоры, применяющиеся в большинстве персональных компьютеров, разумеется, не имеют команд для, например, непосредственной работы с матрицами комплексных чисел или вычисления быстрого преобразования Фурье. Подобные сложные действия приходится реализовывать как программы, состоящие из многих сотен элементарных команд процессора.
Очевидно, что разработка программ с использованием лишь примитивных процессорных команд сопряжена со значительными временными затратами. При этом вероятность возникновения ошибок весьма высока, а их диагностика очень трудоёмка.
Идеальным вариантом было бы написание программ на естественном человеческом языке. Однако подобная задача слишком сложна и не может быть реализована средствами существующего аппаратного и программного обеспечения.
Поэтому на практике применяют некоторый компромиссный вариант, – используют так называемые языки программирования высокого уровня (ЯВУ). Обычно это специальные строго формализованные подмножества естественного языка (как правило, английского), конструкции которых, с одной стороны, достаточно понятны человеку-программисту, а с другой, могут быть относительно легко преобразованы в машинные коды, пригодные для исполнения процессором.
В настоящее время существует огромное количество подобных языков – Бейсик, Си, Фортран, Алгол, Кобол, Модула и т.п. В рамках данного курса мы будем рассматривать один из наиболее удачных с точки зрения первоначального обучения программированию языков – Паскаль. Язык получил название в честь выдающегося ученого XVII века – Блеза Паскаля. В качестве основы будет выбран диалект языка, реализованный в компиляторе фирмы Borland – TurboPascal 7.0.
8.2.Запись программы на Паскале
Программа на языке Паскаль представляет собой обычный текстовый файл с расширением *.pas. В принципе, такой файл может быть подготовлен в любом текстовом редакторе, однако более удобно набирать текст программы в специальной программной оболочке, поставляемой с компилятором TurboPascal. Подробнее о принципах работы с ней вы узнаете на лабораторных занятиях, или, если этого окажется недостаточно – на одной из следующих лекций.
Программа на Паскале состоит из лексем и разделителей.
Лексема – это один или несколько последовательных символов, имеющих в программе определенный смысл.
В лексему входят следующие элементы:
– специальные символы;
– символы-слова (зарезервированные слова);
– имена (идентификаторы);
– числа;
– строки символов;
– метки;
– директивы.
Чуть позже мы подробнее поговорим обо всех этих элементах.
Лексемы в программе разделяются между собой с помощью так называемых разделителей. К ним относятся:
– пробел;
– конец строки (разделитель строк);
– примечание (комментарий).
Пробел – это пустое место в тексте на бумаге или на экране дисплея, формируется нажатием на клавишу «Пробел» (“Space”).
Лексемы в Паскаль-программе обязательно разделяются одним или несколькими символами-разделителями. Обычно это пробелы.
При конструировании лексем используются буквы и цифры. К буквам относятся большие и малые латинские буквы: A B C D ... X Y Z a b c d ... x y z, а к цифрам – 0 1 2 3 4 5 6 7 8 9
1. Специальные символы:
+ - * /
. , : ; ' ^
= <> > < >= <=
( ) [ ] := ..
2. Зарезервированные слова.
Эти слова имеют четко установленный смысл в Паскаль-программе. Примеры таких слов:
Begin End If And Array For
Зарезервированные слова нельзя применять в программе для обозначения переменных, массивов и других объектов.
Большие и малые буквы в зарезервированных словах эквивалентны. Например, BEGIN эквивалентно Begin или begin. Однако рекомендуется придерживаться единого стиля написания ключевых слов по всей программе. Это повышает ее читаемость и упрощает отладку и модификацию программы.
3. Идентификатор (имя). Это последовательность букв и цифр, начинающаяся с буквы.
Примеры идентификаторов:
X A8 alpha Massiv z52d9 eps
Большие и малые буквы в идентификаторах считаются эквивалентными. Поэтому PASCAL, Pascal, pascal – это один и тот же идентификатор. Длина идентификатора в стандартном Паскале не ограничивается. В Турбо-Паскале значимыми считаются первые 63 символа идентификатора.
4. Числа. В Паскаль-программе числа записываются в десятичном представлении. Целые числа записываются в той же форме, что и в математике:
0 15 9800 -10 и т.п.
А вот при записи дробных чисел для разделения целой и дробной частей используется не запятая, а точка. Поэтому числа типа 0,54 или –0,025 в программе на Паскале должны записываться как 0.54 и –0.025 соответственно.
Кроме того, существует ещё так называемый экспоненциальный формат чисел. Он применяется для представления очень больших или очень маленьких чисел.
Например, число 0,00015 в математике можно
было бы представить как
.
Однако в обычном текстовом редакторе
невозможно напечатать символы в верхнем
или нижнем индексе, поэтому для
формирования признака десятичного
порядка используется буква E.
Таким образом, это число в программе на
Паскале можно было бы представить как
1.5E-4. Аналогично можно
представлять очень большие числа,
например 123000000 можно представить как
1.23E8.
5. Строка символов (строка, литерная строка, цепочка литер).
Апостроф определяет границы строки. Если внутри строки нужно поставить апостроф, то он ставится дважды.
Примеры.
'A' 'a+b=c'
'This string has 30 characters'
' Символ '' - это апостроф'
В строке большие и малые буквы считаются различными. Поэтому
'PASCAL' <> 'Pascal'
'ПРОГРАММА' <> 'программа'
6. Метки и директивы
Метка в Паскале представляет собой целое без знака и используется для маркировки операторов программы. В Turbo-Pascal в качестве меток могут также использоваться идентификаторы.
Директива – это идентификатор, обозначающий обращение к процедуре или функции.
Подробнее с метками и директивами мы познакомимся чуть позже.
