Первый слайд презентации
Лекция 2. Комментарии. Вызов функций. Константы. Переменные. Вывод и Ввод переменных. Развилка – полная и усеченная. Логические операции. ЛР 2. Ввод и вывод переменных. ЛР 3. Развилки. Индивидуальный проект КЭИ УлГТУ 1 курс Власенко Олег Федосович SimbirSoft
Слайд 3: Hello World – код программы
#include < stdio.h > void main() { printf ("Hello World!"); }
Слайд 4: Hello World – код программы
#include < stdio.h > // подключение стандартной библиотеки void main() // точка входа в программу { // начало тела функции main printf ("Hello World!"); // вызов функции printf } // конец тела функции main
Слайд 5: 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
Слайд 6: Привет мир – код программы
#include < stdio.h > #include < Windows.h > void main() { printf ("Hello World!"); printf ("Привет мир"); }
Слайд 7: Привет мир – код программы
#include < stdio.h > // подключение файла stdio.h #include < Windows.h > // подключение файла Windows.h void main() { printf ("Hello World!"); // вызов функции printf printf ("Привет мир"); // вызов функции printf }
Слайд 8: Привет мир – код программы
#include < stdio.h > #include < Windows.h > void main() { printf ("Hello World!"); printf ("Привет мир"); SetConsoleCP (1251); SetConsoleOutputCP (1251); printf ("Hello World!"); printf ("Привет мир"); }
Слайд 9: Привет мир – код программы
#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 }
Слайд 10: Привет мир \ 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 "); }
Слайд 11: Привет мир\ n – вопросы
#include < stdio.h > // что такое stdio.h ? #include < Windows.h > // что такое #include ? void main() // что такое void ? { // что такое { ? printf ("Hello World!\n"); // что такое printf ? printf (" Привет мир\ n"); // что такое " Привет мир\ n" ? SetConsoleCP (1251); // что такое SetConsoleCP ? SetConsoleOutputCP (1251); // что такое 1251 ? printf ("Hello World!\n"); // что такое printf ? printf (" Привет мир\ n"); // что такое " Привет мир\ n" ? } // что такое } ?
Слайд 12: Привет мир\
Управляющие последовательности ( Escape последовательности) Источник: https://codernet.ru/books/c_plus/programmirovanie_na_s_dlya_nachinayushhix_3-e_izd/
Слайд 13: Константы и Переменные
Константа — это число, символ или символьная строка, которую можно использовать в программе в качестве значения. Константы служат для представления значений с плавающей запятой, целых чисел, перечислений или символов, изменение которых невозможно. https://learn.microsoft.com/ru-ru/cpp/c-language/c-constants?view=msvc-170 Переменная простыми словами — это хранилище данных. Сюда можно положить какое-то значение (например, число, строку или другой тип данных). https://www.progkids.com/blog/what-is-a-variable В программировании переменная — это имя для хранимых в оперативной памяти компьютера данных, по которому мы можем обращаться к ним неоднократно. https://education.yandex.ru/handbook/data-analysis/article/pandan-peremennye-v-programmirovanii Переменная в С - именованная область памяти, имеющая определенный тип. Данные, находящиеся в переменной (то есть по ее адресу в памяти), называются значением этой переменной. https://ejudge.179.ru/tasks/cpp/total/015.html
Слайд 14: Константы и Переменные
// перевод скорости из м / сек в км / час #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 ); }
Слайд 15: Константы – целые, вещественные, строковые, символьные
// перевод скорости из м / сек в км / час #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 ); }
Слайд 16: Переменные. Вывод. 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 ); }
Слайд 17: Переменные. Вывод. 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 }
Слайд 20: Вывод - printf
Источник: https://codernet.ru/books/c_plus/programmirovanie_na_s_dlya_nachinayushhix_3-e_izd/
Слайд 21: Переменные - типы
Источник: https://codernet.ru/books/c_plus/programmirovanie_na_s_dlya_nachinayushhix_3-e_izd/
Слайд 22: Основные операции операторы
Источник: https://codernet.ru/books/c_plus/programmirovanie_na_s_dlya_nachinayushhix_3-e_izd/
Слайд 23: Комментарии в программе
Для чего используются комментарии: Для пояснения кода Для временного отключения части кода
Слайд 24: Комментарии в программе
Для чего используются комментарии: Для пояснения кода Для временного отключения части кода
Слайд 25: Комментарии в программе
Для чего используются комментарии: Для пояснения кода Для временного отключения части кода
Слайд 26: Комментарии в программе
Какие виды комментариев могут быть Строчные – от // до конца строки Ctrl+K+C Закомментировать строчными комментариями выделенные строки Ctrl+K+U Раскомментировать строчные комментарии для выделенных строк
Слайд 27: Комментарии в программе
Какие виды комментариев могут быть 2) Блочные от /* до */ в любом месте программы дальше по тексту
Слайд 28: Ввод информации
// перевод скорости из м / сек в км / час #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 ); }
Слайд 29: Ввод информации
// перевод скорости из м / сек в км / час #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 ); }
Слайд 30: Ввод информации
// перевод скорости из м / сек в км / час #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 – адрес переменной (номер ячейки памяти)
Слайд 33: Ввод информации. 4
После нажатия Enter программа выполнила вычисления и вывела результат в консоль
Слайд 36: Простейшие функции
#include < stdio.h > void a() { printf ( "Hello! It is a()!\n" ); } void main() { printf ( "Hello! It is main()!\n" ); a(); }
Слайд 37: Точка входа в программу
#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 () назначится точкой входа в пользовательский код.
Слайд 39: Объявление, определение и вызов функции
#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" ); }
Слайд 40: В Си НЕЛЬЗЯ вкладывать функции друг в друга
#include <stdio.h> void a(); void main() { printf( "Hello! It is main()!\n" ); void a() { printf("Hello! It is a()!\n"); } a(); }
Слайд 42: Объявление, определение и вызов функции - вопросы
#include < stdio.h > // что такое #include < stdio.h > ? // что такое stdio.h ? void c(); // что такое void c(); ? // что такое c ? void main() { // что такое void main() { ? // что такое main ? c(); // что такое c(); ? // что такое c ? printf ( "Bye!\n" ); // что такое printf (“Bye!\n"); ? // что такое printf ? } void c() { // что такое void c() { ? // что такое c ? printf ( "It is c()!\n" ); // что такое printf ("It is c()!\n"); ? // что такое printf ? }
Слайд 43: Объявление, определение и вызов функции - вопросы
#include < stdio.h > // что такое #include < stdio.h > ? // что такое stdio.h ? void c(); // что такое void c(); ? // что такое c ? void main() { // что такое void main() { ? // что такое main ? c(); // что такое c(); ? // что такое c ? printf ( "Bye!\n" ); // что такое printf ("Bye!\n"); ? // что такое printf ? } void c() { // что такое void c() { ? // что такое c ? printf ( "It is c()!\n" ); // что такое printf ("It is c()!\n"); ? // что такое printf ? } Что выведет эта программа?
Слайд 46: Задача 1. Падение с высоты. 1
Задается высота ( “hard coded” ), с которой падает предмет. Нужно рассчитать, через сколько секунд предмет коснётся земли.
Слайд 47: Задача 1. Падение с высоты. 2
Задается высота ( “hard coded” ), с которой падает предмет. Нужно рассчитать, через сколько секунд предмет коснётся земли.
Слайд 48: Задача 2. Падение с высоты (с вводом)
Вводится высота, с которой падает предмет. Нужно рассчитать, через сколько секунд предмет коснётся земли.
Слайд 49: Задача 2. Падение с высоты (с вводом). 2
Вводится высота, с которой падает предмет. Нужно рассчитать, через сколько секунд предмет коснётся земли.
Слайд 50: Задача 2. Падение с высоты (с вводом). 3
Запустите программу. Введите высоту 12 метров.
Слайд 51: Задача 2. Падение с высоты (с вводом). 4
Запустите программу. Введите высоту 20 метров.
Слайд 52: Задача 3. Покупаем квартиру
Вводится площадь квартиры и стоимость квадратного метра. Выводится сколько будет стоить эта квартира.
Слайд 53: Задача 3. Покупаем квартиру
Вводится площадь квартиры и стоимость квадратного метра. Выводится сколько будет стоить эта квартира.
Слайд 54: Задача 3. Покупаем квартиру
Вводится площадь квартиры и стоимость квадратного метра. Выводится сколько будет стоить эта квартира.
Слайд 55: Задача 4. Покупаем квартиру - время
Вводится площадь квартиры и стоимость квадратного метра. Вводится зарплата в месяц. Выводится сколько будет стоить эта квартира. Выводится сколько месяцев нужно будет собирать деньги на квартиру, при условии что 50% зарплаты можно откладывать на квартиру.
Слайд 56: ЛР2: Задания на закрепление и отработку
ТОЧНО УЖЕ Выкачать и установить MS VS на личном компьютере или на том компьютере, которым вы будете пользоваться для выполнения домашних заданий и лабораторных работ по Си. Задача 5. Из курса математики взять простую расчетную задачу и реализовать её на Си. (например, вычисление площади, или объема, или корня уравнения, или что-то подобное – по известной из курса математики формуле и / или алгоритму) Задача 6. Взять из курса физики / химии или других прикладных предметов (не математики) идею для расчетной задачи и реализовать её (например, вычисление скорости, давления, времени, силы тока и т.п.). Задача 7. Взять из повседневной жизни или прикладной экономической жизни идею и реализовать расчетную задачу (например, расчет времени возвращения кредита, расчет переплаты за кредит и т.п.) В итоге у каждого должно быть 3 уникальных задачи. Если задачи не уникальны – кто первым сдал – тот и автор, остальные придумывают и реализуют другие варианты. Все задачи должны быть принесены на следующее занятие в классе и там сданы.
Слайд 59: Развилка ( if )
Развилка представляет собой блок выбора (проверка условия), у которого есть 2 альтернативных выхода. https://prog-cpp.ru/algorithm-structure/ Неполная развилка выполняет последовательность операций только по одной из веток. Реализация неполной развилки в Си имеет вид: Полная развилка выполняет последовательность операций по каждой из двух веток (при выполнении или невыполнении условия). Реализация неполной развилки в Си имеет вид:
Слайд 61: Найти максимум - полная развилка
Фрагмент кода: if (val1 > val2) { max_val = val1; } else { max _ val = val 2; }
Слайд 63: Минимум из 3 чисел
#include < stdio.h > void main() { int val1 = 9; int val2 = 10; int val3 = 6; int min_val = val1; // берем за минимальный val1 if (val2 < min_val ) { // если второе меньше min_val = val2; // то теперь минимальное val2 } if (val3 < min_val ) { // если третье меньше min_val = val3; // то теперь минимальное val3 } printf (" min_val = %d", min_val ); }
Слайд 64: Развилки – используемые операторы
Источник: https://codernet.ru/books/c_plus/programmirovanie_na_s_dlya_nachinayushhix_3-e_izd/
Слайд 65: Логические операторы
Оператор Описание && Логическое И ( AND) || Логическое ИЛИ (OR) ! Логическое унарное НЕ (NOT) A !A Ложь Истина Истина Ложь A B A && B A || B Ложь Ложь Ложь Ложь Ложь Истина Ложь Истина Истина Ложь Ложь Истина Истина Истина Истина Истина if (time < 7.00 || day > = 6 ) rest(); if ( ! closed && money > 1000) eat();
Слайд 66: Штраф за превышение скорости – усеченная развилка
#include < stdio.h > void main() { // Максимально разрешенная скорость v_max = 60 км / час int v; // Реальная скорость! scanf_s ("%d", &v); // ввод реальной скорости v if (v <= 60) { // <= v_max printf (" Все по правилам!"); } if ((v > 60) && (v <= 80)) { // <= v_max + 20 printf (" не штрафуется"); } if ((v > 80) && (v <= 100)) // <= v_max + 40 printf ("500"); } if ((v > 100) && (v <= 120)) { // <= v_max + 60 printf ("1000-1500"); } if ((v > 120) && (v <= 140)) { // <= v_max + 80 printf ("2000-2500"); } if (v > 140) { // > v_max + 80 printf ("5000"); } }
Слайд 67: Штраф за превышение скорости – усеченная развилка
#include < stdio.h > void main() { // Максимально разрешенная скорость v_max = 60 км / час int v; // Реальная скорость! scanf_s ("%d", &v); // ввод реальной скорости v if (v <= 60) { // <= v_max printf (" Все по правилам!"); } if ((v > 60) && (v <= 80)) { // <= v_max + 20 printf (" не штрафуется"); } if ((v > 80) && (v <= 100)) // <= v_max + 40 printf ("500"); } if ((v > 100) && (v <= 120)) { // <= v_max + 60 printf ("1000-1500"); } if ((v > 120) && (v <= 140)) { // <= v_max + 80 printf ("2000-2500"); } if (v > 140) { // > v_max + 80 printf ("5000"); } }
Слайд 70: Задача 1. Какое число больше?
Ввести два числа. Вывести бОльшее число. И вывести меньшее число.
Слайд 71: Задача 1. Какое число больше? (2)
Ввести два числа. Вывести большее число. И вывести меньшее число.
Слайд 73: Задача 2. Максимум из 3 чисел
Ввести три целых числа. Вывести самое большее из введенных чисел.
Слайд 74: Задача 2. Максимум из 3 чисел (2)
Ввести три целых чисел. Вывести самое большее из введенных чисел. В этом коде не хватает сколько-то строк – нужно их добавить!
Слайд 75: Задача 2. Максимум из 3 чисел ( 3 )
Самостоятельно – нарисуйте блок схему для задачи.
Слайд 76: Задача 3. Тепло-холодно
Вводится температура в помещении. Нужно вывести: если температура ниже +18 – «холодно» От +18, но ниже +22 – «прохладно» От +22, но ниже +26 – «тепло» От +26 и выше – «жарко» Нужно сделать: Код программы Подобрать тесты, чтобы проверить все ситуации. После проверки тестами – нарисовать блок схему.
Слайд 77: Задача 3. Тепло-холодно (2)
тесты, чтобы проверить все ситуации: № Что выводим Вход 1 холодно 10 2 прохладно 20 3 тепло ? 4 жарко ?
Слайд 78: Задача 4*. Максимум из 5 чисел
Ввести пять целых чисел. Вывести самое большее из введенных чисел.
Слайд 79: ЛР 3: Задания на закрепление и отработку
Задача 5. Придумать задачу на «мороз» / «холодно» / «тепло» / «жарко» - для выбранной местности и выбранного сезона. Обосновать выбор параметров. Реализовать задачу – код, тесты, блок-схема. (4 диапазона значений – как в задаче 3) Задача 6. Придумать задачу на «дешево» / «нормально» / «дорого» / «ужас дорого». Обосновать выбор параметров. Реализовать задачу – код, тесты, блок-схема. (4 диапазона значений – как в задаче 3) Задача 7*. Придумать задачу на «очень медленно» / «медленно» / «нормально» / «быстро» / «очень быстро» / «мгновенно». Обосновать выбор параметров. Реализовать задачу – код, тесты. (6 диапазонов значений) В итоге у каждого будет реализовано по 5-7 задач, к задачам 2, 5 и 6 у вас будет по блок-схеме. ВАЖНО! Не стоит как либо усложнять код! Это всегда не полезно, особенно, если вам по этому коду нужно сделать блок-схему!
Слайд 81: ИТОГО по лекции
Узнали как определяются переменные Услышали про разные типы данных ( int, float и др.) Узнали как выводятся значения и переменные в консоль ( printf ) Узнали как вводятся значения и переменные в консоли ( scanf_s ) Узнали как работают развилки Узнали, что развилки бывают полные и усеченные Узнали, какие есть операторы сравнения Узнали, какие есть операторы логические Узнали про приоритет операторов Узнали зачем нужны комментарии и каких двух видов они есть Узнали как рисуются блок-схемы для линейного алгоритма и для развилки
Слайд 82: Изученные термины 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() { }
Слайд 83: Изученные термины 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) ;
Слайд 84: Изученные термины 3
Инструкции Си – развилка – полная Инструкции Си – развилка – усеченная if (val1 > val2) max_val = val1; else max _ val = val 2 ; if (val2 < min_val ) min_val = val2 ;
Слайд 85: Привет мир\ n – вопросы
#include < stdio.h > // что такое stdio.h ? #include < Windows.h > // что такое #include ? void main() // что такое void ? { // что такое { ? printf ("Hello World!\n"); // что такое printf ? printf (" Привет мир\ n"); // что такое " Привет мир\ n" ? SetConsoleCP (1251); // что такое SetConsoleCP ? SetConsoleOutputCP (1251); // что такое 1251 ? printf ("Hello World!\n"); // что такое printf ? printf (" Привет мир\ n"); // что такое " Привет мир\ n" ? } // что такое } ?
Слайд 86: Объявление, определение и вызов функции - вопросы
#include < stdio.h > // что такое #include < stdio.h > ? // что такое stdio.h ? void c(); // что такое void c(); ? // что такое c ? void main() { // что такое void main() { ? // что такое main ? c(); // что такое c(); ? // что такое c ? printf ( "Bye!\n" ); // что такое printf ("Bye!\n"); ? // что такое printf ? } void c() { // что такое void c() { ? // что такое c ? printf ( "It is c()!\n" ); // что такое printf ("It is c()!\n"); ? // что такое printf ? }
Слайд 87: Еще раз – операции / операторы
Источник: https://codernet.ru/books/c_plus/programmirovanie_na_s_dlya_nachinayushhix_3-e_izd/
Последний слайд презентации: Лекция 2. Комментарии. Вызов функций. Константы. Переменные. Вывод и Ввод: Что почитать про Си - для начинающих
Программирование на С для начинающих. 3-е изд. Грег Перри, Дин Миллер https://codernet.ru/books/c_plus/programmirovanie_na_s_dlya_nachinayushhix_3-e_izd/