ОРГВОПРОСЫ – как и где будет проходить?
ОРГВОПРОСЫ – когда будут занятия?
О себе
Я как ИТ специалист
Я как преподаватель
Я как программист
О SimbirSoft
Зачем я здесь от SimbirSoft?
Зачем я здесь?
Что здесь будет?
Что здесь будет?
Чего здесь НЕ будет?
Что это вам даст?
Чего это вам НЕ даст?
Вопросы дифференциации
Вопросы дифференциации
«Правила игры»
«Правила игры»
«Правила игры» - часть 2
«Правила игры» - часть 3
«Правила игры» - часть 4
Лекции
Лабораторные работы
Лекции VS Лаб работы
Лекции VS Лаб работы
Индивидуальные проекты**
А что будет после ОП?***
Что нужно знать для того, чтобы получить «работу мечты»?
Что нужно знать для того, чтобы получить «работу мечты»?
Какие темы нужно изучить чтобы стать «ИТишником»?
Какие предметы предстоит изучить? ***
Формат
ОРГВОПРОСЫ – кто что ведет?
Что будет сегодня?
Основы программирования (на Си)
Основы программирования
Си
Языки программирования 8/2025
Какие популярные языка произошли от Си
На чем будем писать?
Лабораторная работа №1
Лабораторная работа №1.1
Лабораторная работа №1.1
Задача 1.1.0. Простейшая программа на Си
Задача 1.1.0. Ввод простейшей программы
Задача 1.1.0. Запуск простейшей программы
Задача 1.1.0. Hello World
Hello World.1
Hello World.2.1
Hello World.2.2
Hello World.2.3
Hello World.2.4
Hello World.2.5
Hello World.3.1
Hello World.3.2
Hello World.3.3
Hello World.3.4
Hello World.3.5
Hello World.4
Hello World.5
Задача 1.1.0. Hello World
Hello World.6.1
Hello World.6.2
Hello World.6.3
Hello World.6.4
Hello World.6.5
Hello World.7
Hello World – код программы
Hello World – код программы
Hello World – код программы
Hello World – код программы
Задача 1.1.1. Всё обо мне!
Задача 1.1.1. Всё обо мне! (выполнение)
Задача 1.1.2. Всё обо мне! (наоборот!)
Задача 1.1.3. Всё обо мне – часть 3
ЛР 1.1: Задания на закрепление и отработку
Важная информация по файлам
Важная информация.2
Важная информация.3
Важная информация.4
Важная информация.5
Важная информация.6
Важная информация.7
ИТОГО по лаб работе №1 (часть 1)
Кириллица
Hello World – код программы
Привет мир – код программы
Привет мир – код программы
Привет мир – код программы
Привет мир – код программы
Привет мир\n – код программы
Привет мир\
Переменные. Вывод. 1
Переменные. Вывод. 1
Переменные. Вывод. 2
Переменные. Вывод. 3
Вывод - printf
Переменные - типы
Основные операции операторы
Комментарии в программе
Комментарии в программе
Комментарии в программе
Комментарии в программе
Комментарии в программе
Ввод информации.
Ввод информации.
Ввод информации.
Ввод информации.2
Ввод информации.3
Ввод информации.4
Знакомство с простейшими функциями в Си**
Простейшие функции
Точка входа в программу
Использование до определения
Объявление, определение и вызов функции
В Си НЕЛЬЗЯ вкладывать функции друг в друга
Лабораторная работа №1 (часть 2)
Задача 1.2.1. Падение с высоты. 1
Задача 1.2.1. Падение с высоты. 2
Задача 1.2.2. Падение с высоты
Задача 1.2.2. Падение с высоты 2
Задача 1.2.2. Падение с высоты 3
Задача 1.2.2. Падение с высоты 4
Задача 1.2.3. Покупаем квартиру
Задача 1.2.3. Покупаем квартиру
Задача 1.2.3. Покупаем квартиру
Задача 1.2.4. Покупаем квартиру - время
ЛР1.2: Задания на закрепление и отработку
ИТОГО по лекции 1
Изученные термины 1
Изученные термины 1
Изученные термины 2
Изученные термины 2
Что почитать про Си - для начинающих
7.60M
Категория: ПрограммированиеПрограммирование

Основы алгоритмизации и программирование. Лекции

1.

Основы алгоритмизации и программирование
ФИСТ УлГТУ 1 курс
Осень 2025
Лекции
Власенко Олег Федосович
УлГТУ / SimbirSoft

2.

3. ОРГВОПРОСЫ – как и где будет проходить?

Группа «ОА и П (ФИСТ 2025 осень)» - https://vk.com/fist2025
Я в ВКонтакте - https://vk.com/oleg.f.vlasenko
Трансляции лекций - https://bbb-ext.simbirsoft.com/b/ole-5be-jxt-uld
Если с трансляцией что-то совсем не то – ищите информацию
в группе «ОА и П (ФИСТ 2025 осень)». Информация будет там.
Старосты! – если совсем всё пошло прахом - можете звонить мне на
сотовый.
Мой телефон +7 902 246 05 47 (Власенко Олег Федосович)
Но если терпит – пишите либо в общую группу, либо мне в личку ВКонтакте!

4. ОРГВОПРОСЫ – когда будут занятия?

Лекции - Понедельник, с 18:00 (УЛСК)!
Трансляции лекций - https://bbb-ext.simbirsoft.com/b/ole-5be-jxt-uld
Видеозаписи лекций – в группе https://vk.com/fist2025
Лабораторные - Мои встречи с моими подгруппами (ПИбд-11/ИСЭбд-11) –
Суббота, с 8:30 (УЛСК) и до упора (упор постараемся не позже 14:50 (УЛСК)).
На кафедре ИС – аудитория будет уточнена
Лабораторные – другие подгруппы - смотрите в вашем расписании
Экзамен – по расписанию
Дополнительные консультации – согласуем отдельно

5.

6.

