- •Экзамен по информатике
- •Цели программирования.
- •Области языков программирования. Научные приложения.
- •Области языков программирования. Коммерческие приложения.
- •Области языков программирования. Искусственный интеллект.
- •Области языков программирования. Системное программирование.
- •Области языков программирования. Языки сценариев.
- •Области языков программирования. Web-программирование.
- •Уровни языков программирования. Машинные языки (история возникновения, отличительные особенности, пример языков).
- •Уровни языков программирования. Языки ассемблера (история возникновения, отличительные особенности, пример языков).
- •Уровни языков программирования. Языки высокого уровня (история возникновения, отличительные особенности, пример языков).
- •Методы реализации программ. Компиляция (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Методы реализации программ. Интерпретация (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Методы реализации программ. Смешанная реализация (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Методы реализации программ. Трансляция (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Жизненный цикл программного продукта.
- •Этапы решения задач на эвм.
- •Цикл с параметром
- •Пример 1
- •Пример 2
- •Способы записи алгоритма. Псевдокод.
- •Пример 1
- •Пример 2
- •Рекомендации
- •Сравнение примеров
- •Способы записи алгоритма. Сравнение различных подходов. Выгоды использования блок-схем и псевдокода
- •Только псевдокод
- •Концепция памяти.
- •Принципы типизации данных.
- •Тип данных bool
- •Тип данных char
- •Целочисленные типы данных
- •Типы данных с плавающей точкой
- •Иерархия простых типов данных.
- •Стандартные типы данных. Таблица характеристик. Особенности выбора типа.
- •Правила приведения типов.
- •Пример, использующий преобразование типов
- •Оператор sizeof.
- •Переменные (объявление, инициализация, присвоение).
- •Константы. Специальные символы. Квалификатор const.
- •Область видимости переменных.
- •Операторы управления областью видимости.
- •Группы операций (особенности записи, таблица приоритетов)
- •Понятие ассоциативности, приоритета, размерности. Таблица приоритета операций.
- •Арифметические операции.
- •Логические операции (краткая схема вычислений).
- •Побитовые операции (таблицы истинности). Побитовые логические операции
- •Побитовое отрицание (not)
- •Побитовое и (and)
- •Побитовое или (or)
- •Сложение по модулю два (xor)
- •Другие побитовые логические операции
- •Битовые сдвиги
- •Принципы структурного программирования.
- •Структурное программирование: три базовые конструкции.
- •Основные операторы.
- •Параметры по-умолчанию.
- •Перегрузка функций.
- •Файлы (понятие, текстовые и двоичные файлы, структурированные и неструктурированные, операции, основные библиотеки для работы с файлами).
- •Режимы открытия файлов
- •Потоковый ввод-вывод. Библиотека потокового ввода-вывода. Вступление.
- •Консольный ввод/вывод.
- •Форматирование.
- •Потоковый ввод/вывод пользовательских типов.
- •Файловый ввод/вывод.
- •Файловый ввод-вывод. Стандартная библиотека ввода-вывода.
Сравнение примеров
Первый пример написан на более высоком уровне, чем второй.
Первый отражает намерения, а второй реализацию.
Способы записи алгоритма. Сравнение различных подходов. Выгоды использования блок-схем и псевдокода
Псевдокод упрощает пересмотр конструкции – вам не потребуется вникать в исходный код.
Псевдокод поддерживает идею итеративного усовершенствования (подхода). Вы начинаете с высокоуровневой конструкции, уточняете её до псевдокода, который в свою очередь преобразуете в исходный код. Такое последовательное усовершенствование позволяет проверять проектные решения шаг за шагом, по мере перехода на более низкие уровни. Проектные ошибки обнаруживаются в самом начале; алгоритмические ошибки обнаруживаются на этапе кодирования.
Псевдокод упрощает внесение изменений. Что проще: исправить линию на чертеже или снести стену и сдвинуть её на метр в сторону? В программировании эффект не столь драматичен в плане физических усилий, но идея та же: несколько строк псевдокода исправить легче, чем страницу кода.
Одна из основ успешного программирования – отловить ошибку как можно раньше, когда для её исправления потребуется меньше усилий.
Только псевдокод
Псевдокод упрощает комментирование программ. В типичной ситуации вы сначала пишите код, а затем добавляете комментарии. При использовании псевдокода он превращается в комментарии автоматически, так что проще их оставить, чем удалить.
Псевдокод сопровождать проще, чем другие виды проектной документации. При других подходах проектная документация отделена от кода, и внесение в неё изменений (или забывание) порождает несоответствие. Поскольку псевдокод становится комментариями, то внося в них изменения, вы поддерживаете проектную документацию в корректном состоянии.
В ряде случаев псевдокодом называют систему команд абстрактной машины, например, P-код, псевдокод вымышленной машины MIX и т.д. В отличие от псевдокода неформального характера, такой псевдокод уже строго формализован, труднее для понимания человеком, но может быть транслирован в работающую программу при наличии программы-эмулятора данной гипотетической машины.
Язык C++. Общие сведения и характеристика языка.
Структура программы на языке C++. Пример простой программы.
Любая программа на C++ может содержать следующие блоки:
Рассмотрим назначение каждой секции:
Подключение библиотек. Очень часто программы делают одни и те же операции. Например, вычисления значений квадратного корня, ввод данных из файла и так далее. Эти операции группируются по назначению в различные модули, которые называются библиотеками. Используя библиотеки можно сократить и упростить исходный текст программы.
Описание функций. Однако не все функции созданы заранее. Программисту для упрощения вычислений приходится писать свои функции. Эти функции располагаются в этой секции программы.
Главная функция main(). Выполнение любой программы на C++ начинается с этой функции. Эта функция вызывается операционной системой. После завершения вычислений функция main() передаёт управление обратно операционной системе.
Объявление переменных. Переменные хранят информацию. Прежде чем использовать переменные их нужно описать или как говорят объявить. Объявление переменных происходит в этой части программы.
Ввод исходных данных. Подавляющее большинство программ работают с данными, которые вводит пользователь. Также данные могут читаться из файла или быть получены по сети. Все эти действия называются вводом исходных данных и производятся в этой части программы.
Вычисление результата. Любая программа пишется для чего-то. У каждой программы есть цель. Достижение этой цели или вычисление результата производится в этой части программы.
Вывод результата. Когда результат вычислен, его нужно представить пользователю. Это может быть вывод на экран, а может и запись в файл. В данной секции производится представление результата в нужной для пользователя форме.
Простая программа на C++
В C++ используются формы записи, которые непрограммисту могут показаться странными. Мы начинаем с рассмотрения простой программы, печатающей две строки текста.
// Простой вывод сообщения
#include <iostream>
using namespace std;
int main()
{
// Вывод приветствия
cout << «Привет!» << endl;
cout << «Это - твоя первая программа на C++.» << endl;
// Завершение программы
return 0;
}
Эта программа иллюстрирует несколько важных особенностей программ на C++. Рассмотрим каждую строку программы (пустые строки игнорируются).
// Простой вывод сообщения
Это однострочный комментарий. Однострочный комментарий начинается с символов «//» и заканчивается в конце строки. Программисты вставляют комментарии, чтобы документировать программу и облегчить её чтение. Комментарии помогают другим людям читать и понимать вашу программу. Комментарии не вызывают никаких действий компьютера при выполнении программы. Они игнорируются компилятором.
Комментарий «Простой вывод сообщения» просто описывает цель программы. Такой комментарий располагается в самом начале программы.
Хороший стиль программирования 1: Каждая программа должна начинаться с комментария, описывающего цель программы.
#include <iostream>
using namespace std;
Эти строки позволяют подключить библиотеку ввода-вывода iostream. С её помощью можно выводить данные на экран и читать данные с клавиатуры. Позже мы рассмотрим подключение других библиотек.
Типичная ошибка программирования 1: Забывают включить библиотеку iostream в программу, которая вводит данные с клавиатуры или выводит данные на экран.
int main()
{
…
}
Эти строки являются частью любой программы на C++. Они описывают функцию main. Программы на C++ содержат одну или более функций, одна из которых должна быть main. Эта программа содержит только одну функцию. Программа на C++ всегда начинается с выполнения функции main, даже если main – не первая функция программы.
Каждая функция содержит операторы, которые располагаются между символами { и }.
cout << «Привет!» << endl;
cout << «Это - твоя первая программа на C++.» << endl;
Программы состоят из операторов. В C++ операторы разделяются через ;.
Строки, которые начинаются с символа cout, называют операторами вывода. cout читается как «си-аут». Справа от cout через << находится выводимая на экран информация. В данном случае это строка «Привет!» и символ перевода курсора на новую строку.
Типичная ошибка программирования 2: пропуск точки запятой в конце оператора является синтаксической ошибкой. Синтаксическая ошибка возникает тогда, когда компилятор не может распознать оператор в тексте программы. Обычно компилятор выдаёт сообщение об ошибке, чтобы помочь программисту найти и исправить неверный оператор. Синтаксические ошибки – это нарушение правил языка. Поскольку они обнаруживаются на этапе компиляции, поэтому их часто называют ошибками компиляции.
Хороший стиль программирования 2: Последний символ выводимого текста должен быть endl, который переводит курсор на новую строку. Вывод программы становится более воспринимаемым для человека.
return 0;
Эта строка включается в конце каждой функции main. Ключевое слово return – один из нескольких способов завершения вычислений в функции. Когда оператор return используется в конце функции main, значение 0 говорит о том, что программа успешно завершена. Позднее мы обсудим это подробно.
Хороший стиль программирования 3: Делайте одинаковые отступы для всех операторов внутри функции. Каждый оператор располагайте на новой строке. Структура программы получается более понятной и легкой для чтения.
В результате выполнения программы пользователь увидит на экране следующую надпись:
Привет!
Это - твоя первая программа на C++.
Это сообщение можно напечатать разными способами. Например, так:
cout << «Привет!» << endl << «Это - твоя первая программа на C++.» << endl;
Или так:
cout << «Привет!» << endl;
cout << «Это – твоя »;
cout << «первая программа на C++.» << endl;
Допустимость таких способов объясняется тем, что вывод производится с того места, где предыдущий оператор приостановил вывод. Вообще C++ позволяет программисту представлять операторы множеством способов.