понеділок, 30 листопада 2015 р.

Лабораторная работа по теме "Графики функций"

1. Введите скрипт, который был дан на лекции.
2. Измените его так, чтобы выводился график функции y=x3-3x
3. Добавьте на оси координат насечки, отмечающие целые значения х и у.
4. Подумайте, что нужно изменить в скрипте, чтобы точки соединялись линией, а не рисовались отдельно
5. Особенно интересные графики получаются, если задаётся выражение не у от х, а и х, и у выражаются от некоторого t. Зайдите в исходный код страницы, и разберитесь, как этот код работает и зарисуйте в конспект блок-схему его алгоритма.

неділя, 1 листопада 2015 р.

Циклы на Javascript


Часто в программе нужно выполнить много однотипных действий. Например, нарисовать ряд из девяти окружностей. 
Допустим для определённости, что радиус каждой окружности должен быть равен 30 пикселей, координаты центра самой левой окружности равны (100, 50) и все расстояния между центрами должны быть по 50 пикселей по горизонтали.

Как решать эту задачу "в лоб"? Очень просто: написав такой скрипт (первый две стандартный строки, с которых должно начинаться рисование, я тут не пишу - вспоминайте!)

ctx.strokeStyle="#ff0000";//задали красный цвет линий
ctx.beginPath(); 
ctx.arc(50, 100, 30, 0, 2*Math.PI);//рисуем полную окружность с центром в (50, 100) и радиусом 30
ctx.stroke();//обводим её

ctx.beginPath(); 
ctx.arc(100, 100, 30, 0, 2*Math.PI);//рисуем полную окружность с центром в (100, 100) и радиусом 30
ctx.stroke();//обводим её

ctx.beginPath(); 
ctx.arc(150, 100, 30, 0, 2*Math.PI);//рисуем полную окружность с центром в (150, 100) и радиусом 30
ctx.stroke();//обводим её

ctx.beginPath(); 
ctx.arc(200, 100, 30, 0, 2*Math.PI);//рисуем полную окружность с центром в (200, 100) и радиусом 30
ctx.stroke();//обводим её

ctx.beginPath(); 
ctx.arc(250, 100, 30, 0, 2*Math.PI);//рисуем полную окружность с центром в (250, 100) и радиусом 30
ctx.stroke();//обводим её

ctx.beginPath(); 
ctx.arc(300, 100, 30, 0, 2*Math.PI);//рисуем полную окружность с центром в (300, 100) и радиусом 30
ctx.stroke();//обводим её

ctx.beginPath(); 
ctx.arc(350, 100, 30, 0, 2*Math.PI);//рисуем полную окружность с центром в (350, 100) и радиусом 30
ctx.stroke();//обводим её

ctx.beginPath(); 
ctx.arc(400, 100, 30, 0, 2*Math.PI);//рисуем полную окружность с центром в (400, 100) и радиусом 30
ctx.stroke();//обводим её

ctx.beginPath(); 
ctx.arc(450, 100, 30, 0, 2*Math.PI);//рисуем полную окружность с центром в (450, 100) и радиусом 30
ctx.stroke();//обводим её

Этот скрипт выдаст нам желаемый результат. Более того, некоторые недобросовестные программисты, которые получают деньги за объём кода, а не за эффективность решения, что-то подобное и делают.

В чём недостатки такого подхода?
1. Большой объём программного кода, в котором сложно разобраться и немудрено сделать ошибку
2. Большая сложность модификаций (если бы мы решили уменьшить радиус всех окружностей, то понадобилось бы вносить исправления в 9-ти строках)

Поэтому нужно применить другой подход – зацикливание программы. Чтобы составить циклический алгоритм, следует ответить на 3 вопроса:
  1. Что общего в командах?
  2. Чем они отличаются?
  3. До каких пор нужно продолжать выполнять команды?
Для нашего конкретного случая общее здесь то, что рисуются окружности, у них равны радиусы и координаты Y. Различаются же они координатами X. Рисовать их нужно до тех пор, пока координата X не превышает значение 450 пикселей.

Вот, как будет выглядеть блок-схема циклического алгоритма.