Основы алгоритмизации и программирование
ФИСТ УлГТУ 1 курс
Осень 2025
Лекция 1
Знакомство.
Знакомство с курсом.
Знакомство с Си.
Язык Си: Комментарии. Переменные. Вывод и Ввод переменных.
ЛР! 1. (Лабораторная работа №1).
Консольный вывод и ввод.
1.1. Текстовый вывод.
1.2. Ввод и вывод переменных.
Власенко Олег Федосович
УлГТУ / SimbirSoft

7. О себе

Власенко Олег Федосович
Должности:
SimbirSoft – Заместитель генерального директора
УлГТУ – Заведующий базовой кафедры, старший преподаватель
Компетенции:
Разработка ПО + Обучение + Менеджмент
Образование:
Техническое (ИТ) (УлГТУ - 1995)
и
Управленческое (УлГУ - 2011, OU UK - 2017, MBA ЛИНК - 2020)
Опыт работы:
Разрабатываю ПО с 1993 года (30+ лет)
Преподаю с 1997 года (28 лет)
https://vk.com/oleg.f.vlasenko

8. Я как ИТ специалист

• Работал на позициях оператора, инженера-разработчика,
руководителя команды (TeamLead). Занимался продажами
услуг разработки программного обеспечения.
• Сейчас работаю на позициях преподавателя ИТ дисциплин, и
одного из руководителей крупнейшей ИТ компании региона SimbirSoft.
• В качестве инженера-разработчика внес свой вклад в
разработку 8 программных продуктов.
• Сейчас вхожу в состав Экспертного совета по развитию ИТ при
Губернаторе Ульяновской области
• Награды: Почетный работник Ульяновской области в сфере
связи и информации, Грамота и Благодарственное Письмо
Губернатора Ульяновской области, Доска почета Ульяновской
области, десятки грамот от различных ведомств и организаций

9. Я как преподаватель

• Работал на позициях учителя в нескольких школах, в том числе
в Лицее при УлГТУ.
• Работая в Лицее при УлГТУ внес свой вклад в подготовку
Чемпиона мира по программированию Максима Буздалова.
• На позициях преподавателя несколько лет работал в УлГУ и в
ДИТИ.
• Также работал в Колледже Экономики и Информатике при
УлГТУ.
• Дольше всего работал и продолжаю работать в УлГТУ – в
общей сложности стаж работы в УлГТУ составляет 25+ лет.
• Помог прийти в ИТ отрасль 3000+ специалистов.
• Большинство с дипломами, но есть и без дипломов

10. Я как программист

