Step 1 (S-37933)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/13021/step/1

Step 1 (S-37933) 1.png

[00:00 - 00:16] привет соня ответила нет если вы его нашли значит настроенного серьезных сегодня будем учиться читать писать и считать как 1 классе вас будут белочке орешки мячик и все что положено сразу перейдем к практике


Step 1 (S-37933) 2.png

[00:16 - 00:33] напишем программу которая почитает нам результат такого арифметического выражения например 2 + 3 умножить на 5 записываем обычным способом плюсы скобочки числа и умножить проводим сияют со стрелочками мы уже умеем это делать запустим программу


[00:33 - 00:53] и действительно получил 25 операций + - умножь точно такие же как математике все + + немного отличается от рации разделить и почитать остатка посмотрим пример пусть нас есть 10 орешков и 3 которые хотят разделить эти орешки пору 10 мы делим на 3


Step 1 (S-37933) 3.png

[00:53 - 01:07] и получаем целую часть 3 то есть каждый должен ставить патря решка остаток от деления 10 натрий будет равен единице а динариев белочка не удалось определить они закопали его под елкой также все + + начинается операция взятия остатка от деления отрицательного числа на положительно


Step 1 (S-37933) 4.png

[01:07 - 01:23] рассмотрим на примере пусть трое ребят играли в футбол и разбили здесь стекол если бы ребята были математиками и решили купить каждый по определенному количеству стекол чтобы оставить все как нужно то они купили бы 4 стекла и 2 стекла в них осталось лишней


[01:23 - 01:39] ребята программист на си + + поставь по другому они купят каждой по 3 стекла стекло так и останется выбиться в общем случае остатка от деления отрицательного числа на положительное + + можно описать так мы берем число по модулю что там остаток от деления и затем припишем перед результатам -


Step 1 (S-37933) 5.png

[01:39 - 01:56] итак мы научились писать программу которая читает результаты финикийского выражения вряд ли кто то купит у вас такой программы скачать бесплатно чтобы добиться успеха нужно сделать так чтобы наша программа читала какие то определенные числа ну хотя бы складывал их мечтал или дело с ними какие то арифметических действий


[01:56 - 02:13] для того чтобы эту работу нам понадобится перемены в котором можно хранить те значения которые ввел пользователь примерно можно представить себе как коробочки в которой можно класть например числа вообще наша программа будет жить в таком кабинете в котором есть на конвейер


[02:13 - 02:28] панаму конвейеру числа приходят нас кабинет а по другому выходит когда программа начинает свою работу можно считать что приходит в этот кабинет в котором стоят коробки с чьим то чужим вещами они уже больше не нужны но пока что там лежит клад пользоваться ими нельзя


[02:28 - 02:46] завести переменную это какой нибудь коробок и маркером написать на ней название инициализировать переменные это значит положить туда какое то значение например там коробке стоял мы берем число которое ввел пользователь который приехал к нам по конвейеру и кладем в эту коробку теперь мы можем обращаться к этому числу


Step 1 (S-37933) 6.png

[02:46 - 03:02] мы также могут участвовать в сражении на их место подставляется то число которое лежит них сразу посмотрим например создать переменной мы пишем слова int int от сокращение от integer целое число по английски затем мы пишем на переменах


[03:02 - 03:19] пример i б мы хотим считать перемены это пишется ин ции консоль от как раз тот конверт которому к нам в кабинет приезжает числа вводим стрелочки вправо которое означает что мы забираем оттуда


Step 1 (S-37933) 7.png

Step 1 (S-37933) 8.png

[03:19 - 03:34] забираем оттуда число а это означает что 1 приехавшая число мы кладем в коробочку с надписью а 2 в коробочку с надписью bang it out вот ответ кладем в конвейер на выезд


Step 1 (S-37933) 9.png

[03:34 - 03:52] результат арифметическое выражение а пример а + б запустите программу числа нужно вводить через пробел и в конце нажимать энтер запускает программу смотрим и действительно научилась складывать числа которым мы вводим


Step 1 (S-37933) 10.png

[03:52 - 04:07] переменные в си + + имеет ограничения это как и в жизни маленькую коробочку нельзя площадь слишком большой предмет переменная типа им занимает 32 бит в них можно хранить числа от - 2000000000 до + 2000000000 во всех наших задачах входные данные ответ и промежуточного в числе не будут лежать быть


[04:07 - 04:23] пределах во всех задачах тестирую системе строго зам формат входных выходных данных обычно просто считаем данное и выводим ответ а если мы хотим сделать красиво то действовать по другому например наша задача сложить 2 числа но не просто вывести ответ


[04:23 - 04:40] а сделать так чтобы было видно что выражения например мы ведем 2 и 3 можно печатать 2 + 3 равно 5 как это делать опять же пользуемся для вывода сначала выйдем число а то что лежит в переменной а затем


[04:40 - 04:58] плюсик поскольку строка опишем ее войны кавычках затем мы вводим значения переменной б после этого в красивом вводим равно закончила строка так что я сделал отдельный сериал чтобы не влезал за экран


[04:58 - 05:13] а я перепутал направление стрелочек выше кладем тут петя сразу подчеркнуло красным и сразу все поправим


[05:13 - 05:28] итак мы остановились на равно и вводим результат посмотрим 2 + 3 читать не интересно что очень большое вводить переменной можно через пробел можно каждой новой строки


Step 1 (S-37933) 11.png

[05:28 - 05:46] ура теперь добавим в нашей программе вывод еще и а - б по налоги 1 чтобы не писать в эту зону + меня на - как строки так и при подсчете выражения


Step 1 (S-37933) 12.png

