Свежие публикации

Здесь собраны все публикуемые пикабушниками посты без отбора. Самые интересные попадут в Горячее.

30 Декабря 2015

Милота

Милота

Введение в программирование 2: Обзорный пример

Продолжение темы поднятой здесь:

http://pikabu.ru/story/vvedenie_v_ponimanie_programmirovaniy...


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

- Основные парадигмы программирования рассмотренные в прошлой статье.

- Знать что такое алгоритмы и уметь абстрактную задачу раскладывать на эти алгоритмы.


Парадигмы стоят на первом месте потому что для решения задачи нужно выбрать инструмент решения, а алгоритмы нужны для того чтобы это решение написать.


В качестве учебных языков программирования я рекомендую использовать:

Декларативные: MySQL и SQLite

Императивные: Python, C++


Кто-то сейчас наверняка поперхнулся чаем или кофе...


Почему я выбрал именно эти языки:

MySQL и SQLite – наиболее распространенные и востребованные декларативные языки.


Python – легко и наглядно позволяет реализовывать алгоритмы.


C++ - наглядно показывает как работает программа.


Теперь давайте начнем знакомится с программированием непосредственно. Задачка простая и даже имеющая практическое применение. В данном примере будет только решение задачи, но не будет готового продукта. Написано в том стиле в котором я даю задание ученикам.


Описание: Составление калькуляции. Программа получает ввод значений Наименование товара, количество товара, цена за количество товара, производственные циклы и рассчитывает количество товара на операцию, цену товара на операцию, сумму операции.


Из определения выделяем:


Дано: Наименование товара, количество товара, цена за количество товара, производственные циклы.

Найти: Количество товара на операцию, цена товара на операцию, сумма.


Итак, приступим к решению задачи.


Начинаем с определения исходных данных для выбора парадигм:


Задача относится к категории низкой нагрузки, поэтому решать её можно как на компилируемом так и на интерпретируемом языке. Задачу удобнее решать на императивном языке программирования. Ввиду малого количества аргументов для решения и их очевидности разницы между процедурным языком программирования и объектно-ориентированным нет.


Задачу оптимально решать (из используемых мной для обучения языков программирования) на Python. Ввиду конфликта 2 и 3 ветки и их перспектив я учу 3-й версии языка.


С языком программирования определились.


Теперь как правильно составлять первичный алгоритм (этот алгоритм можно и зачастую нужно потом модифицировать).


Выводим что и как нужно найти:


Количество товара на операцию. Существенные и достаточные для решения задачи исходные данные: количество товара и число циклов.

Количество товара на операцию = количество товара / число циклов

Цена товара на операцию. Существенные и достаточные для решения задачи исходные данные: цена товара и число циклов.

Цена товара на операцию = цена товара / число циклов

Сумма. Существенные и достаточные для решения задачи исходные данные: цена товара на операцию.

Сумма = сумма(исх) + Цена товара на операцию


Составляем алгоритм задачи исходя из описания и найденных нами алгоритмов. Когда пишем алгоритм помним, что любой язык программирования понимает только четкую однозначную структуру, которая может быть выражена одним логическим или математическим действием:


Программа получает наименование товара;

Программа получает количество товара;

Программа получает цену за количество товара;

Программа получает количество производственных циклов;

Вычисляется: Количество товара на операцию = количество товара / число циклов

Вычисляется: Цена товара на операцию = цена товара / число циклов


Оп-па... А как мы посчитаем сумму? Тем более что количество пунктов может быть разным. В языке программирования есть понятие «цикла», есть циклы с фиксированным числом выполнений (итераций) и циклы выполняемые по условию. Поскольку это учебный пример добавим бесконечный цикл по условию и сумирование.


Бесконечный цикл:

Программа получает наименование товара;

Программа получает количество товара;

Программа получает цену за количество товара;

Программа получает количество производственных циклов;

Вычисляется: Количество товара на операцию = количество товара / число циклов

Вычисляется: Цена товара на операцию = цена товара / число циклов

Сумма = Сумма + Цена товара на операцию

Вывод результатов.


Необходимое пояснение к последней строке – интерпретатор любого процедурного языка программирования при вычислении сперва вычисляет правое значение, а потом присваивает левое, поэтому не будем плодить лишние сущности и используем одно значение до и после.


Итак мы получили алгоритм решения задачи. Остается только написать его на языке понятному компилятору Python.

Сперва договоримся о наименовании используемых переменных. Их всего 7:


Наименование товара - nt

Количество товара - kt

Цена за количество товара - ckt

Производственные циклы - pc

Количество товара на операцию - kto

Цена товара на операцию - cto

Сумма - sum


Через тире короткое название переменных. Рекомендуется писать более длинные и понятные, но пока так...


Построчно:


Бесконечный цикл - while 1:

Программа получает наименование товара (функция input) – nt = input(«Введите название товара: »)

Программа получает количество товара – kt = input(«Введите количество товара: »)

Программа получает цену за количество товара – ckt = input(«Введите цену товара: »)

Программа получает количество производственных циклов – pc = input(«Введите количество циклов на которое хватает товара: »)