• Писал на: Си, С++, C#, Java
• Знаком с: Basic, Pascal
• Трогал: Python, PHP, Prolog, VBA, JavaScript
Работа программистом:
• 2001 год – MegaSoft 2000 – программист (С++)
• 12.2003-10.2005 - «СимбирСофт» - инженер-программист (С++, Java).
• 10.2005-10.2008 «СимбирСофт» - тим-лид (С++, C#).
• 03.2007-10.2008 Фриланс – программист и тим-лид (С++, C#, VBA)
Некоторые проекты (в роли программиста и/или тим-лида):
• Калькулятор (C++, WinCE)
• Редактор файлов CAD системы (C++, Windows)
• Система визуализации интерьеров домов (C++, Windows)
• Банковские приложения (Java)
• Система расчета рисков для банков (C++, C#, VBA)
• инструменты для работы специалистов по продажам (CRM) (C++,
Windows)
• система разработки (IDE) для контроллеров движения (C#)

11. О SimbirSoft

• SimbirSoft - крупнейшая в регионе ИТ компания
(1500+ сотрудников, из них 300+ в Ульяновске) –
входим в 50 самых крупных ИТ компаний РФ
• Разработка заказного сложного ПО
• https://www.simbirsoft.com/

12. Зачем я здесь от SimbirSoft?

• Нам нужны разработчики – программисты,
тестировщики, аналитики, руководители групп (тимлиды), верстальщики и много, много, много др.
• 90+% разработчиков имеют высшее образование.
• Но далеко не 100% поступивших на ФИСТ доходят до
ИТ работы.
• Я здесь чтобы увеличить вероятность для каждого из
поступивших на ФИСТ на то, что он(а) станет
профессиональным Итишником не только по
диплому, но и фактически.
• В конце концов – чтобы в SimbirSoft пришло много
(десятки и сотни) выпускников этого курса.

13. Зачем я здесь?

• Мне это нравится. Я ощущаю, что я делаю что-то
важное и полезное.
• Я помогаю людям стать профи.
Во-первых, помогаю выбрать именно ИХ ПУТЬ,
во-вторых – если их путь – это путь в ИТ помогаю стать ИТ профи.
• Я считаю, что реализоваться, состояться как
профи, быть нужным, полезным - это правильно!

14. Что здесь будет?

• Основы программирования – в том числе создание кода,
отладка, тестирование
• Основы алгоритмизации
• Введение в язык программирования Си
• Знакомство с IDE Microsoft Visual Studio
• Знакомство с некоторыми возможностями Windows API
Лекции – 16
Лабораторные работы – 14
Вы напишите 2000+ строк кода в 100+ простых программах.
Самостоятельные работы ???
• Создадите игру** или даже две***

15. Что здесь будет?

• Основы программирования – в том числе создание кода,
отладка, тестирование
• Основы алгоритмизации
• Введение в язык программирования Си
• Знакомство с IDE Microsoft Visual Studio
• Знакомство с некоторыми возможностями Windows API
Лекции – 16
Лабораторные работы – 14
Вы напишите 2000+ строк кода в 100+ простых программах.
Самостоятельные работы ???
• Создадите игру** или даже две***

16. Чего здесь НЕ будет?

• Глубокого изучения каких либо фреймворков и/или
библиотек
• «Сложных» алгоритмов
• Полного изучения языка программирования Си
• С++ (Мы вообще не будем его касаться!! Только Си)
• Изучения каких либо иных IDE и компиляторов, кроме MS
VS
• Глубокого изучения инструментов в IDE Microsoft Visual
Studio
• Глубокого изучения Windows API

17. Что это вам даст?

• Основы программирования – возможность изучать ИТ дальше!
Возможность реально самостоятельно писать программы!
• Введение в язык программирования Си – возможность изучать
Си, С++, Java, C#, и много-много других языков.
• Знакомство с IDE Microsoft Visual Studio – быстрое начало
работы с C++, C#, Visual Basic и др.
• Знакомство с некоторыми возможностями Windows API –
базовые представления о том, что такое Операционная
система, что такое API, знакомство с GUI с точки зрения
программиста.
• ИТОГО – знаете ОСНОВЫ ПРОГРАММИРОВАНИЯ – можете
дальше развиваться в ИТ в любой специализации. Не знаете –
ХОДА в ИТ ДАЛЬШЕ ПРАКТИЧЕСКИ НЕТ!

18. Чего это вам НЕ даст?

• Зарабатывать деньги здесь и сейчас в качестве
программиста (Основы программирования – это
фундамент. А для работы программистом нужно еще
много чего, кроме фундамента)
• Знаний С++ (Мы будем ТОЛЬКО ПРО СИ!)
• Знаний каких либо иных языков или фреймворков.

19. Вопросы дифференциации

База:
Хотел в ИТ начиная с 9 класса.
ЕГЭ по информатике сдано на «4»
Поступил на бюджет (без целевого)
Выше базы:
Знаю Си – написал не менее 2000 строк кода именно на Си
Очень выше базы:
Победитель олимпиад. Профессиональный программист. Коммерческие проекты
за плечами и т.п.
Ниже базы:
ЕГЭ по информатике не сдавал
Программирование не изучал – всего написал менее 500 строк кода (на всех
вместе языках программирования)

20. Вопросы дифференциации

База:
Просто делайте все без * - и будет вам «3-4»
Делайте с *, с ** - и, возможно, выйдете на «4-5»
Выше базы:
Делайте с *, с **, с ***
Очень выше базы:
Обсуждается индивидуально с преподавателем по лабам.
Ниже базы:
Очень внимательно, по шагам, просматривая лекции по 2+ раза – просто идите по
шагам и делайте все по шагам.
Не надо вам * - по крайней мере прямо сейчас
Если совсем тяжко – берите репетиторов.

21. «Правила игры»

При каких условиях курс поможет вам изучить основы программирования:
1. Очное посещение лабораторных работ
2. Личная работа в классе
3. Домашние работы (если не сделали всё в классе) – делаете ДО
следующей встречи в классе. И приносите на следующую лабораторную
работу
4. Лекции – для того, чтобы понять, как что устроено, и как делать лабы.
Если что-то непонятно – тут же задавайте вопросы. Идеально будет,
если вы будете смотреть лекцию и тут же будете пробовать сделать
то, что обсуждаем на занятии
5. Если что-то пошло не так и вы не смогли присутствовать на занятии –
отработка по презентациям и видеозаписям ASAP (as soon as possible).
6. Если «затык» - потратили 2-3 часа и не получилось - ищите помощь
(однокурсники, преподаватель, ваш куратор, репетитор)
7. !!!! На базовом уровне мало смысла читать книги. Нужен навык, а он
по книгам не формируется. Поэтому лучше живые консультанты! И
много-много-много времени на решение задач.
8. !!!!!!! Книги будут очень полезны, когда будет база и нужно будет понять
«а что там внутри?»

22. «Правила игры»

При каких условиях курс поможет вам изучить основы программирования:
1. Очное посещение лабораторных работ
2. Личная работа в классе
3. Домашние работы (если не сделали всё в классе) – делаете ДО
следующей встречи в классе. И приносите на следующую лабораторную
работу
4. Лекции – для того, чтобы понять, как что устроено, и как делать лабы.
Если что-то непонятно – тут же задавайте вопросы. Идеально будет,
если вы будете смотреть лекцию и тут же будете пробовать сделать
то, что обсуждаем на занятии
5. Если что-то пошло не так и вы не смогли присутствовать на занятии –
отработка по презентациям и видеозаписям ASAP (as soon as possible).
6. Если «затык» - потратили 2-3 часа и не получилось - ищите помощь
(однокурсники, преподаватель, ваш куратор, репетитор)
7. !!!! На базовом уровне мало смысла читать книги. Нужен навык, а он
по книгам не формируется. Поэтому лучше живые консультанты! И
много-много-много времени на решение задач.
8. !!!!!!! Книги будут очень полезны, когда будет база и нужно будет понять
«а что там внутри?»

23. «Правила игры» - часть 2

ЕСЛИ
1. Вы пришли разобраться с основами программирования
И
2. Вы принимаете все эти правила
И
3. Вы считаете что именно этот курс вам поможет
ТОГДА
Вам здесь реально помогут и у вас будет результат

24. «Правила игры» - часть 3

ЕСЛИ
1. Вы знаете основы программирования
ИЛИ
2. Вы не принимаете какие-то из правил
ИЛИ
3. Вы считаете что этот курс вам мало поможет
ТОГДА
Вам здесь вряд ли помогут и вам нет смысла тратить время на этот курс

25. «Правила игры» - часть 4

ЕСЛИ
1. Вы пришли не за знаниями (см предыдущие 2 слайда), а развлечься
ТОГДА
Не мешайте другим получать именно знания
-----------------------------------------------------------------------------------------------------ЕСЛИ
1. Вы будете мешать ДРУГИМ ПОЛУЧАТЬ ЗНАНИЯ
ТОГДА
Вам здесь будут не рады
И
и против вас могут применять любые санкции без предупреждений

26. Лекции


Что на лекции разбирается
1 Знакомство.

9
10
Знакомство с Си.
2
Цикл DO WHILE.
3
4
5
Блок-схемы. Трассировка программы.
Графика в Windows
Функции
Управление:
6
IF, GOTO, DO WHILE, WHILE, RETURN, CONTINUE, BREAK,
SWITCH, вложенные циклы.
Типы данных.
Рисование с использованием Polyline/Polygon.
7
8
Анимация при помощи таймера
Одномерные массивы. FOR
Двухмерные массивы
Рекурсия
Оперативная память.
Разделы оперативной памяти.
Комментарии. Переменные. Вывод и Ввод
переменных.
Развилка – полная и усеченная.
Логические операции.
Что на лекции разбирается
Динамическая память.
11
Динамические структуры данных: Связанный список.
Символы. Строки. Текстовые файлы.
12
Кодировки.
Многомодульные проекты.
Процесс компиляции программы.
13
Текстовые файлы. HTML.
Поиск и сортировка.
Линейный и бинарный поиск [в массиве].
Сортировка.
14
Эффективность алгоритмов.
АТД. АТД: Словарь.
Динамические структуры данных - 2:
15
16
Двоичное дерево поиска. Хэш.
Обзор языка Си
Подготовка к экзамену.
Завершение курса.

27. Лабораторные работы

Номер
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Наименование лабораторной работы
Консольный вывод и ввод.
Управление – часть 1
Графика в Windows
Функции
Управление – часть 2
Типы данных
Одномерные массивы
Двухмерные массивы
Рекурсия
Динамическая память
Текст – часть 1
Текст – часть 2
Исследование сортировок
Исследование реализаций Словаря
В какой
лекции
разбирается
1
2
3
4
5
6
7
8
9
10
11
12
13
14

28. Лекции VS Лаб работы

Номер
1
Что на лекции разбирается
ЛР! 1. Консольный вывод и ввод.
1.1. Текстовый вывод.
2
1.2. Ввод и вывод переменных.
ЛР! 2. Управление – часть 1
2.1. Развилки.
3
2.2. Цикл DO WHILE
ЛР! 3. Графика в Windows
3.1 Рисование с использованием графических примитивов
4
3.2 Рисование при помощи DO WHILE
ЛР! 4. Функции
4.1. Упаковываем в функции ранее написанный код
4.2. Использование функций, возвращающих значения
5
4.3. Используем функции для рисования множества объектов
ЛР! 5. Управление – часть 2
5.1. Использование SWITCH и WHILE
6
5.2. Вложенные циклы
ЛР! 6. Типы данных
6.1. Использование массивов в Polyline и Polygon
7
6.2. Использование struct. Анимация при помощи таймера.
ЛР! 7. Одномерные массивы
7.1. Простейшие операции с одномерным массивом
7.2. Операции, изменяющие длину массива

29. Лекции VS Лаб работы

Номер
8
Что на лекции разбирается
ЛР! 8. Двухмерные массивы
8.1. Простейшие операции с двухмерными массивами
8.2. Применение двухмерных массивов в играх
9
ЛР! 9. Рекурсия
9.1. Знакомство с рекурсией
9.2. Фракталы
10
ЛР! 10. Динамическая память.
10.1. Динамические массивы
10.2. Связанный список
11
ЛР! 11. Текст – часть 1.
11.1. Работа с символами и строками
11.2. Работа со строками с использованием указателей
12
ЛР! 12. Текст – часть 2.
Обработка текстовых файлов - fgets
Создание HTML из текстовых файлов
13
14
15
16
ЛР! 13. Исследование сортировок
ЛР! 14. Исследование реализаций Словаря.

30. Индивидуальные проекты**

Индивидуальный проект №1** «Простая игра»
Игра на основе одномерных массивов, структур и других конструкций,
изученных в ходе курса. Есть подробная пошаговая инструкция как это
сделать.
Номер
этапа
1
2
3
4
Название этапа
Выбор варианта игры. Отрисовка всех объектов.
Перенос всего в функции. Режимы и Экраны.
Управление героями.
Делаем персонажей много. Сохранение/загрузка состояния
Индивидуальный проект №2*** «Игра на основе двухмерного массива»
Студентам предлагается задание – выбрать вариант с игрой на основе
двухмерного массива («Тетрис», «Сапер» и т.п.) и самостоятельно
реализовать эту игру до конца учебного семестра.

31. А что будет после ОП?***

Какие темы нужно изучить?
Какие предметы предстоит изучить?
Что нужно знать для того, чтобы получить
«работу мечты»?

32. Что нужно знать для того, чтобы получить «работу мечты»?

Как освоить бэкенд-разработку в 2022 году: дорожная карта https://tproger.ru/articles/backend-roadmap-2021/

33. Что нужно знать для того, чтобы получить «работу мечты»?

Как освоить фронтенд-разработку в 2022 году: дорожная карта https://tproger.ru/articles/frontend-roadmap-2021/

34. Какие темы нужно изучить чтобы стать «ИТишником»?

База для базы:
- Базовая (школьная) математика
- Дискретная математика (множества, графы, мат логика и т.п.)
- Английский язык (хотя бы до уровня – читаю и понимаю текст HELP/документации без словаря
и без переводчика)
- Основы программирования (переменные/массивы/структуры, развилки/циклы/вложенные
конструкции, вызовы подпрограмм, работа с консолью/файлами, 2000+ строк кода, и др)
Общая база для любой специализации в ИТ:
- Основы цифровых устройств (основы электроники и цифровой схемотехники)
- Машинно-ориентированное программирование (assembler)
- Операционные системы (ОС)
- Алгоритмы и структуры данных
- ООП (объектно-ориентированное программирование/проектирование/парадигма)
- Базы данных (СУБД, SQL)
- Основы интернета (HTTP, HTML и многое другое)
- 3-5+ языков программирования (на уровне «знаком и написал 2000+ строк на каждом») –
скорее всего что-то из следующих: C, C++, C#, Java, JavaScript, PHP, Python, Visual Basic, Swift, Go,
Fortran, Kotlin
Специализация:
- см. предыдущие слайды и 100500+ других RoadMap «Как стать XXX-программистом»

35. Какие предметы предстоит изучить? ***

Скорее всего – ваш список предметов будет отличаться!
Высшая математика
Теория вероятностей и математическая
статистика
Дискретная математика
Математическая логика и теория
алгоритмов
Теоретические основы информатики
Технологии программирования
Организация ЭВМ и системы
Базы данных
Проектирование и архитектура
программных систем
Конструирование программного
обеспечения
Тестирование программного обеспечения
Проектный практикум
Экономика и управление проектом
Иностранный язык
Теория автоматов и формальных языков
Основы теории систем
Аналитическая геометрия
Численные методы
Информационные системы и технологии
Компьютерная графика
Интернет-программирование
Компонентно-ориентированное
программирование
Распределенные вычисления и
приложения
Системное программное обеспечение
Информационная безопасность
Введение в системный анализ
Проектирование человеко-машинного
интерфейса
Алгоритмы и структуры данных
Сети и телекоммуникации
Теоретические основы управления
знаниями
Исследование операций
Системы управления базами данных
Методы искусственного интеллекта
Операционные системы

36.

37. Формат

• Основное время (80 минут!)
– Очень бегло по вспомогательным пунктам
– Основательно по ключевым
– Достаточно по Лабораторным работам
• Дополнительное время (X минут!)
– Ответы на вопросы по ключевым пунктам
– Ответы на вопросы по лабораторным работам
– Ответы на вопросы по вспомогательным пунктам
– Ответы на любые иные вопросы – если они уместны и на них
осталось время

38. ОРГВОПРОСЫ – кто что ведет?

Группы
Лекции
Лаб работы
Экзамен
ПИ
Власенко
лаб работы - по лекциям
1 подруппа – Власенко
7 подгрупп - ???
Власенко
ИСЭ
Власенко
лаб работы - по лекциям
1 подруппа – Власенко
3 подгруппы - ???
Власенко
ИВТ
Власенко
Другие лаб работы
???
???
ИСТ
Власенко
Другие лаб работы
???
???
ПС
Власенко
Другие лаб работы
???
???
ПМ
Другие лекции
???
Другие лаб работы
???
???
МОАИС
Другие лекции
???
Другие лаб работы
???
???

39.

40. Что будет сегодня?


Знакомство со мной DONE
Знакомство с курсом DONE
Знакомство с Си
Язык Си:
– Комментарии
– Переменные
– Вывод строк
– Ввод и вывод переменных
• Разбор Лабораторной работы №1
• Решение технических вопросов
• Ответы на вопросы

41.

42. Основы программирования (на Си)

43. Основы программирования

• Почему «на Си»?

44. Си

• 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_%D
0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%B
E%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29

45. Языки программирования 8/2025

https://www.tiobe.com/tiobe-index/

46. Какие популярные языка произошли от Си

Язык
Место в TIOBE Index (08/2025)
Степень родства
C
3
0
C++
2
1
Java
4
2
C#
5
2
JavaScript
6
3
PHP
15
3
Objective-C
29
1

47. На чем будем писать?

• MS Visual Studio Community
??/2019/2017/2015
или
• MS Visual Studio Express 2015 для Windows
Desktop
или
• ???

48.

49. Лабораторная работа №1

ЛР! 1. Консольный вывод и ввод.
1.1. Текстовый вывод.
1.2. Ввод и вывод переменных.

50. Лабораторная работа №1.1

Задача 1.1.0. Hello world
Задача 1.1.1 Вывод информации об ученике
Задача 1.1.2. Вывод информации об ученике в обратном порядке
Задача 1.1.3. Вывод информации об ученике и в прямом и в
обратном порядке
Задача 1.1.4. В консоли при помощи printf сформирован
красивый рисунок, например такой:

51. Лабораторная работа №1.1

Задача 1.1.0. Hello world
Задача 1.1.1 Вывод информации об ученике
Задача 1.1.2. Вывод информации об ученике в обратном порядке
Задача 1.1.3. Вывод информации об ученике и в прямом и в
обратном порядке
Задача 1.1.4. В консоли при помощи printf сформирован
красивый рисунок, например такой:

52. Задача 1.1.0. Простейшая программа на Си

#include <stdio.h>
void main()
{
printf("Hello world!");
}

53. Задача 1.1.0. Ввод простейшей программы

54. Задача 1.1.0. Запуск простейшей программы

55. Задача 1.1.0. Hello World

1.
2.
3.
4.
5.
6.
7.
Запускаем MS VS (Microsoft Visual Studio)
Создаем проект
Добавляем файл для исходного кода
Набираем текст программы
Запускаем программу на выполнение
Побороть закрывающуюся консоль! (Если надо!!!)
Наслаждаемся видом работающей программы!

56. Hello World.1

57. Hello World.2.1

58. Hello World.2.2

59. Hello World.2.3

60. Hello World.2.4

61. Hello World.2.5

62. Hello World.3.1

63. Hello World.3.2

64. Hello World.3.3

65. Hello World.3.4

66. Hello World.3.5

67. Hello World.4

68. Hello World.5

69. Задача 1.1.0. Hello World

1.
2.
3.
4.
5.
6.
7.
Запускаем MS VS (Microsoft Visual Studio)
Создаем проект
Добавляем файл для исходного кода
Набираем текст программы
Запускаем программу на выполнение
Побороть закрывающуюся консоль! (Если надо!!!)
Наслаждаемся видом работающей программы!

70. Hello World.6.1

«Visual Studio — Если консоль открывается и сразу закрывается»
https://objectone.ru/c/mvs-2012/visual-studio-esli-konsol-otkryvaetsya-i-srazuzakryvaetsya/

71. Hello World.6.2

«Visual Studio — Если консоль открывается и сразу закрывается»
https://objectone.ru/c/mvs-2012/visual-studio-esli-konsol-otkryvaetsya-i-srazuzakryvaetsya/

72. Hello World.6.3

«Visual Studio — Если консоль открывается и сразу закрывается»
https://objectone.ru/c/mvs-2012/visual-studio-esli-konsol-otkryvaetsya-i-srazuzakryvaetsya/

73. Hello World.6.4

«Visual Studio — Если консоль открывается и сразу закрывается»
https://objectone.ru/c/mvs-2012/visual-studio-esli-konsol-otkryvaetsya-i-srazuzakryvaetsya/

74. Hello World.6.5

«Visual Studio — Если консоль открывается и сразу закрывается»
https://objectone.ru/c/mvs-2012/visual-studio-esli-konsol-otkryvaetsya-i-srazuzakryvaetsya/

75. Hello World.7

76. Hello World – код программы

#include <stdio.h>
void main()
{
printf("Hello World!");
}

77. Hello World – код программы

#include <stdio.h> // подключение стандартной библиотеки
void main() // точка входа в программу
{ // начало тела функции main
printf("Hello World!"); // вызов функции printf
} // конец тела функции main

78. Hello World – код программы

#include <stdio.h> // подключение стандартной библиотеки
void main() // точка входа в программу
{ // начало тела функции main
printf("Hello World!"); // вызов функции printf
} // конец тела функции main

79. Hello World – код программы

#include <stdio.h> // подключение стандартной библиотеки
// директива #include - включение в исходный код программы
// текста заголовочного файла stdio.h
// в заголовочном файле stdio.h объявлена функция printf
void main() // точка входа в программу
// void main() - заголовок функции main
// void – функция main не возвращает значений
// () – функция main не получает параметров (аргументов)
{ // начало тела функции main
printf("Hello World!"); // вызов функции printf
// printf – имя вызываемой функции
// ("Hello World!") – фактические параметры, передаваемые
// в функцию printf
// "Hello World!" – строка форматирования printf - что будет выведено
} // конец тела функции main

80.

81. Задача 1.1.1. Всё обо мне!

82. Задача 1.1.1. Всё обо мне! (выполнение)

83. Задача 1.1.2. Всё обо мне! (наоборот!)

Перемещение по редактору – стрелки, Home, End
Выделение текста – зажатый Shift ПЛЮС перемещение
Вырезать выделенный текст – Ctrl + X
Перемещение по редактору – стрелки, Home, End
Вставить ранее вырезанный текст – Ctrl + V
Отмена неудачного действия – Ctrl + Z

84. Задача 1.1.3. Всё обо мне – часть 3

Перемещение по редактору – стрелки, Home, End
Выделение текста – зажатый Shift ПЛЮС перемещение
Скопировать выделенный текст – Ctrl + C
Перемещение по редактору – стрелки, Home, End
Вставить ранее вырезанный текст – Ctrl + V
Отмена неудачного действия – Ctrl + Z

85. ЛР 1.1: Задания на закрепление и отработку

1.
Выкачать и установить на личном компьютере MS VS
2.
Если на личном компьютере нет возможности установить MS VS –
решить эту проблему, добыв доступ к компьютеру, где MS VS можно
установить, либо она уже установлена.
3.
Задача 4. При помощи printf и различных символов создать картинку –
логотип или что-то иное красивое.
4.
Принести в класс на следующее занятие домашнюю работу (Задачу 4) и
продемонстрировать ваши наработки преподавателю.

86. Важная информация по файлам

Где хранится файл с вашим кодом:
1. Выберите пункт «Сохранить _____ как…»

87. Важная информация.2

2. Ткните мышкой в папку

88. Важная информация.3

3. Будет выделено полное имя папки в которой находится файл с исходным
кодом
4. Нажмите Ctrl+C чтобы скопировать полное имя папки в буфер обмена.

89. Важная информация.4

5. Откройте Проводник (или любую другую программу для работы с файлами)

90. Важная информация.5

6. Ткните мышкой в папку

91. Важная информация.6

7. Нажмите Ctrl+V чтобы вставить полное имя папки из буфера обмена.

92. Важная информация.7

8. Нажмите Enter чтобы перейти к выбранной папке.
9. Теперь вы можете копировать все нужные вам файлы.
* Код программы хранится в файле Source.cpp

93. ИТОГО по лаб работе №1 (часть 1)

Задача 1.1.0. Hello world
Задача 1.1.1. Вывод информации об ученике
Задача 1.1.2. Вывод информации об ученике в обратном порядке
Задача 1.1.3. Вывод информации об ученике и в прямом и в
обратном порядке
Задача 1.1.4. В консоли при помощи printf сформирован красивый
рисунок, например такой:

94.

95. Кириллица

96. Hello World – код программы

#include <stdio.h>
void main()
{
printf("Hello World!");
}

97. Привет мир – код программы

#include <stdio.h>
#include <Windows.h>
void main()
{
printf("Hello World!");
printf("Привет мир");
}

98. Привет мир – код программы

#include <stdio.h> // подключение файла stdio.h
#include <Windows.h> // подключение файла Windows.h
void main()
{
printf("Hello World!"); // вызов функции printf
printf("Привет мир"); // вызов функции printf
}

99. Привет мир – код программы

#include <stdio.h>
#include <Windows.h>
void main()
{
printf("Hello World!");
printf("Привет мир");
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
printf("Hello World!");
printf("Привет мир");
}

100. Привет мир – код программы

#include <stdio.h> // подключение файла stdio.h
#include <Windows.h> // подключение файла Windows.h
void main()
{
printf("Hello World!"); // вызов функции printf
printf("Привет мир"); // вызов функции printf
SetConsoleCP(1251); // вызов функции SetConsoleCP
SetConsoleOutputCP(1251); // вызов функции SetConsoleOutputCP
printf("Hello World!"); // вызов функции printf
printf("Привет мир"); // вызов функции printf
}

101. Привет мир\n – код программы

#include <stdio.h>
#include <Windows.h>
void main()
{
printf("Hello World!\n");
printf("Привет мир\n");
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
printf("Hello World!\n");
printf("Привет мир\n");
}

102. Привет мир\

Управляющие последовательности (Escape последовательности)
Источник: https://codernet.ru/books/c_plus/programmirovanie_na_s_dlya_nachinayushhix_3-e_izd/

103. Переменные. Вывод. 1

// перевод скорости из м/сек в км/час
#include <stdio.h>
#include <Windows.h>
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
float v1, v2;
v1 = 10;
v2 = v1 * 3.6;
printf("Скорость в метрах в секунду=");
printf("%f\n", v1);
printf("Скорость в километрах в час=%f", v2);
}

104. Переменные. Вывод. 1

// перевод скорости из м/сек в км/час
#include <stdio.h>
#include <Windows.h>
void main()
{
SetConsoleCP(1251); // вызов функции SetConsoleCP
SetConsoleOutputCP(1251); // вызов функции SetConsoleCP
float v1, v2; // определение переменных v1 и v2. Тип вещественный
v1 = 10; // присвоение переменной v1 значения 10
v2 = v1 * 3.6; // присвоение переменной v2 результата вычисления
// выражения v1 * 3.6
printf("Скорость в метрах в секунду="); // вызов функции printf
printf("%f\n", v1); // вызов функции printf
printf("Скорость в километрах в час=%f", v2); // вызов функции printf
}

105. Переменные. Вывод. 2

106. Переменные. Вывод. 3

107. Вывод - printf

Источник: https://codernet.ru/books/c_plus/programmirovanie_na_s_dlya_nachinayushhix_3-e_izd/

108. Переменные - типы

Источник: https://codernet.ru/books/c_plus/programmirovanie_na_s_dlya_nachinayushhix_3-e_izd/

109. Основные операции операторы

Источник: https://codernet.ru/books/c_plus/programmirovanie_na_s_dlya_nachinayushhix_3-e_izd/

110. Комментарии в программе

Для чего используются комментарии:
1) Для пояснения кода
2) Для временного отключения части кода

111. Комментарии в программе

Для чего используются комментарии:
1) Для пояснения кода
2) Для временного отключения части кода

