Сказка о целых числах

32. майоров а.в. на 34. и.минаева волшебный куст. здравствуйте, это отзыв, который автор 34 удалил из комментариев к своему произведению,

32. Майоров А.В. на 34. И.Минаева Волшебный куст. 

Здравствуйте, это отзыв, который автор 34 удалил из комментариев к своему произведению, поэтому располагаю его здесь целиком. 

https://author.today/work/145703

Здравствуйте, мне очень грустно писать нелестный отзыв на эту попытку, написать сказку, но, чтобы вас утешить, скажу, что сказки это, пожалуй, один из самых сложных жанров. Прежде всего жанр «сказка» не означает, простоту текста, сюжета и отсутствие описаний, очень даже напротив. Там где в произведении для взрослых можно умолчать или упростить, считая это таким лаконичным стилем, в детском произведении этого делать нельзя. Набрать персонажей из детских сказок, сделать одним из героев маленького мальчика и девочку, упростить образы, устранить все, что по мнению автора выходит за рамки 7+, это не означает написать сказку. В детских сказках всё должно быть по-взрослому. Взять хотя бы одну из русских сказок, где Иван-царевич кормит коршуна, на котором летит своими икрами, чтобы тот не умер от голода во время полёта. В общем не унывайте. Попробуйте в другой раз короче… а вот и отзыв:

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

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

Сам текст нуждается в чистке от слов паразитов, бесчисленные вдруг, внезапно, неожиданно, почти, наверное, тут…

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

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

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

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

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

1. Логичность изложения 5

Логичность есть, но лучше бы её не было, так логика изложение неудачная

2. Сюжет 5

Сюжет есть, но неудачный, очень много ненужных подробностей, героев, событий, мелочей

3. Тема, конфликт произведения 4

Ни темы, ни конфликта я не увидел, то что есть, это решение мелких частных проблем, в которых настоящая тема и конфликт теряется.

4. Диалоги — 4

Диалоги неудачные, много лишних проходных фраз с лишними словами, герои говорят просто для того, чтобы говорить, автор не владеет средством выражения «диалоги» в данном тексте.

5. Герои — 4

Героев не вижу, не верю, их слишком много и все они однотипные, лучше бы сократить количество героев до 3-4, но выписать каждого хорошо, чем иметь их целуют толпу.

 6. Стиль и язык — 5

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

 7. Впечатление от текста в целом — 5

Хотелось бы увидеть переработанную сказку, где выделено главное событие, и оставлено самое интересное. В случае этой сказки, оптимальным объёмом было бы 10 000 знаков, и диалоги здесь нужны в крайне ограниченном виде. Перечитайте сказку про «гуси-лебеди», минимум диалогов и все по делу, основное повествование идёт от рассказчика и переработайте свою с учётом художественных приёмов из этой сказки.

С уважением,

Успехов в дальнейшем написании сказок.

Почему именно сказка?

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

Математическая сказка играет важную роль в обучении, например:

  • способствует формированию собственного математического и логического мышления;
  • выполняет познавательную функцию;
  • учит выполнять простейшие арифметические действия;
  • знакомит с цифрами, математическими понятиями, терминами;
  • объясняет взаимосвязь между предметами и явлениями окружающего мира.

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

Сказка о целых числах

«Сказка ложь, да в ней намек…»

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

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

Сказка про хитрый Квадрат

Сказка о целых числах

Жила-была в лесу в избушке на курьих ножках Баба Яга.

Лес был не простой, а математический, поэтому Баба Яга кушала не добрых молодцев и красных девиц, а геометрические фигуры.

Как-то раз решила она себе похлёбку сварить из Квадрата и пригласить на обед Кощея Бессмертного и Лешего.

Поймала Баба Яга большой и вкусный Квадрат, посадила его в чулан, а сама пошла котел с водой в печку ставить.

Сидит Квадрат в чулане и думает, как ему Бабу Ягу обмануть и в похлебку не попасть. Думал, думал и придумал. Взял и разделился пополам.

А у Бабы Яги как раз вода в котле закипела-зашипела, зашла она в чулан и видит, что вместо одного вкусного квадрата два невкусных прямоугольника сидят.

Сказка о целых числах

Решила Баба Яга, что галлюцинации у нее от голода начались. Закрыла она чулан и пошла Кощея на помощь звать.

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

А в это время Баба Яга с Кощеем в избушку зашли.

«Загляни-ка ты, Кощей, в чулан. — попросила Баба Яга. — Посмотри, кто там сидит? Квадрат или прямоугольники?»

Кощей чулан открыл и видит, что сидят на полу два одинаковых равнобедренных треугольника.

Сказка о целых числах

«Совсем ты, старая, ослепла. — сказал Кощей Бессмертный. — Какой Квадрат? Какие Прямоугольники? Там у тебя два треугольника спрятаны!»

Баба Яга совсем разволновалась, померила себе давление и пошла Лешего на помощь звать.

А Квадрат сам в себя превратился и стал дальше думать, как ему спастись и в похлебку не попасть. Думал, думал и придумал. Взял и немножко подтянул друг к другу два своих противоположных угла.

В это время Баба Яга Лешего в избушку привела и попросила: «Леший, ты у нас парень умный, загляни в чулан, посмотри, кто там сидит, квадрат, прямоугольники или треугольники?»

Леший чулан открыл и видит, сидит на полу самый настоящий ромб.

Сказка о целых числах

«Какой квадрат? Какие прямоугольники? Какие треугольники? В чулане у тебя ромб спрятан!» — сказал Леший.

Решила Баба Яга, что Квадрат ей какой-то ядовитый попался, схватила она его и выкинула из избушки.

А Квадрат со всех ног домой побежал и был таков.

Вот такие сказки для проекта по математичке для 3 класса мы сочинили. А может, вы своими сказочными творениями желаете поделиться? Тогда добро пожаловать в раздел для комментаторов, он находится чуть ниже.

Оформить проект можно в виде небольшой книжки с текстом и иллюстрациями к нему. А если сказочка коротенькая, то можно и на простом альбомном листе её разместить вместе с картинками.

Мы желаем вам приятного творчества и рекомендуем почитать и другие статьи полезные для начальной школы.

  • «Как научить ребенка считать до 100? Метод спичечных коробков»
  • «Пальцы – калькуляторы! Или «ручной» способ умножения на 9»
  • «Секрет высокоскоростного деления на 5 в уме»
  • «Легкий способ умножения на 11»

На сегодня все!

Желаем успехов в учебе!

Творческая команда блога «ШколаЛа.Ру».

Математические сказки для 5 класса

Сказочная математика применяется не только в обучении младших школьников – ученики 5 класса тоже сочиняют математические сказки. Вот несколько примеров.

Сказка о целых числах

Хитрый король

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

— Воины! Вы славно служите мне, я хочу вас отблагодарить. Я увеличиваю ваше месячное жалование на 20%!

Воины обрадовались, закричали: «Ура, да здравствует король!».

А король продолжил:

— Но только на один месяц. Вы будете получать больше денег ровно один месяц, а потом я снова понижу ваше жалование на 20%, и все будет, как было раньше.

Воины пожали плечами, да только порадовались тому, что хотя бы один месяц они будут получать больше.

«Да здравствует король, — говорил один старый воин друзьям, — раньше я получал 10 тыс., а в этом месяце получил 12 тыс., а потом снова буду получать 10, я ничего не теряю».

Но прошел месяц, а воин, как и другие, получил не 10 тыс. ровно, а 9 тыс. 600 рублей.

«Как же так? Ведь король обещал снизить жалование 20% и сказал, что мы ничего не потеряем!».

Расстроились воины, пошли к мудрецу. Мудрец выслушал подданных короля, улыбнулся и поведал, как король обхитрил свою армию: он поднял жалование на  20% от 10 тыс. – это 2 тыс., а потом снизил на 20% от 12 тыс. – это 2 тыс. 400 руб. В итоге воины стали получать даже меньше, чем раньше.

Расстроились товарищи, решили провести хитрого короля.

— Ваше Величество, – сказали они, — Вы были правы, когда повысили нам жалование, а потом понизили, сказав, что это одно и то же. Мы преданно служим Вам, поэтому просим сделать это еще раз, только теперь наоборот:  сначала понизить нам жалование на 20%, а потом опять поднять на 20%.

Король не стал возражать и согласился на предложение.

Задание: Посчитайте, сколько денег получит воин через месяц? А через 2 месяца? Кто оказался хитрее?

Сказка о целых числах

Сказка о смешанных числах

В стране Математике был Город Правильных Дробей. В этом городе можно было встретить разных жителей. Кто-то из них был маленький — 1/7 или 1/9, кто-то большой — 2/3 или 5/6.

Жители города считали себя очень красивыми. Они действительно были красивые: верх у этих дробей был утонченный, легкий, а низ был больше размером, но смотрелась такая дробь очень гармонично. От того, что дроби были красивыми, они называли себя Правильными.

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

— Вы только посмотрите, какая уродина! – брезгливо сказала красавица 4/5.

Дробь 4/5 правда была красива, тут не поспоришь.

— Да, сидела бы лучше дома, что дробей пугать! – поддержала подругу 8/9. Она была не такая красивая – с длинным хвостом, но зато большая, поэтому позволяла себе такие вольности.

— Неправильная ты какая-то, — добавила дробь 5/6.

А дробь эта действительно была неправильная, непропорциональная, звали ее 7/6. Бедняжку постоянно дразнили из-за нетипичной внешности, и она каждый раз плакала, В этот раз 7/6 не выдержала: решила уйти из города и отправиться в странствие.

Собрала дробь 7/6 узелок в дорогу и пошла. Шла долго, но в итоге подошла к воротам города. Дробь постучалась в ворота, а когда ей открыли, перед странницей стояло число 1, а за ручку оно держало маленькую дробь 1/9.

— Здравствуйте, меня зовут дробь 7/6, я хотела бы остановиться в вашем городе. Не приютите ли вы меня? – спросила робко Неправильная дробь. – Меня высмеивали и унижали в Городе Правильных Дробей, мне некуда больше пойти.

Странное создание улыбнулось и сказало:

— Добро пожаловать в Город Смешанных Чисел, милая Неправильная дробь!

И тут произошло что-то необычное, чего дробь 7/6 даже не смогла сразу понять: целое число подняло на руки маленькую дробь и превратилось… в Неправильную дробь 10/9!

— Ничего себе, так Вы – тоже Неправильная дробь?! – воскликнула 7/6.

— Вообще я – Смешанное Число, но могу превращаться в Неправильную дробь. Хотя быть Смешанным Числом гораздо удобнее. Попробуй тоже, – ответила дробь 10/9.

Дробь 7/6 закрыла глаза, сосредоточилась и…  почувствовала, как стала большой, а кто-то взял ее за руку. Оказалось, теперь она не 7/6, а Смешанное Число 1 и 1/6.

Так несчастная дробь, которую все дразнили, нашла место, где стала счастливой, и забыла про Город Правильных Дробей. Да и понятия о красоте в Городе Смешанных Чисел совсем другие.

Сказка о целых числах

Сказки для начальной школы

В начальной школе творческие способности детей лучше всего проявляются в групповых или самостоятельных проектах. Одно из таких заданий в 3 классе – математическая сказка. Можно сочинить свою собственную историю о цифрах, геометрических фигурах или использовать готовую, оформив ее иллюстрациями от руки, сделать вместе с родителями презентацию на компьютере из слайдов или придумать другой вариант. Сказка может быть написана в прозе или в стихах. Вот лишь несколько примеров математических сказок для 3 – 4 кл.

Сказка о ленивом нуле

В маленькой стране Цифрии жили цифры. Все были трудяги, только Ноль был пузатый и ленивый.

Как-то узнали товарищи, что в соседнюю страну Арифметию на службу требуются цифры, чтобы составлять уравнения и задачи для учеников. Цифры обрадовались, что теперь могут работать на благо детей, и отправились в путь. Только дорога был нелегкая. Путь пролегал под палящим солнцем, а впереди было 4 реки, которые нужно было перейти, а заодно потренироваться в арифметике.

Вот дошли они до первой реки под названием Сложение. Подбежали циферки к реке попить, а та сказала: «Я дам вам воды, но сначала вы встанете по парам и сложитесь, чтобы получилось новое число». Все цифры быстренько встали по парам, выполнили задание, а одна цифра зазевалась, ей достался Ноль. Как ни складывалась цифра с нулем, сумма не изменилась, пришлось уйти, не попив воды.

