Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Понятие языков с сильной типизацией





Тип объекта – форма представления его значения в памяти и определяемой этой формой способ доступа к объекту и его части. Типизация позволяет делать программу более понятной и менее подверженной ошибкам и легче проверяемой.

Язык программирования называют языком с сильной типизацией, если:

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

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

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

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

 

Препроцессор языка Си

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

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

Лексемы:

- служебные слова

- константы

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

- знаки операции

- строки (набор символов в кавычках)

- разделители (;,., (), [], {}…)

Пробельные символы не относятся к лексемам.

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 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.