112. Комментарии в программе

Для чего используются комментарии:
1) Для пояснения кода
2) Для временного отключения части кода

113. Комментарии в программе

Какие виды комментариев могут быть
1) Строчные – от // до конца строки
Ctrl+K+C Закомментировать строчными комментариями выделенные строки
Ctrl+K+U Раскомментировать строчные комментарии для выделенных строк

114. Комментарии в программе

Какие виды комментариев могут быть
2) Блочные от /* до */ в любом месте программы дальше по тексту

115. Ввод информации.

// перевод скорости из м/сек в км/час
#include <stdio.h>
#include <Windows.h>
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
float v1, v2;
printf("Введите скорость в метрах в секунду=");
scanf_s("%f", &v1);
v2 = v1 * 3.6;
printf("Скорость в метрах в секунду=");
printf("%f\n", v1);
printf("Скорость в километрах в час=%f", v2);
}

116. Ввод информации.

// перевод скорости из м/сек в км/час
#include <stdio.h>
#include <Windows.h>
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
float v1, v2; // определение переменных v1 и v2
printf("Введите скорость в метрах в секунду=");
scanf_s("%f", &v1); // %f - ввод вещественного значения с клавиатуры
// и присвоение введенного значения переменной v1
v2 = v1 * 3.6;
printf("Скорость в метрах в секунду=");
printf("%f\n", v1);
printf("Скорость в километрах в час=%f", v2);
}

