Разделы презентаций


Знакомство с языком С

Содержание

Знакомство с языком СиСостав языка СиСтруктура программыОсновные типы данных в СиДекларация объектовДанные целого типа (integer)Данные символьного типа (char)Данные вещественного типа (float, double)Использование модификаторовКонстанты в программах

Слайды и текст этой презентации

Слайд 1Основы алгоритмизации и программирования
Лекция 3
Знакомство с языком С

Основы алгоритмизации и программированияЛекция 3Знакомство с языком С

Слайд 2Знакомство с языком Си
Состав языка Си
Структура программы
Основные типы данных в

Си
Декларация объектов
Данные целого типа (integer)
Данные символьного типа (char)
Данные вещественного типа

(float, double)
Использование модификаторов
Константы в программах
Знакомство с языком СиСостав языка СиСтруктура программыОсновные типы данных в СиДекларация объектовДанные целого типа (integer)Данные символьного типа

Слайд 3Знакомство с языком Си
Любая программа, написанная на языке высокого уровня,

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

правил, составляющих синтаксис данного языка

При создании программ разработчик может допустить следующие ошибки



Синтаксические ошибки – это результат нарушения формальных правил написания программы на конкретном языке программирования

Логические ошибки

Ошибки алгоритма . Причиной является несоответствие построенного алгоритма ходу получения конечного результата сформулированной задачи

Семантические ошибки. Причина – неправильное понимание смысла (семантики) операторов выбранного языка программирования



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

Слайд 4Состав языка Си
Алфавит любого языка составляет совокупность символов – тех

неделимых знаков, при помощи которых записываются все тексты на данном

языке.

Алфавит языка Си включает:

Прописные и строчные буквы латинского алфавита и знак подчеркивания (код 95)

Арабские цифры от 0 до 9

Специальные символы

Пробельные (разделительные) символы: пробел, символы табуляции, перевода строки, возврата каретки, новой страницы и новой строки


В тексте на любом естественном языке можно выделить четыре основных элемента: символы, слова, словосочетания и предложения. Алгоритмический язык также содержит такие элементы, только слова называют лексемами (элементарными конструкциями ), словосочетания – выражениями, предложения – операторами. Лексемы образуются из символов, выражения из лексем и символов, операторы из символов выражений и лексем

Состав языка СиАлфавит любого языка составляет совокупность символов – тех неделимых знаков, при помощи которых записываются все

Слайд 5
Состав языка Си
Разделители (скобки, точка, запятая, пробельные символы)
Из символов алфавита

формируются лексемы (или элементарные конструкции) языка – минимальные значимые единицы

текста в программе.

Константы

Знаки операций

Идентификаторы

Ключевые (зарезервированные) слова

Лексемы

Границы лексем определяются другими лексемами, такими как разделители или знаки операций, а также комментариями

Состав языка СиРазделители (скобки, точка, запятая, пробельные символы)Из символов алфавита формируются лексемы (или элементарные конструкции) языка –

Слайд 6
Состав языка Си
ID констант (макросов) – большими буквами – INDEX,

MAX_INT
Идентификатор (ID) – это имя программного объекта (константы, переменной, метки,

типа, функции и т.д.). В идентификаторе могут использоваться латинские буквы, цифры и знак подчеркивания.

Первый символ ID – не цифра; пробелы внутри ID не допускаются.

При именовании объектов следует придерживаться общепринятых
СОГЛАШЕНИЙ

ID переменных и функций обычно пишутся строчными (малыми) буквами – index, max()

ID типов пишутся с большой буквы, например, Spis, Stack

Если ID состоит из нескольких слов, как, например, birth_date, то принято либо разделять слова символом подчеркивания, либо писать каждое следующее слово с большой буквы – birthDate

Идентификатор должен нести смысл, поясняющий назначение объекта в программе, например, birth_date – день рождения, sum – сумма

0001

0010

0011

0100

0101

Состав языка СиID констант (макросов) – большими буквами – INDEX, MAX_INTИдентификатор (ID) – это имя программного объекта

