
- •Содержание
- •1.Введение
- •Рекомендуемая литература
- •1.1Этапы решения инженерных задач с помощью эвм.
- •1.2Алгоритмы решения задач.
- •1.2.1Понятие алгоритма, его свойства.
- •Свойства алгоритма
- •1.2.2Обозначения элементов алгоритмов (блоки).
- •1.2.3Базовые управляющие конструкции.
- •Основные блочные символы.
- •Базовые алгоритмические структуры.
- •1.2.4Некоторые стандартные приемы алгоритмизации.
- •1. Поменять местами содержимое двух переменных (три ведра).
- •Определить, имеют ли две переменные один знак.
- •Проверить делимость числа на 3.
- •Алгоритм обработки массива.
- •Найти сумму элементов массива.
- •Найти максимальный элемент массива.
- •Использование флага наступления события.
- •Построить таблицу значений функции на отрезке и найти ее максимальное значение.
- •1.3Системы программирования.
- •1.3.1Состав.
- •1.3.2Язык программирования, алфавит, синтаксис, семантика.
- •1.3.3Реализация языка.
- •1.4Характеристики языков программирования.
- •1.5Целевое назначение систем программирования.
- •1.5.1Машинно-ориентированные.
- •1.5.1.1Системы символического кодирования.
- •1.5.1.2Ассемблеры.
- •1.5.2Машинно-независимые.
- •1.5.2.1Процедурно-ориентированные.
- •1.5.2.2Проблемно-ориентированные.
- •1.6Этапы обработки программы машиной.
- •2.1История создания.
- •2.3Алфавит, структура программы.
- •2.3.1Алфавит.
- •2.3.2Структура программы.
- •2.4Типы данных Си. Константы. Переменные. Описания переменных.
- •2.5Выражения в языке Си.
- •2.5.1Арифметические операции и выражения.
- •2.5.2Логические операции и выражения.
- •2.5.3Некоторые другие операции в языке Си.
- •2.5.3.1Операция присваивания.
- •2.5.3.2Условная операция.
- •2.5.3.3Операция последовательного вычисления (запятая).
- •2.5.3.4Специфические формы операции присваивания.
- •2.5.3.5Приоритет выполнения операций.
- •2.5.4Стандартные функции.
- •2.5.4.1Правила записи.
- •2.5.4.2Основные математические функции.
- •2.6.2.2Оператор бесформатного ввода с клавиатуры.
- •2.6.2.3Функция форматного вывода на экран.
- •2.6.2.4Функция ввода символа с клавиатуры.
- •2.6.3Составной оператор.
- •3.Операторы управления.
- •3.1Условные операторы.
- •3.1.1Оператор if-else.
- •3.1.2Оператор else-if.
- •3.2Оператор-переключатель. Оператор break.
- •3.3Операторы для организации цикла.
- •3.3.1Оператор цикла с предусловием (while).
- •3.3.2Оператор цикла с постусловием (do).
- •3.3.3Оператор цикла с параметром (for) или пошаговый.
- •3.3.4Вложенные циклы.
- •3.3.5Операторы break и continue.
- •3.3.6Оператор безусловного перехода.
- •4.Использование массивов. Указатели.
- •4.1Массивы.
- •4.1.1Понятие массива. Описание массива.
- •4.1.2Инициализация массивов.
- •4.1.2.1Инициализация массивов при их объявлении.
- •4.1.2.2Инициализация массивов вводом с клавиатуры.
- •4.1.3Вывод массивов.
- •4.1.4Работа с массивами.
- •4.2Указатели.
- •4.2.1Адреса и указатели.
- •4.2.2Массивы и указатели.
- •4.2.3Строки и указатели.
- •5.Функции пользователя в языке Си.
- •5.1Назначение функций. Описание функции.
- •5.2Обращение к функции. Прототип функции. Область видимости и время жизни переменных.
- •5.3Правила соответствия формальных параметров и фактических аргументов.
- •5.4Передача данных по значению и по адресу. Функция scanf().
- •5.5Использование массивов в качестве аргументов функции.
- •Int na, nb; // количества введенных элементов этих массивов
- •Vvod_mas1(&na,a) // Ввод количества элементов na и массива a
- •Vvod_mas1(&nb,b) // Ввод количества элементов nb и массива b
- •If password("Мой пароль")
- •6.Работа с внешними файлами в Си.
- •6.1Файловый указатель. Открытие файла.
- •6.2Чтение данных из текстового файла.
- •6.3Запись данных в текстовый файл. Закрытие файла.
1.1Этапы решения инженерных задач с помощью эвм.
Очень многие инженерные задачи можно решить с помощью уже готовых программ - прикладных пакетов, о которых мы говорили в прошлом семестре. Они умеют интегрировать и дифференцировать, решать системы линейных и нелинейных уравнений, а также уравнения в частных производных.
В прошлом семестре вы использовали один из таких пакетов - MS Excel - для исследования влияния начальных условий на поведение реального физического объекта - парашютиста, строили траектории сложного движения точки и диаграммы распределения доходов фирмы в течение года. Другие математические пакеты, такие, как MathCad, Mathematics и другие, вы будете изучать на старших курсах.
Однако не всегда можно приспособить свою задачу под возможности пакета, часто бывает проще и быстрее написать свою программу. Научиться это делать очень важно и потому, что программирование помогает развить логическое мышление и сформировать навыки структуризации, формализации процесса решения любой задачи.
Рассмотрим этапы решения физической задачи с помощью ЭВМ и выясним, какое место занимает непосредственно программирование в этом процессе. В качестве примера выберем задачу определения пути S, пройденного снарядом при выстреле со скоростью V0 под углом к горизонту.
Физическая постановка задачи. Здесь производится выработка физической модели процесса или явления, т.е. формулировка предположений, отражающих наши представления о нем. В нашем случае при малых скоростях можно предположить, что земля плоская, а также нет сопротивления воздуха.
Математическая постановка задачи. На этом этапе на основе физической формулировки задачи выбираются переменные, подлежащие определению, записываются ограничения, связи между переменными, в совокупности образующие математическую модель решаемой проблемы. В результате инженерная задача приобретает вид формализованной математической задачи, записанной в виде уравнений.
При нашей физической модели можно записать хорошо известные уравнения движения точки x=V0 cos t; y= V0 sin t - gt2/2; S = vdt. При этом интеграл вычисляется от 0 до t так, чтобы y конечное = 0
Выбор или разработка метода численного решения. Для поставленной математической задачи необходимо выбрать метод ее численного решения, сводящий решение задачи к последовательности арифметических и логических операций. Разработкой и изучением таких методов занимается раздел математики, называемый численным анализом. Примером численного метода в нашем случае является метод прямоугольников для вычисления определенного интеграла. В этом методе интеграл заменяется конечной суммой.
Разработка алгоритма решения. Это означает, что на основе выбранного метода записывается последовательность действий, приводящих к решению задачи . Разработка алгоритма обычно завершается либо представлением в виде графической схемы, либо записью с помощью символов специального языка проектирования программ, называемого псевдокодом. Используются также другие средства представления логики алгоритма: HIPO-диаграммы, таблицы решений и др. Цель такого представления состоит в том, чтобы еще до этапа программирования убедиться в правильности логики разрабатываемого алгоритма.
Разработка интерфейса пользователя. Параллельно с разработкой алгоритма разрабатывается сценарий работы программы, т.е. ее представление на экране при взаимодействии с пользователем.
Написание программы. На этом этапе алгоритм записывается в виде последовательности предложений на понятном ЭВМ языке.
Отладка программы. При реализации алгоритма в виде программы и ее вводе с клавиатуры в память ЭВМ могут быть допущены ошибки. Их обнаружение, локализацию и устранение выполняют на этапе отладки программы.
Одним из критериев профессионального мастерства программистов является их способность обнаруживать и исправлять собственные ошибки: начинающие программисты не умеют этого делать, у опытных программистов это не вызывает затруднений. Тем не менее ошибки в программах делают все.
По данным разных авторов, этап отладки программы занимает от 50 до 70 % времени, затрачиваемого на все этапы создания программы и получения решения с помощью ЭВМ. В связи с важностью и трудоемкостью этапа отладки все современные системы программирования имеют специальные средства, помогающие в обнаружении и устранении ошибок.
Отладка метода и алгоритма. На этом этапе, наиболее трудоемком, производится тестирование программы, т.е. проверяется, правильно ли результаты ее работы отражают предметную область, для моделирования которой программа создана. С этой целью проводятся многочисленные расчеты, результаты которых сравнивают с уже известными экспериментальными данными и теоретическими решениями. При несовпадении результатов приходится изменять алгоритм или метод решения, а возможно и строить другую физическую модель.
Серийные расчеты. На этом этапе проводятся многочисленные предусмотренные постановкой задачи расчеты по исследованию влияния исходных данных на характеристики процесса. Результаты стараются выводить в удобном для просмотра и анализа виде.