117. Ввод информации.

// перевод скорости из м/сек в км/час
#include <stdio.h>
#include <Windows.h>
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
float v1, v2; // определение переменных v1 и v2
printf("Введите скорость в метрах в секунду=");
scanf_s("%f", &v1); // %f - ввод вещественного значения с клавиатуры
// и присвоение введенного значения переменной v1
// v1 – имя переменной
// &v1 – адрес переменной (номер ячейки памяти)

118. Ввод информации.2

Программа в консоли ждет ввода числа

119. Ввод информации.3

Введите число «20» и нажмите Enter

120. Ввод информации.4

После нажатия Enter программа выполнила вычисления и вывела результат в консоль

121.

122. Знакомство с простейшими функциями в Си**

123. Простейшие функции

#include <stdio.h>
void a() {
printf("Hello! It is a()!\n");
}
void main() {
printf("Hello! It is main()!\n");
a();
}

124. Точка входа в программу

#include <stdio.h>
void a() {
printf("Hello! It is a()!\n");
}
void main() {
printf("Hello! It is main()!\n");
a();
}
Точка входа
https://ru.wikipedia.org/wiki/%D0%A2%D0%BE%D1%87%D0%BA%D0%B0_
%D0%B2%D1%85%D0%BE%D0%B4%D0%B0
Точка входа (англ. Entry Point (EP) — точка входа) — адрес в
оперативной памяти, с которого начинается выполнение программы.
Другими словами — адрес, по которому хранится первая команда
программы.
Однако не надо путать её с «первыми командами» программы на языке
высокого уровня. Например, программа на C++ начинается с функции
main(). На самом деле, выполнение такой программы происходит
далеко не с первой команды этой функции: точка входа в программу
будет находиться в библиотеке времени исполнения «C runtime», а
процедура main() назначится точкой входа в пользовательский код.

