Порядок выполнения Си-Программы — КиберПедия 

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Порядок выполнения Си-Программы

2022-02-10 26
Порядок выполнения Си-Программы 0.00 из 5.00 0 оценок
Заказать работу

Программирование на Си

ПО – ядро всех ИТ.

ЯП

Алгоритм – точно определенное описание способа решения задачи в виде конечной последовательности действий.

Код программы – полное законченное и детальное описание алгоритма на ЯП.

 

Центральный процессор (ЦП) ПК – большая интегральная микросхема, все команды и данные ЦП получает в виде электрических сигналов – два уровня напряжения – в математике «0» и «1». Поэтому команды и данные для ЦП – это числа.

Программа, с которой работает ЦП, – это последовательность чисел или машинный код.

 

Уровни ЯП

1. Машинный ЯП (+13 00042774 – загрузить Y, +14 00593419 – добавить Х, + 12 00274027 – сохранить)

2. Ассемблер (LOAD Y ADD X STORE Z)

3. Алгоритмический язык высокого уровня

Пример, оператор на С (С++) Z=Y+X

 

Машинный язык закладывается при проектировании аппаратных средств ПК, в нем учитываются: адресность, коды операции, регистры ЦП и др. Эти языки машинно-зависимы.

Языки Ассемблера – аббревиатур на англ.яз. машинных команд, их МНОГО.

Языки высокого уровня – алгоритмический язык (АЯ) – использует математическую нотацию и изложен на англ.яз. (для записи алгоритма).

АЯ – проблемно ориентированные, каждый АЯ для эффективного использования в своей области:

· FORTRAN – математические задачи (переводчик формул)

· BASIC – для начинающих, математика и др.

· COBOL – экономические задачи

· Algol – математические и др. задачи

· Pascal – для изучения ЯП

· С (Си) – язык системного программирования

· С ++ - объектно-ориентированное расширение Си, работа с классами

· Java – н. 90-х на основе Си++, компиляция в платформно-независимый байт-код (команда – один байт) - мобильные устройства и микрокомпьютеры

· С# (Си Шарп) – к.90-х, идеи Си, С++, Java – для быстрой разработки сетевых (.NET)-приложений

· ЯП БД – SQL

· ЯП для интернета – HTML, Perl, Php, Vrml

· Языки моделирования – имеют генератор исходных текстов программы на основе созданной модели

· …

 

История С и С++

 

1972 – Деннис Ритчи (Bell Laboratories, USA), к.70-х, книга «Си Кернигана и Ритчи»

1983ANSI (Американский комитет стандартов в области вычислительной техники и обработки информации) – начало разработки стандарта языка Си

1989 – Принят стандарт ANSI Си

1990 – Стандарт ANSI / ISO 9899, международный стандарт

90-е – развитие и расширение языка С++

 

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

Достоинства:

1. Язык высокого уровня

2. Сохранил черты языков низкого уровня

3. Как ассемблер может управлять памятью ПК

4. Удобен при написании системных программ

 

Недостатки

1. В Си труднее разбираться

 

Базовые средства языка СИ

 

 


Алфавит языка – символы языка – неделимые знаки для записи текстов программы

Лексема – минимальная неделимая единица языка, имеющая самостоятельный смысл (main)

Выражение – задает правило вычисления некоторого значения

Оператор – задает законченное описание некоторого действия (if … then …)

Синтаксис языка – правила записи операторов и выражений (х=х+1)

Семантика языка – смысл операторов и выражений (х=х+1; х++;)

 

Символы языка

 

Буквы A…Z a…Z и знак подчеркивания _(символ-буква)

Цифры 0…9

Знаки.,:; ‘ “ () [] | + - * / % \?! <> = & # ^ {}

Пробельные символы пробел, \t – табуляция (перейти на расстояние), \n – переход на след.строку.

 

Лексемы языка

 

Имена (идентификаторы – summa, x1)

Ключевые слова ЯП (for if do while …)

Знаки операций (+ - >> ++ * / % …)

Константы (-127 3.1415 “text”-строковая ‘A’-символьная)

Разделители (скобки, точка, запятая, пробел)

 

Пример float (ключ-слово) sum, x, y (имена) = (операция) 13.6 (const); // (разделители)

 

Идентификатор – имя программного объекта, используются:

1. Латинские буквы и «_» (начало имени)

2. Цифры 0…9

3. Прописные и строчные буквы – разные символы в именах

Имена должны иметь смысл и отражать тот объект, к которому относится это имя (sin(x), M_PI)

Длина имени (ВС ++ 3.1) – 32 символа

Имя не совпадает с ключевыми словами

 

Ключевые слова – зарезервированные имена, которые имеют специальное значение для ПК

Char const if else

 

Знаки операций – один или более символов определяющих действие над операндами (то над чем выполняется операция)

 

Операции унарные (-3) и бинарные (х+4) и тернарные (операция условия ?:)

