Изучение аппаратного и программного обеспечения персонального компьютера. Основы программирования на языке С++

Автор работы: Пользователь скрыл имя, 14 Ноября 2011 в 16:10, курсовая работа

Описание работы

С появлением настольных персональных компьютеров, созданных в начале 80-х годов корпорацией IBM, произошла подлинная революция. Первый персональный компьютер, появившийся в августе 1981 года, назывался IBM PC. Этим компьютером было гораздо проще пользоваться, чем старыми огромными ЭВМ.

Содержание работы

1 Задание на курсовую работу 2
2 Замечание руководителя 3
3 Введение 5
4 Эволюция процессоров и их совместимость 6
4.1 Общие характеристики процессора 6
4.2 История развития 10
4.2.1Процессоры Intel 10
4.2.2Процессоры AMD 16
5 Операционные системы, оболочки, среды. Их функции. 20
5.1 История разработки и совершенствования основных операционных систем компании Microsoft. 21
6 Структура программы на языке С. Стандартные библиотеки. 27
6.1 Основные термины языка С 27
6.2 Структура программы 29
6.2.1 Состав структуры программы 29
6.2.2Функция main 30
6.2.3 Область видимости идентификатора 30
6.2.4 Время существования переменных и функций 31
6.2.5 Спецификаторы классов памяти 31
6.3 Стандартные библиотеки функций 33
7 Практическое задание 35
7.1 Условие задачи 35
7.2 Блок-схема 35
7.3 Листинг программы 38
Заключение 41
Список литературы

Файлы: 1 файл

Курсовая1.doc

— 216.50 Кб (Скачать файл)

     Константами или литералами называют некоторые  фиксированные значения данных, т. е. такие значения, которые не могут изменяться.

     В языке программирования С различаются  четыре типа констант: целые константы (12, 567,4398), плавающие константы (3.14, 0.314е1, 314е-2), символьные константы (‘с’,‘5’,‘\101’), строковые константы (не превышают 509 символов:  “Эта строка”)

     Инструкцией называется любое синтаксически  правильно составленное приложение языка программирования С. Любое  количество инструкций, заключенное  в фигурные скобки, называется составной  инструкцией или блоком.

     Комментарий – это предложение на естественном языке, которое поясняет ход выполнения программы. Пример: /* подсчет количества вариантов*/.

     Тип данных определяется как множество  значений и множество операций, допустимых над этим значениями. Базовые типы данных: char, int, float, doable. В языке программирования С определен тип данных void, который определяет пустое множество значений. Для более точного выбора диапазона значений базового типа данных используют модификаторы типов, которые делятся на две группы: модификаторы длинны(short, long) и модификаторы знака (signed, unsigned).

     Переменная  или объект – это поименованная  область памяти, в которой хранятся данные. Прежде чем переменная  может  использоваться в программе, она  должна быть объявлена. Например: float I, r,d; int f, h; . Для инициализации переменных используется оператор присваивания, который обозначается символом =. В правой части пишется выражение, которое включает константы или проинициализированные переменные.

          

         6.2 Структура программы

      6.2.1 Состав структуры программы

      Программа на языке программирования С состоит из определений переменных и функций, которые размещаются в одном или нескольких текстовых файлах. Такие файлы называются исходными файлами или единицами компиляции. Если в исходном файле используются функции или переменные из других файлов, то они должны быть объявлены перед своим использованием. Для объявления функций используются их прототипы, а для объявления переменных— ключевое слово extern.

      Подготовка  исполняемого файла программы "осуществляется в два этапа. Сначала компилируются все исходные файлы программы. Результатом компиляции исходных файлов являются объектные файлы, которые содержат исполняемый код программы, но в которых не разрешены ссылки на переменные и функции, определенные в других объектных файлах. Если компиляция прошла успешно, то можно создать исполняемый модуль. Для этого вызывается программа, которая называется компоновщик или редактор связей (linker). Эта программа разрешает внешние ссылки и создаёт исполняемый файл.

      Исполняемая программа на языке С имеет  структуру, которая показана на рис.1 . Т.е. исполняемая программа представляет собой непрерывный блок памяти, который  состоит из 4-х частей:

      - программный код;

      - глобальные переменные;

      - куча

      - стек;

          Стек предназначен для хранения адресов возврата из функций, значения аргументов функций и локальных переменных. Куча предназначена для динамического выделения памяти программе. Размеры стека и кучи задаются при вызове программы. Значения этих величин, заданные по умолчанию, зависят от операционной системы. Также отметим, что стек и куча растут навстречу друг