125. Использование до определения

126. Объявление, определение и вызов функции

#include <stdio.h>
// это - ОБЪЯВЛЕНИЕ функции a()
void a();
// это - ОПРЕДЕЛЕНИЕ функции main()
void main() {
// это ВЫЗОВ функции printf()
printf("Hello! It is main()!\n");
// это ВЫЗОВ функции a()
a();
}
// это - ОПРЕДЕЛЕНИЕ функции a()
void a() {
// это ВЫЗОВ функции printf()
printf("Hello! It is a()!\n");
}

127. В Си НЕЛЬЗЯ вкладывать функции друг в друга

#include <stdio.h>
void a();
void main() {
printf("Hello! It is main()!\n");
void a() {
printf("Hello! It is a()!\n");
}
a();
}

128.

129. Лабораторная работа №1 (часть 2)

Ввод и вывод переменных

130. Задача 1.2.1. Падение с высоты. 1

Задается высота (“hard coded”), с которой падает предмет.
Нужно рассчитать, через сколько секунд предмет коснётся земли.

131. Задача 1.2.1. Падение с высоты. 2

Задается высота (“hard coded”), с которой падает предмет.
Нужно рассчитать, через сколько секунд предмет коснётся земли.

132. Задача 1.2.2. Падение с высоты

Вводится высота, с которой падает предмет.
Нужно рассчитать, через сколько секунд предмет коснётся земли.