Шли цифры дальше, солнце уже в зените, воды хочется. Дошли до второй реки – Вычитание. Снова все бросились к воде, а женский голос им говорит: «Я дам вам напиться, но сначала встаньте по парам, да вычтите из большего меньшее, чтобы получилось новое число». Все быстро поделились на пары, сделали, что просят, но уже другая цифра в этот раз промедлила, ей достался Ноль. Вычла она ноль, а число не изменилось. Осталась цифра без воды, а Ноль вообще не волновался – ему было лень.

Пошли цифры дальше, дошли до реки Умножение. Снова река попросила выполнить задание – встать по парам, да помножиться друг на друга. Все быстро выполнили просьбу, но снова одной цифре не повезло, она умножилась на ноль и тоже стала нулем. Цифра даже расплакалась, так ей обидно стало, что из-за нуля все страдают.

Наконец, дошла компания до последней реки – Деление. Солнце уже не пекло, но задание все же пришлось выполнить – правила есть правила. Цифрам нужно было поделиться друг на друга так, чтобы получилось число больше единицы. Тут цифрам пришлось подумать, кто на кого должен делиться. К тому же, переругались все – никто не хотел делиться на ноль.

Дошли цифры до страны Арифметии, прибыли на службу, но пожаловались правительнице на ленивца, из-за которого все страдают. Правительница успокоила их и сказала, что всем цифрам найдется работа, даже Ноль пригодится в уравнениях или примерах. А чтобы остальные на него не злились, наделила она Ноль особой способностью: если он встает справа от любой цифры, то увеличивает ее в 10 раз.

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

Сказка о целых числах

Логическая сказка о верблюдах

Однажды к отцу пришли три сына и попросили отпустить их во взрослую жизнь:

— Кланяемся мы тебе, батенька, но просим твоего разрешения пойти жить отдельно – выросли мы уже.

Отец согласился, только назвал одно условие:

— Я вас отпущу, но прежде вы возьмете себе верблюдов из моего стада. Старший сын возьмет половину, средний сын – одну треть, а младший сын – одну девятую. Если поделите семнадцать верблюдов, как я сказал, – идите с миром.

Пытали братья поделить верблюдов так и эдак, да никак не получалось. Расстроились молодцы, видать не хочет отец их отпускать. Пошли братья к мудрому старцу за советом. Старец нашел решение:

— Я отправлю своего верблюда вам на помощь. Это легкая задача, даже верблюд сможет поделить ваше стадо.

Братья послушали мудреца, поставили верблюда в стойло к остальным, как тут же поняли, что теперь-то верблюдов стало восемнадцать! Разделили они верблюдов, как велел отец: старшему сыну половину, среднему – треть, младшему – девятую часть, и вдруг обнаружили, что в стойле остался один верблюд. Думали, что с ним делать, решили отдать его мудрецу в благодарность за то, что помог им решить задачу. Пришли братья к старцу, привели верблюда, а старец говорит:

— Поставьте его в стойло, я ему уже корм приготовил.

Удивились молодцы: как это старец догадался, что они приведут верблюда? А тот засмеялся и ответил:

— Мой верблюд меня предупредил, что вернется домой, как только поможет вам решить задачу.

Вопросы:

  1. Сколько верблюдов забрал каждый сын?
  2. Почему сначала задачу нельзя было решить, а потом получилось?
  3. Почему после деления верблюдов между братьями остался один верблюд?

Математические сказки для дошкольников

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

Ниже приведены примеры сказок для дошкольников.

Сказка о целых числах

Ноль и Единица

В одном городе жили цифры от 0 до 9. Они всегда спорили и хвастались друг перед другом, кто больше или старше. Цифры даже придумали для себя знаки «>» и «<», так им легче было хвастаться. Некоторые цифры очень грустили, особенно доставалось Нолику и Единичке, ведь они были самыми маленькими, и их постоянно дразнили: «Малыши!».

Однажды Ноль и Единица сидели и плакали от обиды, что они ничего не могут сделать против старших цифр. Тогда они взялись за руки, чтобы было не так обидно. Ноль с Единицей шли по улице, а другие цифры как-то странно на них смотрели — как будто снизу. Друзья дошли до витрины магазина и увидели в отражении, что они стали большими, как никогда! Даже больше, чем цифра 9! Так получилось число 10. Другие цифры посмотрели на 10 и поняли, что если объединиться и действовать сообща, то можно стать сильнее и больше.

Сказка о целых числах

Спор геометрических фигур

Заспорили Квадрат, Треугольник и Круг, кто из них важнее.

— Я важнее, ведь у меня больше всех углов – целых четыре!  — сказал Квадрат.

-Ну и что, зато мои углы острее, чем твои, значит, я лучше! – возразил Треугольник.

— У меня хоть углов нет, зато я могу катиться по дорожке, а вы будете до вечера перекатываться на своих углах, – ответил на это Круг.

— Ну, можешь ты катиться, а дальше что? Никому фигура без углов не нужна, – сказал Квадрат, а Треугольник его поддержал, – даже дом не построишь без квадрата или треугольника: стены да окна у дома квадратные, а крыша – треугольная. А круга там и в помине нет!

Тут Круг говорит:

— Посмотрите на небо, там солнце, оно самое важное на небе, а оно на круг похоже! Значит, я тоже важен! Луна тоже круглая, а без нее ночью темно. Посмотрели Квадрат с Треугольником на небо: действительно, солнце – как круг

И луна ночью круглая. Поняли фигуры, что они все важны

Посмотрели Квадрат с Треугольником на небо: действительно, солнце – как круг. И луна ночью круглая. Поняли фигуры, что они все важны.

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

Задание: А вы сможете найти такие предметы у себя дома?

Сказка о целых числах


 Программирование на алгоритмическом языке (7 класс) Введение Ветвления Сложные условия Циклы Циклы с переменной Графика Вспомогательные алгоритмы Анимация Случайные числа

Программирование на алгоритмическом языке (7 класс)

  • Введение
  • Ветвления
  • Сложные условия
  • Циклы
  • Циклы с переменной
  • Графика
  • Вспомогательные алгоритмы
  • Анимация
  • Случайные числа


 Программирование на алгоритмическом языке Тема 1. Введение

Программирование на алгоритмическом языке

Тема 1. Введение


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

Алгоритм

Алгоритм – это четко определенный план решения задачи для исполнителя.

Свойства алгоритма

  • дискретность : состоит из отдельных шагов (команд) понятность : должен включать только команды, известные исполнителю конечность : позволяет получить решение задачи за конечное число шагов определенность : при одинаковых исходных данных всегда выдает один и тот же результат массовость : может применяться при различных исходных данных
  • дискретность : состоит из отдельных шагов (команд)
  • понятность : должен включать только команды, известные исполнителю
  • конечность : позволяет получить решение задачи за конечное число шагов
  • определенность : при одинаковых исходных данных всегда выдает один и тот же результат
  • массовость : может применяться при различных исходных данных


 Программа Программа – это алгоритм, записанный на каком-либо языке программирования набор команд для исполнителя алгоритм, записанный на каком-либо языке программирования набор команд для исполнителя Команда – это описание действий, которые должен выполнить исполнитель. откуда взять исходные данные? что нужно с ними сделать? откуда взять исходные данные? что нужно с ними сделать?

Программа

Программа – это

  • алгоритм, записанный на каком-либо языке программирования набор команд для исполнителя
  • алгоритм, записанный на каком-либо языке программирования
  • набор команд для исполнителя

Команда – это описание действий, которые должен выполнить исполнитель.

  • откуда взять исходные данные? что нужно с ними сделать?
  • откуда взять исходные данные?
  • что нужно с ними сделать?


 Простейшая программа название алгоритма алг Первый нач | начало алгоритма кон | конец алгоритма комментарии после | не обрабатываются ? Что делает эта программа ? 5

Простейшая программа

название алгоритма

алг Первый

нач | начало алгоритма

кон | конец алгоритма

комментарии после | не обрабатываются

?

Что делает эта программа ?

5


5 Вывод текста на экран алг Вывод на экран нач вывод

5

Вывод текста на экран

алг Вывод на экран

нач

вывод «2+»

вывод «2=?» , нс

вывод «Ответ: 4»

кон

новая строка

Протокол :

2+2=?

Ответ: 4

5


 Задания «4»: Вывести на экран текст «лесенкой» Вася пошел гулять «5»: Вывести на экран рисунок из букв Ж ЖЖЖ ЖЖЖЖЖ ЖЖЖЖЖЖЖ HH HH ZZZZZ

Задания

«4»: Вывести на экран текст «лесенкой»

Вася

пошел

гулять

«5»: Вывести на экран рисунок из букв

Ж

ЖЖЖ

ЖЖЖЖЖ

ЖЖЖЖЖЖЖ

HH HH

ZZZZZ


 Переменные Задача. Ввести с клавиатуры два числа и найти их сумму. Протокол : Введите два целых числа 25 30 25+30=55 компьютер пользователь компьютер считает сам! ? Как ввести числа в память? Где хранить введенные числа ? Как вычислить? Как вывести результат? 8

Переменные

Задача. Ввести с клавиатуры два числа и найти их сумму.

Протокол :

Введите два целых числа

25 30

25+30=55

компьютер

пользователь

компьютер считает сам!

?

  • Как ввести числа в память?
  • Где хранить введенные числа ?
  • Как вычислить?
  • Как вывести результат?

8


 Программа алг Сумма нач | ввести два числа | вычислить их сумму | вывести сумму на экран кон Псевдокод – алгоритм на русском языке с элементами языка программирования. ! Компьютер не может исполнить псевдокод! 9

Программа

алг Сумма

нач

| ввести два числа

| вычислить их сумму

| вывести сумму на экран

кон

Псевдокод – алгоритм на русском языке с элементами языка программирования.

!

Компьютер не может исполнить псевдокод!

9


9 Переменные Переменная – это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время работы программы. Значение Другой тип данных ? Поместится? ! В переменной хранятся данные определенного типа! Имя 10

9

Переменные

Переменная – это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время работы программы.

Значение

Другой тип данных

?

Поместится?

!

В переменной хранятся данные определенного типа!

Имя

10


 Имена переменных МОЖНО использовать латинские буквы ( A-Z) , русские буквы (А-Я) цифры знак подчеркивания _ латинские буквы ( A-Z) , русские буквы (А-Я) цифры знак подчеркивания _ заглавные и строчные буквы различаются имя не может начинаться с цифры Какие имена правильные? AXby R&B 4Wheel Вася “PesBarbos” TU154 [QuQu] _ABBA A+B

Имена переменных

МОЖНО использовать

  • латинские буквы ( A-Z) , русские буквы (А-Я) цифры знак подчеркивания _
  • латинские буквы ( A-Z) , русские буквы (А-Я)
  • цифры
  • знак подчеркивания _

заглавные и строчные буквы различаются

имя не может начинаться с цифры

Какие имена правильные?

AXby R&B 4Wheel Вася “PesBarbos” TU154 [QuQu] _ABBA A+B


 Объявление переменных Типы переменных: цел | целая вещ | вещественная и другие… цел | целая вещ | вещественная и другие… выделение места в памяти Объявление переменных: тип – целые список имен переменных цел a, b, c

Объявление переменных

Типы переменных:

  • цел | целая вещ | вещественная и другие…
  • цел | целая
  • вещ | вещественная
  • и другие…

выделение места в памяти

Объявление переменных:

тип – целые

список имен переменных

цел a, b, c


 Как записать значение в переменную? Оператор присваивания ! При записи нового значения старое стирается! 5 a := 5 Оператор – это команда языка программирова-ния (инструкция). Оператор присваивания – это команда для записи нового значения в переменную. 13

Как записать значение в переменную?

Оператор присваивания

!

При записи нового значения старое стирается!

5

a := 5

Оператор – это команда языка программирова-ния (инструкция).

Оператор присваивания – это команда для записи нового значения в переменную.

13


 Блок-схема линейного алгоритма начало блок «начало» ввод a , b блок «ввод» c := a + b блок «процесс» вывод c блок «вывод» конец блок «конец»

Блок-схема линейного алгоритма

начало

блок «начало»

ввод a , b

блок «ввод»

c := a + b

блок «процесс»

вывод c

блок «вывод»

конец

блок «конец»


 Как ввести значение с клавиатуры? Оператор ввода 5 ввод a ! Программа ждет, пока пользователь введет значение и нажмет Enter . Введенное значение записывается в переменную a . 15

