Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-практическое пособие ПРОГ.doc
Скачиваний:
35
Добавлен:
20.11.2019
Размер:
5.63 Mб
Скачать

2.2.3.Сильная типизация

Язык Си можно отнести к языкам программирования, поддерживающих сильную типизацию. Язык программирования является языком программирования с сильной типизацией, если:

  • каждый объект в этом языке программирования принадлежит точно одному из существующих в этом языке программирования типу данных;

  • преобразование типов осуществляется только путем преобразования значения из одного типа в другой;

  • преобразование типов не производится путем трактовки представления значения как данных различных типов.

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

В языке Си допускается неявное преобразование типов. Однако транслятор с языка Си выводит предупреждение о каждом встретившимся в программе случае неявного преобразования типов.

2.3.Структура простой программы

Программа на языке Си состоит из одной или более функций, причем какая-нибудь из них (главная) обязательно должна называться main(). Описание функции состоит из заголовка и тела. Заголовок состоит из директив препроцессора типа #include и имени функции. Отличительным признаком имени функции служат круглые скобки, при этом аргумент может отсутствовать. Тело функции заключено в фигурные скобки и представляет собой набор операторов, каждый из которых оканчивается символом "точка с запятой".

Пример простой программы осуществляющий перевод расстояния в метрах в расстояние в морских саженях и футах представлен ниже.

/*

Пример 1

Осуществляет перевод метров в морские сажени и футы.

1 морская сажень = 1.83 м;

1 фут = 30.5 см.

*/

#include <stdio.h>

#include <stdlib.h>

int main(void) {

float m,ft,fm;

setbuf(stdout, NULL);

printf("Введите расстояние в метрах: ");

scanf("%f",&m);

ft=m/0.305;

fm=m/1.83;

printf("В %f метров = %f морских саженей или %f футов.",m,fm,ft);

return EXIT_SUCCESS;

}

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

/*

Пример 2

Осуществляет перевод метров в морские сажени и футы.

*/

#include <stdio.h>

#include <stdlib.h>

float m_to_fm(float m){ // Переводит метры в морские сажени

return m/1.83; // 1 морская сажень = 1.83 м;

}

float m_to_ft(float m){ // Переводит метры в футы

return m/0.305; // 1 фут = 30.5 см.

}

int main(void) {

float m;

setbuf(stdout, NULL);

printf("Введите расстояние в метрах: ");

scanf("%f",&m);

printf("В %f метров = %f морских саженей или %f футов.",m,m_to_fm(m),m_to_ft(m));

return EXIT_SUCCESS;

}

Если программа (проект) большая, то она может состоять из нескольких файлов. Файлы, содержащие тексты Си-программы, называются исходными.

В языке Си исходные файлы бывают двух типов:

  • заголовочные, или h-файлы;

  • файлы реализации, или Cи-файлы.

Имена заголовочных файлов имеют расширение ".h". Имена файлов реализации имеют расширения ".c".

Заголовочные файлы содержат только описания (прототипы функций, имена и типы внешних переменных, константы, новые типы и т.п.). Другими словами h-файлы содержат лишь информацию о программах. Файлы реализации содержат сами программы.

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

Заголовочный файл подключается с помощью директивы препроцессора #include.

Препроцессор - это программа предварительной обработки текста непосредственно перед трансляцией. Препроцессор, как правило, является частью компилятора.

В рассмотренных примерах директивы #include <stdio.h> и #include <stdlib.h> были подключены заголовочные файлы стандартных библиотек. Если h-файл является частью стандартной Си-библиотеки и расположен в одном из системных каталогов, то его имя записывается в угловых скобках. Имена h-файлов, созданных самим программистом в рамках разрабатываемого проекта и расположенных в текущем каталоге, указываются в двойных кавычках, например, #include "abcd.h".