You are on page 1of 11

32

Лекція № 5
з навчальної дисципліни «Технології (Основи програмування та
алгоритмічні мови)»
ТемаАбетка мови С, ідентифікатори, структура програми
(змістовий модуль 1. Основи алгоритмізації та елементи мови,
тема 1.2 Елементи мови С)
Мета заняттяпочати вивчання елементів мови
програмування С/С++, ознайомити з принципами їх
використання
Матеріально-технічне забезпечення та дидактичні засоби,
ТЗНпрезентаційні слайди
Час – 2 години (90 хвилин)

План проведення лекції


Відведений
Структура лекції Методичні вказівки
час
1 Організаційна частина Включає в себе: привітання, яке має на
меті привернути увагу, забезпечити
3 хв контакт лектора з аудиторією;
визначення присутності студентів на
занятті
2 Актуалізація опорних знань, Включає в себе: вступне зауваження,
перевірка вивченого матеріалу мотивацію актуальності теми,
та мотивація навчальної перевірку попереднього матеріалу,
діяльності студентів 15 хв формулювання мети лекції, огляд
головних питань теми(вказати питання
та завдання для перевірки знань
студентів)
3 Основна частина Головне місце приділяється викладенню
(викладення навчальних основного змісту матеріалу теми, його
питань лекції) аналізу, узагальненню висунутих
60 хв положень. Для успіху лекції важливе
значення має поділ матеріалу на
розділи, основні питання
4 Заключна частина 12 Включає в себе:узагальнення,
33

Домашнє завдання: теоретичні і фактичні висновки,


(відповідно до робочої закріплення вивченого на лекції
програми) матеріалу

Література
[4], с.5…9, [1], с.17…19

Навчальні матеріали лекції


ВСТУП
(Викладається актуальність та значення теми заняття, його основна ідея,
динаміка розвитку та сучасний стан, зв'язок з попередніми та наступними заняттями.
Вступ повинен бути коротким і підготувати студентів до сприйняття навчального
матеріалу)

1 НАВЧАЛЬНЕ ПИТАННЯ
Алфавит языка
Алфавит языка программирования – это набор символов, допустимых для
написания программы на этом языке.
В программах на языке программирования С/С++ используются следующие 3
группы символов:
1. Буквы A-Z, a-z (прописные и строчные, всего 26+26=54 символа).
2. Цифры 0-9(всего 10 символов).
3.Спецсимволы: _${}()[].-=*/%<>=!&’,:;?|~”\ (это символы, которые не
являются ни буквами, ни цифрами, их назначение строго определено в контексте
программы)

2 НАВЧАЛЬНЕ ПИТАННЯ
Идентификаторы, объявления переменных
Оператор объявления представляет собой одно из наиболее важных свойств
языка С.
Пример: intnum;
34

В рассматриваемом примере объявляются два объекта. Во-первых, объявляется,


что где- то в этой функции имеется переменная с именем num. Во-вторых, intозначает,
что переменная numобъявляется как целое число, т.е. число без десятичной точки или
дробнойчасти (ключевое слово intпредставляет пример типа данных). Компилятор
применяет эту информацию для выделения подходящего объема хранилища в памяти,
предназначенного для использования переменной num. Точка с запятой в конце строки
означает, что строка — это оператор или инструкция языка С. Точка с запятой
является частью оператора, а не просто разделителем между операторами, как в языке
Pascal.
Слово int— это ключевое слово языка С, идентифицирующее один из основных
типов данных в языке С. Ключевые слова — это слова, служащие для образования
выражений языка программирования, и их нельзя применять для других целей.
Например, ключевое слово intнедопустимо использовать в качестве имени функции
или переменной.
Имя переменной называется идентификатором.
В рассматриваемом примере слово numпредставляет собой пример
идентификатора, служащего для указания имени переменной, функции либо
некоторого другого объекта. В объявлении реализуется связь конкретного
идентификатора с конкретным местоположением в компьютерной памяти. В
результате определяется тип информации либо тип данных, хранящихся в этом
местоположении.
В языке С все переменные должны быть объявлены до их использования. Здесь
имеется в виду, что должен быть представлен список всех переменных, которые
используются в программе, причем требуется указать тип каждой переменной.
Объявление переменных рассматривается как хорошая техника программирования и в
языке С является обязательным.
Традиционно, в С требуется, чтобы переменные объявлялись в начале блока,
причем без сопровождения оператора любого другого типа, размещение которого
допускается перед любым из операторов объявлений. Исходя из этого, функция main()
будет выглядеть следующим образом:
35

intmain() // традиционные правила


