Презентации по Информатике

Параллельное программирование
Параллельное программирование
Существуют различные способы написания программ, (разделение условное) : Последовательное программирование с дальнейшим автоматическим распараллеливанием. Непосредственное формирование потоков параллельного управления, с учетом особенностей архитектур параллельных вычислительных систем или операционных систем. Описание параллелизма без использования явного управления обеспечивается заданием только информационных связей. Предполагается, что программа будет выполняться на вычислительных системах с бесконечными ресурсами, операторы будут запускаться немедленно по готовности их исходных данных. Достижение параллелизма возможно только при выполнении следующих требований к архитектурным принципам построения вычислительной среды: независимость функционирования отдельных устройств ЭВМ – данное требование относится в равной степени ко всем основным компонентам вычислительной системы: к устройствам ввода-вывода, обрабатывающим процессорам и устройствам памяти; избыточность элементов вычислительной системы – организация избыточности может осуществляться в следующих основных формах: - использование специализированных устройств, таких, например, как отдельные процессоры для целочисленной и вещественной арифметики, устройства многоуровневой памяти (регистры, кэш); - дублирование устройств ЭВМ путем использования, например, нескольких однотипных обрабатывающих процессоров или нескольких устройств оперативной памяти.
Продолжить чтение
Программирование на языке высокого уровня
Программирование на языке высокого уровня
Задача погони Волк гонится за зайцем, который бежит по прямой с постоянной скоростью. Волк тоже бежит с постоянной скоростью и всегда по направлению к зайцу. В некоторый момент времени угол между направлениями их движения составляет 900, а расстояние между ними составляет L0. Через какое время волк настигнет зайца, при условии, что его скорость больше? // исходные данные: скорости uz и uv, // положение волка yv, шаг времени dt double gamma = Math.PI / 2; double xz = 0, xv = 0, t = 0; for (;; t = t + dt) { // вывод координат ... xz = xz + dt * uz; gamma = Math.Atan2(yv, xz - xv); xv = xv + dt * uv * Math.Cos(gamma); yv = yv - dt * uv * Math.Sin(gamma); if (xv > xz) break; } // вывод окончательных результатов ... // вывод координат double L = Math.Sqrt(yv*yv + (xz-xv)*(xz-xv)); textBox1.Text = textBox1.Text + String.Format("Волк({0:0}; {1:0})\t Заяц({2:0}; 0)\t L={3:0.0}\t угол={4:0.0}\r\n", xv, yv, xz, L, 180*gamma/Math.PI); // вывод окончательных результатов textBox1.Text = textBox1.Text + String.Format("\r\nL = {0:0.###}, t = {1:0.###}", L, t); Искусственный нейрон Одного искусственного нейрона достаточно, чтобы… …реализовать логическую функцию (AND, OR, NOT) …моделировать, например, поведение таракана, который в случае опасности прячется в тёмное укрытие ...обыграть человека в «Орёл/решку»! public partial class Form1 : Form { int[] x, w; int N = 8, win, loss, guess; Random r = new Random(); private void button1_Click(object sender, EventArgs e) { // получение отклика нейрона int sum = 0; for (int i = 0; i < N; i++) sum += x[i] * w[i]; // формирование догадки guess = (sum == 0)? r.Next(2): ((sum > 0)? 0: 1); label2.Text = "Вы загадали " + guess + "?"; } private void button_YES_Click(object sender, EventArgs e) { win++; // обучение нейрона ... } private void button_NO_Click(object sender, EventArgs e) { loss++; guess = (guess == 0) ? 1 : 0; // обучение нейрона ... } } // обучение нейрона int sign = 2 * guess - 1; for (int i = 0; i < N; i++) w[i] += sign * x[i]; for (int i = 0; i > N-1; i++) x[i] = x[i + 1]; x[N - 1] = sign;
Продолжить чтение
Django (продолжение). Лекция №15
Django (продолжение). Лекция №15
Валидаторы Прежде чем приступить к продолжению, обновим нашу модель. По аналогии с другими полями создаем поле поле rate (оценка), использовав класс IntegerField. При этом мы хотим ограничить возможную оценку от 1 до 10. Для этого при создании rate в конструктор класса IntegerField передаются валидаторы: # Файл coolapp/models.py from django.db import models from django.core.validators import MaxValueValidator, MinValueValidator class Film(models.Model): name = models.CharField(max_length=200) desc = models.TextField() pub_date = models.DateTimeField('date published', auto_now_add=True) rate = models.IntegerField(validators=[MinValueValidator(1), MaxValueValidator(10)], default=1) Валидаторы передаются списком в аргумент validators, при этом в их конструкторы передаются сами граничные числа. Также при создании поля rate указываем аргумент default - это будет значение по умолчанию. Миграция обновлений После изменений в модели создаем миграцию и применяем ее: $ python3 manage.py makemigrations coolapp $ python3 manage.py migrate
Продолжить чтение
Скоростное прохождение игр (Speedrun)
Скоростное прохождение игр (Speedrun)
Скоростное прохождение игры (англ. speedrun) — прохождение компьютерной игры за наименьший промежуток времени в рамках соревнования или для развлечения. При скоростном прохождении игрок проявляет не только своё мастерство, но часто использует необычные для данной игры трюки и непредусмотренные разработчиками особенности игры. Для демонстрации создаются записи скоростных прохождений в одном из видеоформатов, либо в формате демо-файла самой игры. Зачем и кому нужен Спидран. В первую очередь, спидраном увлечены те геймеры, которые хотят привнести в свой игровой опыт больше соревновательного элемента, чем изначально присутствует в игре. Как показать что ты круче в одиночных играх, где нет рейтингов и соревновательного эффекта? В такие моменты и на помощь приходит спидран. Хотя и у спидранеров бывают разные мотивы пускаться во все тяжкие, будь-то обычное желание повеселиться самому или повеселить других, или же лучше узнать ту или иную игру, вплоть до мельчайших деталей и секретов. Но, все же, наиболее распространенный мотив — это соревнование с собой, временем и другими спидранерами.
Продолжить чтение