Лекция 1 Введение в программирование и язык C. Машинный код Машинный код или машинный язык система команд (набор кодов операций) конкретной вычислительной.

Презентация:



Advertisements
Похожие презентации
ВЫПОЛНЕНИЕ АЛГОРИТМОВ КОМПЬЮТЕРОМ. Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой. Программа данные, предназначенные.
Advertisements

Лекция 3 ПЕРВЫЕ ПРОГРАММЫ, ВВОД/ВЫВОД В ЯЗЫКЕ С++
Основы алгоритмизации Алгоритмы. Типы алгоритмов. Алгоритмы. Типы алгоритмов. Блок-схемы. Вопросы и задания. Вопросы и задания.
ПРЕЗЕНТАЦИЯ НА ТЕМУ: ПРЕЗЕНТАЦИЯ НА ТЕМУ: ВИДЫ ТРАНСЛЯЦИИ Составил: Ревнивцев М.В Преподаватель: Кленина В.И.
Лекция 1 Классификация С++. Парадигмы программирования Императивная Функциональная Декларативная (логическая) Инструкция 1 Инструкция 2 Инструкция 3 Инструкция.
Алгоритмизация и программирование. Языки программирования высокого уровня. Технологии программирования Алгоритмизация и программирование. Языки программирования.
Лекция 2Лекция 2Структура программы Директивы препроцессора main () { Описания переменных Операторы }
Министерство образования Республики Беларусь Белорусский государственный университет Управляющие структуры языков программирования.
Горохова Светлана Николаевна МАОУ СОШ 19 п. Пироговский.
Язык высокого уровня компилятор Программа компиляторов Сделал:Студент группы:Ис-2о(очная)Воротов Валентин.
ОБЩИЕ СВЕДЕНИЯ О ЯЗЫКЕ ПРОГРАММИРОВАНИЯ ПАСКАЛЬ НАЧАЛА ПРОГРАММИРОВАНИЯ.
Лекция 2 Функции библиотек языка C. stdio.h Заголовочный файл стандартной библиотеки языка C. Содержит определения констант, объявления функций и типов.
Основные понятия программирования. АЛГОРИТМЫ + ДАННЫЕ = ПРОГРАММЫ Н. Вирт.
©ρŧą Базовые конструкции языка.
ЛАБОРАТОРНАЯ РАБОТА 1 ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ ТАБЛИЦ, ИСПОЛЬЗУЕМЫХ В ТРАНСЛЯТОРЕ Рейн Т. С.
Лекция 1 по дисциплине «Программные средства математических расчетов» тема: «Основы языка С++» гр. 8Е31 Мамонова Татьяна Егоровна
Инструкции C++ Условная инструкция Формат: if (условие) оператор; else оператор; Пример: if (i!=0) { if (j) j++; if(k) k++; else if(p) k--; } else i--;
Лекция 4 Программирование на Паскале. Элементы языка Турбо Паскаль 7.0. Типы данных. Управляющие конструкции.
Введение в C++ Урок 1-2.
М.Ю. Харламов, ВНУ им. В.Даля, Транслятор Транслятор - это программа, которая переводит программу на исходном (входном) языке в эквивалентную ей.
Транксрипт:

Лекция 1 Введение в программирование и язык C

Машинный код Машинный код или машинный язык система команд (набор кодов операций) конкретной вычислительной машины, которая интерпретируется непосредственно процессором или микропрограммами этой вычислительной машины. Компьютерная программа, записанная на машинном языке, состоит из машинных инструкций, каждая из которых представлена в виде двоичного кода отдельной операции из системы команд машины.

Язык низкого уровня Низкоуровневый язык программирования (язык программирования низкого уровня) язык программирования, близкий к программированию в машинных кодах используемого процессора. Для обозначения машинных команд обычно применяется мнемоническое обозначение. Это позволяет запоминать команды не в виде последовательности двоичных нулей и единиц, а в виде осмысленных сокращений слов человеческого языка (обычно английских). Пример: язык Assemblerа

Язык высокого уровня Высокоуровневый язык программирования язык программирования, разработанный для быстроты и удобства использования программистом. Главная особенность замена длинных и (порой) сложных для понимания описаний на машинном коде простыми смысловыми конструкциями абстракцией. Примеры: С++, Java, Python

Трансляция программы Трансляция программы преобразование программы, представленной на одном из языков программирования, в программу на другом языке и равносильную первой. Язык, на котором представлена входная программа, называется исходным языком, а сама программа исходным кодом. Выходной язык называется целевым языком или объектным кодом.

Компилятор Компилятор программа, выполняющая компиляцию. Компиляция трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке (машинном коде). Входной информацией для компилятора (исходный код) является описание алгоритма или программы на понятным человеку языке, а на выходе компилятора эквивалентное описание алгоритма на машинно-ориентированном языке (объектный код).

Языки C и C++ Язык C это императивный, типизированный, высокоуровневый, машинно-ориентированный, не объектно- ориентированный язык программирования. Язык C++ является его объектно- ориентированным расширением.

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

