Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_новое.DOC
Скачиваний:
7
Добавлен:
28.09.2019
Размер:
486.4 Кб
Скачать

Министерство науки и образования Российской Федерации

Пензенский государственный университет

Основы программирования на языке С

в примерах

Учебное пособие

Пенза 2011

УДК 519.6

Чистова Г.К., Акимова Ю,С., Механов В.Б. Основы программирования на языке С в примерах: Учеб. пособие. — Пенза: Изд-во Пенз. гос. ун-та. — 75 с.

Изложены теоретические основы программирования на языке С и соответствующие примеры. В приложении А приведены: описание среды Borland C и основные библиотечные функции.

Учебное пособие разработано на кафедре “Автономные информационные и управляющие системы” и предназначено для специальностей 170105 «Взрыватели и системы управления средствами поражения» и 220203 «Автономные информационные и управляющие системы».

Ил. 3, табл. 8.

Рецензенты:

ВВЕДЕНИЕ

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

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

Учебное пособие рассчитано на студентов, которые согласно учебному плану в течение одного семестра прослушивают лекционный курс, выполняют лабораторные и курсовые работы. Материал, изложенный в данном пособии поможет им самостоятельно освоить многие приемы программирования.

1 Порядок разработки программного продукта

Процесс разработки программы на языке С включает следующие этапы:

  1. написание текста исходной программы (исходный код);

  2. ввод исходного текста с помощью текстового редактора;

  3. компиляция модулей. Компиляция — это преобразование исходного кода (программы на языке С) в объектный модуль (файл с расширением OBJ), выполняется компилятором (программой из состава среды программирования). Компилятор может показать синтаксические ошибки в программе — неверно написанный оператор, незакрытая скобка и т.д.;

  4. проверка и отладка синтаксиса программы;

5) объединение (построение или связывание) откомпилированных модулей в программу (файл программы EXE). На этом этапе к программе подсоединяются необходимые библиотеки. Библиотека — это файл с расширением LIB, который содержит готовые для использования (откомпилированные) функции. Существуют стандартные библиотеки языка С. Они обеспечивают вывод информации на дисплей, ввод с клавиатуры, работу с файлами и многие другие необходимые при программировании функции;

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

  2. запуск программы.

На различных этапах разработки программы можно воспользоваться информацией о работе в среде Borland C, содержащейся в приложении А (табл. А.1 — А.6).

2 Структура программы на языке с

Программа на языке С имеет следующую структуру:

< команды препроцессора >

< определение типов >

< прототипы функций >

< переменные >

< функции >.

Рассмотрим ее на примере вычисления среднего возраста людей.

// Пример 2.1

//Пример структуры программы

#include <stdio.h> // Подключает функцию printf()

#include <conio.h> // Подключает функции clrscr(), getch()

#define MAXLINE 3 // Задает константу MAXLINE, равную 3

typedef struct // Определяет тип данных “структура”

{

char *name; // Поле name

Int age; // Поле age

} list;

float function_sr(); // Прототип функции

list spisok[MAXLINE]={ “Петров”, 25, // Описание и

Иванов”, 27, // инициализация

Сидоров”, 29}; // переменной

Void main(void) // Основная функция

{

int i;

float sr;

clrscr();

printf(“Список лиц: \n”);

for (i=0; i<MAXLINE; i++)

printf(“%s %d лет \n”,spisok[i].name, spisok[i].age);

sr = function_sr();

printf(“Средний возраст лиц %3.0f лет \n”, sr);

getch();

}

float function_sr() // Функция вычисления среднего

{ // арифметического

int i;

float sum=0;

for(i=0; i<MAXLINE; i++)

sum+=spisok[i].age;

sum=sum/MAXLINE;

return(sum);

}

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

Директива #include <> осуществляет подключение информации из другого файла в программу. Например, для использования функций форматного ввода-вывода printf() и scanf() необходимо подключить файл stdio.h; а функций очистки экрана clrscr() и ожидания ввода символа с клавиатуры getch() — файл conio.h.

Директивой #define в программе задаются константы. По соглашению программистов константы обозначаются прописными буквами. Обычно константы выносятся в отдельный файл, который можно озаглавить, например, const.h. К программе он подключается с помощью директивы #include “const.h”.

Директива #define вводит также макроопределение — макрос. Например, для возведения в квадрат можно определить макрос в виде

#define square(x) ((x)*(x)).

Когда компилятор встречает в программе макрос square(x), он заменяет его на произведение ((x)*(x)).

В блоке определения типов объявляют тип, который является произвольным от базового (раздел 3). Служебное слово typedef является необязательным. В данной программе объявлен тип struct (структура). Кроме того, язык С предусматривает типы: union (объединение) и enum (перечисление). Возможны следующие формы объявления типа:

  1. typedef struct 2) struct 3) struct list

{ { {

} list; } list; };

Поля записываются в виде:

базовый_тип имя_переменной;

Язык С построен по функциональному принципу. Любая программа содержит одну основную функцию  — main. Чаще всего ее тип не определен (void). Функции, имеющие базовый тип, возвращают вычисленное значение в основную программу или другую функцию. Они могут быть описаны одним из трех способов:

1-й способ: < прототип функции(й) >

< блок main >

< определение функции(й) >

2-й способ: < определение функции(й) >

< блок main >

3-й способ: функция может быть определена во внешнем блоке, например, как sred.h. В основной программе она подключается с помощью директивы #include “sred.h”

Прототип функции записывается в форме:

тип_функции имя_функции([тип аргумент,...]);

Аргументы и типы могут отсутствовать. Структура функций аналогична структуре программы.

В разделе программы “Переменные” обычно описывают глобальные переменные, доступные для любой части программы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]