[05:46 - 06:02] вводим наша числа прошлый раз меня получилось классно ой все очень плохо смотреть числа слиплись между собой


Step 1 (S-37933) 13.png

Step 1 (S-37933) 14.png

[06:02 - 06:18] почему это произошло потому что си + + делать строго то что вы ему написали специально выводить он говорил нам нужно разделить эти числа что бы каждая из них печаталось на новой строке для этого после вывода


Step 1 (S-37933) 15.png

Step 1 (S-37933) 16.png

[06:18 - 06:33] 1 строчке добавить слово and line перевод на новую строку запустим


Step 1 (S-37933) 17.png

[06:33 - 06:49] и вуаля каждый печатать самодельный строки то есть если вы хотите чтобы вас был перевод строки печет телу и следующее утро воть уже со следующей строки сейчас мы решим более сложную задачу например из школьной физики пусть у нас летел самолет


Step 1 (S-37933) 18.png

[06:49 - 07:06] нем был пассажир который ошибся дверью случайно вышла статья он летел в течение 3 секунд сколько метров он пролетел 3 тем как упасть решить задачку какие перемены нам понадобятся во 1 ускорение свободного падения целое число от пусть будет 10


[07:06 - 07:21] как видите мы будем считать переменной постепенно чтобы нас не было восьмиэтажных форм что нам понадобится скорость время которой мы считываем ну и по ходу дела разберемся что еще


[07:21 - 07:37] время нам дает пользователь пассажиру тел t секунд до какой скоростью он разогнался же умножить на т с такой скоростью пассажира приземлилось при этом летела со средней скоростью


[07:37 - 07:53] давайте посчитаем я тоже модель например в средние переменные можно звонить прямо там где она понадобилась она равна средней скоростью и


[07:53 - 08:08] расстояние ps такой пример у нас тоже нет создадим я равно средняя скорость умножить на время о точка с запятой


[08:08 - 08:22] выводим сколько наш пассажир пусть он летел 100 секунд чуть больше полутора минут 50000 м самолет не летает на такой высоте от и старт мы пренебрегли сопротивления воздуха


Step 1 (S-37933) 19.png

[08:22 - 08:38] сегодняшний задач практического занятия будут довольно сложно придется вспомнить олимпиаду математику 5 6 класса давайте посмотрим на примере как можно сделать довольно сложную вещь нас есть операция деления нацело с округлением вниз


[08:38 - 08:53] пусть там нужно сделать округление вверх зайдем для переменной i bet что делить и на что делить и


[08:53 - 09:07] если мы просто напишем о разделить на б то это будет округление вниз давайте попробуем выяснить числом единицу больше логично например в 12 и 5 3 все правильно


Step 1 (S-37933) 20.png

Step 1 (S-37933) 21.png

[09:07 - 09:22] 10 и 5 тоже 3 неправильно 10 разделить на 5 это 2 даже при округлении вер будем разбираться во всех случаях программа работает правильно кроме того случая когда а делятся на бы нацело


Step 1 (S-37933) 22.png

Step 1 (S-37933) 23.png

[09:22 - 09:39] то есть прибавляете денечка то слишком много давайте перепишем тоже формулу немножко по другому а делить на б + 1 это то же самое что а + б делить на более вот это слишком много попробуем вычесть чуть чуть


[09:39 - 09:54] пример а + б - 1 запустим и проверим на разных вариантах 12 разделить на 5 3 правильно округлила вверх


Step 1 (S-37933) 24.png

Step 1 (S-37933) 25.png

[09:54 - 10:09] 14 разделить на 5 3 все правильно 11 разделить на 5 3 все правильно и наконец то что раньше не работал когда делится нацело 10 разделить на 5


Step 1 (S-37933) 26.png

Step 1 (S-37933) 27.png

[10:09 - 10:25] 2 заработал на самом деле все это можно доказать достаточно строго математически ну мы не будем заморачиваться с такими вещами нам главное чтобы работало немного о вердиктах тестирующей системе вы будете сегодня сдавать много задачек и не все с 1 попытки какие возможны варианты


Step 1 (S-37933) 28.png

[10:25 - 10:40] 1 вариант презентации шнайер ошибка формат вывода пример жизнь допустим девушке на 8 марта того что ей подарить цветочек а ей подарили кастрюлю это ошибка формат ввода вывода то есть


[10:40 - 10:59] программе вывели например 2 числа мест 1 и ленивый вообще ничего не выиграли строку вот и наша девушка ты стер частям расстроилась от этого 2 ошибка это неправильный ответ опять же пример в жизни та же девушка была розочка на 8 марта подарили фиалку в горшке вроде бы цветочек но не тот


Step 1 (S-37933) 29.png

[10:59 - 11:17] то есть вы вылили например число он не такой как нужно неправильный ответ и еще 1 распространенный тип ошибки это нарушение правил оформления программ то что мы особенно любим нас появились некоторые новые правила например все операции + - умножить разделить окружать пробелами


[11:17 - 11:33] так удобнее читать все символы не слипаются в 1 длинную колбасу также скобочки если скобочка открывается то перед не ставится пробел а после нее нет я закрывающей скобки все наоборот перед ней проблемы нет а после нее пробел есть


[11:33 - 11:47] в остальном все как раньше сегодняшнем занятии задач довольно сложная задача со звездочкой если вы долго будете задача не можете сдать у вас есть возможность посмотреть входные данные и правильный ответ к тому тесту которой ваша программа не проходят


Step 1 (S-37933) 30.png

[11:47 - 12:00] таких возможность ограничено количество поэтому оставьте их для сложных задач о следующем занятии мы будем изучать условный оператор нашей программы научатся ветвится но до этого нужно решить сегодняшний задач до встречи пока