Вычисляется: Количество товара на операцию = количество товара / число циклов – kto = kt / pc

Вычисляется: Цена товара на операцию = цена товара / число циклов – cto = ckt / pc

Сумма = Сумма + Цена товара на операцию - sum = sum + cto

Вывод результатов (функция print) – print(,kto,cto,sum)


Если мы введем все именно так, то работать не будет. Потому что данные которые будут введены будут рассмотрены как текст. Принудительно попросить считать их дробными числами можно через обертку float(переменная). Очищаем комментарии и добавляем обертку. Кстати – начало и конец цикла и любой другой структуры в Python обозначается простыми отступами, что делает код более читаемым. Переменные используемые в цикле требуют предварительного объявления, поэтому итоговый рабочий код будет таким:


sm = 0

while 1:

    nt = input("Введите название товара: ")

    kt = input("Введите количество товара: ")

    ckt = input("Введите цену товара: ")

    pc = input("Введите количество циклов на которое хватает товара: ")

    kto = float(kt) / float(pc)

    cto = float(ckt) / float(pc)

    sm = sm + float(cto)

    print("Количество товаров на операцию: ",kto," Цена товара на операцию: ",cto," Текущая сумма операции: ",sm)


Кто не верит – попробуйте скопировать код в интерпретатор Python3 (первую строку отдельно).


Всем спасибо за внимание.

Показать полностью

Таки случилось...

Моим аж уже 28-ми подписчикам посвящается.


Таки случилось!


Случилось это 25 сентября в 2:10 на Чурской эстакаде ТТК и перешел я из категории "которые ещё не..." в категорию "которые уже...". Да-да.


Умозаключение одного товарища гласит: "В ДТП с участием мотоциклиста всегда виноват пилот, ибо сам не оценил ситуацию/не среагировал/попал в мертвую зону/переоценил свои силы (нужное подчеркнуть)". 


В общем целом я пожалуй соглашусь с этим утверждением. Виноват сам, что попал в мертвую зону. Долбодятел на каком-то белом седане решил, что ему срочно надо на съезд и он из 4-ой полосы двинул на съезд, яро оттормаживаясь. Я в это время двигался по третьей полосе и тут он такой передо мной херакс и явился. Благо палец на тормозе, сбросился, уходя вправо, и он гад вправо, я еще вправо, он тоже... Ну и попал я ему в крышку багажника левой рукой уже на первой полосе. Руль влево, байк на ногу лег, скользячка с мотом на ноге метров семь-десять, отделился, байк поскользил дальше а меня покрутило раз 5 да и лег я на бочок аккуратно=)

Открываю глаза и вижу ИНДУСА (!SIC!)! смугленький, с усами, индус чо… Лежу и думаю, всё чтоль, я уже там наверху по ходу? Ан нет, просто оказался врачом, обучающимся в одном и столичных ВУЗов. Осторожно он меня ощупал, помог медленно сняли шлем. А в это время подходит парень из сбившей меня машины. Я поворачиваю голову, смотрю на мотоцикл, а он на боку лежит заведенный. Здесь уже я забыл про боль и адовым матищем на этого парня выругался с конкретным приказом сгонять повернуть ключ зажигания мотоцикла. Ну он молодец, сгонял, выключил, по ходу обиделся на меня и свалил нах…


Забегая вперед скажу, что номеров его никто не запомнил и лица кроме меня тоже.


Лежу я, мот заглушен, я подуспокоился уже и господин индус меня начал осматривать и пробовать поднимать с земли на ноги. Это было медленно, долго, осторожно, пробуя каждый сустав и кость на прочность и целостность. Народ вокруг начал собираться, вызвали ДПС, Скорую помощь. Первые приехали ДПС и попросили объяснения, параллельно спрашивая «а скорая тебе точно нужна?». Ну тут ребят простите конечно, но это вот какими мудаками надо быть, чтобы в таком случае задавать такой вопрос. Люди на открытых переломах ног гуляют, находясь под диким адреналином. Народу всё больше, тусовка уже целая прям…ну и приехала скорая. Пригласили меня сотрудники в карету, сел с их помощью, правая сторона болит и еще левая кисть не шибко двигается , а она прилетела собственно в крышку багажника этого орла. «Снимай гандон» - произнес один из фельдшеров, видимо уже на опыте…без куртки штанов не снять. Осмотрели, я отогрелся в карете, все вроде норм, колени целы. Предложили вкатить кетанов в булку, но зная, что это я решил отказаться, у меня после прошлого раза полужопица онемела часа на 4)))

Выхожу на улицу. Да там уже реально движ) Вжиков полно, индус свалил куда-то по своим делам и остался один свидетель – Александр. (Если ты вдруг читаешь это, то еще раз большое тебе спасибо за моральную поддержку) Написали мы объяснения для сотрудников ДПС, с указанием точного места и времени ДТП.

Приехавшие мотоциклисты подняли мот, собрали битые части, завели его. Всё работает. Со всеми поручкался, поблагодарил и на битом своём коне поехал с кривым рулем до дома. Так как левая кисть болела от ушиба, то со сцеплением было тяжело управиться, неудобно. Приехал домой, мот поставил на стоянку и пошел я, похрамывая, скорее домой, ибо уже 5 утра было и скоро на работу.

