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 );/*в ы в о д с */
}