{
int doors
int dogs doors = 5;
dogs = 3;
// другие операторы
}
В стандарте С99, следуя практике C++, объявления могут помещаться в любом
меле программного кода. Однако при этом по-прежнему переменная должна быть
объявлена перед ее первым использованием. Поэтому в случае, если компилятор
совместим ю стандартом С99, код может принимать следующий вид:
intmain() // правила стандарта С99
{
// некоторые операторы
intdoors;
doors= 5; // первое использование переменной doors
// другие операторы
intdogs;
dogs= 3; // первое использование переменной dogs
// другие операторы
}
На этом этапе у вас, вероятно, возникнут три вопроса. Во-первых, что такое
типы данных? Во-вторых, какие имена вы можете выбирать? В-третьих, почему
вообще необходимо объявлять переменные?
Типы данных
В языке С имеется несколько видов (или типов) данных, например,
целочисленные, символьные и числа с плавающей точкой. Объявление переменной в
качестве целочисленной или символьной позволяет компьютеру запоминать, извлекать
и интерпретировать данные соответствующим образом. Все разнообразие имеющихся
типов данных будет исследовано в следующей главе.
36

Выбор имени
При именовании переменных следует использовать осмысленные имена
(например, имя sheep_countлучше имени хЗ). Если имя не является в достаточной
степени описательным, воспользуйтесь комментариями, объясняющими назначение
переменной. Документирование программы таким образом представляет собой пример
базовой техники хорошего стиля программирования.
Максимальное число символов, которое может содержать имя, меняется от
реализации к реализации. В стандарте С99 определяется соответствующее
максимальное значение, равное 63 символам, исключая внешние идентификаторы (см.
главу 12), причем распознается только 31 символ. Это расширение существенно
увеличило количество символов имен, определяемое стандартом С90 (максимальное
значение — 31 символ, из которых распознаются лишь 6 символов). Устаревшие
компиляторы могут различать до 8 символов в именах переменных. В
действительности можно использовать больше максимального числа символов, но
компилятор не будет обращать внимания на лишние символы. Поэтому в системах, где
максимальная распознаваемая длина имен переменных — восемь символов, имена
shakespeareи shakespencilбудут считаться одинаковыми, так как у них первые восемь
символов совпадают. (Если хотите рассмотреть пример, основанный на 63-символьном
примере, придумайте его самостоятельно.)
В вашем распоряжении имеются буквы нижнего регистра, буквы верхнего
регистра, цифры и символ подчеркивания, _. Первым символом должна быть буква
или символ подчеркивания. Вот несколько примеров:
Правильные имена Неправильные имена
Wiggles $zr*
cat2 2cat
Hot Tub Hot — Tub
kcab don’t

В операционных системах и библиотеках С часто используются имена


идентификаторов с одним или двумя первыми символами подчеркивания (например,
37

_kcab), поэтому лучше избегать использования подобных имен. В стандарте языка С


подобные идентификаторы именуются зарезервированными. Это означает то, что, хотя
использование подобных имен не является синтаксической ошибкой, его все же лучше
избегать, поскольку иначе возможен конфликт имен.
В именах языка С учитывается регистр символов; это означает, что символы
верхнего регистра считаются отличными от соответствующих символов нижнего
регистра. Поэтому имена stars, Starsи STARSбудут отличаться друг от друга.

3 НАВЧАЛЬНЕ ПИТАННЯ
Структура простой программы
Теперь можно познакомиться с несколькими общими правилами,
используемыми при разработке программ на языке С.
Программа состоит из совокупности функций, одна из которых должна
называться main(). Описание функциисостоит из заголовка и тела функции. Заголовок
содержит оператор (директивы) препроцессора, например, #includeи имя функции.
Имя функции узнается по круглым скобкам, которые могут быть пустыми. Тело
функции заключено в фигурные скобки и состоит из ряда операторов, каждый из
которых оканчивается точкой с запятой (рис. 2). Пример программы в данной главе
содержал оператор объявления, объявляющий имя и тип используемой переменной.
Кроме того, в нем присутствовал оператор присваивания. присваивающий значение
переменной. Затем в программе были три оператора печати, каждый из которых
вызывает функцию printf() Операторы печати — это примеры операторов вызова
функции. Наконец, функция main() оканчивается оператором возврата.
Коротко говоря, простая программа, написанная с учетом соблюдения
требований стандарта ISO/ANSIС, должна иметь следующий формат:
38

#include <stdio.h>
inti main (void)
{
операторы
return 0;
}
Функцияmain()
Заголовокфункции: intmain (void).
Конечно, main — это довольно обыкновенное имя, но другого выбора нет.
Программа на языке С всегда начинается с выполнения функции, имеющей имя main().
Для других функций можно выбирать имена по собственному желанию, но в
программе обязательно должна быть функция по имени main(), с выполнения которой
начинается вся вычислительная работа. А для чего нужны круглые скобки? Скобки
являются признаком того, что main() — это функция. Скоро вы узнаете о функциях
больше. Пока достаточно просто помнить о том, что функции — это основные модули
программы на языке С.
Ключевое слово intопределяет возвращаемый тип функции main(). Это
свидетельствует о том, что значение, которое может возвращать функция main(), имеет
тип int, т е. представляет собой целое число. И куда же требуется возвращать это
значение?.
В круглых скобках, следующих за именем функции, обычно содержится информация,
которая передается функции. В данном простом примере функции ничего не пе-
39