другу.

          6.2.2 Функция main

      Каждая  программа на языке С должна содержать  одну функцию с именем main. При  вызове программы средой исполнения или операционной системой управление передается этой функции. Функция main имеет один из следующих прототипов:

      int main(void);

      int main(int  argc,  char  **argv,  char  **envp);

      int main();

      Во  втором случае операционная система  передает функции main три параметра argc, argv и envp. Первые два параметра являются обязательными, а третий параметр может отсутствовать. Параметры функции main имеют следующее назначение:

      - argc — определяет количество элементов в массиве ,trgv;

      - argv — указатель на массив указателей на строки, которые передаются программе при ее вызове;

      - envp— указатель на массив указателей на строки, которые описывают среду исполнения программы, последняя строка в массиве имеет нулевую длину.

      Если  в среде исполнения доступно имя программы, то указатель на строку с именем программы хранится первым в массиве указателей, на который указывает параметр argv. Если имя программы недоступно, то первый элемент этого массива указывает на пустую строку.

      Параметры исполняемой программе передаются при ее запуске, Способ запуска программы  зависит от операционной системы. Например, при запуске исполняемого файла  из командной строки аргументы функции main записываются после имени программы.

          6.2.3 Область видимости идентификатора

      Если  переменная объявлена вне какого-либо блока, то такая переменная называется глобальной. В противном случае переменная называется локальной.

      Областью  видимости идентификатора называется наибольшая область программы, в  которой можно сослаться на этот идентификатор. Существуют четыре типа областей видимости: блок; функция; прототип функции; исходный файл.

      Глобальные  переменные видимы внутри исходного  файла, в котором они определены.

      Локальные переменные видимы только внутри блока или функции, в которой они определены. Локальная переменная скрывает любую переменную с тем же именем, объявленную вне этого блока.

      Параметры функции видны только внутри функции  или объявления этой функции. Функции всегда определяются вне какого-либо блока. Областью видимости функции является исходный файл, в котором эта функция определена.

      6.2.4 Время существования переменных и функций

      Время существования переменной или функции  определяется как время, в течение которого эта переменная или функция хранится в памяти компьютера.

      Глобальные  переменные существуют в течение  всего времени выполнения программы  и хранятся в фиксированной области  памяти программы, которая задается во время ее компиляции. Если глобальная переменная не проинициализирована, то компилятор устанавливает ее значение в ноль.

      Память  для локальных переменных выделяется динамически во время исполнения программы. При вызове функции или  входе в блок, в котором объявлены  локальные переменные, память под  эти переменные распределяется, а  при возврате из функции или выходе из блока эта память освобождается. Поэтому данные, содержащиеся в локальных переменных, недоступны при последующих входах в блок или вызовах функции. Если локальная переменная не проинициализирована при ее объявлении, то ее начальное значение не определено.

