
- •Содержание
- •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.2.4Некоторые стандартные приемы алгоритмизации.
Научиться составлять алгоритмы даже средней сложности - дело непростое и творческое, поскольку именно здесь в полной мере требуется логическое мышление. Существует очень большое количество различных видов алгоритмов, и рассмотреть в нашем курсе даже их небольшую часть невозможно.
Однако можно научиться тому, как надо подходить к составлению алгоритма, что пытаться сделать в первую очередь. В общем случае нужно сначала определить входные и выходные данные, а затем попытаться разбить алгоритм на более мелкие и простые части. Затем по тем же правилам составить алгоритмы для этих частей. Разбиение на более простые части надо проводить до тех пор, пока составление непосредственно алгоритма для такой части будет достижимо.
Используемые в алгоритмах данные хранятся в переменных. Переменную можно интерпретировать, как ячейку памяти ЭВМ, имеющую имя, в которую можно временно занести значение (например, число). Это значение может быть выдано из ячейки для использования сколько угодно раз, но при этом содержимое ячейки не меняется: из него каждый раз выдается копия хранящегося значения с сохранением оригинала.
При составлении алгоритма полезно нарисовать ячейки памяти, в которых находятся данные, и продумать, как же нужно обрабатывать содержимое этих ячеек, чтобы получить результат. При этом могут потребоваться дополнительные ячейки, где будут храниться промежуточные данные. Затем можно оформить свои мысли в виде блок-схемы.
Существует также несколько приемов алгоритмизации, которые можно применить во многих задачах. Поэтому будет полезно рассмотреть некоторые из них в нашем курсе.
1. Поменять местами содержимое двух переменных (три ведра).
Назовем эти переменные a и b (пусть их значения равны 15 и -3) и изобразим их на схеме. Чтобы поменять их содержимое местами, добавим еще одну (буферную) переменную c, в которой временно запомним значение переменной a (1-е действие). Затем занесем в a значение переменной b (2-е действие), а затем в b - c (3-е действие). После того, как продумали таким образом алгоритм, изобразим его в виде блок-схемы.
|
|
Определить, имеют ли две переменные один знак.
Чтобы узнать одного ли знака две переменные, достаточно их перемножить. Если результат положительный, то переменные одного знака. Поскольку в алгоритме должна быть предусмотрена реакция на все допустимые варианты исходных данных, то должна быть и проверка a и b на нулевые значения. |
|
Проверить делимость числа на 3.
Если число делится нацело, то остаток от деления будет равен нулю. Чтобы узнать этот остаток, нужно запомнить в какой-либо переменной (например, b) результат деления, а в переменной c - его целую часть (целую часть числа принято обозначать квадратными скобками). Тогда разность b и c и является целой частью результата деления. |
|