Слайд 7Состав языка Си
В Си прописные и строчные буквы – различные

символы. Идентификаторы Name, NAME, name – различные объекты!
Ключевые (зарезервированные) слова

не могут быть использованы в качестве идентификаторов

Список ключевых слов, определенных в стандарте ANSI Cи


Состав языка СиВ Си прописные и строчные буквы – различные символы. Идентификаторы Name, NAME, name – различные

Слайд 8
Состав языка Си
Еще один базовый элемент языка программирования – комментарий

– не является лексемой. Внутри комментария можно использовать любые допустимые

на данном компьютере символы, поскольку компилятор их игнорирует.
В Си комментарии ограничиваются парами символов /* и */, а в С++ был введен вариант комментария, который начинается символами // и заканчивается символом перехода на новую строку.

Комментарии могут размещаться везде, где допускается пробел. 
Используйте комментарии, чтобы документировать Ваш код. В этом примере комментарий, принятый компилятором

Комментарий, принятый компилятором:

/* Comments can contain keywords such as
for and while without generating errors. */

Комментарии могут размещаться в той же строке, что и оператор программы:

printf( "Hello\n" ); /* Comments can go here */

Можно размещать описательный блок комментариев перед функциями или модулями программы:

/* MATHERR.C illustrates writing an error routine
* for math functions.
*/

Поскольку комментарии не могут содержать вложенные комментарии, этот пример является причиной ошибки:

/* Comment out this routine for testing
/* Open file */
Fh = _open( "myfile.c", _O_RDONLY );
.
.
.
*/

Состав языка СиЕще один базовый элемент языка программирования – комментарий – не является лексемой. Внутри комментария можно

Слайд 9Структура программы
Программа, написанная на языке Си, состоит из одной или

нескольких функций, одна из которых имеет идентификатор main – главная

(основная). Она является первой выполняемой функцией (с нее начинается выполнение программы) и ее назначение – управлять работой всей программы (проекта).

Общая структура программы
на языке Си


Директивы препроцессора

Определение типов пользователя – typedef

Описание прототипов функций

Определение глобальных переменных

Функции

Программа

Структура программыПрограмма, написанная на языке Си, состоит из одной или нескольких функций, одна из которых имеет идентификатор

Слайд 10
Структура программы
В свою очередь, каждая функция имеет следующую структуру
Объявление параметров