Машинно-ориентированный язык C Основная информационная единица, с которой работает программист на C это байт. Программист на C представляет, как его программа будет расположена в памяти. Программист на C может перейти на самый низкий уровень программирования делать в свой программе "ассемблерные вставки" и писать на уровне команд процессора. Язык C приспособлен для того, чтобы работать напрямую с любыми устройствами компьютера. На языке C можно писать операционные системы

Императивный язык C Прилагательное императивный означает, что в языке C логику работы программы представляют в виде глаголов (действий): «пока выполнено условие... делать действия...», «выполнить последовательность действий... N раз», «если выполнено условие... перейти к действию...».

Методология повторного использования кода Важным моментом в культуре программирование является методология reuse (повторное использование кода) методология обеспечения модульности, то есть умение использовать разработанные инструменты, программы и библиотеки и умение экспортировать разработанную функциональность в виде удобных, подключаемых к другим проектам, модулей.

Этапы компиляции программы Обработка исходного кода программы препроцессором, выполняющим директивы используемые в исходном коде. Получившийся полный текст программы обрабатывается компилятором, который определяет синтаксические лексемы и наличие ошибок в коде. В случае успешной компиляции создается объектный файл. Далее компоновщик, или редактор связей, формирует исполняемый файл программы.

Типы ошибок при разработке программ Синтаксические ошибки (syntax errors) – Забыли ; в конце выражения – Неправильно написали имя оператора Ошибки выполнения (runtime errors) – Деление на 0 – Нет места при записи данных на диск Семантические (semantic errors) – Работает, но делает не то, что нужно.

Директивы препроцессора Директива препроцессора – команда, выполняемая до начала компиляции исходного текста программы. Директива #include вставляет в файл программы содержимое другого файла. Обычно заголовочные файлы содержат только прототипы функций, то есть просто список функций с указанием аргументов и типа возвращаемого значения.

Типы данных

Представление данных в памяти

Здравствуй, мир! #include int main () { printf ("Hello, world!\n"); return 0; }

Команда Команда – это инструкция (приказ) машине выполнить одну элементарную операцию над данными, например: сложить два числа, прочитать данное с диска. Каждая команда программы занимает ячейку памяти и имеет свой адрес (адрес ячейки). Для всякого процессора команда имеет строго фиксированную длину и стандартный формат.

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

Операторы Математические операторы: Операторы присваивания:

Приоритет операций Операторы Выполняются () [] ->. слева направо ! ~ * & (тип) sizeof справа налево * / % слева направо + - слева направо > слева направо >= слева направо == != слева направо & ^ | && слева направо || слева направо ?: справа налево = += -= *= /= %= &= ^= |= >= справа налево, слева направо

Циклы // Инструкция for for (выр 1; выр 2; выр 3) инструкция // эквивалентна конструкции выр 1; while (выр 2) { инструкция выр 3; }

Циклы Цикл While (с пост условием) do инструкция while (выражение);

Программа вывода температур #include /* печать таблицы температур по Фаренгейту и Цельсию для fahr = 0, 20,..., 300 */ int main() { int fahr, celsius; int lower, upper, step; lower = 0; /* нижняя граница таблицы температур */ upper = 300; /* верхняя граница */ step = 20; /* шаг */ fahr = lower; while (fahr <= upper) { celsius = 5 * (fahr-32) / 9; printf ("%d\t%d\n", fahr, celsius); fahr = fahr + step; } return 0; }

Программа вывода температур с числами с плавающей запятой #include /* печать таблицы температур по Фаренгейту и Цельсию для fahr = 0, ; вариант с плавающей точкой */ int main() { float fahr, celsius; int lower, upper; step; lower = 0; /* нижняя граница таблицы температур */ upper = 300; /* верхняя граница */ step = 20; /* шаг */ fahr = lower; while (fahr <= upper) { celsius = (5.0/9.0) * (fahr-32.0); printf ("%3.0f %6.1f\n", fahr, celsius); fahr = fahr + step; } return 0; }

Цикл for #include /* печать таблицы температур по Фаренгейту и Цельсию */ int main() { int fahr; for (fahr = 0; fahr <= 300; fahr = fahr + 20) printf ("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32)); return 0; } Цикл for состоит из трёх выражений: инициализация, проверка условия продолжения цикла, приращение счетчика цикла.

Именованные константы Директива #define Строка #define определяет символьное имя, или именованную константу, для заданной строки символов: #define имя подставляемый-текст #include #define LOWER 0 /* нижняя граница таблицы */ #define UPPER 300 /* верхняя граница */ #define STEP 20 /* размер шага */ /* печать таблицы температур по Фаренгейту и Цельсию */ int main () { int fahr; for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP) printf ("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32)); return 0; }

Конструкция if-else if (выражение) инструкция 1 else инструкция 2

Конструкция if-else if (а > b) z = a; else z = b; // Переменной z присваивается большее значение из a или b. // Тернарная форма записи: z = (a > b) ? а : b;

Вложенный if-else if (n > 0) { if (a > b) z = а; } else z = b;

Конструкция else-if if (выражение) инструкция else if (выражение) инструкция else if (выражение) инструкция else if (выражение) инструкция else инструкция