Как ввести значение с клавиатуры?

Оператор ввода

5

ввод a

!

  • Программа ждет, пока пользователь введет значение и нажмет Enter .
  • Введенное значение записывается в переменную a .

15


 Ввод значений двух переменных Ввод значений двух переменных . ввод a, b через пробел: 25 30 через запятую: 25,30 a 25 b 30 a 25 b 30 16

Ввод значений двух переменных

Ввод значений двух переменных .

ввод a, b

через пробел:

25 30

через запятую:

25,30

a

25

b

30

a

25

b

30

16


 Изменение значения переменной Пример: алг Тест нач цел a, b a := 5 b := a + 2 a := (a + 2 )*(b – 3 ) b := b + 1 кон a 5 ? 5 b ? 5+2 7 a 7*4 28 5 b 7 7+1 8

Изменение значения переменной

Пример:

алг Тест

нач

цел a, b

a := 5

b := a + 2

a := (a + 2 )*(b – 3 )

b := b + 1

кон

a

5

?

5

b

?

5+2

7

a

7*4

28

5

b

7

7+1

8


 Арифметические операции + сложение – вычитание * умножение / деление + сложение – вычитание * умножение / деление цел a, b цел a, b a := 7 * 3 – 4 a := a * 5 a := 7 * 3 – 4 a := a * 5

Арифметические операции

+ сложение вычитание

* умножение / деление

  • + сложение вычитание * умножение / деление

цел a, b

  • цел a, b

a := 7 * 3 4

a := a * 5

  • a := 7 * 3 4 a := a * 5


 Вывод данных | вывод значения | переменной a вывод a | вывод значения | переменной a и переход | на новую строчку вывод a , нс | вывод текста вывод ' Привет! ' вывод ' Ответ: ' , c | вывод текста и значения переменной c вывод a, '+' , b, '=' , c

Вывод данных

| вывод значения | переменной a

вывод a

| вывод значения | переменной a и переход | на новую строчку

вывод a , нс

| вывод текста

вывод ‘ Привет! ‘

вывод ‘ Ответ: ‘ , c

| вывод текста и значения переменной c

вывод a, ‘+’ , b, ‘=’ , c


 Задача: сложение чисел Задача. Ввести два целых числа и вывести на экран их сумму. Простое решение: алг Сумма нач цел a, b, c ввод a, b c := a + b вывод c кон ? Что плохо? 20

Задача: сложение чисел

Задача. Ввести два целых числа и вывести на экран их сумму.

Простое решение:

алг Сумма

нач

цел a, b, c

ввод a, b

c := a + b

вывод c

кон

?

Что плохо?

20


 Полное решение алг Сумма нач цел a, b, c вывод

Полное решение

алг Сумма

нач

цел a, b, c

вывод «Введите два целых числа»

ввод a, b

c := a + b

вывод a, «+» , b, «=» , c

кон

подсказка

компьютер

Протокол :

Введите два целых числа

25 30

25+30=55

пользователь


 Задания «3»: Ввести три числа, найти их сумму. Пример: Введите три числа: 4 5 7 4+5+7=16 «4»: Ввести три числа, найти их сумму и произведение. Пример: Введите три числа: 4 5 7 4+5+7=16 4*5*7=140

Задания

«3»: Ввести три числа, найти их сумму.

Пример:

Введите три числа:

4 5 7

4+5+7=16

«4»: Ввести три числа, найти их сумму и произведение.

Пример:

Введите три числа:

4 5 7

4+5+7=16

4*5*7=140


 Задания «5»: Ввести три числа, найти их сумму, произведение и среднее арифметическое. Пример: Введите три числа: 4 5 7 4+5+7=16 4*5*7=140 (4+5+7) / 3 =5.33 3333

Задания

«5»: Ввести три числа, найти их сумму, произведение и среднее арифметическое.

Пример:

Введите три числа:

4 5 7

4+5+7=16

4*5*7=140

(4+5+7) / 3 =5.33 3333


 Какие операторы неправильные? алг Ошибки нач цел a, b вещ x, y a := 5 10 := x y := 7 , 8 b := 2.5 x := 2 *(a + y) a := b + x кон имя переменной должно быть слева от знака := целая и дробная часть отделяются точкой нельзя записывать вещественное значение в целую переменную

Какие операторы неправильные?

алг Ошибки

нач

цел a, b

вещ x, y

a := 5

10 := x

y := 7 , 8

b := 2.5

x := 2 *(a + y)

a := b + x

кон

имя переменной должно быть слева от знака :=

целая и дробная часть отделяются точкой

нельзя записывать вещественное значение в целую переменную


 Арифметические операции + сложение – вычитание * умножение / деление div деление нацело (остаток отбрасывается) mod остаток от деления + сложение – вычитание * умножение / деление div деление нацело (остаток отбрасывается) mod остаток от деления цел a, b цел a, b a := 7 * 3 - 4 | 17 a := a * 5 | 85 b := div ( a, 10 ) | 8 a := mod (a, 10 ) | 5 a := 7 * 3 - 4 | 17 a := a * 5 | 85 b := div ( a, 10 ) | 8 a := mod (a, 10 ) | 5

Арифметические операции

+ сложение вычитание

* умножение / деление

div деление нацело (остаток отбрасывается)

mod остаток от деления

  • + сложение вычитание * умножение / деление div деление нацело (остаток отбрасывается) mod остаток от деления

цел a, b

  • цел a, b

a := 7 * 3 4 | 17

a := a * 5 | 85

b := div ( a, 10 ) | 8

a := mod (a, 10 ) | 5

  • a := 7 * 3 4 | 17 a := a * 5 | 85 b := div ( a, 10 ) | 8 a := mod (a, 10 ) | 5


 Порядок выполнения операций вычисление выражений в скобках умножение, деление, div , mod слева направо сложение и вычитание слева направо вычисление выражений в скобках умножение, деление, div , mod слева направо сложение и вычитание слева направо 1 2 4 5 3 6 1 2 4 5 3 6 z := ( 5 *a+c)/a*(b-c)/ b z := ( 5 *a+c)/a*(b-c)/ b 2 3 5 4 1 10 6 9 8 7 2 3 5 4 1 10 6 9 8 7 x:= ( 5 *c*c-d*(a+b))/((c+d)*(d- 2 *a)) x:= ( 5 *c*c-d*(a+b))/((c+d)*(d- 2 *a))

Порядок выполнения операций

  • вычисление выражений в скобках умножение, деление, div , mod слева направо сложение и вычитание слева направо
  • вычисление выражений в скобках
  • умножение, деление, div , mod слева направо
  • сложение и вычитание слева направо

1 2 4 5 3 6

  • 1 2 4 5 3 6

z := ( 5 *a+c)/a*(b-c)/ b

  • z := ( 5 *a+c)/a*(b-c)/ b

2 3 5 4 1 10 6 9 8 7

  • 2 3 5 4 1 10 6 9 8 7

x:= ( 5 *c*c-d*(a+b))/((c+d)*(d- 2 *a))

  • x:= ( 5 *c*c-d*(a+b))/((c+d)*(d- 2 *a))


 Ручная прокрутка программы алг Тест нач цел a, b a := 5 b := a + 2 a := (a + 2 )*(b – 3 ) b := div (a, 5 ) a := mod (a,b) a := a + 1 b := mod (a+ 14 , 7 ) кон a b ? ? 5 7 28 5 3 4 4

Ручная прокрутка программы

алг Тест

нач

цел a, b

a := 5

b := a + 2

a := (a + 2 )*(b – 3 )

b := div (a, 5 )

a := mod (a,b)

a := a + 1

b := mod (a+ 14 , 7 )

кон

a

b

?

?

5

7

28

5

3

4

4


 Команда «вывод» цел a = 1, b = 3 вывод a,

Команда «вывод»

цел a = 1, b = 3

вывод a, «+» , b, «=» , a+b

список вывода

  • элементы разделяются запятыми элементы в кавычках – выводятся без изменений выражения (элементы без кавычек) вычисляются и выводится их результат
  • элементы разделяются запятыми
  • элементы в кавычках – выводятся без изменений
  • выражения (элементы без кавычек) вычисляются и выводится их результат

?

Что будет выведено?

1+3=4

28


 Что будет выведено? цел a = 1, b = 3 вывод » , b, » !» 4 3! цел a = 1, b = 3 вывод » F( » , b, » ) = X( » , a, » )» F(3) = X(1) » width=»640″

Что будет выведено?

цел a = 1, b = 3

вывод » a +» , b, «= a+b »

a +3= a+b

цел a = 1, b = 3

вывод a , «= F( » , b, » )»

1= F(3)

цел a = 1, b = 3

вывод » a = F( » , b, » );»

a = F(3);

цел a = 1, b = 3

вывод a+b , » » , b, » !»

4 3!

цел a = 1, b = 3

вывод » F( » , b, » ) = X( » , a, » )»

F(3) = X(1)


 Как записать оператор «вывод»? цел a = 1, b = 3 вывод f( » , b , » ) » f(1)f(3) цел a = 1, b = 3 вывод » » , b , » » 3 цел a = 1, b = 3 вывод a , » + » , b, » =? » 1+3 = ? » width=»640″

Как записать оператор «вывод»?

цел a = 1, b = 3

вывод » X( » , b, » ) =» , a

X(3)=1

цел a = 1, b = 3

вывод a + b, » = » , a , » + » , b

4=1+ 3

цел a = 1, b = 3

вывод » f( » , a , » )f( » , b , » ) »

f(1)f(3)

цел a = 1, b = 3

вывод » » , b , » »

3

цел a = 1, b = 3

вывод a , » + » , b, » =? »

1+3 = ?


 Программирование на алгоритмическом языке Тема 2. Ветвления

Программирование на алгоритмическом языке

Тема 2. Ветвления


 Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран наибольшее из них. Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого. Особенность: действия исполнителя зависят от некоторых условий ( если … иначе … ). Алгоритмы, в которых последовательность шагов зависит от выполнения некоторых условий, называются разветвляющимися.

Разветвляющиеся алгоритмы

Задача. Ввести два целых числа и вывести на экран наибольшее из них.

Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого.

Особенность: действия исполнителя зависят от некоторых условий ( если … иначе … ).

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


img32 b? M:= a M:= b вывод M ? Если a = b? конец 33 » width=»640″

Вариант 1. Блок-схема

начало

блок «решение»

ввод a,b

полная форма ветвления

да

нет

a b?

M:= a

M:= b

вывод M

?

Если a = b?

конец

33


33 Вариант 1. Программа алг Максимум нач цел a, b, M вывод b то иначе все вывод «Наибольшее число «, M кон полная форма условного оператора M:=a M:=b 33 » width=»640″

33

Вариант 1. Программа

алг Максимум нач цел a, b, M вывод «Введите два целых числа», нс ввод a, b если a b то иначе все вывод «Наибольшее число «, M кон

полная форма условного оператора

M:=a

M:=b

33


33 Условный оператор если условие то | что делать, если условие верно иначе | что делать, если условие неверно все ! Вторая часть (иначе) может отсутствовать! 35

33

Условный оператор

если условие то

| что делать, если условие верно

иначе

| что делать, если условие неверно

все

!

Вторая часть (иначе) может отсутствовать!

35


img35 a? M:= b вывод M конец » width=»640″

Вариант 2 . Блок-схема

начало

ввод a,b

неполная форма ветвления

M:= a

да

нет

b a?

M:= b

вывод M

конец


 Вариант 2. Программа алг Максимум 2 нач цел a, b, M вывод a то M:= b все вывод «Наибольшее число «, M кон неполная форма условного оператора » width=»640″

Вариант 2. Программа

алг Максимум 2 нач цел a, b, M вывод «Введите два целых числа», нс ввод a, b

M:= a если b a то M:= b все вывод «Наибольшее число «, M кон

неполная форма условного оператора


 Вариант 2б. Программа алг Максимум 2 б нач цел a, b, M вывод b M:= a » width=»640″

Вариант 2б. Программа

алг Максимум 2 б нач цел a, b, M вывод «Введите два целых числа», нс ввод a, b

M:= b если ??? то ??? все вывод «Наибольшее число «, M кон

a b

M:= a


 Задания « 3 »: Ввести два числа и вывести их в порядке возрастания. Пример: Введите два числа: 15 9 Ответ: 9 15 «4»: Ввести три числа и найти наибольшее из них. Пример: Введите три числа: 4 15 9 Наибольшее число 15

