
- •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.Введение
Конспект посвящен второму разделу дисциплины "Информатика" - "Основы алгоритмизации и программирование". Он написан на основе курса лекций, прочитанных в МГТУ "СТАНКИН" в течение последних 5 лет для студентов 2 семестра обучения.
Конспект рассчитан на 7 лекций и соответствует рабочим программам по дисциплине "Информатика" для направлений обучения 651400 - Машиностроительные технологии и оборудование; 062000 - Механика и робототехника; 657800 - Конструкторско-технологическое обеспечение машиностроительных производств; 657900 - Автоматизированные технологии и производства, 653700 - Приборостроение, 653800 - Стандартизация, сертификация и метрология.
Излагаемый материал предусматривает три уровня сложности в соответствии с требованиями системы "Ритм". Часть вопросов можно вынести на рассмотрение на практических занятиях, некоторые вопросы могут быть прочитаны факультативно для студентов, желающих повысить свою квалификацию. Для потоков, специализирующихся в дальнейшем в программировании (например, для направлений 657900, 653700), изложение основных элементов языка можно сократить в пользу более сложных конструкций, связанных с обработкой строк, работой с указателями и внешними файлами.
При изложении материала предполагается, что студентами освоена программа I семестра в части принципов работы ЭВМ и представления в памяти ПК чисел, символов и команд. Также считается, что студенты владеют сведениями о программном обеспечении ПК и функционировании операционных систем в объеме программы I семестра.
В конспекте приводятся основные сведения, необходимые инженеру для решения своих прикладных задач на основе процедурной части языка программирования высокого уровня С++. Рассматриваются виды и состав систем программирования, виды и назначение различных языков программирования. Приводятся правила построения программ, использования математических функций и выражений для вычисления значений по сложным формулам в линейных алгоритмах. Анализируются способы записи различных видов разветвляющихся и циклических алгоритмов, обработки одномерных и двумерных массивов, а также строковой информации. Уделяется много внимания способам структуризации программ для уменьшения объема программного кода и удобства чтения текста программы.
На протяжении всего курса проводится идея первичности построения алгоритма решения задачи и вторичности написания программного кода на языке высокого уровня. Такой подход связан не только с тем, что именно так и происходит в инженерной практике, но и с желанием (порой непреодолимым) студентов поскорее написать программу, не продумав и не сконструировав в каком-либо виде алгоритм решения задачи. В связи с этим уделяется большое внимание формализации процесса перехода от алгоритма решения, записанного в графической форме, к алгоритму, записанному на языке программирования.
Рекомендуемая литература
а) основная литература
Керниган, Д. Ритчи. Язык программирования Си (пер. с англ.). — М.: Финансы и статистика, 1992.
Березин Б.И., Березин С.Б. Начальный курс С и С++ Диалог МИФИ 1996
Дейтел Х., Дейтел П. Как программировать на С++: Пер. с англ. – М.: ЗАО «Издательство БИНОМ», 1998 г. – 1024 с.: ил.
Луис Дерк. Справочник С и С++. М., Бином, 1997
б) дополнительная литература:
Паппас К., Мюррей У. Программирование на C и C++. Библиотека студента. BHV 2000.
Культин Н.Б. С/С++ в задачах и примерах. – Спб.: БХВ-Петербург, 2001.-288 с.: ил.
Крячков А.В. и др. Программирование на С и С++. Практикум. М.: Радио и связь. 1997.
Подбельский В.В. Язык С++. М.: Финансы и статистика, 1996.
Ишкова Э.А. С++. Начала программирования – М.: ЗАО «Издательство БИНОМ», 2000. – 304 с.: ил.