Теперь можно приступить к написанию более эффективной программы. Начинается она с двух стандартных строк:
var canvas=document.getElementById("C1");//получаем сам холст из тела документа 
var ctx = canvas.getContext("2d");//получаем контекст этого холста, к которому далее будем обращаться с командами

Теперь производим инициализацию переменных, задаём их начальные значения.
var x = 50
var y = 100
var r = 30

Теперь нужно проверить, не превысило ли х значения 450. Но нужно использовать не if, а другое ключевое слово: while, так как это вход не в ветку, а в цикл.

while (x<=450){

Теперь рисуем окружность с центром в (х, у) и радиусом r.
ctx.strokeStyle="#ff0000";//задали красный цвет линий
ctx.beginPath(); 
ctx.arc(x, y, y, 0, 2*Math.PI);//рисуем полную окружность с центром 
ctx.stroke();//обводим её

Теперь увеличиваем х на 50 и закрываем цикл
x = x+50
}

Вот и всё! Этот короткий скрипт нарисует то же самое, что и предыдущий длинный.

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

В шаге цикла можно менять сразу несколько параметров.

Допустим, нужно нарисовать вот такую картину:














Тогда, кроме
x = x+50
нужно дописать:
y = y+35;
r = r+10;

и всё будет работать так, как надо.

Пример 2.

Обратив внимание, что это пучок отрезков. Отрезок задаётся четырьмя числами: x1, y1, x2, y2. У всех отрезков координаты у неизменны, координата х1 увеличивается, а х2 – уменьшается.

Вот как будет выглядеть цикл

Пишем скрипт.
var x1 = 0
var y1 = 0
var x2 = 800
var y2 = 600

ctx.strokeStyle="#ff00ff";//цвет линий можно задать один раз, вне цикла
while (x1<=800){
ctx.beginPath(); 
ctx.moveTo(x1, y1);//ставим карандаш в точку (х1, у1)
ctx.lineTo(x2, y2);//ведём его в точку (х2, у2)
ctx.stroke();//прорисовываем линию

x1 = x1+10
x2 = x2-10
}


Задания для самостоятельной работы (для каждого из них в конспекте должна быть составлена программа)







середа, 21 жовтня 2015 р.

Создание кроссплатформенного приложения на АС3: как начать

Видео находится здесь: https://dl.dropboxusercontent.com/u/22620118/Glau/tutorials/Flash/Flash.html

Должно открываться.

Если ещё не скачивали, скачайте Flash Develop: http://www.flashdevelop.org/community/viewtopic.php?f=11&t=12455 (Можете скачать zip и распаковать). Там же написано, что нужно дополнительно иметь, если вдруг не пойдёт. Нужны * Microsoft .NET 3.5 runtime и Java 1.6+ 32-bits. Если FD сразу пошёл, значит, они у вас, скорее всего, есть.

И старый Flash: https://dl.dropboxusercontent.com/u/22620118/Adobe%20Flash%20CS3.exe Скачиваем в ознакомительных целях (Adobe предоставляет 30-дневный период бесплатного использования). А через 30 дней научимся компилировать прямо из Флеш Девелопа.

понеділок, 19 жовтня 2015 р.

Успеваемость групп 551 и 651

Данные в таблице: https://goo.gl/SvQgMu

Основные текущие недочёты:
  • После каждой лекции вам нужно потратить 6 часов на осмысление материала и поиск дополнительного материала по теме. Печатать реферат не надо. Но надо у себя на стене в соцсети рассказать своими словами в 3-5 абзацев, что интересного вы нашли, и приложить ссылку.
  • На 1й лабораторной после того, как мы повыполняли действия в двоичной системе счисления, была работа на компьютере, в которой нужно было выполнить эксперимент по оценке точности компьютерных вычислений. Соответстсвенно, пропуски в колонке по первой л/р будут заполняться исходя из умения объяснить описываемое в эксперименте явление и предоставить вычисления в конспекте.
  • После 2й лабораторной работы, когда мы составляли алгоритмы и реализовывали их на javascript, домой было задано подумать над следующими вопросами:
    • Составить алгоритм согласования существительного русского языка с числительным (1 дом, 2, 3, 4 дома, 5 домов, ...)
    • Составить общий алгоритм решения уравнения ax2+bx+c=0, a, b, c - любые действительные числа
    • Составить алгоритм определения, является ли год с номером n високосным
    Пустые ячейки по второй л/р будут закрываться по наличию в конспекте этих блок-схем и умению их объяснить.
  • На контрольной работе многие также не справились с заданиями третьей части. Им стоит уделить дополнительное время на консультациях. Кто уже был на консультациях и ходит на спецкурс - большие молодцы!