Задания

« 3 »: Ввести два числа и вывести их в порядке возрастания.

Пример:

Введите два числа:

15 9

Ответ: 9 15

«4»: Ввести три числа и найти наибольшее из них.

Пример:

Введите три числа:

4 15 9

Наибольшее число 15


 Задания «5»: Ввести пять чисел и найти наибольшее из них. Пример: Введите пять чисел: 4 15 9 56 4 Наибольшее число 5 6

Задания

«5»: Ввести пять чисел и найти наибольшее из них.

Пример:

Введите пять чисел:

4 15 9 56 4

Наибольшее число 5 6


 Программирование на алгоритмическом языке Тема 3. Сложные условия

Программирование на алгоритмическом языке

Тема 3. Сложные условия


 Сложные условия Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он фирме (вывести ответ «подходит» или «не подходит» ) . Особенность: надо проверить, выполняются ли два условия одновременно. ? Можно ли решить известными методами ? 42

Сложные условия

Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он фирме (вывести ответ «подходит» или «не подходит» ) .

Особенность: надо проверить, выполняются ли два условия одновременно.

?

Можно ли решить известными методами ?

42


img42= 25? да нет x “ подходит ” “ не подходит ” “ не подходит ” конец » width=»640″

42

Вариант 1. Алгоритм

начало

ввод x

да

нет

x = 25?

да

нет

x

“ подходит ”

“ не подходит ”

“ не подходит ”

конец


 Вариант 1. Программа алг Сотрудник нач цел x вывод = 25 то если x вывод «Подходит!» иначе вывод «Не подходит.» все иначе вывод «Не подходит.» все кон » width=»640″

Вариант 1. Программа

алг Сотрудник

нач

цел x

вывод «Введите ваш возраст» , нс

ввод x

если x = 25 то

если x

вывод «Подходит!»

иначе

вывод «Не подходит.»

все

иначе

вывод «Не подходит.»

все

кон


img44= 25 и x нет да “ подходит ” “ не подходит ” » width=»640″

Вариант 2. Алгоритм

начало

ввод x

x = 25 и

x

нет

да

“ подходит ”

“ не подходит ”


 Вариант 2 . Программа алг Сотрудник нач цел x вывод = 25 и x вывод «Подходит!» иначе вывод «Не подходит.» все кон сложное условие » width=»640″

Вариант 2 . Программа

алг Сотрудник

нач

цел x

вывод «Введите ваш возраст» , нс

ввод x

если x = 25 и x

вывод «Подходит!»

иначе

вывод «Не подходит.»

все

кон

сложное условие


img46= = Сложное условие – это условие, состоящее из нескольких простых условий (отношений), связанных с помощью логических операций : И – одновременное выполнение условий И – одновременное выполнение условий x = 25 И x x = 25 И x ИЛИ – выполнение хотя бы одного из условий ИЛИ – выполнение хотя бы одного из условий x ИЛИ x = 40 x ИЛИ x = 40 НЕ – отрицание, обратное условие НЕ – отрицание, обратное условие НЕ ( x 25 )  ??? НЕ ( x 25 )  ??? равно не равно x » width=»640″

Сложные условия

Простые условия (отношения)

= =

Сложное условие – это условие, состоящее из нескольких простых условий (отношений), связанных с помощью логических операций :

  • И – одновременное выполнение условий
  • И – одновременное выполнение условий

x = 25 И x

  • x = 25 И x
  • ИЛИ – выполнение хотя бы одного из условий
  • ИЛИ – выполнение хотя бы одного из условий

x ИЛИ x = 40

  • x ИЛИ x = 40
  • НЕ – отрицание, обратное условие
  • НЕ – отрицание, обратное условие

НЕ ( x 25 ) ???

  • НЕ ( x 25 ) ???

равно

не равно

x


img47=, =, И ИЛИ НЕ , =, =, И ИЛИ Пример 2 1 6 3 5 4 если не (a 2 ) или c 5 и b то … все если не (a 2 ) или c 5 и b то … все » width=»640″

Сложные условия

Порядок выполнения (приоритет = старшинство )

  • выражения в скобках
  • выражения в скобках
  • НЕ , =, =, И ИЛИ
  • НЕ
  • , =, =,
  • И
  • ИЛИ

Пример

2 1 6 3 5 4

если не (a 2 ) или c 5 и b то

все

  • если не (a 2 ) или c 5 и b товсе


