Skip to content

okovtun/VBD_311

Repository files navigation

https://github.com/okovtun/VBD_311
https://www.youtube.com/watch?v=-0offnnEWa0&list=PLeqyOOqxeiIODTb1UOPGYMkMS8eP-Pf-x

TODO:
В проекте 'Strings' написать следующие функции:
	??? string_length(???);	//возвращает размер строки				DONE
	??? to_lower(???);		//переводит строку в нижний регистр		DONE
	??? to_upper(???);		//переводит строку в верхний регистр	DONE
	??? shrink(???);		//удаляет из строки лишние пробелы		DONE
							//Хорошо        живет    на   свете      Винни    Пух
							//Хорошо живет на свете Винни Пух
	??? is_palindrome(???)	//Определяет, является ли строка палиндромом	DONE
	
	??? is_int_number(???)	//определяет, является ли строка целым числом	DONE
	??? to_int_number(???)	//Если строка является целым числом, возвращает его значение DONE

//////////////////////////////////////////////////////////////////////////////////////////
//////////////////						Pointers						//////////////////
//////////////////////////////////////////////////////////////////////////////////////////

TOREAD:
1. https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%BD%D0%B3%D0%B5%D1%80%D1%81%D0%BA%D0%B0%D1%8F_%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F
2. https://legacy.cplusplus.com/doc/tutorial/pointers/

TODO:
В проекте 'DynamicMemory' от ветки 'DynamicTemplates' созадть ветку 'DynamicOptimisation',
и в этой ветке оптимизировать функции для работы с двумерными массивами.

TODO:
1. В Solution 'Pointers' добавить проект 'Split', и в этом проекте массив из 10 элементов,	DONE
   заполненный случайными числами разделить на два массива: 'even' и 'odd', в массив 'even'
   скопировать все четные элементы, а в массив 'odd' - все нечетные элементы.
   Массивы 'even' и 'odd' должны быть минимально возможного размера.
2. Вынести код, добавляющий значение в конец массива в функцию ??? push_back(???);			DONE
3. В проект 'DynamicMemory' добавить следующие функции:
	??? push_front(???);	//добавляет значение в начало массива							DONE
	??? insert(???);		//вставляет значение в массив по заданному индексу

	??? pop_back(???);		//удаляет последний элемент массива
	??? pop_front(???);		//удаляет нулевой элемент массива
	??? erase(???);			//удаляет элемент из массива по заданному индексу
4. В проект 'DynamicMemory' добавить следующие функции:
	??? Allocate(???);			//выделяет память под двумерный динамиеский массив		DONE
	??? Clear(???);				//удаляет двумерный динамиеский массив из памяти		DONE

	??? push_row_back(???);		//добавляет строку в конец массива						DONE
	??? push_row_front(???);	//добавляет строку в начало массива
	??? insert_row(???);		//вставляет строку в массив по указанному индексу

	??? pop_row_back(???);		//удаляет последнюю строку из массива					DONE
	??? pop_row_front(???);		//удаляет нулевую строку из массива
	??? erase_row(???);			//удаляет строку из массива по заданному индексу

	??? push_col_back(???);		//добавляет столбец в конец массива
	??? push_col_front(???);	//добавляет столбец в начало массива
	??? insert_col(???);		//вставляет столбец в массив по указанному индексу

	??? pop_col_back(???);		//удаляет последний столбец из массива
	??? pop_col_front(???);		//удаляет нулевой столбец из массива
	??? erase_col(???);			//удаляет столбец из массива по указанному индексу

//////////////////////////////////////////////////////////////////////////////////////////
//////////////////						Functions						//////////////////
//////////////////////////////////////////////////////////////////////////////////////////

TODO:
1. В проекте 'Functions\Functions' написать функцию ??? Power(???), которая возводит число в степень;
2. В проекте 'Functions\Arrays' написать следующие функции:
	??? Sum(???);		//возвращает сумму элементов массива
	??? Avg(???);		//возвращает среднее-арифметическое элементов массива
	??? minValueIn(???);//возвращает минимальное  значение из массива
	??? maxValueIn(???);//возвращает максимальное значение из массива
	??? Sort(???);		//сортирует массив в порядке возрастания
	??? ShiftLeft(???);	//циклически сдвигает массив на заданное число элементов влево
	??? ShiftRight(???);//циклически сдвигает массив на заданное число элементов вправо