133. Задача 1.2.2. Падение с высоты 2

Вводится высота, с которой падает предмет.
Нужно рассчитать, через сколько секунд предмет коснётся земли.

134. Задача 1.2.2. Падение с высоты 3

Запустите программу. Введите высоту 12 метров.

135. Задача 1.2.2. Падение с высоты 4

Запустите программу. Введите высоту 20 метров.

136. Задача 1.2.3. Покупаем квартиру

Вводится площадь квартиры и стоимость квадратного метра.
Выводится сколько будет стоить эта квартира.

137. Задача 1.2.3. Покупаем квартиру

Вводится площадь квартиры и стоимость квадратного метра.
Выводится сколько будет стоить эта квартира.

138. Задача 1.2.3. Покупаем квартиру

Вводится площадь квартиры и стоимость квадратного метра.
Выводится сколько будет стоить эта квартира.

139. Задача 1.2.4. Покупаем квартиру - время

Вводится площадь квартиры и стоимость квадратного метра.
Вводится зарплата в месяц.
Выводится сколько будет стоить эта квартира.
Выводится сколько месяцев нужно будет собирать деньги на квартиру, при
условии что 50% зарплаты можно откладывать на квартиру.

140. ЛР1.2: Задания на закрепление и отработку

Выкачать и установить MS VS на личном компьютере или на том компьютере,
которым вы будете пользоваться для выполнения домашних заданий и
лабораторных работ по Си.
Задача 1.2.5. Из курса математики взять простую расчетную задачу и реализовать
её на Си. (например, вычисление площади, или объема, или корня уравнения, или
что-то подобное – по известной из курса математики формуле и/или алгоритму)
Задача 1.2.6. Взять из курса физики/химии или других прикладных предметов (не
математики) идею для расчетной задачи и реализовать её (например, вычисление
скорости, давления, времени, силы тока и т.п.).
Задача 1.2.7. Взять из повседневной жизни или прикладной экономической жизни
идею и реализовать расчетную задачу (например, расчет времени возвращения
кредита, расчет переплаты за кредит и т.п.)
В итоге у каждого должно быть 3 уникальных задачи.
Если задачи не уникальны – кто первым сдал – тот и автор, остальные придумывают
и реализуют другие варианты. Все задачи должны быть принесены на следующее
занятие в классе и там сданы.