img48 b) не (a b) a и b a c или b c a и b c a c и b d a и b a c или b c a и b c a c и b d не (a = b) или c = d не (a = b) или c = d a = b или не (c a c или b c или b a a = b или не (c a c или b c или b a Да Да Нет Нет Нет Да Да Да » width=»640″

Сложные условия

Истинно или ложно при a := 2; b := 3; c := 4;

не (a b)

  • не (a b)

a и b

a c или b c

a и b c

a c и b d

  • a и b a c или b c a и b c a c и b d

не (a = b) или c = d

  • не (a = b) или c = d

a = b или не (c

a c или b c или b a

  • a = b или не (c a c или b c или b a

Да

Да

Нет

Нет

Нет

Да

Да

Да


img49 10 x 6 и x x 6 и x 10 x или x x или x 10 x 6 или x x 6 или x 10 x и x x и x 10 x 6 и x x 6 и x 10 x или x x или x 10 x 6 или x x 6 или x 10 x нет таких 6 x 10 x все x x 6 » width=»640″

Сложные условия

Для каких значений x истинны условия:

x и x

x и x 10

x 6 и x

x 6 и x 10

x или x

x или x 10

x 6 или x

x 6 или x 10

  • x и x x и x 10 x 6 и x x 6 и x 10 x или x x или x 10 x 6 или x x 6 или x 10

x

нет таких

6

x 10

x

все x

x 6


 Задания «3»: Ввести три числа и определить, верно ли, что они вводились в порядке возрастания. Пример: Введите три числа: 4 5 17 да «4»: Ввести номер месяца и вывести название времени года. Пример: Введите номер месяца: 4 весна

Задания

«3»: Ввести три числа и определить, верно ли, что они вводились в порядке возрастания.

Пример:

Введите три числа:

4 5 17

да

«4»: Ввести номер месяца и вывести название времени года.

Пример:

Введите номер месяца:

4

весна


 Задания «5»: Ввести возраст человека (от 1 до 150 лет) и вывести его вместе с последующим словом «год», «года» или «лет». Пример: Введите возраст: Введите возраст: 24 57 Вам 24 года Вам 57 лет

Задания

«5»: Ввести возраст человека (от 1 до 150 лет) и вывести его вместе с последующим словом «год», «года» или «лет».

Пример:

Введите возраст: Введите возраст:

24 57

Вам 24 года Вам 57 лет


 Программирование на алгоритмическом языке Тема 4. Циклы

Программирование на алгоритмическом языке

Тема 4. Циклы


 Циклы Цикл – это многократное выполнение одинаковых действий. цикл с известным числом шагов цикл с неизвестным числом шагов (цикл с условием) цикл с известным числом шагов цикл с неизвестным числом шагов (цикл с условием) Задача. Вывести на экран 5 раз слово «Привет». Особенность: одинаковые действия выполняются 5 раз. ? Можно ли решить известными методами ? 54

Циклы

Цикл – это многократное выполнение одинаковых действий.

  • цикл с известным числом шагов цикл с неизвестным числом шагов (цикл с условием)
  • цикл с известным числом шагов
  • цикл с неизвестным числом шагов (цикл с условием)

Задача. Вывести на экран 5 раз слово «Привет».

Особенность: одинаковые действия выполняются 5 раз.

?

Можно ли решить известными методами ?

54


 Циклы алг Привет нач вывод

Циклы

алг Привет

нач

вывод «Привет» , нс

вывод «Привет» , нс

вывод «Привет» , нс

вывод «Привет» , нс

вывод «Привет» , нс

кон

?

Что плохо ?

55


 Циклы алг Привет нач нц 5 раз вывод

Циклы

алг Привет

нач

нц 5 раз

вывод «Привет!» , нс

кц

кон

тело цикла

начало цикла

вывод «Привет!» , нс

конец цикла

?

Как выглядит блок-схема ?

56


 Циклы Блок-схема: начало да конец нет тело цикла

Циклы

Блок-схема:

начало

да

конец

нет

тело цикла


 Число шагов – переменная Задача: ввести количество повторения с клавиатуры. алг Привет нач цел N вывод

Число шагов – переменная

Задача: ввести количество повторения с клавиатуры.

алг Привет

нач

цел N

вывод «Сколько раз?» , нс

ввод N

нц N раз

вывод «Привет!» , нс

кц

кон


 Задания «3»: Ввести натуральное число и вывести в строчку все числа от 1 до этого числа. Пример: Введите натуральное число: 4 Ответ: 1 2 3 4 «4»: Ввести два целых числа, найти их произведение, не используя операцию умножения. Пример: Введите два числа: 4 15 4*15=60

Задания

«3»: Ввести натуральное число и вывести в строчку все числа от 1 до этого числа.

Пример:

Введите натуральное число:

4

Ответ: 1 2 3 4

«4»: Ввести два целых числа, найти их произведение, не используя операцию умножения.

Пример:

Введите два числа:

4 15

4*15=60


 Задания «5»: Ввести натуральное число N и найти сумму всех чисел от 1 до N ( 1+2+3+…+ N ). Пример: Введите число слагаемых: 100 Сумма чисел от 1 до 100 равна 5050

Задания

«5»: Ввести натуральное число N и найти сумму всех чисел от 1 до N ( 1+2+3+…+ N ).

Пример:

Введите число слагаемых:

100

Сумма чисел от 1 до 100 равна 5050


 Циклы алг Привет нач нц 5 раз вывод

Циклы

алг Привет

нач

нц 5 раз

вывод «Привет!» , нс

кц

кон

?

Как отсчитать ровно 5 раз ?

?

Как запоминать, сколько раз уже сделали ?

N := N + 1

61


61 Блок-схема алгоритма начало еще не сделали ни одного раза N := 0 проверить, все ли сделали N = 5 ? да конец цикл нет N := N + 1 считаем очередной шаг 61

61

Блок-схема алгоритма

начало

еще не сделали ни одного раза

N := 0

проверить, все ли сделали

N = 5 ?

да

конец

цикл

нет

N := N + 1

считаем очередной шаг

61


 Цикл с условием алг Привет 2 нач цел N N:= 0 нц пока N 5 вывод

Цикл с условием

алг Привет 2

нач

цел N

N:= 0

нц пока N 5

вывод «Привет!» , нс

N:= N + 1

кц

кон


 Цикл с условием Вместо знаков вопроса добавьте числа и операторы так, чтобы цикл выполнился ровно 5 раз: алг Привет 3 нач цел N N: = 5 нц пока N ??? вывод

Цикл с условием

Вместо знаков вопроса добавьте числа и операторы так, чтобы цикл выполнился ровно 5 раз:

алг Привет 3

нач

цел N

N: = 5

нц пока N ???

вывод «Привет!» , нс

???

кц

кон

N:= N — 1


 Что получим? алг Пример 1 нач цел N N:= 1 нц пока N вывод N , нс N:= N + 1 кц кон 1 2 3 4 5

Что получим?

алг Пример 1

нач

цел N

N:= 1

нц пока N

вывод N , нс

N:= N + 1

кц

кон

1

2

3

4

5


 Что получим? алг Пример 2 нач цел N N:= 1 нц пока N вывод N , нс N:= N + 2 кц кон 1 3 5

Что получим?

алг Пример 2

нач

цел N

N:= 1

нц пока N

вывод N , нс

N:= N + 2

кц

кон

1

3

5


 Что получим? алг Пример 3 нач цел N N:= 2 нц пока N 5 вывод N , нс N:= N + 2 кц кон 2 4 6 8 10 12 14 16 ... ! Условие цикла никогда не станет ложным – это зацикливание ! 67

Что получим?

алг Пример 3

нач

цел N

N:= 2

нц пока N 5

вывод N , нс

N:= N + 2

кц

кон

2

4

6

8

10

12

14

16

!

Условие цикла никогда не станет ложным – это зацикливание !

67


 Что получим? алг Пример 4 нач цел N N:= 1 нц пока N вывод N * N*N , нс N:= N + 1 кц кон 1 8 27 64 125

Что получим?

алг Пример 4

нач

цел N

N:= 1

нц пока N

вывод N * N*N , нс

N:= N + 1

кц

кон

1

8

27

64

125


img68 = 1 вывод N * N*N , нс N:= N — 1 кц кон 1 25 64 27 8 1 » width=»640″

Что получим?

алг Пример 5

нач

цел N

N:= 5

нц пока N = 1

вывод N * N*N , нс

N:= N — 1

кц

кон

1 25

64

27

8

1


 Задания «3»: Ввести натуральное число вывести квадраты и кубы всех чисел от 1 до этого числа. Пример: Введите натуральное число: 3 1: 1 1 2: 4 8 3: 9 27 «4»: Ввести два целых числа a и b ( a ≤ b ) и вывести квадраты все чисел от a до b . Пример: Введите два числа: 4 5 4*4=16 5*5=25

Задания

«3»: Ввести натуральное число вывести квадраты и кубы всех чисел от 1 до этого числа.

Пример:

Введите натуральное число:

3

1: 1 1

2: 4 8

3: 9 27

«4»: Ввести два целых числа a и b ( a ≤ b ) и вывести квадраты все чисел от a до b .

Пример:

Введите два числа:

4 5

4*4=16

5*5=25


 Задания «5»: Ввести два целых числа a и b ( a ≤ b ) и вывести сумму квадратов всех чисел от a до b . Пример: Введите два числа: 4 10 Сумма квадратов 371

Задания

«5»: Ввести два целых числа a и b ( a ≤ b ) и вывести сумму квадратов всех чисел от a до b .

Пример:

Введите два числа:

4 10

Сумма квадратов 371


 Циклы с условием Пример: Отпилить полено от бревна. Сколько раз надо сделать движения пилой? Задача: Ввести целое число ( Идея решения: Отсекаем последовательно последнюю цифру, увеличиваем счетчик. Проблема: Неизвестно, сколько шагов надо сделать. Решение: Надо остановиться, когда n = 0 , т.е. надо делать «пока n 0 » . n 123 count 12 0 1 1 0 2 3

Циклы с условием

Пример: Отпилить полено от бревна. Сколько раз надо сделать движения пилой?

Задача: Ввести целое число (

Идея решения: Отсекаем последовательно последнюю цифру, увеличиваем счетчик.

Проблема: Неизвестно, сколько шагов надо сделать.

Решение: Надо остановиться, когда n = 0 , т.е. надо делать «пока n 0 » .

n

123

count

12

1

1

2

3


 Блок-схема алгоритма начало обнулить счетчик цифр ввод n count := 0 выполнять «пока n 0 » n 0 ? нет да вывод count count := count + 1 n := div(n, 10 ) конец

Блок-схема алгоритма

начало

обнулить счетчик цифр

ввод n

count := 0

выполнять «пока n 0 »

n 0 ?

нет

да

вывод count

count := count + 1

n := div(n, 10 )

конец


 Программа алг Число цифр нач цел n, count вывод

Программа

алг Число цифр

нач

цел n, count

вывод «Введите целое число» , нс

ввод n

count : = 0

вывод «В числе » , n, » нашли » , c ount , » цифр»

кон

, n1

; n1:= n

нц пока n 0

count:= count + 1

n:= div (n, 10 )

кц

n1,

?

Что плохо ?

74


 Цикл с условием Особенности: можно использовать сложные условия: можно записывать в одну строчку, разделяя команды точкой с запятой: можно использовать сложные условия: можно записывать в одну строчку, разделяя команды точкой с запятой: нц пока a 5 a:= a + 5 ; b:= b - 2 кц a 5 нц пока a ; 75

Цикл с условием

Особенности:

  • можно использовать сложные условия: можно записывать в одну строчку, разделяя команды точкой с запятой:
  • можно использовать сложные условия:
  • можно записывать в одну строчку, разделяя команды точкой с запятой:

нц пока a 5

a:= a + 5 ; b:= b — 2

кц

a 5

нц пока a

;

75


img75 b ; a:= a – b кц a:= 4 ; b:= 6 нц пока a » width=»640″

Цикл с условием

Особенности:

  • условие пересчитывается при каждом входе в цикл если условие на входе в цикл ложно, цикл не выполняется ни разу если условие никогда не станет ложным, программа зацикливается
  • условие пересчитывается при каждом входе в цикл
  • если условие на входе в цикл ложно, цикл не выполняется ни разу
  • если условие никогда не станет ложным, программа зацикливается

a := 4 ; b := 6

нц пока a b ; a:= a – b кц

a:= 4 ; b:= 6

нц пока a


img76 b ; a:= a + 1 кц 1 раз b = -2 a:= 4 ; b:= 6 нц пока a зацикливание a:= 4 ; b:= 6 нц пока a » width=»640″

Сколько раз выполняется цикл ?

2 раза

a = 6

a:= 4 ; b:= 6

нц пока a

1 раз

a = 10

a:= 4 ; b:= 6

нц пока a

0 раз

a = 4

a:= 4 ; b:= 6

нц пока a b ; a:= a + 1 кц

1 раз

b = -2

a:= 4 ; b:= 6

нц пока a

зацикливание

a:= 4 ; b:= 6

нц пока a


 Задания «3»: Ввести целое число и определить, верно ли, что в нём ровно 3 цифры. Пример: Введите число: Введите число: 123 1234 Да. Нет. «4»: Ввести целое число и найти сумму его цифр. Пример: Введите целое число: 1234 Сумма цифр числа 1234 равна 10.

Задания

«3»: Ввести целое число и определить, верно ли, что в нём ровно 3 цифры.

Пример:

Введите число: Введите число:

123 1234

Да. Нет.

«4»: Ввести целое число и найти сумму его цифр.

Пример:

Введите целое число:

1234

Сумма цифр числа 1234 равна 10.


 Задания «5»: Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры , стоящие рядом . Пример: Введите целое число: Введите целое число: 1232 1224 Нет. Да. «6»: Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры , НЕ обязательно стоящие рядом. Пример: Введите целое число: Введите целое число: 1234 1242 Нет. Да.

Задания

«5»: Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры , стоящие рядом .

Пример:

Введите целое число: Введите целое число:

1232 1224

Нет. Да.

«6»: Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры , НЕ обязательно стоящие рядом.

Пример:

Введите целое число: Введите целое число:

1234 1242

Нет. Да.


 Задания -2 «3»: Ввести целое число и определить, верно ли, что в нём ровно 1 цифра «9». Пример: Введите число: Введите число: 193 1994 Да. Нет. «4»: Ввести целое число и определить, верно ли, что все его цифры четные. Пример: Введите число: Введите число: 2684 2994 Да. Нет.

Задания -2

«3»: Ввести целое число и определить, верно ли, что в нём ровно 1 цифра «9».

Пример:

Введите число: Введите число:

193 1994

Да. Нет.

«4»: Ввести целое число и определить, верно ли, что все его цифры четные.

Пример:

Введите число: Введите число:

2684 2994

Да. Нет.


 Задания -2 «5»: Ввести целое число и определить, верно ли, что все его цифры расположены в порядке возрастания. Пример: Введите целое число: Введите целое число: 1238 1274 Да. Нет. «6»: Ввести целое число и «перевернуть» его, так чтобы первая цифра стала последней и т.д. Пример: Введите целое число: Введите целое число: 1234 782 4321 287

Задания -2

«5»: Ввести целое число и определить, верно ли, что все его цифры расположены в порядке возрастания.

Пример:

Введите целое число: Введите целое число:

1238 1274

Да. Нет.

«6»: Ввести целое число и «перевернуть» его, так чтобы первая цифра стала последней и т.д.

Пример:

Введите целое число: Введите целое число:

1234 782

4321 287


 Вычисление НОД НОД = наибольший общий делитель двух натуральных чисел – это наибольшее число, на которое оба исходных числа делятся без остатка. Перебор: Записать в переменную k минимальное из двух чисел. Если a и b без остатка делятся на k , то стоп. Уменьшить k на 1. Перейти к шагу 2. это цикл с условием! ? Где будет НОД? ? Почему алгоритм обязательно закончится? 82

Вычисление НОД

НОД = наибольший общий делитель двух натуральных чисел – это наибольшее число, на которое оба исходных числа делятся без остатка.

Перебор:

  • Записать в переменную k минимальное из двух чисел.
  • Если a и b без остатка делятся на k , то стоп.
  • Уменьшить k на 1.
  • Перейти к шагу 2.

это цикл с условием!

?

Где будет НОД?

?

Почему алгоритм обязательно закончится?

82


 Алгоритм Евклида Надо : вычислить наибольший общий делитель (НОД) чисел a и b . Заменяем большее из двух чисел разностью большего и меньшего до тех пор, пока они не станут равны. Это и есть НОД. НОД( a,b)= НОД( a-b, b) = НОД( a, b-a) Евклид (365-300 до. н. э.) Пример: НОД (14 , 21 ) = НОД (14 , 21-14 ) = НОД (14 , 7 ) = НОД (7 , 7 ) = 7 много шагов при большой разнице чисел: НОД (1998 , 2 ) = НОД (1996 , 2 ) = … = 2

Алгоритм Евклида

Надо : вычислить наибольший общий делитель (НОД) чисел a и b .

Заменяем большее из двух чисел разностью большего и меньшего до тех пор, пока они не станут равны. Это и есть НОД.

НОД( a,b)= НОД( a-b, b)

= НОД( a, b-a)

Евклид

(365-300 до. н. э.)

Пример:

НОД (14 , 21 ) = НОД (14 , 21-14 ) = НОД (14 , 7 )

= НОД (7 , 7 ) = 7

много шагов при большой разнице чисел:

НОД (1998 , 2 ) = НОД (1996 , 2 ) = … = 2


img83 b? нет да b:=b-a a:=a-b » width=»640″

Блок-схема алгоритма

начало

a = b?

да

нет

конец

a b?

нет

да

b:=b-a

a:=a-b


img84 b то a:= a — b иначе b:= b — a все кц ? Где будет НОД? Как его вывести? ? Как вывести НОД в формате НОД(14,21) = 7? ? А без дополнительных переменных? 85 » width=»640″

Алгоритм Евклида

нц пока a b

если a b

то a:= a — b

иначе b:= b — a

все

кц

?

Где будет НОД? Как его вывести?

?

Как вывести НОД в формате НОД(14,21) = 7?

?

А без дополнительных переменных?

85


 Модифицированный алгоритм Евклида Заменяем большее из двух чисел остатком от деления большего на меньшее до тех пор, пока меньшее не станет равно нулю. Тогда большее — это НОД. НОД( a,b)= НОД( mod (a,b), b) = НОД( a, mod (b,a)) Пример: НОД (14 , 21 ) = НОД (14 , 7 ) = НОД (0 , 7 ) = 7 Еще один вариант: НОД( 2 · a,2 · b)= 2 · НОД( a, b) НОД( 2 · a,b)= НОД( a, b) | при нечетном b

Модифицированный алгоритм Евклида

Заменяем большее из двух чисел остатком от деления большего на меньшее до тех пор, пока меньшее не станет равно нулю. Тогда большее — это НОД.

НОД( a,b)= НОД( mod (a,b), b)

= НОД( a, mod (b,a))

Пример:

НОД (14 , 21 ) = НОД (14 , 7 ) = НОД (0 , 7 ) = 7

Еще один вариант:

НОД( 2 · a,2 · b)= 2 · НОД( a, b)

НОД( 2 · a,b)= НОД( a, b) | при нечетном b


 Алгоритм Евклида «3» : Составить программу для вычисления НОД с помощью алгоритма Евклида. « 4 » : Составить программу для вычисления НОД с помощью модифицированного алгоритма Евклида и заполнить таблицу: a b 64168 НОД( a,b ) 358853 82678 6365133 691042 11494962 17905514 23108855 549868978 298294835

Алгоритм Евклида

«3» : Составить программу для вычисления НОД с помощью алгоритма Евклида.

« 4 » : Составить программу для вычисления НОД с помощью модифицированного алгоритма Евклида и заполнить таблицу:

a

b

64168

НОД( a,b )

358853

82678

6365133

691042

11494962

17905514

23108855

549868978

298294835


 Алгоритм Евклида «5» : Выполнить задание на «4» и подсчитать число шагов алгоритма для каждого случая. a 64168 b 82678 358853 НОД( a,b ) 691042 шагов 6365133 11494962 17905514 23108855 549868978 298294835

Алгоритм Евклида

«5» : Выполнить задание на «4» и подсчитать число шагов алгоритма для каждого случая.

a

64168

b

82678

358853

НОД( a,b )

691042

шагов

6365133

11494962

17905514

23108855

549868978

298294835


 Программирование на алгоритмическом языке Тема 5. Циклы с переменной

Программирование на алгоритмическом языке

Тема 5. Циклы с переменной


 Цикл с переменной Задача: вывести кубы чисел от 1 до 8. ? Можно ли решить известными способами ? Нужны ли переменные? Сколько? Как они должны изменяться? Нужен ли цикл? 90

Цикл с переменной

Задача: вывести кубы чисел от 1 до 8.

?

Можно ли решить известными способами ?

  • Нужны ли переменные? Сколько?
  • Как они должны изменяться?
  • Нужен ли цикл?

90


 Блок-схема алгоритма начало N := 1 N нет конец да куб N := N*N*N вывод куб N N := N + 1 91

Блок-схема алгоритма

начало

N := 1

N

нет

конец

да

куб N := N*N*N

вывод куб N

N := N + 1

91


 Цикл с переменной Задача: вывести кубы натуральных чисел от 1 до 8. алг Кубы нач цел N, куб N N:= 1 нц пока N куб N:= N*N*N вывод куб N, нс N:= N + 1 кц кон 3 действия с N N:= 1 N N:= N + 1

Цикл с переменной

Задача: вывести кубы натуральных чисел от 1 до 8.

алг Кубы

нач

цел N, куб N

N:= 1

нц пока N

куб N:= N*N*N

вывод куб N, нс

N:= N + 1

кц

кон

3 действия с N

N:= 1

N

N:= N + 1


 Цикл с переменной Задача: вывести кубы натуральных чисел от 1 до 8. алг Кубы нач цел N, куб N кон для 1,2,3,…,8 нц для N от 1 до 8 куб N:= N*N*N вывод куб N, нс кц ? Как обойтись без переменной куб N ? 93

Цикл с переменной

Задача: вывести кубы натуральных чисел от 1 до 8.

алг Кубы

нач

цел N, куб N

кон

для 1,2,3,…,8

нц для N от 1 до 8

куб N:= N*N*N

вывод куб N, нс

кц

?

Как обойтись без переменной куб N ?

93


 Цикл с переменной Задача: вывести кубы чётных чисел от 2 до 8. алг Кубы нач цел N, куб N кон для 2,4,6,8 нц для N от 2 до 8 шаг 2 куб N:= N*N*N вывод куб N, нс кц только целые ! 94

Цикл с переменной

Задача: вывести кубы чётных чисел от 2 до 8.

алг Кубы

нач

цел N, куб N

кон

для 2,4,6,8

нц для N от 2 до 8 шаг 2

куб N:= N*N*N

вывод куб N, нс

кц

только целые !

94


 Сколько раз выполняется цикл? a := 1 нц для i от 1 до 3 ; a:=a+ 1 кц a = 4 a := 1 нц для i от 3 до 1 ; a:=a+ 1 кц a = 1 a = 1 a := 1 нц для i от 1 до 3 шаг -1 ; a:=a+ 1 кц a = 4 a := 1 нц для i от 3 до 1 шаг -1 ; a:=a+ 1 кц

Сколько раз выполняется цикл?

a := 1

нц для i от 1 до 3 ; a:=a+ 1 кц

a = 4

a := 1

нц для i от 3 до 1 ; a:=a+ 1 кц

a = 1

a = 1

a := 1

нц для i от 1 до 3 шаг -1 ; a:=a+ 1 кц

a = 4

a := 1

нц для i от 3 до 1 шаг -1 ; a:=a+ 1 кц


img95 0 и конечное значение начального, цикл не выполняется ни разу переменная цикла может быть только целой ( цел ) начальное и конечное значения и шаг – целые можно записывать в одну строчку, разделяя команды точкой с запятой: если шаг 0 и конечное значение если шаг начального, цикл не выполняется ни разу нц для n от 1 до 4 вывод n кц ; 96 » width=»640″

Цикл с переменной

Особенности:

  • переменная цикла может быть только целой ( цел ) начальное и конечное значения и шаг – целые можно записывать в одну строчку, разделяя команды точкой с запятой: если шаг 0 и конечное значение начального, цикл не выполняется ни разу
  • переменная цикла может быть только целой ( цел )
  • начальное и конечное значения и шаг – целые
  • можно записывать в одну строчку, разделяя команды точкой с запятой:
  • если шаг 0 и конечное значение
  • если шаг начального, цикл не выполняется ни разу

нц для n от 1 до 4 вывод n кц

;

96


img96 = b | тело цикла i:= i — 1 кц нц для i от a до b шаг -1 | тело цикла кц Замена цикла для на пока возможна всегда . Замена пока на для возможна только тогда, когда можно заранее вычислить число шагов цикла. » width=»640″

Замена одного вида цикла на другой

i:= 1

нц пока i

| тело цикла

i:= i + 1

кц

нц для i от 1 до 10

| тело цикла

кц

i:= a

нц пока i = b

| тело цикла

i:= i — 1

кц

нц для i от a до b шаг -1

| тело цикла

кц

Замена цикла для на пока возможна всегда .

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


 Задания «3»: Ввести натуральное число N и вывести числа от N до 1 (через одно) в порядке убывания. Пример: Введите натуральное число: 8 Ответ: 8 6 4 2

Задания

«3»: Ввести натуральное число N и вывести числа от N до 1 (через одно) в порядке убывания.

Пример:

Введите натуральное число:

8

Ответ: 8 6 4 2


 Задания «4»: Ввести два целых числа a и b ( a ≤ b ) и вывести кубы всех чисел от a до b . Пример: Введите два числа: 4 6 4*4*4=64 5*5*5=125 6*6*6=216 «5»: Ввести целое число a и вывести сумму квадратов всех чисел от 1 до a с шагом 0.1 . Пример: Введите последнее число: 3 Сумма 91.7 1 2 + 1.1 2 + 1.2 2 + … + a 2

Задания

«4»: Ввести два целых числа a и b ( a ≤ b ) и вывести кубы всех чисел от a до b .

Пример:

Введите два числа:

4 6

4*4*4=64

5*5*5=125

6*6*6=216

«5»: Ввести целое число a и вывести сумму квадратов всех чисел от 1 до a с шагом 0.1 .

Пример:

Введите последнее число:

3

Сумма 91.7

1 2 + 1.1 2 + 1.2 2 + … + a 2


 Задания-2 «4»: Ввести a и b и вывести квадраты и кубы чисел от a до b . Пример: Введите границы интервала: 4 6 4 : 16 64 5 : 25 125 6 : 36 216 «5»: Вывести квадраты и кубы 10 чисел следующей последовательности: 1, 2, 4, 7, 11, 16, … Пример: 1: 1 1 2: 4 8 4: 16 64 ... 46: 2116 97336

Задания-2

«4»: Ввести a и b и вывести квадраты и кубы чисел от a до b .

Пример:

Введите границы интервала:

4 6

4 : 16 64

5 : 25 125

6 : 36 216

«5»: Вывести квадраты и кубы 10 чисел следующей последовательности: 1, 2, 4, 7, 11, 16, …

Пример:

1: 1 1

2: 4 8

4: 16 64

46: 2116 97336


 Программирование на алгоритмическом языке Тема 6. Графика

Программирование на алгоритмическом языке

Тема 6. Графика


 Система координат X (0,0) y ( x , y ) x Y

Система координат

X

(0,0)

y

( x , y )

x

Y


 Исполнитель Рисователь использовать Рисователь алг нач | текст программы кон

Исполнитель Рисователь

использовать Рисователь

алг

нач

| текст программы

кон


 Линии Цвет и толщина линий: черный белый серый фиолетовый синий голубой зеленый желтый оранжевый красный толщина линии перо ( 2 ,

Линии

Цвет и толщина линий:

черный

белый

серый

фиолетовый

синий

голубой

зеленый

желтый

оранжевый

красный

толщина линии

перо ( 2 , «синий» )

(10, 15)

перо ( 1 , «зеленый» ) линия ( 10 , 1 5 , 90 , 80 )

(90, 80)

(5,5)

перо ( 1 , «красный“ )

в точку ( 5 , 5 )

линия в точку ( 50 , 5 )

линия в точку ( 70 , 50 )

линия в точку ( 30 , 80 )

линия в точку ( 5 , 60 )

(50,5)

(70, 50)

(5,60 )

(30,80)

104


104 Фигуры с заливкой (0,0) перо ( 1 ,

104

Фигуры с заливкой

(0,0)

перо ( 1 , «синий» )

кисть ( «желтый» )

прямоугольник ( 0 , 0 , 80 , 40 )

(80, 40)

(0,0)

перо ( 1 , «красный» )

кисть ( «зеленый» )

эллипс ( 0 , 0 , 100 , 50 )

(100, 50)

?

кисть ( «» ) ; | отменить заливку

Как построить круг?

(70, 80)

кисть ( «фиолетовый» )

залить ( 70 , 80 )

105


105 Пример использовать Рисователь алг Домик нач перо ( 2 ,

105

Пример

использовать Рисователь

алг Домик

нач

перо ( 2 , «фиолетовый» )

кисть ( «синий» )

прямоугольник ( 100 , 100 , 300 , 200 )

в точку ( 100 , 100 )

линия в точку ( 200 , 50 )

линия в точку ( 300 , 100 )

кисть ( «желтый» )

залить ( 200 , 75 );

перо ( 2 , «белый» );

кисть ( «зеленый» );

эллипс ( 150 , 100 , 250 , 200 );

кон

(200, 50)

(100, 100)

(300, 200)

105


Задания «3»: «Домик» «4»: «Лягушка» 107

Задания

«3»: «Домик»

«4»: «Лягушка»

107


Задания «5»: «Корона» 108

Задания

«5»: «Корона»

108


 Штриховка N линий ( N=5) ( x 1 , y 1 ) x y 1 y 2 h ( x 2 , y 2 ) прямоугольник (x1, y1, x2, y2) x:= x1 + h линия (x, y1, x, y2) x:= x + h линия (x, y1, x, y2) x:= x + h ... цикл N раз

Штриховка

N линий ( N=5)

( x 1 , y 1 )

x

y 1

y 2

h

( x 2 , y 2 )

прямоугольник (x1, y1, x2, y2)

x:= x1 + h

линия (x, y1, x, y2)

x:= x + h

линия (x, y1, x, y2)

x:= x + h

цикл N раз


 Штриховка (программа) N ( x 1 , y 1 ) использовать Рисователь алг Штриховка нач цел N = 5 | число линий цел x1 = 100 , x2 = 300 цел y1 = 100 , y2 = 200 вещ h, x h:=(x2 - x1)/(N + 1 ) прямоугольник ( x1, y1, x2, y2) x:= x1 + h нц N раз линия ( int (x), y1, int (x), y2) x:= x + h кц кон вещ h, x h ( x 2 , y 2 ) ? Почему? целая часть 110

Штриховка (программа)

N

( x 1 , y 1 )

использовать Рисователь

алг Штриховка

нач

цел N = 5 | число линий

цел x1 = 100 , x2 = 300

цел y1 = 100 , y2 = 200

вещ h, x

h:=(x2 — x1)/(N + 1 )

прямоугольник ( x1, y1, x2, y2)

x:= x1 + h

нц N раз

линия ( int (x), y1, int (x), y2)

x:= x + h

кц

кон

вещ h, x

h

( x 2 , y 2 )

?

Почему?

целая часть

110


110 Штриховка x 1 ( x 1 , y 1 ) h x ( x , y ) h y x:= x1 + hx ; y:= y1 + hy линия (x1, int (y), int (x), int (y)) x:= x + hx; y:= y + hy линия (x1, int (y), int (x), int (y)) x:= x + hx; y:= y + hy ... ( x 2 , y 2 ) цикл N раз 111

110

Штриховка

x 1

( x 1 , y 1 )

h x

( x , y )

h y

x:= x1 + hx ; y:= y1 + hy

линия (x1, int (y), int (x), int (y))

x:= x + hx; y:= y + hy

линия (x1, int (y), int (x), int (y))

x:= x + hx; y:= y + hy

( x 2 , y 2 )

цикл N раз

111


111 Штриховка вещ hx, hy, x, y hx:=(x2 - x1)/(N + 1 ) hy:=(y2 - y1)/(N + 1 ) в точку ( x1, y1) линия в точку ( x1, y2) линия в точку ( x2, y2) линия в точку ( x1, y1) x:= x1 + hx ; y:= y1 + hy нц N раз линия ( x1, int (y), int (x), int (y)) x:= x + hx y:= y + hy кц ( x 1 , y 1 ) h x h y ( x 2 , y 2 )

111

Штриховка

вещ hx, hy, x, y

hx:=(x2 — x1)/(N + 1 )

hy:=(y2 — y1)/(N + 1 )

в точку ( x1, y1)

линия в точку ( x1, y2)

линия в точку ( x2, y2)

линия в точку ( x1, y1)

x:= x1 + hx ; y:= y1 + hy

нц N раз

линия ( x1, int (y), int (x), int (y))

x:= x + hx

y:= y + hy

кц

( x 1 , y 1 )

h x

h y

( x 2 , y 2 )


 Задания « 3 »: Ввести с клавиатуры количество линий , построить фигуру и выполнить штриховку : «4»: Ввести с клавиатуры количество линий , построить фигуру и выполнить штриховку : или 113

Задания

« 3 »: Ввести с клавиатуры количество линий , построить фигуру и выполнить штриховку :

«4»: Ввести с клавиатуры количество линий , построить фигуру и выполнить штриховку :

или

113


113 Задания «5»: Ввести с клавиатуры количество линий и построить фигуру:

113

Задания

«5»: Ввести с клавиатуры количество линий и построить фигуру:


 Программирование на алгоритмическом языке Тема 7. Вспомогательные алгоритмы

Программирование на алгоритмическом языке

Тема 7. Вспомогательные алгоритмы


 Задача ? Можно ли решить известными методами ? Особенность: три похожие фигуры. общее : размеры, угол поворота отличия : координаты, цвет общее : размеры, угол поворота отличия : координаты, цвет ? Сколько координат надо задать ? 116

Задача

?

Можно ли решить известными методами ?

Особенность: три похожие фигуры.

общее : размеры, угол поворота

отличия : координаты, цвет

  • общее : размеры, угол поворота отличия : координаты, цвет

?

Сколько координат надо задать ?

116


 С чего начать? найти похожие действия (три фигуры) найти общее (размеры, форма, угол поворота) и отличия (координаты, цвет) отличия = параметры алгоритма (доп. данные) найти похожие действия (три фигуры) найти общее (размеры, форма, угол поворота) и отличия (координаты, цвет) отличия = параметры алгоритма (доп. данные) цепочка символов использовать Рисователь алг Тр ( цел x, y, лит цвет) нач в точку (x, y) линия в точку (x, y- 60 ) линия в точку (x+ 100 , y) линия в точку (x, y) кисть (цвет) залить (x+ 20 , y- 20 ) кон ( x , y -60) параметры 60 ( x , y ) 100 ( x +100, y )

С чего начать?

  • найти похожие действия (три фигуры) найти общее (размеры, форма, угол поворота) и отличия (координаты, цвет) отличия = параметры алгоритма (доп. данные)
  • найти похожие действия (три фигуры)
  • найти общее (размеры, форма, угол поворота) и отличия (координаты, цвет)
  • отличия = параметры алгоритма (доп. данные)

цепочка символов

использовать Рисователь

алг Тр ( цел x, y, лит цвет)

нач

в точку (x, y)

линия в точку (x, y- 60 )

линия в точку (x+ 100 , y)

линия в точку (x, y)

кисть (цвет)

залить (x+ 20 , y- 20 )

кон

( x , y -60)

параметры

60

( x , y )

100

( x +100, y )


 Если запустить? (50,100)

Если запустить?

(50,100)


 Как использовать? использовать Рисователь алг Треугольники нач перо ( 1 ,

Как использовать?

использовать Рисователь

алг Треугольники

нач

перо ( 1 , «черный» )

Тр ( 100 , 100 , «синий» )

Тр ( 200 , 100 , «зеленый» )

Тр ( 200 , 160 , «красный» )

кон

основной

алгоритм

60

( 100 , 100 )

100

вызовы алгоритма

алг Тр ( цел x, y, лит цвет)

нач

кон

вспомогательный

алгоритм

119


 Вспомогательные алгоритмы расположены ниже основного в заголовке перечисляются формальные параметры, они обозначаются именами для каждого параметра указывают тип однотипные параметры перечисляются через запятую при вызове в скобках указывают фактические параметры в том же порядке расположены ниже основного в заголовке перечисляются формальные параметры, они обозначаются именами для каждого параметра указывают тип однотипные параметры перечисляются через запятую при вызове в скобках указывают фактические параметры в том же порядке алг Тр ( цел x, y, лит цвет) Тр ( 200 , 100 ,

Вспомогательные алгоритмы

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

алг Тр ( цел x, y, лит цвет)

Тр ( 200 , 100 , «зеленый» )

x

цвет

y


 Задания « 3 »: Используя одну процедуру, построить фигуру. « 4 »: Используя одну процедуру, построить фигуру. 121

Задания

« 3 »: Используя одну процедуру, построить фигуру.

« 4 »: Используя одну процедуру, построить фигуру.

121


 Задания «5»: Используя одну процедуру, построить фигуру. 122

Задания

«5»: Используя одну процедуру, построить фигуру.

122


 Рекурсивные объекты Сказка о поп é и собаке: Примеры: У попа была собака, он ее любил. Она съела кусок мяса, он ее убил. В ямку закопал, надпись написал: У попа была собака, он ее любил. Она съела кусок мяса, он ее убил. В ямку закопал, надпись написал: Сказка о поп é и собаке Сказка о поп é и собаке Рисунок с рекурсией: Факториал: если если Рекурсивный объект – это объект, определяемый через один или несколько таких же объектов. 123

Рекурсивные объекты

Сказка о поп é и собаке:

Примеры:

У попа была собака, он ее любил.

Она съела кусок мяса, он ее убил.

В ямку закопал, надпись написал:

  • У попа была собака, он ее любил. Она съела кусок мяса, он ее убил. В ямку закопал, надпись написал:

Сказка о поп é и собаке

  • Сказка о поп é и собаке

Рисунок с рекурсией:

Факториал:

если

если

Рекурсивный объект – это объект, определяемый через один или несколько таких же объектов.

123


 Рекурсивная фигура 3 уровня: ? Где рекурсия? Фигура из N уровней – это окружность и 4 фигуры из N-1 уровней N-1 N-1 N-1 N-1

Рекурсивная фигура

3 уровня:

?

Где рекурсия?

Фигура из N уровней – это

  • окружность и
  • 4 фигуры из N-1 уровней

N-1

N-1

N-1

N-1


 Рекурсивная фигура: алгоритм центр радиус уровней ( x , y-R ) алг РекОк ( цел x, y, R, N ) нач если N окружность (x, y, R) РекОк (x, y-R, div (R, 2 ), N - 1 ) РекОк (x+R, y, div (R, 2 ), N - 1 ) РекОк (x, y+R, div (R, 2 ), N - 1 ) РекОк (x-R, y, div (R, 2 ), N - 1 ) кон ( x , y ) ( x+R , y ) окончание рекурсии ( x-R , y ) ( x , y+R ) рекурсивные вызовы Рекурсивный алгоритм – это алгоритм, который вызывает сам себя (с другими параметрами!).

Рекурсивная фигура: алгоритм

центр

радиус

уровней

( x , y-R )

алг РекОк ( цел x, y, R, N )

нач

если N

окружность (x, y, R)

РекОк (x, y-R, div (R, 2 ), N — 1 )

РекОк (x+R, y, div (R, 2 ), N — 1 )

РекОк (x, y+R, div (R, 2 ), N — 1 )

РекОк (x-R, y, div (R, 2 ), N — 1 )

кон

( x , y )

( x+R , y )

окончание рекурсии

( x-R , y )

( x , y+R )

рекурсивные вызовы

Рекурсивный алгоритм – это алгоритм, который вызывает сам себя (с другими параметрами!).


 Рекурсивная фигура: программа использовать Рисователь алг Рекурсия нач РекОк (200, 200, 100, 3) кон алг РекОк ( цел x, y, R, N ) нач ... кон

Рекурсивная фигура: программа

использовать Рисователь

алг Рекурсия

нач

РекОк (200, 200, 100, 3)

кон

алг РекОк ( цел x, y, R, N )

нач

кон


 Рекурсивные алгоритмы вызывают сами себя прямо … или через другой алгоритм: должно быть условие окончания рекурсии (иначе?) рекурсия может стать бесконечной все задачи могут быть решены без рекурсии, но… часто рекурсивные алгоритмы проще и понятнее как правило, алгоритмы без рекурсии работают быстрее и требуют меньше памяти вызывают сами себя прямо … или через другой алгоритм: должно быть условие окончания рекурсии (иначе?) рекурсия может стать бесконечной все задачи могут быть решены без рекурсии, но… часто рекурсивные алгоритмы проще и понятнее как правило, алгоритмы без рекурсии работают быстрее и требуют меньше памяти A прямая рекурсия A B косвенная рекурсия

Рекурсивные алгоритмы

  • вызывают сами себя прямо … или через другой алгоритм: должно быть условие окончания рекурсии (иначе?) рекурсия может стать бесконечной все задачи могут быть решены без рекурсии, но… часто рекурсивные алгоритмы проще и понятнее как правило, алгоритмы без рекурсии работают быстрее и требуют меньше памяти
  • вызывают сами себя прямо
  • … или через другой алгоритм:
  • должно быть условие окончания рекурсии (иначе?)
  • рекурсия может стать бесконечной
  • все задачи могут быть решены без рекурсии, но…
  • часто рекурсивные алгоритмы проще и понятнее
  • как правило, алгоритмы без рекурсии работают быстрее и требуют меньше памяти

A

прямая рекурсия

A

B

косвенная рекурсия


 Задания « 3 » : Нарисовать рекурсивную фигуру, число уровней вводить с клавиатуры: « 4 » : Нарисовать рекурсивную фигуру, число уровней вводить с клавиатуры: 128

Задания

« 3 » : Нарисовать рекурсивную фигуру, число уровней вводить с клавиатуры:

« 4 » : Нарисовать рекурсивную фигуру, число уровней вводить с клавиатуры:

128


 Задания «5» : Нарисовать рекурсивную фигуру, число уровней вводить с клавиатуры: 129

Задания

«5» : Нарисовать рекурсивную фигуру, число уровней вводить с клавиатуры:

129


 Программирование на алгоритмическом языке Тема 8 . Анимация

Программирование на алгоритмическом языке

Тема 8 . Анимация


 Анимация Анимация (англ. animation ) – оживление изображения на экране. Задача : внутри синего квадрата 200 на 200 пикселей слева направо двигается желтый квадрат 20 на 20 пикселей. Программа останавливается, если нажата клавиша Esc или квадрат дошел до границы синей области. Проблема : как изобразить перемещение объекта на экране? Привязка: состояние объекта задается координатами ( x,y) Принцип анимации: рисуем объект в точке ( x,y) задержка на несколько миллисекунд стираем объект изменяем координаты ( x,y) переходим к шагу 1 рисуем объект в точке ( x,y) задержка на несколько миллисекунд стираем объект изменяем координаты ( x,y) переходим к шагу 1 131

Анимация

Анимация (англ. animation ) – оживление изображения на экране.

Задача : внутри синего квадрата 200 на 200 пикселей слева направо двигается желтый квадрат 20 на 20 пикселей. Программа останавливается, если нажата клавиша Esc или квадрат дошел до границы синей области.

Проблема : как изобразить перемещение объекта на экране?

Привязка: состояние объекта задается координатами ( x,y)

Принцип анимации:

  • рисуем объект в точке ( x,y) задержка на несколько миллисекунд стираем объект изменяем координаты ( x,y) переходим к шагу 1
  • рисуем объект в точке ( x,y)
  • задержка на несколько миллисекунд
  • стираем объект
  • изменяем координаты ( x,y)
  • переходим к шагу 1

131


 Процедура (рисование и стирание) одна процедура рисует и стирает стереть = рисовать цветом фона границу квадрата отключить одна процедура рисует и стирает стереть = рисовать цветом фона границу квадрата отключить ( x , y ) ( x +20, y +20) рисуем: цвет кисти – желтый стираем: цвет кисти – синий алг Фигура ( цел x, y, лит цвет) нач кисть (цвет) прямоугольник (x,y,x+ 20 ,y+ 20 ) кон

Процедура (рисование и стирание)

  • одна процедура рисует и стирает стереть = рисовать цветом фона границу квадрата отключить
  • одна процедура рисует и стирает
  • стереть = рисовать цветом фона
  • границу квадрата отключить

( x , y )

( x +20, y +20)

рисуем: цвет кисти – желтый

стираем: цвет кисти – синий

алг Фигура ( цел x, y, лит цвет)

нач

кисть (цвет)

прямоугольник (x,y,x+ 20 ,y+ 20 )

кон


 Полная программа использовать Рисователь алг Анимация нач цел x, y | текущие координаты кисть (

Полная программа

использовать Рисователь

алг Анимация

нач

цел x, y | текущие координаты

кисть ( «синий» )

перо (1, «» ) | отключить контур

прямоугольник ( 0 , 0 , 200 , 200 ) | синий фон

x:= 0 ; y:= 100 | начальные координаты

кон

нц пока x

Фигура (x, y, «желтый» )

delay (50)

Фигура (x, y, «синий» )

x:= x + 5

кц

пока не дошли до границы

алг Фигура ( цел x, y, лит цвет)

нач

кон


 Задания «3»: Квадрат двигается справа налево: «4»: Два квадрата двигаются в противоположных направлениях: 134

Задания

«3»: Квадрат двигается справа налево:

«4»: Два квадрата двигаются в противоположных направлениях:

134


 Задания «5»: Два квадрата двигаются в противоположных направлениях и отталкиваются от стенок синего квадрата:

Задания

«5»: Два квадрата двигаются в противоположных направлениях и отталкиваются от стенок синего квадрата:


 Управление клавишами Задача : жёлтый квадрат внутри синего квадрата управляется клавишами-стрелками. Коды клавиш: влево – 16777234 вверх – 16777235 вправо – 16777236 вниз – 16777237 Проблема : как изменять направление движения? Решение : ждать нажатия на клавишу, записать ее код в переменную c c:= клав выбор при c = 16777234 : x:= x – 5 | влево при c = 16777235 : y:= y – 5 | вверх при c = 16777236 : x:= x + 5 | вправо при c = 16777237 : y:= y + 5 | вниз все ? Когда стирать фигуру? 136

Управление клавишами

Задача : жёлтый квадрат внутри синего квадрата управляется клавишами-стрелками. Коды клавиш:

влево – 16777234 вверх – 16777235

вправо – 16777236 вниз – 16777237

Проблема : как изменять направление движения?

Решение :

ждать нажатия на клавишу, записать ее код в переменную c

c:= клав

выбор

при c = 16777234 : x:= x – 5 | влево

при c = 16777235 : y:= y – 5 | вверх

при c = 16777236 : x:= x + 5 | вправо

при c = 16777237 : y:= y + 5 | вниз

все

?

Когда стирать фигуру?

136


 Программа использовать Рисователь алг Управление клавишами нач цел x, y, c | нарисовать синий квадрат x:= 100; y:= 100 | начальная точка нц пока x Фигура (x, y,

Программа

использовать Рисователь

алг Управление клавишами

нач

цел x, y, c

| нарисовать синий квадрат

x:= 100; y:= 100 | начальная точка

нц пока x

Фигура (x, y, «желтый» ) | рисуем фигуру

c:= клав | ждем нажатия клавиши

Фигура (x, y, «синий» ) | стираем фигуру

выбор

при c = 16777234 : x:= x — 5

при c = 16777235 : y:= y — 5

при c = 16777236 : x:= x + 5

при c = 16777237 : y:= y + 5

все

кц

кон


 Задания « 3 »: Квадрат в самом начале стоит в правом нижнем углу, и двигается при нажатии стрелок только вверх или влево: «4»: Квадрат двигается при нажатии стрелок, однако не может выйти за границы синего квадрата: 138

Задания

« 3 »: Квадрат в самом начале стоит в правом нижнем углу, и двигается при нажатии стрелок только вверх или влево:

«4»: Квадрат двигается при нажатии стрелок, однако не может выйти за границы синего квадрата:

138


 Задания « 5 »: Два квадрата, один управляется стрелками, второй – любыми другими клавишами. Оба не могут выйти за границы синего поля. 139

Задания

« 5 »: Два квадрата, один управляется стрелками, второй – любыми другими клавишами. Оба не могут выйти за границы синего поля.

139


 Программирование на алгоритмическом языке Тема 9 . Случайные числа

Программирование на алгоритмическом языке

Тема 9 . Случайные числа


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

Случайность и ее моделирование

Случайно…

Случайный выбор:

  • встретить друга на улице
  • разбить тарелку
  • найти 10 рублей
  • выиграть в лотерею
  • жеребьевка на соревнованиях
  • выигравшие номера в лотерее

Как получить случайность?


142 Случайные числа на компьютере Электронный генератор нужно специальное устройство нельзя воспроизвести результаты Псевдослучайные числа – обладают свойствами случайных чисел, но каждое следующее число вычисляется по заданной формуле. Метод середины квадрата (Дж. фон Нейман) в квадрате 564321 малый период (последовательность повторяется через 10 6 чисел) 458191 318458191041 209938992481 938992 142

142

Случайные числа на компьютере

Электронный генератор

  • нужно специальное устройство
  • нельзя воспроизвести результаты

Псевдослучайные числа – обладают свойствами случайных чисел, но каждое следующее число вычисляется по заданной формуле.

Метод середины квадрата (Дж. фон Нейман)

в квадрате

564321

  • малый период (последовательность повторяется через 10 6 чисел)

458191

318458191041

209938992481

938992

142


143 Распределение случайных чисел Модель : снежинки падают на отрезок [a,b] распределение равномерное неравномерное a a b b ? Сколько может быть разных распределений ? 143

143

Распределение случайных чисел

Модель : снежинки падают на отрезок [a,b]

распределение

равномерное

неравномерное

a

a

b

b

?

Сколько может быть разных распределений ?

143


144 Распределение случайных чисел Особенности : распределение – это характеристика всей последовательности , а не одного числа равномерное распределение одно, компьютерные датчики случайных чисел дают равномерное распределение неравномерных – много любое неравномерное можно получить с помощью равномерного распределение – это характеристика всей последовательности , а не одного числа равномерное распределение одно, компьютерные датчики случайных чисел дают равномерное распределение неравномерных – много любое неравномерное можно получить с помощью равномерного a a b b 144

144

Распределение случайных чисел

Особенности :

  • распределение – это характеристика всей последовательности , а не одного числа равномерное распределение одно, компьютерные датчики случайных чисел дают равномерное распределение неравномерных – много любое неравномерное можно получить с помощью равномерного
  • распределение – это характеристика всей последовательности , а не одного числа
  • равномерное распределение одно, компьютерные датчики случайных чисел дают равномерное распределение
  • неравномерных – много
  • любое неравномерное можно получить с помощью равномерного

a

a

b

b

144


 Генератор случайных чисел Вещественные числа в интервале [0, 10 ) : вещ X, Y X:= r a nd ( 0 , 1 0 ) | интервал от 0 до 10 ( Y:= r a nd ( 0 , 1 0 ) | это уже другое число! англ. random – случайный Целые числа в интервале [0,10] : цел K , L K:= ira nd ( 0 , 1 0 ) | интервал от 0 до 10 ( L := ira nd ( 0 , 1 0 ) | это уже другое число! англ. i nteger – целый

Генератор случайных чисел

Вещественные числа в интервале [0, 10 ) :

вещ X, Y

X:= r a nd ( 0 , 1 0 ) | интервал от 0 до 10 (

Y:= r a nd ( 0 , 1 0 ) | это уже другое число!

англ. random – случайный

Целые числа в интервале [0,10] :

цел K , L

K:= ira nd ( 0 , 1 0 ) | интервал от 0 до 10 (

L := ira nd ( 0 , 1 0 ) | это уже другое число!

англ. i nteger – целый


 Случайные числа Задача : заполнить прямоугольник 200 на 150 пикселей равномерно точками случайного цвета Как получить случайные координаты пикселя? Как добиться равномерности? автоматически при использовании irand цел X, Y X:= ira nd ( 0 , 200 ) Y:= ir a nd ( 0 , 1 5 0 )

Случайные числа

Задача : заполнить прямоугольник 200 на 150 пикселей равномерно точками случайного цвета

Как получить случайные координаты пикселя?

Как добиться равномерности?

автоматически при использовании irand

цел X, Y

X:= ira nd ( 0 , 200 )

Y:= ir a nd ( 0 , 1 5 0 )


 Цвет пикселя на мониторе ! Красный, зелёный и синий лучи создают почти такое же ощущение, как луч «смешанного» цвета! red : R green : G blue : B Вывод: цвет можно разложить на составляющие (каждая кодируется числом от 0 до 255). Модель RGB : R G B RGB( 255 ,0, 255 ) RGB(0,0,0) RGB( 255 , 255 , 255 ) RGB( 255 , 255 ,0) RGB( 255 ,0,0) RGB( 0 , 255 , 255 ) RGB(0, 255 ,0) RGB(0,0, 255 ) RGB( 10 0, 10 0, 10 0)

Цвет пикселя на мониторе

!

Красный, зелёный и синий лучи создают почти такое же ощущение, как луч «смешанного» цвета!

red : R

green : G

blue : B

Вывод: цвет можно разложить на составляющие (каждая кодируется числом от 0 до 255).

Модель RGB :

R G B

RGB( 255 ,0, 255 )

RGB(0,0,0)

RGB( 255 , 255 , 255 )

RGB( 255 , 255 ,0)

RGB( 255 ,0,0)

RGB( 0 , 255 , 255 )

RGB(0, 255 ,0)

RGB(0,0, 255 )

RGB( 10 0, 10 0, 10 0)


 Случайный цвет пикселя Случайные составляющие цвета: цел r , g, b r:= ira nd ( 0 , 255 ) g:= ir a nd ( 0 , 255 ) b:= ir a nd ( 0 , 255 ) это разные числа! Управление цветом пикселя: случайный цвет пиксель ( X , Y, RGB (r,g,b) ) встроенные функции Рисователя

Случайный цвет пикселя

Случайные составляющие цвета:

цел r , g, b

r:= ira nd ( 0 , 255 )

g:= ir a nd ( 0 , 255 )

b:= ir a nd ( 0 , 255 )

это разные числа!

Управление цветом пикселя:

случайный цвет

пиксель ( X , Y, RGB (r,g,b) )

встроенные функции Рисователя


 Программа использовать Рисователь алг Случайные точки нач цел x, y, r, g, b нц пока да x:= irand ( 0 , 200 ) y:= irand ( 0 , 100 ) r:= irand ( 0 , 255 ) g:= irand ( 0 , 255 ) b:= irand ( 0 , 255 ) пиксель ( x,y, RGB (r,g,b)) кц кон это бесконечный цикл: нц пока да … кц

Программа

использовать Рисователь

алг Случайные точки

нач

цел x, y, r, g, b

нц пока да

x:= irand ( 0 , 200 )

y:= irand ( 0 , 100 )

r:= irand ( 0 , 255 )

g:= irand ( 0 , 255 )

b:= irand ( 0 , 255 )

пиксель ( x,y, RGB (r,g,b))

кц

кон

это бесконечный цикл:

нц пока да

кц


 Задания «3»: Заполнить квадрат точками случайного цвета. размер квадрата ввести с клавиатуры: Пример: Введите размер квадрата: 150 «4»: Заполнить область точками случайного цвета:

Задания

«3»: Заполнить квадрат точками случайного цвета. размер квадрата ввести с клавиатуры:

Пример:

Введите размер квадрата:

150

«4»: Заполнить область точками случайного цвета:


 Задания «5»: Заполнить область точками случайного цвета: или

Задания

«5»: Заполнить область точками случайного цвета:

или


 Конец фильма ПОЛЯКОВ Константин Юрьевич д.т.н., учитель информатики высшей категории , ГОУ СОШ № 163, г. Санкт-Петербург kpolyakov@mail.ru

Конец фильма

ПОЛЯКОВ Константин Юрьевич

д.т.н., учитель информатики высшей категории ,

ГОУ СОШ № 163, г. Санкт-Петербург

[email protected]

  • Сказка о черной принцессе краткое содержание
  • Сказка о чередующихся гласных в корне 6 класс
  • Сказка о цветке недотроге
  • Сказка о царевиче хлоре что значит для царевича добродетель
  • Сказка о царевиче хлоре краткое содержание