Uploaded by otrushin

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

advertisement
Лекция 1 Введение в
программирование
О.С. Трушин
Зав. лаб. ЯФ ФТИАН РАН,
Доцент кафедры нанотехнологии в
электронике
План
•
•
•
•
•
•
•
•
•
•
•
Цели и задачи курса
Рекомендуемая литература
Краткая история вычислительной техники
Развитие теории вычислений
Развитие технологии
Устройство компьютера
История развития языков программирования
Создание программы на C++
Компиляция в командной строке
Среда программирования Visual Studio 2008
Пример создания простейшей программы
Оргвопросы. Цели и задачи курса
• Цель курса – научить практическому
программированию на C++
• Лекции в виде компьютерных
презентаций
• На практике – решение задач с
реализацией программы на ЭВМ
• Завершение курса – зачет
• Требуется общая тетрадь и флэшка
Рекомендуемая литература
• Х. Дейтел, П. Дейтел Как
программировать на C++
• Т.А. Павловская, Ю.А. Щупак С/С++
Структурное программирование
• Множество курсов в интернете:
• ravesli.com
Краткая история вычислительной
техники I
• Потребность считать возникла с
появлением цивилизации
• V век до н.э. (Египет) – счетные палочки
и счетные доски
• (Греция) Критская счетная машина
• 1654 – логарифмическая линейка
• 1820 – арифмометр Томаса
• 1822 – разностная машина Чарльза
Бэбиджа
Краткая история вычислительной
техники II
• 1890 – табулятор Холлерита
• 1941 – машина Тьюринга
• 1943 – «Марк 1» первый компьютер
фирмы IBM
• 1964 – «System 360» фирмы IBM
Развитие теории вычислений
• XVII – двоичная система (Лейбниц)
• 1854 – булева алгебра на основе
двоичной системы
• 1940 – архитектура фон Неймана
• 1957 – язык высокого уровня Фортран
Развитие технологии
•
•
•
•
•
•
•
•
1947 – изобретение транзистора
1958 – создание первой микросхемы
1960 – первый миникомпьютер DEC PDP-1
1963 – компьютерная мышь
1966 – ячейка памяти DRAM
1966 – основание фирмы INTEL
1969 – военный интернет в Пентагоне
1976 – основание фирмы Apple
Базовые понятия
• Цифровой компьютер – это машина,
которая может решать задачи,
используя данные ей команды
• Программа – это последовательность
команд, описывающих решение
определенной задачи
Схема компьютера
архитектура фон Неймана
Двоичный код
• В основе работы современных ЭВМ –
электронные схемы (триггеры) реализующих
2 устойчивых состояния «0» и «1»
• Таким образом, цифровая техника
использует двоичную арифметику
• Язык команд компьютера – машинный код
• 001011001110101
• На заре компьютерной эры люди писали
программы в машинных кодах
Язык ASSEMBLER
• Программировать в машинных кодах
слишком сложно
• Был разработан язык мнемокодов
• mov, push, pop, add
• Assembler транслирует мнемокоды в
машинные коды
• Assembler позволяет использовать всю мощь
«железа» но программы слишком длинные и
трудно переносимые с компьютера на
компьютер
Языки высокого уровня
•
Пример
ASSEMBLER
mov x
mov y
add x,y
mov z
•
FORTRAN
z=x+y
Одна команда на языке высокого уровня заменяет несколько
команд ASSEMBLER
• Решается проблема переносимости
• Необходима процедура компиляции
Подготовка и исполнение
программы
Программы, написанные на языках высокого уровня, также должны быть
переведены в машинный код перед выполнением.
Есть два пути решения этой задачи:
Компилятор – это программа, которая читает код и создает автономную
исполняемую программу, которую процессор понимает напрямую.
Интерпретатор — это программа, которая напрямую выполняет код, без
его предыдущей компиляции в машинный язык.
Современные языки высокого
уровня
• FORTRAN – для научных и инженерных
расчетов
• C++ - универсальный системный язык
• Pascal – учебный язык
• Pyton, Basic
• JAVA, PHP, Perl – для вебпрограммирования
Программные продукты на C++
• Windows
• Linux
• Ms Office
История развития C++
• Язык C был создан на основе BCPL и B Денисом
Ритчи в 1970 г. в Bell Labs и реализован на PDP-1
• На C была написана операционная система UNIX
• Язык C++ был разработан Бьерном Строустропом в
начале 80-х в Bell Labs как расширение C
• В С++ добавлена возможность Объектноориентированного программирования
• С++ - очень широк и каждый программист использует
только часть удобную для него
• На базе C++ были созданы многие новые языки
JAVA, Perl, PHP
Компиляторы C++
• gcc – на компьтерах с Linux
• Borland Builder C++
• Microsoft Visual Studio
Создание программы на С++
Компиляция в командной строке
Среда Visual Studio 2008
Создание нового проекта
Создание нового проекта
Создание нового проекта
Создание нового проекта
Создание нового проекта
Добавление файлов
с исходным кодом
Добавление файлов
с исходным кодом
Добавление файлов
с исходным кодом
Исходный код 1
int main()
{
return 0;
}
Компиляция и сборка
• Сохранить исходный код
• Компилировать измененный
файл(файлы) с исходным кодом
• Собрать проект
Запуск программы
Сообщения об ошибках
1>------ Build started: Project: Proba001, Configuration: Debug Win32 -----1>Compiling...
1>main.cpp
1>d:\home\alex\visual studio 2008 projects\proba001\proba001\main.cpp(4) :
error C2143: syntax error : missing ';' before '}'
1>Build log was saved at "file://d:\home\alex\Visual Studio 2008
Projects\Proba001\Proba001\Debug\BuildLog.htm"
1>Proba001 - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Контекстная помощь (F1)
Удачная компиляция
1>------ Build started: Project: Proba001, Configuration: Debug Win32 -----1>Compiling...
1>main.cpp
1>Build log was saved at "file://d:\home\alex\Visual Studio 2008
Projects\Proba001\Proba001\Debug\BuildLog.htm"
1>Proba001 - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Исходный код 2
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello world!"<<endl;
return 0;
}
Работа с отладчиком
Работа с отладчиком
• F5 - запуск отладчика
• F9 - добавление или удаление точки
останова в текущей строке
• F10 - выполнение следующей строки
кода, но без захода в вызываемые
функции
• F11 - кода с заходом в вызываемые
функции
Другие IDE
Другие IDE
Download