Все знаки операций кроме () {} [] и?: - отдельные лексемы

 

Константы

 

Константа Тип Память (байт) Примеры Диапазон
Целая Int 2 127 -1024 -2­15, 215-1
  Long 4 123335 -97483 -2­31, 231-1
Вещественная Float Double 4 8 2.5 1.3e-12  
Символьная Char 1 ‘A’ ‘+’ ‘\n’ 0…255
Строковая     “string\n”  

 

Управляющие символы:

\a – звуковой сигнал (7-16-ый код)

\n – перевод строки (А)

\t – горизонтальная табуляция (9)

\\ - обратная косая черта (5С)

\’ – апостроф (27)

\” – кавычка (22)

\? – вопросительный знак (3F)

\0ddd – 8-ый код символа

\0xdd –16-ый код символа

 

 

Понятие типа в ЯП

 

Тип определяет:

  1. Множество различных значений
  2. Набор операций, которые можно применить к значениям данного типа
  3. Формат внутреннего представления переменой в памяти ПК
  4. Объем ОП для размещения значения данного типа

Для каждого типа есть спецификация ADT – абстрактного типа данных, определяющая данные и операции, допустимые над данными этого типа.

 

Целое число 25 – тип int – 0000000000011001 – в памяти ПК 2 байта = 16 бит

Пример ADT int в С++

Данные: целое число N со знаком (описания структуры данных)

Операции: пусть U и V целые выражения, N – целая переменная

 

Присваивание

=                        N=U присваивает значение выражения U переменной N

Модификаторы типа

 

Язык СИ позволяет изменять в программе диапазон значений переменных типов int и char с использованием модификаторов:

Unsigned int k;                      // или unsigned k; 0…65535

Unsigned char ch;                 //0<=ch<256

Long int L;                                // или long L; память 4 байта

Unsigned long L;                   //0…4292967265

Для 32-разрядных ПК тип int и long одинаковы.

 

Вещественные типы float и double

 

Вещественные числа хранятся в памяти ПК в экспоненциальном формате:

-2.123Е+5

-2.123 – мантисса

+5 – порядок

 

Пример некорректного оператора

Float x, y;

X=sqrt(1.3);                  //1.69

Y=pow(1.69, 0.25);

If (x==y) z=fun (x)

 

Операции языка Си

 

Выражение в Си – допустимая комбинация переменных, констант и операций

Допустимо смешение типов, происходит автоматическое (неявное) приведение типов: в бинарной операции «младший» тип приводится к «старшему»

 

Пример

Int I;

Float x;

Double z,w;

<ввод I, x, z>

W=   2        *        x        +        (I        -         z);

           Int                float                 int                     double

                  Float                                                   double

                                                    double

 

// явное преобразование типа W=float(2)*x;

 

Рост старшинства – от целого типа к вещественному и с увеличением размера памяти

Приоритет операций

  1. Вызов функции и скобки
  2. Унарные операции
  3. Арифметические (бинарные) операции
  4. Операции отношения (сравнения)
  5. Логические операции

Программирование на Си

ПО – ядро всех ИТ.

ЯП

Алгоритм – точно определенное описание способа решения задачи в виде конечной последовательности действий.

Код программы – полное законченное и детальное описание алгоритма на ЯП.

 

Центральный процессор (ЦП) ПК – большая интегральная микросхема, все команды и данные ЦП получает в виде электрических сигналов – два уровня напряжения – в математике «0» и «1». Поэтому команды и данные для ЦП – это числа.

Программа, с которой работает ЦП, – это последовательность чисел или машинный код.

 

Уровни ЯП

1. Машинный ЯП (+13 00042774 – загрузить Y, +14 00593419 – добавить Х, + 12 00274027 – сохранить)

2. Ассемблер (LOAD Y ADD X STORE Z)

3. Алгоритмический язык высокого уровня

Пример, оператор на С (С++) Z=Y+X

 

Машинный язык закладывается при проектировании аппаратных средств ПК, в нем учитываются: адресность, коды операции, регистры ЦП и др. Эти языки машинно-зависимы.

Языки Ассемблера – аббревиатур на англ.яз. машинных команд, их МНОГО.

Языки высокого уровня – алгоритмический язык (АЯ) – использует математическую нотацию и изложен на англ.яз. (для записи алгоритма).

АЯ – проблемно ориентированные, каждый АЯ для эффективного использования в своей области:

· FORTRAN – математические задачи (переводчик формул)

· BASIC – для начинающих, математика и др.

· COBOL – экономические задачи

· Algol – математические и др. задачи

· Pascal – для изучения ЯП

· С (Си) – язык системного программирования

· С ++ - объектно-ориентированное расширение Си, работа с классами

· Java – н. 90-х на основе Си++, компиляция в платформно-независимый байт-код (команда – один байт) - мобильные устройства и микрокомпьютеры