четвер, 15 жовтня 2015 р.

Основы графики на javascript

Эта картинка рисуется прямо в браузере средствами javascript. Чтобы почитать описание того, как это делается - зайдите в исходный код страницы (вы должны уже это уметь :) ) Скрипт и содержимое этого поста скопируйте в новый HTML-файл и поэкспериментируйте.

понеділок, 5 жовтня 2015 р.

Задания для контрольной работы группам 651 и 551: Часть 1, 2 и 3.

Алгоритм выполнения заданий Части 1.
По этому алгоритму нужно выбрать 4 задания и решить их. На листике пишите свою группу, фамилию и номер в журнале.

Не своё задание, пусть и правильно сделанное, считается за ошибку (это ведь ошибка в чтении блок-схемы).
Задания части 1
I. Задания на сложение. Перевести числа в двоичную систему, выполнить действия и перевести результат обратно в десятичную систему.
  1. 60 + 87
  2. 69 + 42
  3. 64 + 43
  4. 64 + 47
  5. 35 + 67
  6. 87 + 64
  7. 75 + 94
  8. 66 + 56
  9. 42 + 83
  10. 41 + 78


II. Задания на умножение. Перевести числа в двоичную систему, выполнить действия и перевести результат обратно в десятичную систему.
  1. 17 х 27
  2. 11 х 17
  3. 17 х 14
  4. 15 х 12
  5. 11 х 15
  6. 29 х 17
  7. 10 х 16
  8. 13 х 24
  9. 27 х 12
  10. 22 х 18
  11. 24 х 21
  12. 24 х 16
  13. 28 х 13
  14. 24 х 12

III. Задания на вычитание. Перевести числа в двоичную систему, выполнить действия и перевести результат обратно в десятичную систему.

  1. 50 - 41
  2. 96 - 30
  3. 46 - 9
  4. 65 - 39
  5. 70 - 33
  6. 99 - 51
  7. 114 - 62
  8. 132 - 66
  9. 30 - 21
  10. 38 – 26
  11. 75 - 25
  12. 120 - 64

IV. Задания на деление (с остатком). Перевести числа в двоичную систему, выполнить действия и перевести результат обратно в десятичную систему.


  1. 26 : 3
  2. 131 : 10
  3. 140 : 10
  4. 36 : 5
  5. 38 : 3
  6. 106 : 9
Алгоритм выполнения заданий части 2 и 3
Обратите внимание: в первом условии (n>=10) выходы "да" и "нет" я ошибочно написал в неправильном порядке. Учтите это при выборе задания. И спасибо Илье из 551 группы за указание на ошибку, за это он получает бонусные баллы.
Задания части 2
Сформулировать логическое условие для числа а на языке javascript, под которое должны подпадать:
  1. Числа от 1 до 25 включительно
  2. Чётные числа, большие 12-ти
  3. Нечётные числа, делящиеся на 3
  4. Числа, которые делятся или на 5 или на 7, но не на оба сразу
  5. Отрицательные числа или чётные
  6. Числа, не делящиеся ни на 3, ни на 4
  7. Числа, делящиеся на 5 , большие 100
  8. Числа, которые или больше 20 или меньше 2
  9. Числа, которые, либо меньше 50, либо делятся на 3, но не то и другое сразу
  10. Числа, которые, меньше 50 и делятся на 3

Напоминание:
Оператор && - логическое «И», одновременное выполнение условий
Оператор || - логическое «ИЛИ», выполнение хотя бы одного условия
Оператор != - может использоваться для проверки оператора «XOR», выполнение ровно одного условия из двух
Оператор % - вычисление остатка от деления. Проверка того, что число n делится на число b выглядит как: if (n%b == 0). Соответственно, проверка не делимости выглядит как: if (n%b != 0)
Чётное число – это делящееся на 2