Функции существуют в течение всего времени  исполнения программы.

      6.2.5 Спецификаторы классов памяти

      В языке программирования С для  управления временем существования переменных и связыванием идентификаторов используются специальные ключевые слова, которые называются спецификаторами классов памяти. Отметим, что спецификаторы классов памяти не изменяют области видимости идентификатора. Существуют четыре спецификатора классов памяти: extern, auto, static и register. Используются спецификаторы классов памяти; при объявлении переменных и функций и записываются перед идентификатором или спецификатором типа переменной или функции Спецификатор extern

      Спецификатор extern управляет связыванием идентификаторов  и указывает компилятору, что переменная или функция уже определена вне области видимости своего объявления в том же или другом исходном файле.

      Если  спецификатор extern используется при  объявлении локальной переменной, то в этом случае он указывает компилятору, что эта переменная ссылается на глобальную переменную с тем же именем, определенную в том же или другом исходном файле.

      Если  спецификатор extern используется с глобальной переменной, то это указывает компилятору, что эта переменная ссылается на глобальную переменную с тем же именем, но которая определена в другом исходном файле.

      Спецификатор auto управляет временем существования  локальной переменной и указывает компилятору, что переменная, определенная внутри блока, существует только во время исполнения этого блока. Локальные переменные имеют этот спецификатор по умолчанию, поэтому он редко используется при объявлении таких переменных.

      Спецификатор static управляет временем существования  локальных переменных и связыванием идентификаторов глобальных переменных и функций.

      Если  локальная переменная определена со спецификатором static, то она существует в течение всего времени исполнения программы. Если такая переменная не инициализируется при своём определении, то компилятор устанавливает начальное значение этой переменной в ноль.

      Для глобальной переменной или функции  спецификатор static . ограничивает ее связывание только исходным файлом, в котором  эта переменная или функция определена. То есть к этой переменной или функции нельзя обратиться из другого исходного файла.

      Спецификатор register указывает компилятору, что  значение переменной нужно хранить  в регистре микропроцессора. Этот спецификатор может применяться только к локальным  переменным и параметрам функций. Компилятор не обязан исполнять требования спецификатора register и может хранить значения переменной в оперативной памяти. Поэтому спецификатор register редко используется на практике.

      6.3 Стандартные библиотеки функций

      Математические  функции – файла match.h

Abc- Int abs (int i) ;возвращает абсолютное значение целого аргумента

Acos - Double acos (double x); Функция арккосинуса. Значение аргумента должно находится в диапазоне от -1 до +1.

Asin - Double asin (double x); Функция арксинуса. Значение аргумента должно находится в диапазоне от -1 до +1.

Atan - Double atan (double x); Функция арктангенса.

atan2 - Double atan2 (double x, double y); Функция арктангенса от значения y/x.

cabs - Double cabs (struct complex znum); вычисляет абсолютное значение комплексного числа znum.

 cos - Double cos (double x); Функция косинуса. Аргумент задаётся в радианах.

Exp - Double exp (double x); Вычисляет значение  ех (экспоненциальная функция).

Floor- Double floor (double x); находит наибольшее целое, не превышающее значение х. Возвращает его в форме double.

      Функции ввода-вывода для стандартных файлов – файл stdio.h

Getch - int getch (void); Считывает один символ без изображения на экране.

Printf – int printf (char *format [, argument, …]); Функция форматирования вывода в файл stdout.

Puts – int puts ( const char *s); Записывает строку s в стандартный файл вывода (stdout).

Ungetch – int ungetch (int c); Возвращает символ с в стандартный файл ввода stdim.

      Функции для работы со строками – файлы  string.h, stdlib.h

Atof –double atof (char*str);Преобразует строку str в вещественное число типа double.

Ltoa – char  *ltoa (long v, char *str, int baz); Преобразует длинное целое v в строку str. При изображении числа используется основание baz (2<=baz<=36)

Strcat - char  *strcat (char *sp, char *si); Приписывает строку si к строке sp (конкатенация строк).

Strdup - char  *strdup ( const char *str); Выделяет память и переносит в неё копию str.

Strlen – unsigned strlen (char *str); Выделяет длину строки str.

Strset - char  *strset (char *str, int c, int kol); Заменяет первые kol символов строки str символов с.

Strrchr – char *strrchr (char *str, int c); Ищет в строке str последние вхождение символа с.

Strupt - char  *strupt (char *str); Преобразует буквы нижнего регистра в строке str в буквы верхнего регистра.

      Функции для работы с терминалом в текстовом режиме – файл conio.h

Clreol- void clreol (void); Стирает символы от позиции курсора до конца строки в текстовом окне.

Clrscr - void сlrscr (void); Очищает экран.

Cgets - char  *сgets (char *str); Выводит на экран строку str.

Информация о работе Изучение аппаратного и программного обеспечения персонального компьютера. Основы программирования на языке С++