3. Перегрузить все эти функции для типов данных 'char' и 'double';
4. Перегрузить все эти функции для двумерных массивов типа 'int', 'double' и 'char';
5. Вынести шаблонные функции в *.lib-файл:
	https://docwiki.embarcadero.com/RADStudio/Sydney/en/Exporting_And_Importing_Templates

DONE:
0. Загрузить все ISO-образы в папку Images:
	https://drive.google.com/drive/folders/1bGrU2-z1rWnStI0XMWXCyV5wDYsnD1mv?usp=sharing
1. Что такое файл подкачки и виртуальная память;
2. Создать еще одну виртуальную машину и установить в нее Windows Server 2003;

DONE:
1. Используя побитовые операции поменять местами две переменные без использования третьей;
2. В проекте 'Arrays' написать код, который:
	-позволяет ввести элементы массива с клавиатуры;
	-выводит массив на экран в прямом порядке (от 0-го элемента до последнего);
	-выводит массив на экран в обратном порядке (от последнего элемента до 0-го);
	-вычисляет сумму элементов массива;
	-вычисляет среднее-арифметическое элементов массива;
	-находит минимальное и максимальное значение в массиве;
3. В Solution 'Arrays' добавить проект 'Shift', и в этом проете
   массив из 10 элементов, проинициализированный числами Фибоначчи 
   необходимо циклически сдвинуть на заданное число элементов влево.
   Например:
	0	1	1	2	3	5	8	13	21	34	Исходный массив
	1	1	2	3	5	8	13	21	34	 0
	1	2	3	5	8	13	21	34	 0	 1
	2	3	5	8	13	21	34	 0	 1   1
	3	5	8	13	21	34	 0	 1   1   2
4. В проекте Shift выполнить циклический сдвиг массива на заданное число элементов вправо.

Images:
https://drive.google.com/drive/folders/1bGrU2-z1rWnStI0XMWXCyV5wDYsnD1mv?usp=sharing
https://drive.google.com/file/d/1fldruT1mC5kGLd7GWu2fU4QVFmd2WL2s/view?usp=drive_link BootFlash

TODO:
1. http://citforum.ru/operating_systems/linux/user/gl-02/gl_02_03.shtml;
2. https://www.ntfs.com/ntfs-partition-boot-sector.htm;


TODO:
5 проектов на свое усмотрение залить на github.com.
В журнал прислать ссылку на свой GitHub.

HDD:
1. Почитать про RAID-массивы;
2. https://www.youtube.com/watch?v=7onkTUts_-w&t=218s;
3. https://www.youtube.com/watch?v=REeeBywe8_Y&t=140s;
4. https://www.youtube.com/watch?v=QIhJkzlCuws;

Cooling:
1. https://www.youtube.com/watch?v=A8KJwdVKTok&pp=ygUw0Y3RgtC-0YIg0LrQvtC80L_RjNGO0YLQtdGAINC-0YXQu9Cw0LbQtNC10L3QuNC1;
2. https://www.youtube.com/watch?v=AK3AyXErB1Y;
3. https://www.youtube.com/watch?v=Tidws9NKS6c&t=542s&pp=ygUw0Y3RgtC-0YIg0LrQvtC80L_RjNGO0YLQtdGAINC-0YXQu9Cw0LbQtNC10L3QuNC1;
4. https://www.youtube.com/watch?v=mALfZmxyOQ4&t=435s;
5. https://www.youtube.com/watch?v=FirsCzTnbdQ&pp=ygULSUhTIEhhc3dlbGw%3D;
6. https://www.youtube.com/watch?v=XXs0I5kuoX4&t=177s;

PSU:
https://ru.gecid.com/power/sovremennyee_bloki_pitaniya_atx_i_ih_harakteristiki/;

TODO:
1. В Solution 'ControlStructures' добавить проект 'Shooter', и в этом проекте реализовать программу,	DONE
   реагирующую на нажатие клавиш:
	w - впреред
	s - назад
	a - влево
	d - вправо
	space - прыжок
	enter - огонь