Часть 3.
Составить алгоритм и программу, которые:
  1. Получают на вход три числа: d, m, y и определяет, задаёт ли эта тройка корректную дату (в которой d – это число, m – месяц, y - год).
  2. Получают на вход 3 числа: a, b, c и определяет, сколько среди этих чисел одинаковых
  3. Получают на вход 3 числа: a1, a2, b и определяет, как расположено число b на числовой оси относительно диапазона, ограниченного числами a1 и a2. 

вівторок, 29 вересня 2015 р.

Материалы к дисциплине "Основы информатики" курса "Информационные технологии в предпринимательской деятельности"

В предпринимательской деятельности можно рассматривать следующие уровни вовлечения ИТ.

1. Автоматизация документооборота. С этим имеет дело любая организация и предприниматель, вне зависимости от того, чем они занимаются. Рассмотрим пакет офисных программ, функции которых: составление бланков, документов, расчёты, анализ показателей, организация хранения и обработки информации, представление данных в виде презентации.

2. Использование интернета для развития бизнеса. Как говорил Билл Гейтс: "Если вашего бизнеса нет в интернете - вас нет в бизнесе". Рассмотрим методы разработки сайтов и привлечения посетителей, технологии вирусной рекламы в соцсетях, методы монетизации сайта.

3. Ориентация бизнеса исключительно на информационные технологии. Сейчас всё больше предпринимателей создают исключительно цифровой продукт. Это программисты (программированию посвящена отдельная дисциплина курса), цифровые художники, 3Д-моделлеры. При этом они могут работать как в организации, так и на себя. Рассмотрим пакеты мультимедийных редакторов.

На первом занятии рассмотрим обзорно историю вычислительной техники и современные тенденции её развития.

Интересные материалы по теме:







субота, 5 вересня 2015 р.

Эксперимент: точность представления дробей в памяти компьютера

В ячейку А1 электронной таблицы введите число 0.1.
В ячейку А2 введите формулу:
=11*A1-1
И нажмите Enter. В ячейке А2, как и следовало ожидать, полявилось число 11*0.1-1 = 0.1


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

Какими числами заполнится столбец А? Неожиданно, правда?
Исходя из формулы, по которой получается каждое последующее значение, определите, на сколько отличается значение в ячейке А1 от числа 0.1?

Прежде, чем читать дальше, подумайте самостоятельно.

Итак, допустим в ячейке А1 находится число, равное 0,1+х. Тогда в ячейке А2 окажется число, равное 11(0,1+х) - 1 = 0,1+11х.

В ячейке А3 окажется число, равное 11(0,1+11х) - 1 = 0,1+121х

Таким образом, значение в n-й ячейке столбца А будет равно 0,1+11n-1x. Как теперь найти х, если известно, что в некотором ряду n в ячейке AN находится значение y?

Составим уравнение 
y = 0,1+11n-1x
11n-1x = y-0.1
x = (y-0.1)/(11n-1)


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

пʼятниця, 28 серпня 2015 р.

Видеоуроки для курсантов

За 2014-2015 год накопилось много видеоуроков по программированию, а также 3Д-моделированию. Они собраны в этом посте










вівторок, 12 травня 2015 р.

Изучаем графический редатор GIMP

Мы начинаем изучать графический редактор GIMP.
Вот по этим урокам: http://gimp.nas2.net/?n=4
Предлагаю начать с урока "Звёздное небо".

вівторок, 28 квітня 2015 р.

Чемпионат по поиску в интернете

Менеджеры 441я группа!
1. Зарегистрируйтесь в блогспоте, чтобы могли оставлять комментарии не анонимно, а из-под своей учётной записи.
2. Напиши тут в комментариях, когда будете в течение часа срисутствовать онлайн, чтоб можно было провести конкурс.

понеділок, 27 квітня 2015 р.

Сколько этажей в самом высоком в мире отеле?

Сколько этажей в самом высоком в мире отеле?

Это заключительный вопрос. Если не успели ответить на какие-то, отвечайте, скоро открою комментарии.

Сколько промежуточных посадок было в первом кругосветном перелёте?

Сколько промежуточных посадок было в первом кругосветном перелёте?

Сколько клеток на шашечной доске, используемой в международных чемпионатах?

Сколько клеток на шашечной доске, используемой в международных чемпионатах?

Каков текущий курс акций компании Microsoft?

Каков текущий курс акций компании Microsoft?