Информатика
Вспомогательные алгоритмы и функции
Домашнее задание от 27.04.2016: т. 1, стр. 287-288, №43-44 (используя вспомогательные алгоритмы)
#include <iostream>
using namespace std;
void input_matrica(int row_count,
int col_count,
double *A)
{
for(int i=0;i<row_count;i++)
for(int j=0;j<col_count;j++)
cin>>A[i*col_count+j];
}
void output_matrica(int row_count,
int col_count,
double *A)
{
for(int i=0;i<row_count;i++)
{
for(int j=0;j<col_count;j++)
cout<<A[i*col_count+j]<<" ";
cout<<endl;
}
}
double minimum(int row_count,
int col_count,double *A)
{
double t=A[0];
for(int i=0;i<row_count;i++)
for(int j=0;j<col_count;j++)
if (t>A[i*col_count+j])
t=A[i*col_count+j];
return t;
}
int main()
{
int n,m;
cin>>n>>m;
double A[n][m];
input_matrica(n,m,&A[0][0]);
output_matrica(n,m,&A[0][0]);
cout<<minimum(n,m,&A[0][0]);
return 0;
}
Поиск пути в лабиринте. Волновой алгоритм
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
int A[n][m];
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
{
cin >> A[i][j];
}
int k = 2;
do{
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
{
if (A[i][j]==k)
{
if (A[i+1][j]==0) A[i+1][j]=k+1;
if (A[i-1][j]==0) A[i-1][j]=k+1;
for (int j=0; j<m; j++)
{
cout << A[i][j] << " ";
}
cout << endl;
}
}
return 0;
}
Домашнее задание:
1. организовать ввод из файла:
ifstream cin;
cin.open("input.txt");
cin>>n;
cin.close();
2. вставить проверку на выход за границы,
3. вывести путь из лабиринта в формате - номер строки, номер столбца.
Алгоритмы сортировки
sort/
https://drive.google.com/open? id= 0Byq7Oo4PTjwPcUgzQmFvcDU0dWM
Домашнее задание от 27.04.2016: т. 1, стр. 287-288, №43-44 (используя вспомогательные алгоритмы)
#include <iostream>
using namespace std;
void input_matrica(int row_count,
int col_count,
double *A)
{
for(int i=0;i<row_count;i++)
for(int j=0;j<col_count;j++)
cin>>A[i*col_count+j];
}
void output_matrica(int row_count,
int col_count,
double *A)
{
for(int i=0;i<row_count;i++)
{
for(int j=0;j<col_count;j++)
cout<<A[i*col_count+j]<<" ";
cout<<endl;
}
}
double minimum(int row_count,
int col_count,double *A)
{
double t=A[0];
for(int i=0;i<row_count;i++)
for(int j=0;j<col_count;j++)
if (t>A[i*col_count+j])
t=A[i*col_count+j];
return t;
}
int main()
{
int n,m;
cin>>n>>m;
double A[n][m];
input_matrica(n,m,&A[0][0]);
output_matrica(n,m,&A[0][0]);
cout<<minimum(n,m,&A[0][0]);
return 0;
}
Домашнее задание: т. 1, стр. 284, №15, 16, 17 (используя вспомогательные алгоритмы)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
int A[n][m];
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
{
cin >> A[i][j];
}
int k = 2;
do{
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
{
if (A[i][j]==k)
{
if (A[i+1][j]==0) A[i+1][j]=k+1;
if (A[i-1][j]==0) A[i-1][j]=k+1;
if (A[i][j+1]==0) A[i][j+1]=k+1;
if (A[i][j-1]==0) A[i][j-1]=k+1;
}
}
k++;
}while(A[n-1][m-1]==0 && k<=n*m);
if (A[n-1][m-1]==0)
{
cout << "No solution";
}
else
{
cout<<k<<endl;
for (int i=0; i<n; i++)
{for (int j=0; j<m; j++)
{
cout << A[i][j] << " ";
}
cout << endl;
}
}
return 0;
}
Домашнее задание:
1. организовать ввод из файла:
ifstream cin;
cin.open("input.txt");
cin>>n;
cin.close();
2. вставить проверку на выход за границы,
3. вывести путь из лабиринта в формате - номер строки, номер столбца.
Алгоритмы сортировки
- Сортировка пузырьком (обменом)
- Сортировка перемешиванием
- Гномья сортировка
- Челночная сортировка
- Сортировка вставками
- Сортировка вставками со сторожевым элементом
- Сортировка слиянием
- Сортировка с помощью двоичного дерева
- Сортировка TimSort
- Сортировка подсчетом
- Блочная сортировка
- Сортировка выбором
- Сортировка Шелла
- Сортировка расческой
- Пирамидальная сортировка
- Плавная сортировка
- Быстрая сортировка Хоара
- Интроспективная сортировка
- Терпеливая сортировка
- Stooge sort - рекурсивная сортировка
- Корзинная сортировка
- Лексикографическая (поразрядная) сортировка
https://drive.google.com/open?
Алгоритмы с целыми числами
- Получить все цифры натурального числа, вывести их в обратном порядке, подсчитать количество четных/нечетных, сумму и произведение этих цифр.
- Перевести натуральное десятичное число в Р-ичную систему счисления и обратно (2<=Р<=16)
- Определить число n на простоту (проверить делимость до sqrt(n)). Вывести все простые делители числа n. Алгоритм решето Эратосфена для определения всех простых чисел от 2 до N.
- Определение НОД(а,в) и НОК(а,в) = а*в / НОД(а,в), используя алгоритм Евклида.
- Решить линейные уравнения a*x=b; a*x+b*y=c в целых числах.
- Вычислить n!, n в степени k, число сочетаний C(n, k)=n!/(k!*(n-k)!)
Тема "Исполнители алгоритмов"
Домашнее задание от 17.02.2016
1) алгоритмы с Роботом выполнить в Кумире и прислать два файла: с программой и стартовой обстановкой.
2) программу выполнить на С++.
Тема "Управление и алгоритмы"
Домашнее задание от 11.02.2016
Тема "Электронные таблицы"
1) Зарегистрироваться на сайте http://inf.sdamgia.ru
Выполнить контрольную работу по ссылке http://inf.sdamgia.ru/test?id=671671
Выполненные задания в файле отправить по почте или прикрепить на странице.
Задание 20.2 выполнить на С++
28.01.2016
Домашнее задание:
- Задачник Семакина т. 1 стр. 59-60 № 39-44 выполнить в тетради, используя логические выражения и формулы преобразование.
- Выучить таблицу истинности для логических операций НЕ, И, ИЛИ, импликация, эквиваленция, исключающее ИЛИ (XOR) и формулы преобразования.
20.01.2016
Домашнее задание:
Задачник Семакина т. 1 стр. 56-58 № 31-37 выполнить в электронной таблице.
Выполните практическую работу в электронной таблице:
1. Получить таблицу Пифагора для двузначных чисел (используя относительную и абсолютную ссылку)
2. Вывести таблицу истинности для логических операций: OR, XOR, AND, NOT, =>, <=>
3. Перевести десятичное число (с дробной частью) в двоичную систему счисления, например: 173,65 ->100111,100111
Тема "Проектирование многотабличной реляционной базы данных"
Примеры:
Домашнее задание: т.2 Задачника Семакина п.5.4.5 №55, 57 (ФТ), 56, 58 (ИТ)
Команды SQL:
SELECT - выбрать записи
UPDATE - изменить записи
INSERT - вставить записи
DELETE - удалить записи
Ключевые слова:
FROM Таблица - из таблицы
WHERE логическое выражение - где выполняются условия
GROUP BY группируемое поле
ORDER BY сортируемое поле
ASC - по возрастанию
DESC - по убыванию
BETWEEN 4 AND 5 - между 4 и 5
LIKE - близкое к введенной строке, не обязательно точное совпадение
SET Поле=Значение - установить для поля новое значение
INTO Таблица - вставить в таблицу
VALUES (значения полей) - указать значения полей для вставки
Примеры использования:
Пусть дана Таблица1 с полями: Код, Фамилия, Имя, Пол, Дата_рождения, Класс, Математика, Литература, Русский, Химия, История, Физика, ОБЖ. Тогда можно сформировать следующие команды на языке SQL:
1) выбрать всех учеников 10 класса мужского пола
SELECT Фамилия, Имя, Пол, Класс FROM Таблица1 WHERE Класс=10 and Пол='м' ORDER BY Фамилия, Имя
2) выбрать всех отличников по математике или литературе
SELECT Фамилия, Имя, Математика, Литература FROM Таблица1 WHERE (Математика BETWEEN 4 AND 5) OR (Литература BETWEEN 4 AND 5)
3) вывести всех учеников, средний балл которых по всем предметам меньше 4
SELECT Фамилия, Имя, Математика, Литература, Русский, Химия, История, Физика, ОБЖ FROM Таблица1 WHERE (Математика+Литература+Русский+Химия+История+Физика+ОБЖ)/7 < 4
4) определить всех именинников 1995 года, рожденных в ноябре
SELECT Фамилия, Имя, Дата_рождения FROM Таблица1
WHERE Дата_рождения BETWEEN #01.11.1995# AND #30.11.1995#
5) вывести все Фамилии, которые содержат символ Й
SELECT Фамилия FROM Таблица1WHERE INSTR(Фамилия,'Й')>0
6) перевести всех учеников 10 класса в 11 класс
UPDATE Таблица1 SET Класс = 11 WHERE Класс = 10
7) удалить всех учеников 11 класса
DELETE FROM Таблица1 WHERE Класс = 11
8) добавить нового ученика в 10 класс
Пусть дана Таблица1 с полями: Код, Фамилия, Имя, Пол, Дата_рождения, Класс, Математика, Литература, Русский, Химия, История, Физика, ОБЖ. Тогда можно сформировать следующие команды на языке SQL:
1) выбрать всех учеников 10 класса мужского пола
SELECT Фамилия, Имя, Пол, Класс FROM Таблица1 WHERE Класс=10 and Пол='м' ORDER BY Фамилия, Имя
2) выбрать всех отличников по математике или литературе
SELECT Фамилия, Имя, Математика, Литература FROM Таблица1 WHERE (Математика BETWEEN 4 AND 5) OR (Литература BETWEEN 4 AND 5)
3) вывести всех учеников, средний балл которых по всем предметам меньше 4
SELECT Фамилия, Имя, Математика, Литература, Русский, Химия, История, Физика, ОБЖ FROM Таблица1 WHERE (Математика+Литература+Русский+Химия+История+Физика+ОБЖ)/7 < 4
4) определить всех именинников 1995 года, рожденных в ноябре
SELECT Фамилия, Имя, Дата_рождения FROM Таблица1
WHERE Дата_рождения BETWEEN #01.11.1995# AND #30.11.1995#
5) вывести все Фамилии, которые содержат символ Й
SELECT Фамилия FROM Таблица1WHERE INSTR(Фамилия,'Й')>0
6) перевести всех учеников 10 класса в 11 класс
UPDATE Таблица1 SET Класс = 11 WHERE Класс = 10
7) удалить всех учеников 11 класса
DELETE FROM Таблица1 WHERE Класс = 11
8) добавить нового ученика в 10 класс
INSERT INTO Таблица1 (Фамилия, Имя, Класс, Пол) VALUES ('Иванов','Иван',10,'ж')
9) Если таблиц несколько, то при обращении к полям указывают имя таблицы, разделенной точкой. Пусть в базе данных есть еще одна Таблица2 с информацией о родителях ученика: Код, Номер_ученика, ФИО_родителя1, Место_работы1, Должность1, Рабочий_телефон1, ФИО_родителя2, Место_работы2, Должность2, Рабочий_телефон2, Количество_детей.
В этом случае Код из Таблицы1 должен совпадать по значению с полем Номер_ученика (установить связь 1-∞). Тогда запрос на вывод данных о родителях можно записать так:
SELECTТаблица1.Фамилия, Таблица1.Имя, Таблица2.ФИО_родителя1, Таблица2.ФИО_родителя2
FROM Таблица1, Таблица2
WHERE Таблица1.Код=Таблица2.Номер_ученика
10) Кроме этого можно выполнять групповые операции и производить над числовыми значениями следующие операции: суммирование, среднее значение, наибольшее и наименьшее значение. Также можно подсчитать количество записей в группе. Группировать можно по совпадающим значениям поля, например, по полю класс. Тогда по каждому классу можно подсчитать среднюю оценку, сумму, минимальную и максимальную оценку по какому-нибудь предмету, а также количество учеников в классе:
SELECT COUNT(Фамилия), AVG(Математик), SUM(Литература), MAX(Русский), MIN(Химия) FROM Таблица1 GROUP BY Класс
11) Параметризованный запрос позволяет ввести строку для поиска в диалоговом окне ввода. Для этого в условии отбора записывается сообщение в квадратных скобках, например:
9) Если таблиц несколько, то при обращении к полям указывают имя таблицы, разделенной точкой. Пусть в базе данных есть еще одна Таблица2 с информацией о родителях ученика: Код, Номер_ученика, ФИО_родителя1, Место_работы1, Должность1, Рабочий_телефон1, ФИО_родителя2, Место_работы2, Должность2, Рабочий_телефон2, Количество_детей.
В этом случае Код из Таблицы1 должен совпадать по значению с полем Номер_ученика (установить связь 1-∞). Тогда запрос на вывод данных о родителях можно записать так:
SELECTТаблица1.Фамилия, Таблица1.Имя, Таблица2.ФИО_родителя1, Таблица2.ФИО_родителя2
FROM Таблица1, Таблица2
WHERE Таблица1.Код=Таблица2.Номер_ученика
10) Кроме этого можно выполнять групповые операции и производить над числовыми значениями следующие операции: суммирование, среднее значение, наибольшее и наименьшее значение. Также можно подсчитать количество записей в группе. Группировать можно по совпадающим значениям поля, например, по полю класс. Тогда по каждому классу можно подсчитать среднюю оценку, сумму, минимальную и максимальную оценку по какому-нибудь предмету, а также количество учеников в классе:
SELECT COUNT(Фамилия), AVG(Математик), SUM(Литература), MAX(Русский), MIN(Химия) FROM Таблица1 GROUP BY Класс
11) Параметризованный запрос позволяет ввести строку для поиска в диалоговом окне ввода. Для этого в условии отбора записывается сообщение в квадратных скобках, например:
[Введите день недели:]
После выполнения запроса вначале будет выведено диалоговое окно для ввода строки для поиска, и только после этого будет выполнен поиск.
Домашнее задание от 03.12.15: т.2 Задачника Семакина п.5.4.3 стр. 98-10 №22-38 (решение оформить в текстовом документе в виде запросов)
Тема "Проектирование и нормализация БД"
Многотабличная БД, отношения между таблицами БД, нормализация БД.
Домашнее задание от 25.11.15:
Разобрать примеры 1-3 в п.5.4.5, стр 110-116
ИТ - т.2 Задачника Семакина п.5.4.5 разобрать примеры 1-3, №52,54,56,58 (решение оформить в текстовом документе)
ФТ - т.2 Задачника Семакина п.5.4.5 разобрать примеры 1-3, №51,53,55,57 (решение оформить в текстовом документе)
Тема "Базы данных"
Основные понятия, работа в СУБД, основные типы данных, первичный ключ, создание структуры однотабличной БД, ввод данных и их редактирование БД.
Домашнее задание от 11.11.15:
ИТ - Задачник Семакина т.2 стр. 86-89 №1,3,5,7,9 (решение оформить в текстовом документе)
ФТ - Задачник Семакина т.2 стр. 86-89 №2,4,6,8,10 (решение оформить в текстовом документе)
Тема "Информационное моделирование"
Домашнее задание: Создать веб-сайт по теме "Информационное моделирование", используя сайты Google (https://sites.google.com/). На сайте должны быть освещены следующие моменты:
- название модели в заголовке сайта
- тип модели с примерами
- описание объекта: характеристики, свойства, необходимые для построения модели
- способ построения модели и этапы моделирования
- сама модель
- ссылки на используемые источники
- страница об авторе (о себе)
Тема "Создание веб-страниц"
Презентация
Домашнее задание: выполнить задание 1-4 из презентации. Для каждого задания создать отдельную папку, заархивировать и отправить по почте.
Тема "Поиск информации в Интернете"
Правила составления поисковых запросов
“ ”
|
«рассказы Чехова»
|
Поиск буквальной фразы
|
!
|
!день
|
Поиск точной формы слова
|
+
|
+Архиерей
|
Обязательное наличие слова
|
-
|
-чиновник
|
Исключение документов, содержащих слово
|
&
|
Пьеса&Чехов
|
Обязательное включение нескольких объектов в предложении
|
&&
|
Анализ&&пьеса
|
Обязательное включение нескольких объектов в документе
|
~
|
Чехов~Гоголь
|
Что искать ~ что исключить
(на уровне предложения) |
~~
|
Чехов~~Куприн
|
Что искать ~ что исключить
(на уровне документа) |
|
|
Чехов|Тургенев
|
Задание вариантов (первое или второе)
|
()
|
+(рассказы | пьесы)
|
Группировка объектов в новый объект
|
Домашнее задание: Создать коллекцию ссылок (от 3 до 10 с подробным описанием) по темам:
- Открытые электронные библиотеки
- Сайты, посвященные описанию фильмов
- Сайты, посвященные литературоведческой литературе
- Сайты, посвященные классической музыке с архивами в формате mp3
- Сайты, посвященные творчеству одного писателя
- Книжные магазины
- Сайты, посвященные поддержке языков программирования
- Сайты, посвященные графическим редакторам
- Интернет-магазины компьютерной техники
- Сайты, посвященные компьютерному программному обеспечению
- Сайты, посвященные компьютерному и аппаратному обеспечению
- Сайты, посвященные животным и охране природы
- Сайты, посвященные указам и законам
- Сайты, посвященные поиску и продаже недвижимости
- Сайты, посвященные истории России
- Сайты, посвященные изучению русского языка для иностранцев
Тема "Скорость передачи данных"
Домашнее задание: Фотографию размером 5х6 дюймов сканировали с разрешением 300 dpi в цветовом режиме RGB и отправили по сети со скоростью 100 Мбит/с.
За какое время файл будет передан?
Тема "Компьютерные сети"
Домашнее задание:
Подготовить доклад по теме "Компьютерные сети. Аппаратное и программное обеспечение. Основные понятия, протоколы". (см. Глава 1. Передача информации в компьютерных сетях)
Моделирование физических процессов на С++ (ФТ)
Требование к проекту- ввод данных, от которых зависит моделирование физического процесса, например, масса, скорость, коэффициент трения, размеры материального объекта и и т.д.
- в зависимости от введенных данных смоделировать "реальное" поведение объекта, например, при уменьшении скорости объект движется медленнее
- использовать функции для рисования, движения объекта и т.д.
- применять цветное изображение
- остановка движения настроить по клавише с помощью функции getch()
Список проектных работ
- Авдеенко Владислав - изображение электрических полей
- Бородич Михаил - колебание маятника
- Волков Александр - движение тела на плоскости под углом к горизонту
- Коновалов Сергей - свободное падение тела (парашютиста)
- Маркина Екатерина - движение жидкости
- Мирошин Владимир - распространение тепла в стержне
- Протасов Даниил - движение заряженных частиц
- Сапегин Арсений - колебание затухающего маятника
- Ткачик Артем - движение тела с учетом сопротивления окружающей среды
- Цимбалист Егор - движение небесных тел
- Шабалина Ольга - распространение тепла в воздухе (горение свечи)
- Шевцов Николай - взлет ракеты
Анимация объектов
#include <iostream>
#include <graphics.h>
using namespace std;
int main()
{
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver,&gmode,"");
// рисуем объект, который будет двигаться
setfillstyle(1,BLUE);
setcolor(RED);
circle(50,50,50);
floodfill(50,50,RED);
void *ps;//объявляем переменную указатель
int size=imagesize(0, 0, 100, 100); // определяем размер объекта
ps = new char[size]; // выделяем память под спрайт и запоминаем адрес в переменную-указатель ps
getimage (0, 0, 100, 100, ps);//сохраняем в память нарисованный объект
cleardevice();//очищаем
//рисуем фон
for(int x=0;x<500;x+=10)
{
putimage (x, 100, ps, XOR_PUT);//нарисовать поверх фона
Sleep(100);//пауза до 100 миллисекунд
putimage (x, 100, ps, XOR_PUT);//"стираем" объект
}
getch();//пауза до нажатия клавиши Enter
delete ps;//освобождаем память
closegraph();//закрываем графический режим
return 0;
}
Домашнее задание от 11.01.2016: выполните одно из заданий:
- Нарисуйте солнышко и переместите его слева направо (или спрячьте за тучу)
- Нарисуйте падающие звезды.
- Изобразите падающий с неба снег (дождь в виде прямых линий).
- Изобразите движение автомобиля (или несколько автомобилей) по дороге.
- Придумайте свой сценарий и движущийся объект
Построение объектов относительно якорной точки
#include <graphics.h>
using namespace std;
void draw_elka(int x0, int y0)
{
setcolor(WHITE);
for(int i=0;i<3;i++)
{
line(x0-10*(i+1),y0,x0+10*(i+1),y0);
line(x0+10*(i+1),y0,x0,y0-10);
line(x0,y0-10,x0-10*(i+1),y0);
y0=y0+11;
}
}
int main()
{
//---------- Инициализация графики ----------//
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver,&gmode,"");
//------------------------------------------//
draw_elka(100,100);
draw_elka(200,300);
draw_elka(250,250);
//---------- Закрытие графики ----------//
getch();
closegraph();
return 0;
}
Домашнее задание от 14.12.2015: написать 3-5 функций для построения фигур относительно якорной точки (х0, у0) и в main вызвать их несколько раз (3-5).
#include <iostream>
#include <graphics.h>
using namespace std;
int main()
{
int n;
cin>>n;
double X[n], Y[n];
for(int i=0;i<n;i++)
{
cin>>X[i]>>Y[i];
}
double a=X[0],b=X[0],ymax=Y[0],ymin=Y[0];
for(int i=0;i<n;i++)
{
if(Y[i]>ymax)ymax=Y[i];
if(Y[i]<ymin)ymin=Y[i];
if(X[i]>b)b=X[i];
if(X[i]<a)a=X[i];
}
double mx, my, sx, sy;
int pa=0, pb=640, pc=0, pd=480;
my=(pc-pd)/(ymax-ymin);
sy=pc-ymax*my;
mx=(pb-pa)/(b-a);
sx=pa-a*mx;
//---------- Инициализация графики ----------//
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver,&gmode,"");//------------------------------------------//
int pa=0, pb=640, pc=0, pd=480;
my=(pc-pd)/(ymax-ymin);
sy=pc-ymax*my;
mx=(pb-pa)/(b-a);
sx=pa-a*mx;
//---------- Инициализация графики ----------//
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver,&gmode,"");//------------------------------------------//
setcolor(WHITE);
setlinestyle(0,0,3);
int T[n][2];//массив из n точек для хранения координат
for (int i=0; i<n; i++)
{
T[i][0]=X[i]*mx+sx;
T[i][1]=Y[i]*my+sy;
}
drawpoly(n,&T[0][0]);
//---------- Закрытие графики ----------//
getch();
closegraph();
return 0;
}
Домашнее задание от 30.11.2015: используя примеры параметрических функций (ссылка), задайте массив точек X, Y и, используя приведенную программу, нарисуйте её.
Домашнее задание от 16.11.2015: выполнить на странице Задание 2
//функция с возвращаемым значением
int x(int x0, int r, int n, int k)
{
return int(x0+r*cos(2*3.1415/n*k));
}
int y(int y0, int r, int n, int k)
{
return int(y0+r*sin(2*3.1415/n*k));
}
//функция без возвращаемого значения или процедура
void nygolnik(int c, int x0, int y0, int r, int n)
{
int T[n][2];//массив точек n-угольника
for (int i=0; i<n; i++)
{
T[i][0]=x(x0,r,n,i);
T[i][1]=y(y0,r,n,i);
}
setcolor(c);
setfillstyle(1,c);
fillpoly(n,&T[0][0]);
}
//вызов процедуры рисования n-угольников
nygolnik(6,100,100,50,6);
nygolnik(7,200,200,50,3);
nygolnik(12,300,300,50,4);
}
Домашнее задание от 30.11.2015: используя примеры параметрических функций (ссылка), задайте массив точек X, Y и, используя приведенную программу, нарисуйте её.
Домашнее задание от 16.11.2015: выполнить на странице Задание 2
- Нарисуйте оси Ох и Оу с учетом заданного отрезка.
- Расставьте шкалу деления по осям Ох и Оу с заданным интервалом dx, dy.
- Нарисуйте линии сетки по шкале деления другим цветом или другим типом линии.
- Подпишите оси и шкалу деления.
- Выведите название функции в заголовок.
- Нарисуйте несколько графиков функции на одном отрезке по оси Ох.
int x(int x0, int r, int n, int k)
{
return int(x0+r*cos(2*3.1415/n*k));
}
int y(int y0, int r, int n, int k)
{
return int(y0+r*sin(2*3.1415/n*k));
}
//функция без возвращаемого значения или процедура
void nygolnik(int c, int x0, int y0, int r, int n)
{
int T[n][2];//массив точек n-угольника
for (int i=0; i<n; i++)
{
T[i][0]=x(x0,r,n,i);
T[i][1]=y(y0,r,n,i);
}
setcolor(c);
setfillstyle(1,c);
fillpoly(n,&T[0][0]);
}
//вызов процедуры рисования n-угольников
nygolnik(6,100,100,50,6);
nygolnik(7,200,200,50,3);
nygolnik(12,300,300,50,4);
Домашнее задание от 21.09.15: написать программу рисования пятиугольной звезды.
Домашнее задание от 7.09.15: выполнить Задание 1 на блоге "Компьютерная графика в С++"Алгоритмы и исполнители (ИТ)
Волновой алгоритм поиска пути в лабиринте
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream in;
/*
int k=5;
char str[15];
itoa(k,str,10);//перевод числа в строку в системе счисления 10
strcat(str,".txt");// str - имя файла
*/
in.open("text.txt");//относительная ссылка
// in.open("D:\\Work\\Task1\\text.txt");//абсолютная ссылка
int P[4+2][5+2];
for (int i=0; i<4+2; i++)
for (int j=0; j<5+2; j++)
{
P[i][j]=1;
}
for (int i=1; i<=4; i++)
for (int j=1; j<=5; j++)
{
in>>P[i][j];
}
in.close();
for (int i=1; i<=4; i++)
{
for (int j=1; j<=5; j++)
{
cout<<P[i][j];
}
cout<<endl;
}
int p=2;
P[1][1]=p;
do{
p=p+1;
for (int i=1; i<=4; i++)
{
for (int j=1; j<=5; j++)
{
if (P[i][j]==p-1)
{
if(P[i][j+1]==0)P[i][j+1]=p;
if(P[i][j-1]==0)P[i][j-1]=p;
if(P[i+1][j]==0)P[i+1][j]=p;
if(P[i-1][j]==0)P[i-1][j]=p;
}
}
}
}while(P[0+1][2+1]==0 && p<=4*5);
if (P[0+1][2+1]==0) {cout<<"No solution";return 0;}
cout<<"Hod="<<P[0+1][2+1]-1;
return 0;
}
Домашнее задание от 05.04.16: ввести размер поля в самом файле и найти путь выхода из лабиринта с указанием координат (индекса) по строкам и столбцам.
Требования к игровому проекту
- создание алгоритма для второго игрока "компьютера" или случайное поведение
- использование функций для движения, рисования объекта и т.д.
- использование клавиш для управления объектом игрока, используя функцию getch()
- ввод первоначальных настроек игры в переменные, например, количество препятствий, размер игрового поля, количество жизней и т.д.
- вывод сообщения о победе или проигрыше игры.
Список проектных работ
- Бощенко Екатерина - лабиринт
- Глебова Вера - кролик и морковка
- Гусев Данила - самолетик
- Ефремов Артур - космический корабль
- Лепенина Анастасия - пакмен
- Ляхова Софья - змейка
- Марухин Андрей - лягушка путешественница
- Мельников Денис -
- Рыльцев Максим - морской бой
- Сироткин Савелий - тетрис
- Федосеев Владимир - шахматы
- Цибизова Валерия - формула-1
- Яницкий Борис - теннис
23.09.2015 Рекурсивные процедуры
Домашнее задание: написать алгоритм рисования снежинки с помощью рекурсивного алгоритма
Исполнитель Черепаха
использовать Черепаха
цел глубина_рекурсии | глобальная переменная
алг
нач
глубина_рекурсии:=0
Прямоугольник(200)
кон
| рекурсивный алгоритм
алг Прямоугольник(цел сторона) | локальная переменная
нач
| условие останова
если сторона<=0
то
вывод глубина_рекурсии
выход
все
опустить хвост
нц 4 раз
вперед(сторона)
вправо(90)
кц
поднять хвост
вперед(10)
вправо(90)
вперед(10)
влево(90)
глубина_рекурсии:=глубина_рекурсии+1
Прямоугольник(сторона-20)
кон
Исполнитель Черепаха
Домашнее задание от 9.09.15:
- написать алгоритм рисования цветка с помощью вспомогательного алгоритма
- написать алгоритм рисования животного с помощью треугольников, оформить через вспомогательные алгоритмы.
Комментариев нет :
Отправить комментарий