Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




 

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

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

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

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

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

< функции >.

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

// Пример 2.1

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

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

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

#defineMAXLINE3 // Задает константу 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”

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

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

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

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

 




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 307; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.049 сек.