Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Топ:
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
2022-02-10 | 26 |
5.00
из
|
Заказать работу |
Программирование на Си
ПО – ядро всех ИТ.
ЯП
Алгоритм – точно определенное описание способа решения задачи в виде конечной последовательности действий.
Код программы – полное законченное и детальное описание алгоритма на ЯП.
Центральный процессор (ЦП) ПК – большая интегральная микросхема, все команды и данные ЦП получает в виде электрических сигналов – два уровня напряжения – в математике «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-х, книга «Си Кернигана и Ритчи»
1983 – ANSI (Американский комитет стандартов в области вычислительной техники и обработки информации) – начало разработки стандарта языка Си
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 | -215, 215-1 |
Long | 4 | 123335 -97483 | -231, 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-ый код символа
Понятие типа в ЯП
Тип определяет:
Для каждого типа есть спецификация 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;
Рост старшинства – от целого типа к вещественному и с увеличением размера памяти
Приоритет операций
Программирование на Си
ПО – ядро всех ИТ.
ЯП
Алгоритм – точно определенное описание способа решения задачи в виде конечной последовательности действий.
Код программы – полное законченное и детальное описание алгоритма на ЯП.
Центральный процессор (ЦП) ПК – большая интегральная микросхема, все команды и данные ЦП получает в виде электрических сигналов – два уровня напряжения – в математике «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-х, книга «Си Кернигана и Ритчи»
1983 – ANSI (Американский комитет стандартов в области вычислительной техники и обработки информации) – начало разработки стандарта языка Си
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 | -215, 215-1 |
Long | 4 | 123335 -97483 | -231, 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-ый код символа
Понятие типа в ЯП
Тип определяет:
Для каждого типа есть спецификация ADT – абстрактного типа данных, определяющая данные и операции, допустимые над данными этого типа.
Целое число 25 – тип int – 0000000000011001 – в памяти ПК 2 байта = 16 бит
Пример ADT int в С++
Данные: целое число N со знаком (описания структуры данных)
Операции: пусть U и V целые выражения, N – целая переменная
Присваивание
= N=U присваивает значение выражения U переменной N
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!