- •1. Основные этапы решения задач на эвм
- •Формулировка задачи
- •Математическая постановка задачи
- •Разработка алгоритма решения задачи
- •Написание текста программы на языке программирования
- •Ввод текста программы в эвм
- •Поиск и устранение синтаксических ошибок
- •Тестирование программы. Поиск и устранение логических ошибок в программе
- •Этапы создания исполняемой программы
- •Базовые компоненты программ
- •Буквы и цифры
- •Пробельные символы
- •Знаки пунктуации и специальные символы
- •Идентификаторы
- •Ключевые слова
- •Комментарии
- •Лексемы
- •Типы данных
- •Целые константы
- •Константы с плавающей точкой
- •Константа-символ
- •Строковые литералы
- •Универсальные функции ввода и вывода любых типов данных
- •Структуры и форма написания программы
- •Программирование разветвляющихся вычислительных процессов
- •Цикл while – цикл с предусловием.
- •Цикл do while – цикл с постусловием
- •Цикл for
- •Безусловная передача управления внутри цикла
- •Описание некоторых стандартов алгоритмов
- •Работа с файлами (функции ввода вывода верхнего уровня)
- •Указатели
- •Одномерные массивы Объявление массива.
- •Стандартные функции обработки строк
- •Многомерные массивы на примере двумерных
- •Классы памяти
- •Способы передачи данных в функцию
- •Функции и строки
- •Функции и одномерные числовые массивы
- •Функции и двумерные массивы
- •Функции с параметрами по умолчанию
- •Перегрузка функции
- •Шаблоны функции
- •Типы данных, определяемые пользователем
- •4.1. Структуры
- •Шаблон структуры
- •Структурные переменные
- •Инициализация структуры
- •Доступ к полям структуры
- •Массив структур
- •Вложенные структуры
- •Битовые поля структур
- •Передача структуры в функцию
- •Двоичный ввод-вывод структур
- •Функции двоичного ввода-вывода
- •Динамические структуры данных
- •4.2. Объединения
- •4.3. Перечисления
- •Файловые операции ввода/вывода
- •Файловый ввод/вывод с прямым доступом
1. Основные этапы решения задач на эвм
Основными этапами качественного решения любой, даже самой примитивной задачи, являются:
Формулировка сути задачи.
Математическая постановка задачи.
Разработка алгоритма решения задачи.
Написание текста программы на языке программирования.
Ввод текста программы в ЭВМ.
Выполнение программы. Поиск и устранение синтаксических ошибок в программе.
Тестирование программы. Поиск и устранение логических ошибок в программе.
Рассмотрим содержание каждого пункта и связанные с ними понятия.
Формулировка задачи
На этом этапе необходимо четко сформулировать задачу, осмыслить ее, понять цель ее решения, определить в каком виде и на основе каких исходных данных будут получены результаты.
Математическая постановка задачи
На этом этапе необходимо сформировать математическую модель для решения задачи, обозначить физические (или другого рода) объекты, являющиеся исходными, промежуточными или результирующими данными, вспомнить (или вывести) формулы для получения результата или выбрать численный метод решения задачи.
Разработка алгоритма решения задачи
Под разработкой алгоритма понимают точное и простое описание последовательности действий для достижения результата задачи. Алгоритм ориентирован на конкретного исполнителя и каждый шаг алгоритма должен быть допустимым для него. Исполнитель наших алгоритмов – ЭВМ, поэтому детализировать алгоритм необходимо настолько, чтобы каждый шаг мог быть записан с помощью определенного оператора или вызовом функции языка Си.
Алгоритм может быть записан на:
Естественном (русском) языке;
Языке блок-схемы;
Языке программирования.
Хорошо разработанный алгоритм должен обладать следующими свойствами:
Массовость – применимость алгоритма для множества задач из класса однотипных, отличающихся только набором исходных данных.
Определенность – однозначность, исключающая произвольность толкований шагов алгоритма. Результаты вычислений должны быть одинаковы у разных исполнителей.
Дискретность – возможность разбиения задачи на конечное число шагов, выполнение которых не вызывает сомнения.
Результативность – возможность получения результата за конечное число шагов.
Написание текста программы на языке программирования
Язык программирования – искусственный язык, отличающийся ограниченным количеством понятных транслятору слов и очень строгими правилами записи команд.
Разные типы процессоров имеют разный набор команд. Если язык ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком низкого уровня (например, ассемблер).
Языки программирования низкого уровня применяются для написания небольших системных приложений, драйверов устройств, модулей стыковки с нестандартным оборудованием, когда важнейшими требованиями становятся компактность, быстродействие, и возможность прямого доступа к аппаратным ресурсам.
Но! При этом программист обязан иметь высокую квалификацию и досконально знать внутреннее устройство, особенности реализации и механизмы взаимодействия аппаратной части, затрудняется или становится невозможной написание и отладка больших приложений, программа не может быть перенесена на компьютер с другим типом процессора, а ошибки программирования могут надолго вывести из строя вашу технику.
Языки программирования высокого уровня (в том числе и Си) отстранены от аппаратной части компьютера и взаимодействуют с ней посредством встроенных функций, гарантирующих ее защиту и правильную работу.
Языки программирования высокого уровня лаконичнее, программисты «парят» в высоких сферах логики, не учитывая и порой мало зная об особенностях компьютерных архитектур.
Но! При этом программист «расплачивается» большим объемом оперативной памяти и более медленным выполнением программы.
Уровень языка программирования выбирается в зависимости от поставленной задачи.
При хорошо разработанном алгоритме написание программы – несложная техническая работа.