|
Понятие языков с сильной типизацией ⇐ ПредыдущаяСтр 5 из 5 Тип объекта – форма представления его значения в памяти и определяемой этой формой способ доступа к объекту и его части. Типизация позволяет делать программу более понятной и менее подверженной ошибкам и легче проверяемой. Язык программирования называют языком с сильной типизацией, если: - каждый объект принадлежит одному из существующих типов; - преобразования типа производится с помощью преобразования значения из одного типа в другой, а не с помощью механизма трактовки представления значения, как данные различных типов; Си – безтиповый язык. В Си допускается преобразования базовых типов. Наличие ограничений в паскале дает большую надежность, в тоже время, как си – более гибкий, без ограничений язык.
Препроцессор языка Си Препроцессор языка Си – это текстовый процессор, просматривающий программу до компиляции. Он преобразует программу последовательность символов исходной программы в последовательность лексем. Лексема – фрагмент исходного текста, имеющий самостоятельный смысл для компилятора и не содержащие других лексем. Лексемы: - служебные слова - константы - идентификаторы - знаки операции - строки (набор символов в кавычках) - разделители (;,., (), [], {}…) Пробельные символы не относятся к лексемам. A+2*k – 5 лексем “nom+2” – 3 лексемы.
Директивы препроцессора Можно облегчить модификацию исходных программ и сделать ее более независимой. Директивы начинаются со знака # и позволяют: - заменить идентификаторы программы некоторыми значениями - ставить в исходный файл содержимое другого исходного файла - запретить компиляцию некоторой части исходного файла 1) включение файла #include<имя файла> или “имя файла” 2) макро-определения #define<идентификатор><строка-замещения> Пример: #define Pi 3,141592 #define NAME “Borland C” Макрос может иметь аргумент. При каждой замене препроцессора аргументы заменяются на те, которые встречаются в программе. Если в строке замещения макроса аргументы заключены в круглые скобки, то вместо них могут подставляться выражения. Директивы препроцессора могут быть где угодно а программе. Директивы записываются в отдельных строках, после них «;»не ставится. Между# и defineможет ставиться пробел. Принято описывать макро-определения БОЛЬШИМИ БУКВАМИ. 3) отмена макро-определения #undef<идентификатор> Базовые типы данных (арифметические). Модификаторы Целочисленные типы: 1) Char– для хранения любого символа из допустимого набора(1байт). 2) Int– целое; размер зависит от компилятора (2 или 4 байта) Вещественные типы: 1) Float – с плавающей точкой (4 байта) 2) Double – с плавающей точкой (8 байт) Существует стандартный тип void– пустой На основе базовых типов с помощью модификаторов типа строятся другие типы Модификаторы: 1) Signed – знаковый 2) Unsigned – без знаковый 3) Long (4 байта) 4) Shot (2байта) Использование: 1) Signedи unsignedприменяются к типам charи int 2) Longи shot – к типу int 3) Long – к типу double Тип intвсегда знаковый Тип char знаковый по умолчанию Типы floatи doubleвсегда знаковые Модификаторыshot, longиsigned, unsignedнезависимы друг от друга Тип intсовпадает либо с типом shot, либо с типом long Long double соответствует 10 байтам 26 преобразование типа //тут скорей всего не весь ответ. Это все, что смог найти Преобр. типа производится с помощью преобр. значения из одного типа в другой, а не с помощью механизма трактовки представленных значений, как данные различных типов Си – безтиповый язык В Си допускается преобразование базовых типов Декларация и инициализация переменных Декларация(объявление): Основная форма объявлений: <тип><список идентификаторов> Intx,y; Float l,g; Unsignedcharch; Отсутствует стандартный тип строка, поэтому она объявляется как массив символов. При объявлении следует учитывать размещение нулевого байта. Стандартная функция чтения строк с клавиатуры – getsустанавливает нулевой байт при нажатии Enter. Инициализация: Переменной можно присваивать значение при объявлении <тип><имя переменной>=<константное выражение> Int a=10; Char c=’a’; Char ch=’b’,ch1=’c’c;
Структура программы Си Программой называется: - текст на алгоритмическом языке, который подается на комп; - конечный продукт программирования *.ехе, содержащий двоичный код; - с логич. точки зрения, программа – это исполнитель, который может обращаться к другим подпрограммам. Программа на Си – набор функционально законченных модулей, один из них – главный, другой – начальный. Главный модуль вызывается для исполнения ОС. Модули называются функциями и имеют заданные программистом имена. Главный модуль имеет служебное имя “main”. После имени функции обязательно ставятся круглые скобки. Часть модулей может быть заранее переведена в двоичный код. Такие модули называются объектными, они не участвуют в компиляции и подключаются при компоновке. Тексты модулей могут храниться в нескольких файлах. Эти файлы называются компонентами трансляции. Активизация работы модуля производится с помощью спец. Конструкции – “вызов функции”. Описание действий по обработке информации вып. ф-цией дается в определении ф-ции. Опред. ф-ции состоит из: - заголовок - тело Тело (или блок) – часть тексты между открывающей и закрывающей фигурой скобкой{} Ф-цияmainдолжна присутствовать в любой проге Си. Ей управление передает ОС. Любая ф-ция может содержать обращение к другой ф-ции, кроме main. В языке Си недопустимы сложенные ф-ции. Любая ф-ция может содержать предварительное объявление другой ф-ции – декларацию прототипа(в ней объявляется тип ф-ции и тип параметров). Если в текущей компоненте трансляции опред. ф-ции помещено ранее ее вызова, то прототип не нужен Арифметические операции, операции отношения. Ар. оп.: -(вычитание и унарный), +, *, /, %(деление по модулю), ++(инкремент +1), --(декремент -1) Если операнды имеют один тип, то результат принадлежит к тому же типу. При делении целых чисел результат – целый. 7/2=3 7./2=3.5 Деление по модулю применимо только к целым операндам. ++ и – могут стоят до или после x++ - сначала х используется в выражении, а потом увеличивается на 1. ++х – х ув. на 1, а потом исп. в выр. Оп.отн.: Отношения порядка: <, <=, >, >= Отношения равенства: == (равно),!= (не равно) Оп.отн. Используются в условных отношениях: каждое условное выражение может быть истинным или ложным. В Си отсутствует тип boolean, поэтому результат логического выражения – целое значение. Истина соответствует не нулевому значению, ложное – нулю. Порядок выполнения оп.отн. слева на право.
Поразрядные операции Предназначены для работы с целочисленными данными. Результат – целое значение. 1) &результат“и” 2) | результат “или” 3) ^ (xor) 4) ~ поразрядное отрицание (not) 5) <<сдвиг влево 6) >>сдвиг вправо Для 5 и 6 - <value><число позиций> Для<< освобождающиеся справа разряды заменяются нулями. Для>>разряды слева заменяются нулями, если левый операнд (value) имеет тип unsigned. Левый операнд не замещается результатом. 31.Операция “?:” “?:” - единственная тернарная операция. <выр1>?<выр2>:<выр3> Работа: 1) вычисляется выр1 и сравнивается с нулем. 2) если выр1≠0, то выполняется выр2, иначе выр3
Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычислить, когда этот... Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам... Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем... Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|