Отдельно скажу про экипировку. На мне был спорт-туристический раздельный кожаный комбинезон, высокие боты, шлем и перчи. Всё отработало на 100%. Боты реально спасли от порванного ахила, когда скользил с мотом на ноге. Перчи смягчили удар кисти о крышку багажника. А слайдер на штанах принял на себя удар о асфальт.

Дальше я встал на путь поиска истины, но не на долго… Приехал в назначенное время в ГИБДД с целью выявить падонка, сбившего меня. Но, как я и ожидал, всем сотрудникам просто похуй на таких как я… На трехе камер вагон, система «Поток», точная дата и время известны… В итоге поехал я оттуда после двух часов ожидания и тупых вопросов по обстоятельствам ДТП. Отдельно доставил сотрудник с вопросом «А что ж ты на его номера не поглядел-то?», даже говорить ничего не стал…


На все интересующие вопросы отвечу с радостью, ежли у кого таковые будут. 


Удачи, счастья и здоровья Вам в новом году, дорогие Пикабушники!!! Берегите себя и своих близких!

 С Новым Годом!!!

Показать полностью

Сфоткал московское небо

Сфоткал московское небо

Фильм, который мне понравился, но который я, до сих пор, не могу себя заставить пересмотреть.

Навеяно постом о бедной собачке (http://pikabu.ru/story/sobachku_podobrali_na_ulitse_i_vzyali...)
Восьмой фильм отличного советского режиссёра Станислава Ростоцкого. 
И это второй его фильм номинированный на премию Оскар в 1979 году (за лучший фильм на иностранном языке).
Когда фильм смотрели в Америке, в зале была гробовая тишина, а когда он закончился, в зале раздались аплодисменты, которые не смолкали 10 минут.

Фильм, который мне понравился, но который я, до сих пор, не могу себя заставить пересмотреть. Советское кино, Фильмы, Оскар, Белый Бим черное ухо, Длиннопост

Главную роль (Хозяина - Иван Ивановича) сыграл выдающийся советский актёр Вячеслав Тихонов

Фильм, который мне понравился, но который я, до сих пор, не могу себя заставить пересмотреть. Советское кино, Фильмы, Оскар, Белый Бим черное ухо, Длиннопост

Фильм был снят по повести Гавриилы Троепольского, написанной в 1971 году. Она быстро набрала популярность и получила множества литературных наград. Повесть была переведена на более чем 15 языков мира.

Фильм, который мне понравился, но который я, до сих пор, не могу себя заставить пересмотреть. Советское кино, Фильмы, Оскар, Белый Бим черное ухо, Длиннопост

А вот такая в детстве была у меня пластинка. До сих пор помню визг Бима, когда его лапу прищемило рельсами.

Фильм, который мне понравился, но который я, до сих пор, не могу себя заставить пересмотреть. Советское кино, Фильмы, Оскар, Белый Бим черное ухо, Длиннопост

Любите своих домашних животных.

Склеил специально для пикабу. GregoryH

Показать полностью 4

О пользе фитнеса

О пользе фитнеса Девушки, Фитнес, Длиннопост
О пользе фитнеса Девушки, Фитнес, Длиннопост
О пользе фитнеса Девушки, Фитнес, Длиннопост
О пользе фитнеса Девушки, Фитнес, Длиннопост
О пользе фитнеса Девушки, Фитнес, Длиннопост
О пользе фитнеса Девушки, Фитнес, Длиннопост
О пользе фитнеса Девушки, Фитнес, Длиннопост
О пользе фитнеса Девушки, Фитнес, Длиннопост
О пользе фитнеса Девушки, Фитнес, Длиннопост
О пользе фитнеса Девушки, Фитнес, Длиннопост
О пользе фитнеса Девушки, Фитнес, Длиннопост
О пользе фитнеса Девушки, Фитнес, Длиннопост

https://www.instagram.com/sandraprikker/

Показать полностью 12

У проктолога

У проктолога

Готовы к Евро-2024? А ну-ка, проверим!

Для всех поклонников футбола Hisense подготовил крутой конкурс в соцсетях. Попытайте удачу, чтобы получить классный мерч и технику от глобального партнера чемпионата.

А если не любите полагаться на случай и сразу отправляетесь за техникой Hisense, не прячьте далеко чек. Загрузите на сайт и получите подписку на Wink на 3 месяца в подарок.

Готовы к Евро-2024? А ну-ка, проверим! Футбол, Тест, Евро 2024, Болельщики, ВКонтакте (ссылка)

Реклама ООО «Горенье БТ», ИНН: 7704722037

НОВОГОДНИЙ ПОДАРОК (Ellgin)

Предновогодняя наркомания C: Всех с наступающими праздниками

Мои подписки
Подписывайтесь на интересные вам теги, сообщества, авторов — и читайте свои любимые темы в этой ленте.
Чтобы добавить подписку, нужно авторизоваться.

Отличная работа, все прочитано! Выберите