Слайд 1Программирование и алгоритмизация
Основы программирования
1 семестр ФИСТ
Лекция 1.
1. Зачем мы
здесь?
2. Знакомство с Си
Слайд 2О себе
Власенко Олег Федосович
Программист (с 1990 года)
Преподаватель (с 1995 года)
Руководитель
(с 1999 года)
SimbirSoft – зам генерального директора
УлГТУ – зав
базовой кафедрой
Слайд 3SimbirSoft
Крупнейшая в регионе ИТ компания (около 750 сотрудников, из них
300+ в Ульяновске) – входим в 50 самых крупных ИТ
компаний РФ
Разработка заказного ПО – для всего цивилизованного мира (США, Европа, Дальний Восток, РФ)
Слайд 4Зачем я здесь?
У любого человека есть варианты (жизни).
Я считаю, что
реализоваться, состояться как профи, быть нужным, полезным - это правильно!
Я
помогаю людям стать профи.
Во-первых, помогаю выбрать именно ИХ ПУТЬ,
во-вторых – если их путь - этот путь в сфере ИТ - помогаю стать ИТ профи.
Мне это нравится. Я ощущаю, что я делаю что-то важное и полезное.
Слайд 5Зачем я здесь от SimbirSoft
Нам нужны разработчики – программисты, тестировщики,
руководители групп (тим-лиды), верстальщики и др.
95% разработчиков имеют высшее
образование.
30-70% из вас станут разработчиками.
Поэтому SimbirSoft:
а) помогает стать вам хорошим ИТ специалистом
б) при прочих равных, советует вам выбирать карьеру в разработке ПО
в) Предлагает вам приходить в SimbirSoft на студенческие программы – в том числе производственную практику
г) на старших курсах и после окончания обучения – предлагает выбирать работать в SimbirSoft
Слайд 7Что вы могли бы делать вместо
Заниматься спортом
Общаться с девушками/юношами
Играть в
компьютерные игры
Общаться в соцсетях
«Тусить на районе»
…
Слайд 8Так зачем вы здесь?
Что вы получаете прямо сейчас?
Слайд 9Так зачем вы здесь?
Что вы получаете прямо сейчас?
Что вы получите
потом?
Слайд 10Так зачем вы здесь?
Что вы получаете прямо сейчас?
Что вы получите
потом?
Какие возможности у вас открываются?
Слайд 11Так зачем вы здесь?
Что вы получаете прямо сейчас?
Что вы получите
потом?
Какие возможности у вас открываются?
А что вы хотите?
Слайд 12Так зачем вы здесь?
Что вы получаете прямо сейчас?
Что вы получите
потом?
Какие возможности у вас открываются?
А что вы хотите?
Слайд 13Так зачем вы здесь?
Что вы получаете прямо сейчас?
Что вы получите
потом?
Какие возможности у вас открываются?
А что вы хотите?
Слайд 14Так зачем вы здесь?
Что вы получаете прямо сейчас?
Что вы получите
потом?
Какие возможности у вас открываются?
А что вы хотите?
Кем вы хотите
быть?
Слайд 15Так зачем вы здесь?
Что вы получаете прямо сейчас?
Что вы получите
потом?
Какие возможности у вас открываются?
А что вы хотите?
Кем вы хотите
быть?
Если вы выбираете быть здесь – куда вас приведет жизнь? Через 2 года? Через 4?
Слайд 16Так зачем вы здесь?
Что вы получаете прямо сейчас?
Что вы получите
потом?
Какие возможности у вас открываются?
А что вы хотите?
Кем вы хотите
быть?
Если вы выбираете быть здесь – куда вас приведет жизнь? Через 2 года? Через 4? Через 10? Через 15? Через 25?
Слайд 17Формула профессионального успеха
Нужно людям и миру
Получается
Нравиться
Слайд 19Что нужно людям и миру?
На это есть явный спрос (откройте
hh.ru или аналоги)
За это платят: деньгами или уважением/славой
Слайд 21Что у вас получается?
Какие грамоты и призы у вас есть?
Насчет
чего вам говорят, что «как классно у тебя это получается!»?
Что
вы делаете быстрее и качественнее, чем одноклассники/друзья?
Слайд 23Что вам нравиться?
Что вы готовы делать «круглые сутки» бесплатно, и
даже если вам кто-то пытается мешать?
От чего вы получаете удовольствие?
Какое
у вас хобби?
Слайд 24Формула профессионального успеха
Как выбирать профессию?
1. То, что нужно людям и
миру ?
1. То, что получается ?
1. То, что нравится ?
Слайд 25Формула профессионального успеха
Как выбирать профессию:
То, что нравится
Слайд 26Формула профессионального успеха
Как выбирать профессию:
То, что нравится
Из того что
нравится
2. То, что получается
Слайд 27Формула профессионального успеха
Как выбирать профессию:
То, что нравится
Из того что
нравится
2. То, что получается
Из того что нравиться и получается
3. То,
что нужно людям и миру
Автор формулы:
доктор психологических наук, профессор, Гагин Тимур Владимирович
Слайд 28Домашнее задание
1. Найти в личном окружении (лично знакомы!) людей (минимум
3), кто занимается тем, что им на самом деле нравиться
Формула счастья: «Счастье – это когда с радостью идешь на работу и с радостью возвращаешься домой»
(Вторая составляющая счастья – это счастливая семейная жизнь – но это за рамками «Основ Программирования», да и вузовской программы в целом, пожалуй )
Слайд 29ИТ – это не только программисты
Чем занимаются ИТишники?
Чем могут заниматься
люди, учившиеся ИТ?
Слайд 30Домашнее задание
2. Что из ИТ специализаций лично Вам интересно? Выбрать
не менее 3 – до конца семестра.
3. До конца учебного
года найти и, желательно, познакомиться, минимум с 3 представителями каждой из этих специализаций – тех, кто учился этому (желательно), и этим занимается профессионально (обязательно). (РИФ.Технологии, СТАЧКА, Экскурсии в ИТ компании, где еще?)
4. Выяснить у них, чем они на самом деле занимаются на работе каждый день, чем им нравится их работа.
5. Примерить на себя – а будет ли лично вам интересным заниматься этим?
Слайд 31Основы программирования –
1 семестр
Си
Почему Си?
Слайд 32Си
C (рус. Си) — компилируемый статически типизированный язык программирования общего назначения,
разработанный в 1969—1973 годах сотрудником Bell Labs Деннисом Ритчи как
развитие языка Би. Первоначально был разработан для реализации операционной системы UNIX, но, впоследствии, был перенесён на множество других платформ. Благодаря близости по скорости выполнения программ, написанных на Си, к языку ассемблера, этот язык получил широкое применение при создании системного программного обеспечения и прикладного программного обеспечения для решения широкого круга задач. Язык программирования С оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования, как C++, C#, Java и D.
https://ru.wikipedia.org/wiki/%D0%A1%D0%B8_%28%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29
Слайд 33Языки программирования 2016
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Слайд 34Языки программирования 2017
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Слайд 35Языки программирования 2018
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Слайд 36Языки программирования 2019
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Слайд 37Языки программирования 2020
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Слайд 38На чем будем писать?
MS Visual Studio Community 2017/2015
или
MS Visual Studio
Express 2015 для Windows Desktop
или
???
Слайд 39Простейшая программа на Си
#include
void main()
{
printf("Hello world!");
}
Слайд 40Простейшая программа на Си
(с задержкой!)
#define _CRT_SECURE_NO_WARNINGS
#include
void main()
{
printf("Hello world!");
{
int x;
scanf("%d",
&x);
}
}
Слайд 41Переменные + ввод/вывод
#define _CRT_SECURE_NO_WARNINGS
#include
void main()
{
int vsego;
int ndfl;
int naruki;
printf("Raschet
zarplaty!\n");
printf("Skolko vam nachislili zarplati:");
scanf("%d", &vsego);
ndfl = vsego * 87 /
100;
naruki = vsego - ndfl;
printf("NDFL = %d\n", ndfl);
printf("Na ruki = %d\n", naruki);
{
int x;
scanf("%d", &x);
}
}
Слайд 43Элементы блок-схем
Начало
Конец
Оператор (присваивание)
Ввод
Вывод
Принятие решения
Связи между элементами (поток выполнения алгоритма)
Слайд 44Создание нового проекта в VS (1)
Слайд 45Создание нового проекта в VS (2)
Слайд 46Создание нового проекта в VS (3)
Слайд 47Создание нового проекта в VS (4)
Слайд 48Создание нового проекта в VS (5)
Слайд 49Создание нового проекта в VS (6) – проект создан!
Слайд 50Создание нового файла с кодом (1)
Слайд 51Создание нового файла с кодом (2)
Слайд 52Создание нового файла с кодом (3)
Слайд 53Создание нового файла с кодом (4)
Слайд 54Создание нового файла с кодом (5) – создано!
Слайд 56Набор текста программы и запуск (2)
Слайд 58Программа, которая ждет ввода (2)
Слайд 59Цикл с постусловием do while
do {
Действие;
} while (Условие);
Слайд 60Пример для цикла do while
Население города увеличивается на 3% каждый
год. В 2014 году население города составляло 650 000 человек.
Напишите программу, которая выведет на экран предсказываемую численность населения города в каждом году, вплоть до 2040.
Слайд 62Программа
void main() {
int year = 2014;
long population =
650000;
do {
printf("%li inhabitants live in the
city in %i\n",
population, year);
population = (population * 103) / 100;
year = year + 1;
} while (year <= 2040);
}
Слайд 64Задача 1
Создать программу, которая подсчитывает сумму введенных чисел.
Все числа положительные
целые. Завершение ввода – 0.
Пример ввода: 10 20 25 0
Вывод:
55
Нужно использовать цикл do while для реализации.
void main()
{
int sum = 0;
int value;
do {
???
} while (value > 0);
printf("\nsum = %d", sum);
}
Слайд 66Самостоятельная работа
(пишите на Вашем любимом языке программирования!)
Напишите программу, которая
выводит Ваши Фамилию, Имя и Отчество в консоль.
Вывод: Власенко
Олег Федосович
2) Напишите программу, которая по введенному N выводит последовательность чисел от 1 до N.
Ввод: 7
Вывод: 1 2 3 4 5 6 7
3) Напишите программу, которая по введенному N выводит разложение этого числа на простые множители
Ввод: 48
Вывод: 48 = 1 * 2 * 2 * 2 * 2 * 3
Ввод: 30
Вывод: 30 = 1 * 2 * 3 * 5
Слайд 70Создание win32 приложения в VS (2)
Слайд 71Создание win32 приложения в VS (3)
Слайд 72Создание win32 приложения в VS (4)
Слайд 73Создание win32 приложения в VS (5)
Слайд 74Создание win32 приложения в VS (6)
Слайд 75Создание win32 приложения в VS (7) – создано!
Слайд 77Где в коде рисовать картинки?
Файл Win32Project1.cpp
Функция WndProc()
Слайд 78Где в коде рисовать картинки? (2)
LRESULT CALLBACK WndProc(HWND hWnd, UINT
message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
…
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
// TODO: Добавьте сюда любой код прорисовки, использующий HDC...
EndPaint(hWnd, &ps);
}
break;
…
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
Слайд 79Точки в Декартовой системе координат
Слайд 81Оцифровка точек в координатной сетке
Слайд 82Рисуем линии
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
// Перемещаем "курсор" рисования линии в точку (x = 10, y = 30)
MoveToEx(hdc, 10, 30, NULL);
// Рисуем линию из текущей позиции курсора в точку (x = 10, y = 100)
// "Курсор" после отрисовки находится в новой точке (x = 10, y = 100)
LineTo(hdc, 10, 100);
// Рисуем линию от предыдущей точки (x = 10, y = 100) до точки (x = 150, y = 100)
LineTo(hdc, 150, 100);
// Рисуем линию от предыдущей точки (x = 150, y = 100) до точки (x = 10, y = 30)
LineTo(hdc, 10, 30);
EndPaint(hWnd, &ps);
}
Слайд 83Рисуем эллипс
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
// Рисуем фиксированный прямоугольник
Rectangle(hdc, 10, 20, 120, 160);
// Рисуем эллипс, вписанный в прямоугольник
Ellipse(hdc, 10, 20, 120, 160);
EndPaint(hWnd, &ps);
}
Слайд 84Домашнее задание (желательное)
6. Вспоминаем стереометрию.
Пишем программу на Си (в лекционной
тетради) вычисляющую объем шара и площадь его поверхности – по
введенному радиусу.
7. Для этой программы рисуем (в лекционной тетради) блок-схему.
Подсказка – вещественные числа в Си: double (или float)
Слайд 85Домашнее задание (желательное)
8. Прочитать про рисование в WinAPI http://radiofront.narod.ru/htm/prog/htm/winda/api/paint.html
9.
Установить Visual Studio (если ранее не установили).
10. Создать простейшее Win32
приложение
11. Нарисовать что-нибудь в этом приложении– например домик, танк, или что-то более жизнеутверждающее (домик и танк прилагаются!)
Слайд 86Домашнее задание – нарисовать домик
Слайд 87Домашнее Задание –
оцифровать и нарисовать танк
Слайд 88Источники информации
КАК рисовать в Win32 API? -http://radiofront.narod.ru/htm/prog/htm/winda/api/paint.html