· С# (Си Шарп) – к.90-х, идеи Си, С++, Java – для быстрой разработки сетевых (.NET)-приложений

· ЯП БД – SQL

· ЯП для интернета – HTML, Perl, Php, Vrml

· Языки моделирования – имеют генератор исходных текстов программы на основе созданной модели

· …

 

История С и С++

 

1972 – Деннис Ритчи (Bell Laboratories, USA), к.70-х, книга «Си Кернигана и Ритчи»

1983ANSI (Американский комитет стандартов в области вычислительной техники и обработки информации) – начало разработки стандарта языка Си

1989 – Принят стандарт ANSI Си

1990 – Стандарт ANSI / ISO 9899, международный стандарт

90-е – развитие и расширение языка С++

 

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

Достоинства:

1. Язык высокого уровня

2. Сохранил черты языков низкого уровня

3. Как ассемблер может управлять памятью ПК

4. Удобен при написании системных программ

 

Недостатки

1. В Си труднее разбираться

 

Порядок выполнения Си-Программы

 

Текст программы *.cpp (в среде программирования ВС++)     препроцессор (программа предварительной обработки, выполняет директивы #include <math.h> # define N 100)        компилятор     объектный код *.obj     

   компоновщик linker (библиотека)      выполнимая программа *.exe   загрузчик (размещает программу в основную память ПК)      ЦП

 

Пример Си-программы – на практике))

 

Базовые средства языка СИ

 

 


Алфавит языка – символы языка – неделимые знаки для записи текстов программы

Лексема – минимальная неделимая единица языка, имеющая самостоятельный смысл (main)

Выражение – задает правило вычисления некоторого значения

Оператор – задает законченное описание некоторого действия (if … then …)

Синтаксис языка – правила записи операторов и выражений (х=х+1)

Семантика языка – смысл операторов и выражений (х=х+1; х++;)

 

Символы языка

 

Буквы A…Z a…Z и знак подчеркивания _(символ-буква)

Цифры 0…9

Знаки.,:; ‘ “ () [] | + - * / % \?! <> = & # ^ {}

Пробельные символы пробел, \t – табуляция (перейти на расстояние), \n – переход на след.строку.

 

Лексемы языка

 

Имена (идентификаторы – summa, x1)

Ключевые слова ЯП (for if do while …)

Знаки операций (+ - >> ++ * / % …)

Константы (-127 3.1415 “text”-строковая ‘A’-символьная)

Разделители (скобки, точка, запятая, пробел)

 

Пример float (ключ-слово) sum, x, y (имена) = (операция) 13.6 (const); // (разделители)

 

Идентификатор – имя программного объекта, используются:

1. Латинские буквы и «_» (начало имени)

2. Цифры 0…9

3. Прописные и строчные буквы – разные символы в именах

Имена должны иметь смысл и отражать тот объект, к которому относится это имя (sin(x), M_PI)

Длина имени (ВС ++ 3.1) – 32 символа

Имя не совпадает с ключевыми словами

 

Ключевые слова – зарезервированные имена, которые имеют специальное значение для ПК

Char const if else

 

Знаки операций – один или более символов определяющих действие над операндами (то над чем выполняется операция)

 

Операции унарные (-3) и бинарные (х+4) и тернарные (операция условия ?:)

Все знаки операций кроме () {} [] и?: - отдельные лексемы

 

Константы

 

Константа Тип Память (байт) Примеры Диапазон
Целая Int 2 127 -1024 -2­15, 215-1
  Long 4 123335 -97483 -2­31, 231-1
Вещественная Float Double 4 8 2.5 1.3e-12  
Символьная Char 1 ‘A’ ‘+’ ‘\n’ 0…255
Строковая     “string\n”  

 

Управляющие символы:

\a – звуковой сигнал (7-16-ый код)

\n – перевод строки (А)

\t – горизонтальная табуляция (9)

\\ - обратная косая черта (5С)

\’ – апостроф (27)

\” – кавычка (22)

\? – вопросительный знак (3F)

\0ddd – 8-ый код символа

\0xdd –16-ый код символа

 

 

Понятие типа в ЯП

 

Тип определяет:

  1. Множество различных значений
  2. Набор операций, которые можно применить к значениям данного типа
  3. Формат внутреннего представления переменой в памяти ПК
  4. Объем ОП для размещения значения данного типа

Для каждого типа есть спецификация ADT – абстрактного типа данных, определяющая данные и операции, допустимые над данными этого типа.

 

Целое число 25 – тип int – 0000000000011001 – в памяти ПК 2 байта = 16 бит

Пример ADT int в С++

Данные: целое число N со знаком (описания структуры данных)

Операции: пусть U и V целые выражения, N – целая переменная

 

Присваивание

=                        N=U присваивает значение выражения U переменной N


Поделиться с друзьями:

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.007 с.