{
{
int

main(void)
{
printf(“ Высшая оценка знаний – 10 !”);
return 0;


}

ID Функции

Тип

Код функции

ФУНКЦИЯ

Начало функции

Конец функции

Структура программыВ свою очередь, каждая функция имеет следующую структуруОбъявление параметров{{int main(void) {	printf(“ Высшая оценка знаний – 10

Слайд 11Структура программы
Препроцессорные директивы начинаются символом #, за которым следует наименование

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

под управлением директив.


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


#include < ID_файла.h>

Пример:

Если идентификатор файла заключен в угловые скобки (< >), то поиск данного файла производится в стандартном каталоге, если – в двойные кавычки (” ”), то поиск файла производится в текущем каталоге.

К наиболее часто используемым библиотекам относятся:
stdio.h – содержит стандартные функции файлового ввода-вывода
math.h – математические функции
conio.h – функции для работы с консолью (клавиатура, дисплей)

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

Слайд 12Структура программы
Второе основное назначение препроцессора – обработка макроопре­делений
#define PI

3.1415927

/* В ходе препроцессорной обработки программы идентификатор PI везде будет

заменяться значением 3.1415927 */


#define ID строка

Общий вид определителя

#include
void main(void)
{ // Начало функции main

printf(“ Высшая оценка знаний – 10 !”);

} // Окончание функции main

Простейшая программа на Си

Отличительным признаком функции служат скобки ( ) после ее идентификатора, в которые заключается список параметров. Перед ID функции указывается тип возвращаемого ею результата. Если функция не возвращает результата и не имеет параметров, указывают атрибуты void – отсутствие значений

Структура программыВторое основное назначение препроцессора – обработка макроопре­делений#define PI  3.1415927/* В ходе препроцессорной обработки программы идентификатор

Слайд 13Основные типы данных в Си
Тип данных определяет
Простые (скалярные)
Данные в языке

Си
внутреннее представление данных в оперативной памяти
Сложные (составные)


совокупность значений (диапазон), которые

могут принимать данные этого типа

набор операций, которые допустимы над такими данными


Основные типы базовых данных: целый – int (integer), вещественный с одинарной точностью – float и символьный – char (character)

В свою очередь, данные целого типа могут быть короткими – short, длинными – long и беззнаковыми – unsigned, а вещественные – с удвоенной точностью – double

Основные типы данных в СиТип данных определяетПростые (скалярные)Данные в языке Сивнутреннее представление данных в оперативной памятиСложные (составные)совокупность

Слайд 14Основные типы данных в Си
Данные целого и вещественного типов находятся

в определенных диапазонах, т.к. занимают разный объем оперативной памяти
Размер

памяти зависит от разрядности процессора, для 16-разрядных объем памяти определяется первой цифрой, для 32-разрядных – второй(в скобках)
Основные типы данных в СиДанные целого и вещественного типов находятся в определенных диапазонах, т.к. занимают разный объем

Слайд 15
;
Декларация объектов
Все объекты, с которыми работает программа,

необходимо декларировать, т.е. объявлять компилятору об их присутствии.
Формы декларации
Описание, не

приводящее к выделению памяти

Определение, при котором под объект выделяется объем памяти в соответствии с его типом; в этом случае объект можно инициализировать, т.е. задать его начальное значение



Формат декларации объектов

int i, j, k; // ID объектов разделяются запятыми
float a, b; //атрибуты – разделителями
char r;
double gfd;

Объекты программы могут иметь следующие атрибуты

Класс памяти – характеристика способа размещения объектов в памяти. Определяет область видимости и время жизни переменной

Тип – тип будущих значений декларируемых объектов



;Декларация объектовВсе объекты, с которыми работает программа, необходимо декларировать, т.е. объявлять компилятору об их присутствии.Формы декларацииОписание,

Слайд 16Данные целого типа (integer)
Знак
Тип int – целое число, обычно

соответствующее естественному размеру целых чисел. Квалификаторы short и long указывают

на различные размеры и определяют объем памяти, выделяемый под них

Атрибуты signed и unsigned показывают, как интерпретируется старший бит числа – как знак или как часть числа

5

6

7

0

1

4

2

3

13

14

15

8

9

12

10

11

int

Значение числа

5

6

7

0

1

4

2

3

13

14

15

8

9

12

10

11

unsigned int

Значение числа

Данные целого типа (integer)Знак Тип int – целое число, обычно соответствующее естественному размеру целых чисел. Квалификаторы short

Слайд 17Данные символьного типа (char)
Под величину символьного типа отводится такое количество

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

в памяти один байт. Закрепление конкретных символов за кодами производится кодовыми таблицами

Для персональных компьютеров (ПК) наиболее распространена ASCII (American Standard Code for Information Interchenge) таблица кодов

Данные типа char рассматриваются компилятором как целые, поэтому возможно использование signed char: величины со знаком (по умолчанию) – символы с кодами от –128 до +127 и unsigned char – беззнаковые символы с кодами от 0 до 255. Этого достаточно для хранения любого символа из 256-символьного набора ASCII. Величины типа char применяют еще и для хранения целых чисел из указанных диапазонов.

Данные символьного типа (char)Под величину символьного типа отводится такое количество байт, которое достаточно для любого символа. Поэтому

Слайд 18Данные символьного типа (char)

Данные символьного типа (char)

Слайд 19Данные вещественного типа (float, double)
Данные вещественного типа в памяти занимают:

float – 4 байта (одинарная точность), double (удвоенная точность) –

8 байт; long double (повышенная точность) – 10 байт.
Для размещения данных типа float обычно 8 бит выделено для представления порядка и знака и 24 бита под мантиссу
Данные вещественного типа (float, double)Данные вещественного типа в памяти занимают: float – 4 байта (одинарная точность), double

Слайд 20Данные вещественного типа (float, double)
Типы данных с плавающей десятичной точкой

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

числа состоит из двух частей: мантиссы и порядка. В IBM совместимых ПК, как вы уже знаете, переменная типа float занимает 4 байта, из которых один двоичный разряд отводится под знак мантиссы, 8 разрядов под порядок и 23 под мантиссу.
Для того, чтобы сохранить максимальную точность, вычислительные машины почти всегда хранят мантиссу в нормализованном виде.
Мантисса – это число больше единицы и меньше двух. Поскольку старшая цифра мантиссы всегда равна единице, то ее не хранят.

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

Данные вещественного типа (float, double)Типы данных с плавающей десятичной точкой хранятся в оперативной памяти иначе, чем целочисленные.

Слайд 21Данные вещественного типа (float, double)
Для величин типа doublе, занимающих 8

байт, под порядок и мантиссу отводится 11 и 52 разряда

соответственно. Длина мантиссы определяет точность числа, а порядок – его диапазон. При одинаковом количестве байт, отводимом под величины типа float и long int, диапазоны их допустимых значений сильно различаются из-за внутренней формы представления значений таких данных.
При переносе программы с одной платформы на другую нельзя делать предположений, например, о типе int, так как для MS DOS этот тип имеет размер в 2 байта, а для ОС Windows – четыре байта. В стандарте ANSI поэтому диапазоны значений для основных типов не задаются, а определяются только соотношения между их размерами, например:
sizeof (float) < sizeof (double) < sizeof (long double) ,
sizeof (char) < sizeof (short) < sizeof (int) < sizeof (long) ,
где операция sizeof – возвращает количество байт для указанного аргумента – скалярного типа данных.
Данные вещественного типа (float, double)Для величин типа doublе, занимающих 8 байт, под порядок и мантиссу отводится 11

Слайд 22Использование модификаторов
Ключевые слова int, float, char и т.д. называют конечными

атрибутами декларации объектов программы. При декларации так называемых производных объектов

используют еще дополнительные – промежуточные атрибуты или, как их иногда называют, «модификаторы»

Символы модификации текущего типа

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

Символы [ ] после идентификатора объекта – декларация массива объектов

Символы ( ) после идентификатора объекта – декларация функции




Использование модификаторовКлючевые слова int, float, char и т.д. называют конечными атрибутами декларации объектов программы. При декларации так

Слайд 23Использование модификаторов
Правила использования более одного модификатора типа
Чем ближе модификатор к

ID объекта, тем выше его приоритет
При одинаковом расстоянии от идентификатора

объекта модифи­ка­торы [ ] и ( ) обладают приоритетом перед атрибутом звездочка *

Дополнительные круглые скобки позволяют изменить приоритет объединяемых ими элементов описания

Квадратные и круглые скобки, имеющие одинаковый приоритет, рассматриваются слева направо

Использование модификаторовПравила использования более одного модификатора типаЧем ближе модификатор к ID объекта, тем выше его приоритетПри одинаковом

Слайд 24Использование модификаторов
int a; – переменная типа int;
int a[5]; –

массив из пяти элементов типа int;
int *a; –

указатель на объект типа int;
int **a; – указатель на указатель на объект типа int;
int *a[5]; – массив из пяти указателей на элементы типа int;
int (*a)[10]; – указатель на массив из десяти элементов типа int;
int *a[3][4]; – 3-элементный массив указателей на одномерные целочисленные массивы по четыре элемента каждый;
int a[5][2]; – двухмерный массив элементов типа int;
int a(void); – функция без параметров, возвращающая значение типа int;
int *a(void); – функция без параметров, возвращающая указатель на элемент типа int;

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

Примеры

Использование модификаторовint a;		– переменная типа int;   int a[5];		– массив из пяти элементов типа int;

Слайд 25Элементы перечислений

Идентификаторы массивов и функций

Константы в программах
Константами называют величины, которые

не изменяют своего значения во время выполнения программы, т.е. это

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

В языке Си константами являются

Самоопределенные арифметические константы целого и вещественного типов, символьные и строковые данные


Элементы перечисленийИдентификаторы массивов и функцийКонстанты в программахКонстантами называют величины, которые не изменяют своего значения во время выполнения

Слайд 26Общий формат записи: ±n (+ обычно не ставится)
Целочисленные константы
Константы в

программах
Десятичные константы – это последовательность цифр 0...9, первая из которых

не должна быть 0. Если нужно ввести длинную целую константу, то указывается признак L(l) – 273L (273l). Для такой константы будет отведено – 4 байта. Обычная целая константа, которая слишком длинна для типа int, рассматривается как long

Существует система обозначений для восьмеричных и шестнадца­те­­ри­чных констант.
Восьмеричные константы – это последовательность цифр от 0 до 7, первая из которых должна быть 0, например: 0208 = 1610.
Шестнадцатеричные константы – последовательность цифр от 0 до 9 и букв от A до F (a...f), начинающаяся символами 0Х (0х), например: 0X1F16 (0х1f)16 = 3110.

1992 777 1000L – десятичные;
0777 00033 01l – восьмеричные;
0x123 0X00ff 0xb8000l – шестнадцатеричные.

Пример

Общий формат записи: 	±n (+ обычно не ставится)Целочисленные константыКонстанты в программахДесятичные константы – это последовательность цифр 0...9,

Слайд 27Константы вещественного типа
Константы в программах
Данные константы размещаются в памяти в

формате double
С фиксированной десятичной точкой,
формат записи: ±n.m, где n,

m – целая и дробная части числа

С плавающей десятичной точкой (экспоненциальная форма) представляется в виде мантиссы и порядка. Мантисса записывается слева от знака экспоненты (Е или е), а порядок – справа. Значение константы определяется как произведения мантиссы и числа 10, возведенного в указанную в порядке степень



Форма представления

Общий формат таких констант: ±n.mE±p, где n, m – целая и дробная части числа, р – порядок; ±0.xxxE±p – нормализованный вид,
например, 1,25⋅10–8 = 0.125E–7.

Константы вещественного типаКонстанты в программахДанные константы размещаются в памяти в формате doubleС фиксированной десятичной точкой, формат записи:

Слайд 28Символьные константы
Константы в программах
Символьная константа – это символ, заключенный в

одинарные кавычки: 'A', 'х' (тип char занимает в памяти один

байт)

Также используются специальные последовательности символов – управляющие (escape) последовательности


При присваивании символьным переменным значений констант значения констант заключаются в апострофы:
char ss = ‘У’;

Текстовые символы непосредственно вводятся с клавиатуры, а специальные и управляющие – представляются в исходном тексте парами символов, например: \\ , \' , \" .

Символьные константыКонстанты в программахСимвольная константа – это символ, заключенный в одинарные кавычки: 'A', 'х' (тип char занимает

Слайд 29Строковые константы
Константы в программах
Строковая константа представляет собой последователь­ность символов кода

ASCII, заключенную в кавычки (”)
Во внутреннем представлении к строковым константам

добавляется пустой символ '\0', который не является цифрой 0, на печать не выводится (в таблице кодов ASCII имеет код = 0) и является признаком окончания строки

Кавычки не являются частью строки, а служат только для ее ограничения. Строка в языке Си представляет собой массив, состоящий из символов.
Внутреннее представление константы "1234ABC": '1' '2' '3' '4' 'A' 'B' 'C' '\0'


"Система"
"\n\t Аргумент \n"
"Состояние \"WAIT \" "

Примеры

Строковые константы еще называют строковыми литералами.
В конец строковой константы компилятор автоматически помещает нуль-символ.

Строковые константыКонстанты в программахСтроковая константа представляет собой последователь­ность символов кода ASCII, заключенную в кавычки (”)Во внутреннем представлении

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика