Transcript Document
Основные понятия
программирования
АЛГОРИТМЫ + ДАННЫЕ =
ПРОГРАММЫ
Н. Вирт
ОПРЕДЕЛЕНИЕ АЛГОРИТМА
Алгоритм - это совокупность правил для
решения некоторого класса задач,
последовательное применение которых за
конечное число шагов приводит к
определенному результату.
Мухаммед Аль Хорезми (780-850):
(алгоритмы) десятичной арифметики.
правила
СВОЙСТВА АЛГОРИТМА
•Универсальность.
•Конечность.
•Определенность.
Способы описания алгоритма
машинная программа
программа на алгоритмическом языке
программа на псевдокоде
блок-схема алгоритма
описание на естественном языке
ТРАНСЛЯЦИЯ
Трансляция - процесс перевода программы,
написанной на алгоритмическом языке, на
машинный язык (в коды компьютера).
Транслятор - программа-переводчик.
ТРАНСЛЯЦИЯ
КОМПИЛЯЦИЯ
ИНТЕРПРЕТАЦИЯ
КОМПИЛЯЦИЯ И ИНТЕРПРЕТАЦИЯ
Компиляция: процесс трансляции и
выполнения программы четко разделены во
времени.
Интерпретация: последовательно
чередуются перевод группы инструкций
языка в коды и их выполнение.
КОМПИЛЯЦИЯ И ИНТЕРПРЕТАЦИЯ
Сравнение:
Компиляция выгодней по времени
выполнения и памяти.
Интерпретация удобней для организации
диалоговых программ.
Классификация алгоритмических
языков по способу трансляции
Алгоритмические языки
требующие
компиляции:
требующие
интерпретации:
СИ
ПАСКАЛЬ
ФОРТРАН
BASIC
LISP
...
Классификация языков
программирования по назначению
Языки программирования
Алгоритмические
СИ
системное
программирование
СИ++
...
ФОРТРАН
вычисления
ПАСКАЛЬ
...
Диалоговые
программы,
обработка
списков:ЛИСП
Проектирован
ие больших
проектирование систем, режим
экспертных
реального
систем:
времени: АДА
ПРОЛОГ
обучение
Логические
программированию задачи,
ОБЪЕКТНЫЙ
ПАСКАЛЬ
ВАЖНО НЕ НА КАКОМ ЯЗЫКЕ
ПРОГРАММИРОВАТЬ, А КАКИЕ ЗАДАЧИ РЕШАТЬ!
Этапы прохождения через ЭВМ
программы, требующей
компиляции
исходный модуль (*.c *.cpp *.pas)
КОМПИЛЯЦИЯ
ошибки
объектный модуль (*.obj)
КОМПОНОВКА
компоновкаредактирование связей
И ЗАГРУЗКА
загрузочный модуль (*.exe)
ошибки
ВЫПОЛНЕНИЕ
исходные данные
ошибки
результаты
КЛАССИФИКАЦИЯ ДАННЫХ ПО
ФУНКЦИОНАЛЬНОМУ НАЗНАЧЕНИЮ
ДАННЫЕ
ИСХОДНЫЕ
Исходные данные
ВЫХОДНЫЕ
АЛГОРИТМ
промежуточные
данные
ПРОМЕЖУТОЧНЫЕ
Выходные данные
(Результаты)
Исходные данные - начальные значения которых
меняются от одного выполнения алгоритма к другому
КЛАССИФИКАЦИЯ ДАННЫХ ПО ТИПУ
ДАННЫЕ
ЧИСЛОВЫЕ
ГРАФИЧЕСКИЕ
СИМВОЛЬНЫЕ ЛОГИЧЕСКИЕ
ЦЕЛЫЕ
(С ФИКСИРОВАННОЙ ТОЧКОЙ)
char
ВЕЩЕСТВЕННЫЕ
(С ПЛАВАЮЩЕЙ ТОЧКОЙ)
float
БЕЗ ЗНАКА СО ЗНАКОМ
Однобайтовые
Двухбайтовые
int
Четырехбайтовые
Восьмибайтовые
Четырехбайтовые
Шестибайтовы
еВосьмибайтовые
double
Десятибайтовые
Однобайтовые
Двухбайтовые
unsigned int
Четырехбайтовые
Восьмибайтовые
КЛАССИФИКАЦИЯ ДАННЫХ ПО
ТИПУ
ТИП ДАННЫХ ХАРАКТЕРИЗУЕТ СПОСОБ
(ФОРМУ) ПРЕДСТАВЛЕНИЯ ДАННЫХ
В ПАМЯТИ КОМПЬЮТЕРА.
ТИП - ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ
ДАННЫХ.
ТИПЫ ДАННЫХ
ДИАПАЗОН
ДАННЫХ
ТИП
ДАННЫХ
ПРЕДСТАВЛЕНИЕ
В ПАМЯТИ ЭВМ
ОПЕРАЦИИ
НАД
ДАННЫМИ
ЯЧЕЙКА ПАМЯТИ
ЯЧЕЙКА - ОБЛАСТЬ ПАМЯТИ, ХРАНЯЩАЯ
ФУНКЦИОНАЛЬНО ЗАВЕРШЕННОЕ ЗНАЧЕНИЕ
(Т. Е. ОДНО ДАННОЕ КАКОГО-ЛИБО ТИПА).
ЯЧЕЙКА ХАРАКТЕРИЗУЕТСЯ:
СОДЕРЖИМЫМ;
АДРЕСОМ;
ИМЕНЕМ (В АЛГОРИТМИЧЕСКОМ ЯЗЫКЕ).
СВОЙСТВА ЯЧЕЙКИ ПАМЯТИ
ЯЧЕЙКА ХРАНИТ ДАННОЕ СКОЛЬ УГОДНО
ДОЛГО;
ПРИ СЧИТЫВАНИИ ДАННОЕ ЯЧЕЙКИ НЕ
РАЗРУШАЕТСЯ;
ПРИ ЗАПИСИ В ЯЧЕЙКУ НОВОГО ДАННОГО
СТАРОЕ СОДЕРЖИМОЕ НЕ СОХРАНЯЕТСЯ; ЗАПИСЬ
В ЯЧЕЙКУ НАЗЫВАЕТСЯ ПРИСВАИВАЕНИЕМ;
ЕСЛИ В ЯЧЕЙКУ НИЧЕГО НЕ ЗАПИСАНО, ТО ЕЕ
СОДЕРЖИМОЕ СЧИТАЕТСЯ НЕОПРЕДЕЛЕННЫМ.
КЛАССИФИКАЦИЯ ДАННЫХ
ПО СТРУКТУРЕ
ДАННЫЕ
КОНСТАНТЫ
ПЕРЕМЕННЫЕ
(защита от записи)
ДАННЫЕ
ПРОСТЫЕ
1 ячейка
СЛОЖНЫЕ
МАССИВ
СТРУКТУРА
несколько
ячеек
...
СТРУКТУРА ДАННЫХ
Массив - это сложная переменная, состоящая из
конечного числа упорядоченных компонент,
имеющих одно имя, одинаковый тип и
расположенных в последовательных ячейках памяти
компьютера.
Доступ к элементу массива - по его номерам
(индексам).
Размерность массива - количество индексов у его
элементов.
Размер - количество значений каждого индекса.
СТРУКТУРА ДАННЫХ
Одномерный массив А размера 10:
A[1], A[2], …, A[10]
Двумерный массив (матрица) B размера 3*4:
B[1][1] B[1][2] B[1][3] B[1][4]
B[2][1] B[2][2] B[2][3] B[2][4]
B[3][1] B[3][2] B[3][3] B[3][4]
СТРУКТУРА ДАННЫХ
Структурная переменная, или просто структура,
состоит из нескольких переменных (называемых
полями), возможно, разного типа.
Структура (СИ) = Запись (Паскаль)
Отличия структуры и массива:
•Массив имеет компоненты одного типа, структура
может иметь компоненты различного типа.
•Доступ к компонентам массива - по номеру, к
компонентам структуры - по имени.
ВАЖНО НЕ НА КАКОМ ЯЗЫКЕ
ПРОГРАММИРОВАТЬ, А КАКИЕ ЗАДАЧИ РЕШАТЬ!
Сведения, необходимые для написания
простейшей программы:
Структура простейшей программы.
.Типы и структуры данных, имеющиеся в
алгоритмическом языке, их описание,
допустимые операции.
.Операторы преобразования
данных:присваивания (преобразования
внутренних данных), операторы ввода и
вывода.
Правила записи алгоритма - программирование
основных алгоритмических структур.
Структура простейшей программы на
любом алгоритмическом языке
Заголовок
ограничитель
описания - неисполняемые
инструкции языка
операторы - исполняемые
инструкции языка
ограничитель
Структура простейшей СИ-программы
Д и р е кти в ы п р е п р о ц е с с о р а
(в п р о с те й ш е м с л уч а е
# in c lu d e < s td io .h >
v o id m a in ()
# in c lu d e < s td io .h > /*в в о д /в ы в о д */
{in t a ,b ,c ;/*о п и с а н и е тр е х ц е л ы х
# in c lu d e < m a th .h > /*с та н д а р тн ы е
п е р е м е н н ы х*/
м а те м а ти ч е с ки е ф ун кц и и */)
p rin tf("в в е д и те a и b \n ");
v o id m a in ()
/*п р и гл а ш е н и е к в в о д у a и b */
{ описания
s c a n f("% d % d ", & a , & b );/*в в о д
о п е р а то р ы
}
a ,b */
c = a + b ;/*в ы ч и с л е н и е с - с ум м ы */
p rin tf("c = % d \n ", c );/*в ы в о д с */
}