141. ИТОГО по лекции 1

1.
2.
3.
4.
Познакомились
Выяснили зачем мы здесь – зачем я, зачем вы
Выяснили что предстоит сделать за семестр
Выяснили что будем изучать Си и почему именно Си
5. Узнали как выглядит простейшая программа на Си
6. Узнали как в IDE MS VS набрать и запустить простейшую Си программу
7. Узнали как редактировать текст программы на Си в IDE MS VS
8. Узнали как запустить программу на Си в IDE MS VS
9. Узнали как определяются переменные
10. Услышали про разные типы данных (int, float и др.)
11. Узнали как выводятся значения и переменные в консоль (printf)
12. Узнали как вводятся значения и переменные в консоли (scanf_s)
13. Узнали зачем нужны комментарии и каких двух видов они есть
14. Узнали что нужно сделать в лаб работе №1

142. Изученные термины 1

Директива (препроцессора) #include
Неименованные целочисленные константы
Неименованные вещественные константы
Неименованные строковые константы
Идентификатор
Определение переменных
Инициализация переменных
Стандартные типы данных – целые
Стандартные типы данных – вещественные
Оператор & (взятие адреса)
Выражения
Операторы арифметические
Оператор присваивания
Точка входа в программу
Функция main
Функция, не возвращающая значений (VOID)
Блок кода {}

143. Изученные термины 1

Директива (препроцессора) #include
Неименованные целочисленные константы
Неименованные вещественные константы
Неименованные строковые константы
Идентификатор
Определение переменных
Инициализация переменных
Стандартные типы данных – целые
Стандартные типы данных – вещественные
Оператор & (взятие адреса)
Выражения
Операторы арифметические
Оператор присваивания
Точка входа в программу
Функция main
Функция, не возвращающая значений (VOID)
Блок кода {}
#include <stdio.h>
int val1 = 9;
v2 = v1 * 3.6;
printf("Hello World!");
int val1 = 9; void main() { printf(“Hi”);}
int val1 = 9; float v1, v2;
int val1 = 9;
int val1 = 9;
float v1, v2;
scanf_s("%d", &v);
v2 = v1 * 3.6;
v2 = v1 * 3.6;
v2 = v1 * 3.6;
void main() { }
void main() { }
void main() { }
void main() { }

144. Изученные термины 2

Строчные комментарии
Блочные комментарии
Консольный вывод – printf
Консольный ввод – scanf/scanf_s
Строка форматирования функций scanf/printf
Escape-последовательности - \t, \” и др.
Определение функции
Объявление функции
Вызов функции
Формальные параметры функции
Фактические параметры функции

145. Изученные термины 2

Строчные комментарии
Блочные комментарии
Консольный вывод – printf
Консольный ввод – scanf/scanf_s
Строка форматирования функций scanf/printf
Escape-последовательности - \t, \” и др.
Определение функции
Объявление функции
Вызов функции
Формальные параметры функции
Фактические параметры функции
float v1, v2; //определение v1 и v2
float v1, v2; /*определение v1 и v2*/
printf("Hello World!");
scanf_s("%d", &v);
scanf_s("%d", &v);
printf("Hello World!\n");
void main() { printf("Hello World!"); }
void main();
scanf_s("%d", &v);
void main() { printf("Hello World!"); }
scanf_s("%d", &v);

146. Что почитать про Си - для начинающих

1. Программирование на С для начинающих. 3-е изд.
Грег Перри, Дин Миллер
https://codernet.ru/books/c_plus/programmirovanie_na_s_dly
a_nachinayushhix_3-e_izd/
English     Русский Правила