редается, поэтому в круглых скобках заключено слово void. (Глава 11 познакомит вас
еще с одним форматом функции, позволяющим передавать информацию функции
main() из операционной системы.)
В программах на языке С, предшествовавших стандарту ISO/ANSIС, ключевые
слова intи voidобычно не употреблялись:
main()
Стандарт С90 допускает также и эту форму записи, хотя в стандарте С99
подобное исключено. Даже если используемый вами компилятор допускает такую
форму записи, не следует этим злоупотреблять.
Возможна и еще одна форма записи:
voidmain()
Некоторые из компиляторов позволяют подобную форму записи, хотя ни один
из стандартов не допускает ее даже в качестве опциональной. Поэтому не все
компиляторы принимают подобную форму записи. Лучше придерживаться стандарта,
и тогда не возникнут проблемы совместимости при использовании различных
компиляторов.

Фигурные скобки, тела функций и блоки операторов


Фигурные скобки :{ }
Фигурные скобки обозначают начало и конец тела функции. Их наличие
обязательно. Для этой цели подходят только фигурные скобки, {}; не годятся круглые
скобки () и квадратные скобки [ ].
С помощью фигурных скобок можно также объединять в блоки или модули
операторы, входящие в функцию. Если вы знакомы с языками программирования
Pascal, ADA, Modula-2 или Algol, то сможете заметить, что эти фигурные скобки
подобны ключевым словам beginи endв рассматриваемых языках программирования.
40

На рисунке 1 показан весь материал этого вопроса на примере задачи.

Рисунок 1 – Структура программы на примере задачи

ВИСНОВКИ

Программа на языке С состоит из одной и более С-функций. Каждая программа


на языке С должна содержать функцию с именем main(), так как эта функция
вызывается в начале работы программы. Простая функция состоит из заголовка, за
которым следуют открывающая фигурная скобка, затем операторы, составляющие
тело функции, и за ними закрывающая фигурная скобка, обозначающая конец
функции.
Каждый оператор языка С является инструкцией для компилятора и
оканчивается точкой с запятой. Оператор объявления создает переменную, дает ей имя
41

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


присваивания присваивает некоторое значение переменной или, в более широком
смысле, области памяти. Оператор вызова функции вызывает на выполнение
функцию, указанную в этом операторе. Когда вызванная функция заканчивает свою
работу, управление передается оператору, следующему за вызовом функции.
Функция printf() может быть использована для отображения на экране текста и
значений переменных.
Синтаксис языка — это набор правил, служащих для создания правильных
операторов данного языка. Семантика оператора — это его смысл, или значение.
Компилятор помогает обнаруживать синтаксические ошибки, но семантические
ошибки проявляются только после компиляции, в ходе выполнения программы. Для
обнаружения семантических ошибок может понадобиться отслеживать состояние
программы (т.е. значения всех переменных) после каждого шага программы.

Питання та завдання до контролю знань студентів


Для актуалізації опорних знань та перевірки попереднього матеріалу
42

1.Назовите (перечислите) этапы осоставления программ на языке С(С++).


2.В чем суть этапа 1: Определение целей создания программы?
3.В чем суть этапа 2: Проектирование программы?
4.В чем суть этапа 3: Создание программного кода?
5.В чем суть этапа 4: Компиляция?
6.В чем суть этапа 5: Выполнение программы?
7.В чем суть этапа 6: Тестирование и отладка программы?
8.В чем суть этапа 7: Сопровождение и модернизация программы?
Для узагальнення та перевірки засвоєного матеріалу на лекції
1. Из каких частей состоит программа?
2. Укажите имя главной функции.
3. Укажите тип главной функции.
4. Напишите заголовок главной функции.
5. Где в тексте программы могут располагаться директивы #include?
6. Где в тексте программы могут располагаться описания глобальных переменных?
7. Где в тексте программы могут располагаться прототипы функций-подпрограмм?
8. Какой тип имеет функция main()?
9. Имеет ли С-программа заголовок?
10.На какие группы (по выполяемости ) делятся все операторы?
11.Каково назначение в тексте программы фигурных скобок {}?
12.Дайте понятие «блок» («составной оператор»).
13.Где в тексте программы располагаются описания локальных переменных?
14.Какой выполняемый оператор завершает, как правило, главную функцию?
15.Что означает ноль в операторе: return 0, стоящем в главной функции?
16.Дайте понятие -Алфавит языка.
17.Из каких групп символов состоит Алфавит языка?
18.Дайте правило идентификатора.

You might also like