Основные понятия программирования
АЛГОРИТМЫ + ДАННЫЕ = ПРОГРАММЫ Н. Вирт
Алгоритм - это совокупность правил для решения некоторого класса задач, последовательное применение которых за конечное число шагов приводит к определенному результату. Мухаммед Аль Хорезми ( ): правила (алгоритмы) десятичной арифметики. ОПРЕДЕЛЕНИЕ АЛГОРИТМА
СВОЙСТВА АЛГОРИТМА Универсальность. Конечность. Определенность.
Способы описания алгоритма 4 машинная программа 4 программа на алгоритмическом языке 4 программа на псевдокоде 4 блок-схема алгоритма 4 описание на естественном языке
Трансляция - процесс перевода программы, написанной на алгоритмическом языке, на машинный язык (в коды компьютера). Транслятор - программа-переводчик. ТРАНСЛЯЦИЯ КОМПИЛЯЦИЯИНТЕРПРЕТАЦИЯ
КОМПИЛЯЦИЯ И ИНТЕРПРЕТАЦИЯ Компиляция: процесс трансляции и выполнения программы четко разделены во времени. Интерпретация: последовательно чередуются перевод группы инструкций языка в коды и их выполнение.
КОМПИЛЯЦИЯ И ИНТЕРПРЕТАЦИЯ Сравнение: Компиляция выгодней по времени выполнения и памяти. Интерпретация удобней для организации диалоговых программ.
Классификация алгоритмических языков по способу трансляции Алгоритмические языки требующие компиляции: СИ ПАСКАЛЬ ФОРТРАН... требующие интерпретации: BASIC LISP
Классификация алгоритмических языков по назначению Алгоритмические языки Универсальные СИ системное программирование ПАСКАЛЬ обучение программированию ФОРТРАН вычисления... Логические задачи, проектирование экспертных систем: ПРОЛОГ Диалоговые программы, обработка списков:ЛИСП Проектирован ие больших систем, режим реального времени: АДА... СИ++ ОБЪЕКТНЫЙ ПАСКАЛЬ ВАЖНО НЕ НА КАКОМ ЯЗЫКЕ ПРОГРАММИРОВАТЬ, А КАКИЕ ЗАДАЧИ РЕШАТЬ!
Этапы прохождения через ЭВМ программы, требующей компиляции КОМПИЛЯЦИЯ КОМПОНОВКА И ЗАГРУЗКА ВЫПОЛНЕНИЕ исходный модуль (*.c *.cpp *.pas) объектный модуль (*.obj) загрузочный модуль (*.exe) исходные данные результаты ошибки компоновка редактирование связей
КЛАССИФИКАЦИЯ ДАННЫХ ПО ФУНКЦИОНАЛЬНОМУ НАЗНАЧЕНИЮ ДАННЫЕ ИСХОДНЫЕВЫХОДНЫЕ ПРОМЕЖУТОЧНЫЕ Исходные данные - начальные значения которых меняются от одного выполнения алгоритма к другому АЛГОРИТМ промежуточные данные Исходные данные Выходные данные (Результаты)
КЛАССИФИКАЦИЯ ДАННЫХ ПО ТИПУ ЦЕЛЫЕ (С ФИКСИРОВАННОЙ ТОЧКОЙ) ДАННЫЕ ЧИСЛОВЫЕСИМВОЛЬНЫЕЛОГИЧЕСКИЕ ГРАФИЧЕСКИЕ ВЕЩЕСТВЕННЫЕ (С ПЛАВАЮЩЕЙ ТОЧКОЙ) БЕЗ ЗНАКАСО ЗНАКОМ Однобайтовые Двухбайтовые Четырехбайтовые Восьмибайтовые Однобайтовые Двухбайтовые Четырехбайтовые Восьмибайтовые Четырехбайтовые Шестибайтовы е Восьмибайтовые Десятибайтовые float double int char 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 ]
СТРУКТУРА ДАННЫХ Структурная переменная, или просто структура, состоит из нескольких переменных (называемых полями), возможно, разного типа. Структура (СИ) = Запись (Паскаль) Отличия структуры и массива: Массив имеет компоненты одного типа, структура может иметь компоненты различного типа. Доступ к компонентам массива - по номеру, к компонентам структуры - по имени.
ВАЖНО НЕ НА КАКОМ ЯЗЫКЕ ПРОГРАММИРОВАТЬ, А КАКИЕ ЗАДАЧИ РЕШАТЬ! Структура простейшей программы..Т ипы и структуры данных, имеющиеся в алгоритмическом языке, их описание, допустимые операции..О ператоры преобразования данных:присваивания (преобразования внутренних данных), операторы ввода и вывода. Правила записи алгоритма - программирование основных алгоритмических структур. Сведения, необходимые для написания простейшей программы:
Структура простейшей программы на любом алгоритмическом языке Заголовок ограничитель описания - неисполняемые инструкции языка операторы - исполняемые инструкции языка ограничитель
Структура простейшей СИ-программы