2. В Solution 'ConstrolStructures' добавить проект 'HomeWorkLoops',
   и в этом проекте решить следующие задачи:
    -возвести указанное число в указанную степень. Основание и показатель степени вводятся с клавиатуры;	DONE
	-вывести на экран таблицу ASCII-символов по 16 символов в строке;	DONE
	-вывести на экран ряд Фибоначчи до указанного предела;				DONE
	-вывести на экран заданное количество членов из ряда Фибоначчи;		DONE
		Ряд Фибоначчи строится из двух чисел - 0 и 1,
		и каждый следующий член ряда = сумме двух предыдущих:
			0	1	1	2	3	5	8	13	21
	-вывести на экран ряд простых чисел до заданного предела.			DONE
	 Простым называется число, которое делится только на себя и на 1.
3. В Solution 'ControlStructures' добавить проект 'Geometry', 
   и в этом проекте вывести в консоль следующие фигуры:
	https://github.com/okovtun/BV_011/blob/master/ControlStructures/Geometria/Task/Geometria1.txt
4. https://github.com/okovtun/BV_011/blob/master/ControlStructures/Geometria/Task/ChessBoard.jpg
5. https://github.com/okovtun/BV_011/blob/master/ControlStructures/Geometria/Task/HardChess.jpg
5.1. Шахматную доску из пункта 5 сделать только двумя вложенными циклами;
6. Вывести на экран треугольник Паскаля;


TODO:
Подобрать комплектующие для Extreme Edition системы с 4-хканальным контроллером памяти.

DONE:
1. Написать программу "Калькулятор", которая принимает выражение вида:
	2+3
   и вычисляет результат этого выражения;
2. Написать программу, в которую вводится целое число, и программа определяет,
   является ли это число палиндромом.
   Палиндром - это число, которое читается одинаково в обоих направлениях,
   например:
	12321
	1221
	121

TODO:
https://overclockers.ru/lab/show/96704/obzor-i-testirovanie-materinskoj-platy-evga-x299-dark
https://www.amazon.co.uk/EVGA-X299-Intel-Motherboard-151-SX-E299-KR/dp/B079WCBP18?th=1
https://ru.gecid.com/mboard/asus_tuf_gaming_z790-pro_wifi/
Поверхностный эффект (Skin Effect);
Изучить шины PCI-Express и USB

TOREAD:
http://www.softelectro.ru/ieee754.html

TODO:
1. Выучить теорию.
2. Решить все задачи из файла:
	https://github.com/okovtun/VBD_311/blob/master/DataTypes/VariablesTask.pdf
3. Решить следующие задачи без испльзования компилятора:
	int i = 3;
	i = ++i + ++i;
	cout << i << endl;	//Что будет выведено на экран?
	//------------------------------------------------
	int i = 3;
	i = i++ + ++i;
	cout << i << endl;
	//------------------------------------------------
	int i = 3;
	i = i++ + 1 + ++i*2;
	cout << i << endl;
	//------------------------------------------------
	int i = 3;
	i = i++ + 1 + ++i*=2;
	cout << i << endl;
	//------------------------------------------------
	int i = 3;
	i += i++ + 1 + ++i*=2;
	cout << i << endl;


TODO:
1. Используя программы CPU-Z и AIDA-64 определить модель своего CPU, и его дополнительные наборы команд;
2. Используя программу AIDA-64 измерить производительность Кэша и памяти своего компьютера;
3. https://www.ixbt.com/cpu/x86-cpu-faq-2006.shtml
   https://www.ixbt.com/cpu/cpu-digest-2009.shtml
4. ark.intel.com
	https://www.intel.com/content/www/us/en/processors/processor-numbers.html

TODO:
1. Выучить теорию!
2. Используя Escape-последовательности, вывести в окно консоли стишок "В лесу родилась Ёлочка"
   Стишок доолжен быть выровнен по середине окна консоли, и куплеты должны быть разделены пустой строкой;

DONE:
1. Вычислить пропускные способности для памяти DDR4/DDR5;
2. Используя программу CPU-Z, определить конфигурацию и характеристики ОЗУ своего компьютера:
	Количество моддулей памяти, маркировку модулей, тип микросхем памяти (DDR3/DDR4/DDR5), 
	производитель модулей памяти;
		https://www.cpuid.com/softwares/cpu-z.html
3. Используя программу AIDA-64, определить конфигурацию и характеристики ОЗУ своего компьютера:
	Количество моддулей памяти, маркировку модулей, тип микросхем памяти (DDR3/DDR4/DDR5), 
	производитель модулей памяти;
		https://www.aida64.com/downloads/YmQ1ZDlhMjQ=

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages