
- •Содержание.
- •1.Предмет и содержание дисциплины 6
- •2.Использование языка программирования с в решении экономических задач 7
- •3.Информатика как наука. 68
- •4.Арифметико-логические основы эвм. 73
- •5.Электронные вычислительные машины. 88
- •7.Основы алгоритмизации. 113
- •8. Программное обеспечение эвм. 127
- •1.Предмет и содержание дисциплины
- •1.1.Содержание дисциплины.
- •2.Использование языка программирования с в решении экономических задач
- •2.1. Программы и данные
- •2.1.1. Достоинство языка с
- •2.1.2.Использование с.
- •2.1.3.Структура программы на языке с.
- •2.1.4. Элементы программы. Идентификаторы.
- •2.1.5. Типы данных.
- •2.1.6. Таблица всех допустимых комбинаций базовых типов и модификаторов для 16-битных слов.
- •2.1.7. Локальные и глобальныепеременные.
- •2.1.8.Функции ввода и вывода данных.
- •2.1.9.Функции и обозначающие символы.
- •2.2.Операции, операторы и выражения.
- •2.2.1.Операторы организации циклов.
- •2.2.1.1. Оператор for
- •2.2.1.2.Оператор while
- •2.2.1.3.Оператор цикла do-while.
- •2.2.2. Операторы выбора.
- •2.2.2.1.Оператор if – else(если…иначе)
- •If (условие) оператор 1;
- •2.2.2.2. Оператор ?
- •Выражение 1? выражение 2: выражение 3;
- •2.2.2.3. Оператор switch (переключатель)
- •2.2.2.4. Оператор безусловного перехода goto.
- •2.2.2.5. Операторbreak
- •2.2.2.6. Оператор continue
- •2.2.3.Объявление переменных.
- •2.2.4.Константы.
- •2.2.5.Коментарии.
- •2.2.6.Рекомендации по програмированию.
- •2.3.Структурированные типы данных.
- •2.3.1.Массив.
- •2.3.1.1. Связь между массивами и указателями.
- •2.3.1.2. Рекомендации по програмированию.
- •2.3.1.3. Массивы строк символов.
- •2.3.1.4.Многомерные массивы.
- •2.3.2. Структуры.
- •2.3.2.1. Доступ к членам структуры.
- •2.3.2.2. Присваивание структур.
- •2.3.2.3.Массивы структур.
- •2.3.2.4.Массивы и структуры в структурах.
- •2.3.3.Битовые поля.
- •Разряды машинного слова
- •2.3.4.Cмеси.
- •2.3.5.Cредства typedef
- •2.3.6.Файлы.
- •2.3.6.1.Ввод и вывод информации.
- •2.3.6.2.Функции fsanf и fprintf
- •2.3.6.3.Чтение и вывод строк.
- •2.3.6.4.Функция fgets( )
- •2.3.6.5. Функция fputs( )
- •2.4. Указатели.
- •2.4.1.Операторы для работы с указателями.
- •2.4.2.Выражение с указателями.
- •2.4.3.Арифметические действия с указателями.
- •2.4.4.Сравнение указателей.
- •2.4.5.Массивы указателей
- •2.4.6. Указатели на указатели многочисленные или перенаправления.
- •2.4.7. Указателина структуры.
- •2.4.7.1.Объявление указателей на структуру.
- •2.4.7.2.Использование указателей на структуру.
- •2.4.8. Рекомендации по програмированию.
- •2.5.Функции.
- •2.5.1.Вызов функции. Использование вызывающей функции. Обращение к вызывающей функции.
- •2.5.2.Аргументы и параметры.
- •2.5.3.Оператор return.
- •2.5.4.Рекурсия (использование вызывающей функции обращения к самой себе).
- •2.5.5.Использование указателя на функцию при вызове функции.
- •2.5.6.Главная функция, передача аргументов главной функции.
- •2.6.Библиотечные функции языка с.
- •Наиболее употребительные заголовочные файлы.
- •2.6.1. Puts ( )
- •Int puts (s)
- •2.6.2. Gets ( )
- •2.6.3. Putc().
- •2.7.1.Включение файла.
- •2.7.2.Макроподстановка.
- •2.7.2.1.Простая.
- •2.7.3.Рекомендации по программированию.
- •2.7.4.Директива #undef
- •2.7.5.Условная компиляция.
- •2.7.6.Директива #elif.
- •2.7.7.Директива #error.
- •2.8 Динамическое распределение памяти
- •2.8.1.Операторы malloc и free.
- •2.8.2.Операторы new и delete.
- •2.8.2.1.Размещение массивов с помощьюnew.
- •2.9 Связные списки, очереди, стеки
- •2.9.1.Односвязные и двусвязные списки.
- •2.9.2.Очереди.
- •2.9.3.Стеки.
- •3.Информатика как наука.
- •3.1.Информатика и информация
- •3.2.Информация и управление
- •3.3.Информационные технологии
- •4.Арифметико-логические основы эвм.
- •4.1.Позиционные системы счисления
- •4.1.1.Система счисления.
- •4.2. Метод деления.
- •4.3.Метод умножения.
- •4.4.Сложение двоичных чисел
- •4.5.Умножение двоичных чисел
- •4.6.Деление двоичных чисел
- •5.Электронные вычислительные машины.
- •5.1.Функционально-структурная организация
- •5.1.1.Структура персонального компьютера
- •5.1.2.Внутренние устройства пк.
- •5.1.3.Специальная память.
- •5.2. Внешние запоминающие устройства.
- •5.2.1.Носители информации.
- •5.2.1.1. Жесткий диск.
- •5.2.1.2. Флоппи-диски.
- •5.2.1.3. Компакт-диски.
- •5.2.2.Клавиатура пвэм.
- •5.2.2.1.Клавиатура.
- •5.2.2.2.Классификация клавиш.
- •5.2.2.3.Устройство клавиатуры.
- •5.2.4.Дисплеи пэвм.
- •5.2.4.1.Текстовый режим.
- •5.2.4.2.Графический режим.
- •5.2.5.Печатающие устройства.
- •5.2.6.Мышь и трекбол.
- •5.2.7.Дополнительные устройства пэвм.
- •5.2.7.1. Сканер.
- •5.2.7.2. Плоттер.
- •5.2.7.3. Дигитайзер.
- •5.2.7.4. Модем.
- •5.2.7.5. Звуковая карта.
- •5.2.7.6. Видеоадаптер.
- •5.2.7.7. Сетевая карта.
- •5.2.7.8.Стример.
- •5.3. Тенденции развития пэвм.
- •5.3.1. Ibm pc – совместимые персональные компьютеры
- •5.3.1.1Аппаратные средства пк (Hardware)
- •5.3.1.2.Драйверы
- •5.3.2. Персональные компьютеры фирмы Apple
- •5.3.2.1.IMac
- •5.3.2.2.PowerMacG4
- •5.3.2.3.Выбираем конфигурацию
- •5.4.Сотовая связь
- •7.Основы алгоритмизации.
- •7.1.Понятие алгоритма
- •7.2.Основные этапы технологического процесса разработки программ решения экономических задач на эвм.
- •7.3.Свойства алгоритма
- •7.4.Алгоритмический язык
- •7.5.Языки программирования.
- •8. Программное обеспечение эвм.
- •8.1. Системное программное обеспечение эвм
- •8.1.1.Операционная система.
- •8.1.1.1.Понятие, основные функции и составные части ос.
- •8.1.1.2.Файловая система.
- •8.1.1.3.Характеристики и виды ос.
- •8.1.1.4.Oc ms dos
- •8.1.1.5.OcWindows.
- •8.1.1.6.Стандартные приложенияWindows
- •8.1.1.7.Обзор современных ос.
- •8.1.2.Программная оболочка
- •8.1.2.1.Norton Navigator
- •8.1.2.2.Windows Commander
- •8.1.3.Файлы и каталоги
- •8.1.3.1.Создание каталога.
- •8.1.3.2.Работа с файлами и каталогами. Операции с отдельными файлами
- •8.1.3.3.Работа с группой файлов.
- •8.1.3.4.Операции с файлами
- •8.1.4.Сканирование
- •8.1.5.Дефрагментация
- •8.1.6.Norton Utilities
- •8.1.6.1.Norton Disk Doctor
- •8.1.6.2.NortonSpeedDisk
- •8.1.7.Архивация.
- •8.1.7.1.Программы архивации
- •8.1.7.2.Arj
- •8.1.7.3.WinRar
- •8.1.7.4.ZipFoldersиZipMagic2000
- •8.1.8.Антивирусные средства.
- •8.1.8.1.Классификация вирусов.
- •8.1.8.2.Особенности алгоритма работы вируса.
- •8.1.8.3.Аппаратные устройства – источники вирусов.
- •8.1.8.4.Способы защиты от вирусов.
- •8.2. Прикладное программное обеспечение пэвм
- •8.2.1.Компьютерная графика.
- •8.2.1.1.Направления компьютерной графики
- •8.2.1.2.Растровая и векторная графика.
- •8.2.1.3.Назначение и характеристика пакетов растровой графики.
- •8.2.1.4.Назначение и характеристика пакетов векторной графики.
- •8.2.1.5.Программы трехмерного моделирования.
- •8.2.1.6.Назначение и характеристика пакетов деловой графики.
- •8.2.1.7.Графические форматы данных.
- •8.2.1.8.Задачи, решаемые средствами компьютерной графики:
- •8.2.2.Текстовыепроцессоры.
- •8.2.2.1.Сохранение документа и основные особенности наиболее часто употребляемых форматов
- •8.2.2.2.Общая характеристикаMicrosoftWord2000 и его новые и усовершенствованные функциональные возможности.
- •8.2.3.Табличные процессоры
- •8.2.3.1 . Концепция электронной таблицы
- •8.2.3.2.Основные понятия табличного процессора
- •8.2.3.3.Структурные единицы электронной таблицы
- •8.2.3.4.Правила работы.
- •8.2.3.5. Характеристика табличных процессоров
- •8.2.3.6.Функциональные возможностиExcelи его интерфейс.
- •8.2.3.7.ВозможностиExcel97
- •8.2.4.Пакеты презентационной графики.
- •8.2.4.1.Создание презентации с помощью Мастера автосодержания.
- •8.2.4.2.Возможности программы.
- •8.2.4.3.Новые возможности в очередных версиях.
- •8.2.5. Дополнительные возможности продуктов ms Office
- •8.2.5.1.Совместное использование программ Word, Excel, PowerPoint.
- •8.2.5.2.Подготовка документов на бланке.
- •8.2.5.3.Отправка документа по электронной почте.
- •8.2.5.4.Создание Web-страниц.
- •8.2.5.5.Назначение и характеристика мsOutlook.
2.3.Структурированные типы данных.
К структурированным типам данных относятся массивы, записи и файлы.
2.3.1.Массив.
Массив – это совокупность элементов одного типа, который обращается с помощью общего имени. Доступ к отдельному элементу массива может осуществляться с помощью индекса, в С все массивы состоят из соприкасающихся участков памяти. Наименьший адрес соответствует первому элементу массива. Наибольший адрес соответствует последнему элементу. Массивы могут иметь одну или несколько размерностей. Стандартный вид обьявления одномерного массива.
Тип имя_переменной [размер];
В С массивы должны определяться однозначно, чтобы компелятор мог выделить для них место памяти. Здесь тип обьявляет базовый тип массива и является типом каждого элемента массива. Параметр "размер" определяет сколько элементов содержит массив. Размер должен задаваться только const-н целым выражением. Не допускается использования переменных при описании размера массива. У всех массивов первый элемент имеет индекс ноль (0).
Пример:
Если написать char K [10];, то будет обьявлен массив из 10-ти элементов, причем эти элементы адресуются индексами от 0...до 9.
Пример:
inta[20];
Определяет массив из 20-ти элементов. Причем под этот массив будет отведено 2*20, т.е. 40 байтов памяти ЭВМ. Размер обычно указываемый в квадратных скобках, после имени массива при его описании может отсутствовать.
Пример:
int b [ ];
int b [ ] = { 1,2,3 };
В первом случае память под массив не выделяется. Выделяется только память под указатель. Во втором случае память под массив отводится в соответствии с приведенным списком начальном значении, т.е. 3*2=6 байт. Обращение к элементу массива осуществляется с помощью операции индексации
имя [ выражение ];
где имя - имя массива.
Выражение, заключенное в квадратные скобки после имени массива является индексом массива и определяет порядковый номер элемента в массиве. Выражение должно быть целого типа. С - компелятор не контролирует случая выхода индекса за пределы границ массива. Имя массива, используемое без последующих квадратных скобок, представляет адрес начала массива. Двухмерный массив представляется, как одномерный элементы которого тоже являются массивами.
Пример:
int b[5] [10];
Это обьявление задает 2-х мерный массив. Аналогично можно установить число измерений. Элементы 2-х мерного массива хранятся по строкам, т.е. если переходить по ним в порядке их расположения в памяти, то быстрее всего изменяется крайний правый индекс.
Пример обращения к 8 - му элементу3-й строки.
b[3] [8];
Над массивами в С допускается только две операции:
1) Получение адреса массива с помощью операции указатель.
2) Обращение к элементу массива с помощью операции - индексации.
В некоторых реализациях компелятора допускается использование операции sizeof.
2.3.1.1. Связь между массивами и указателями.
Существует тесная связь между массивами и указателями. Имя массива является указателем const-й и представляет собой стартовый адрес массива.
Пример:
int a [5];
Массив из 5-ти элементов, где а есть адрес нулевого элемента (& a[0]).
Пример: В массив заносятся элементы от 1 до 12 и после чего выводится массив на экран.
# include <stdio h>
int main ( void )
{ int t, i, num [3] [4];
/* загрузка чисел */
for (t=0, t<3; ++t);
for (i=0, i<4, ++i);
num [t] [i] = (t*4)+i+1;
/* вывод чисел */
for ( t=0; t<3, ++t) {
for ( i=0; i<4, ++i)
printf ( " % d ", num [t] [i]);
printf ( " \n ");
}
}
В C есть правила работы с указателями. Если к указателю прибавляется целое – компелятор автоматически масштабирует целое, умножая его на число байтов соответствующих типу, указанному в определении указателя. Любое действие, которое достигается индексированием массива, может быть выполнено с помощью указателей, причем быстрее с помощью указателей. Возможно размещение в памяти массива а.
1000 1002 1004 1006 1008-адрес
A[0] |
A[1] |
A[2] |
A[3] |
A[4] |
Символическое обозначение адреса 1000 в массиве - это а. К третьему элементу массива можно обратиться с помощью операции индексации (а [2]). Существует другой способ обращения к третьему элементу массива а. Это использование стартового адреса массива и операции сложения указателя с константой. Выражение: а+2 дает значение адреса 1004 (1000 + 2 * 2). Взяв значение по этому адресу можно добраться до третьего элемента массива а, т.е. *(а+2). Следовательно обратиться например к i-тому элементу массива а можно с помощью выражения а [i] или *(а+i). Оба способа эквивалентны, но второй быстрее.
Пример вариантов вывода элементов массива
# (include <stdio.h>
int a[] = {10;20;30;40;50;60};
/ * обьявление и инициализация массива * /
main( )
{ int i, * p )
for ( i=0, i< 6; i++)
printf ( " a [% d] = % d, % c, i, a [i] (i= =2)?'\ n':'__');
printf ( " \ n \ n ");
for ( p = & a [0]; p < = & a [5]; p++ )
printf ( " значение * p % d; % c", * p, (p = = & a [2] ) ? '\ n'; '__');
printf ( " \ n \ n " );
for ( p = & a [0], i = 0, i < b; i++ )
printf ( " p [ % d ] = % d; % c", i, p [i], (i= =2)?'\ n':'__');
printf (" \ n \ n");
for ( a = 0, i = 0, p+i < = a+4; p++,i++)
printf ( " * ( p + % d ) = % d \ t ", i, * (p + i ) );
printf( "n\n" );
/ * вывод на печать 2-го, 4-го элемента М* /
}
Результат работы.
a[0]=10; a[1]=20; a[2]=30; a[3]=40; a[4]=50; a[5]=60
_________________________________________________________________
Значение * р:10; значение * р:20; значение * р:30; значение * р:40;
значение * р:50; значение * р:60;
─────────────────────────────────────────────
р[0]=10; p[1]=20; p[2]=30; p[3]=40; p[4]=50; p[5]=60;
─────────────────────────────────────────────
* [p+0]=10 * (p+1)=30 * (p+2)=50
─────────────────────────────────────────────
Операция р++ увеличивает значение указателя на еденицу. Если р=&a[i],то после операции р++, р содержит адрес элемента а[i+1].