IT Образование

IT – это круто. by SimpleCode

Если вы только начали пользоваться системами на ядре Linux (Ubuntu, Linux Mint, OpenSUSE, Debian) или на OS X (MAC), то скорее всего, вас заинтересует вопрос прокрутки страниц в обозревателе. 

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

Это крайне не удобно и надо эту проблему как-то решать.

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

 

AutoScroll

AutoScroll

 

Установите расширение из магазина по этой ссылке goo.gl/r9e86.

 

* Если у вас есть вопросы касательно системы Linux, в частности Ubuntu пишите в комментариях.

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

 

Алгоритм перестановок

Алгоритм перестановок

 

Будем рассматривать случай когда цифры от 1 до n лежат в массиве в порядке возрастания, в противном случае можно просто переставить с помощью переставить.

 

Предположим имеем числа 1234. Очевидно, что количество перестановок равно 4!=24. Если мы начнем просто переставлять всякие два элемента то будет огромное кол.-во повторений, которых не избежать.

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

 

Алгоритм

1. Выберем число начиная с конца, элемент где нарушается порядок убывания. То есть для 12345 выберем 4, а для 12354 выберем 3 (точнее индекс i где а[i]=3). Назначим индекс этого элемента m.

2. Выберем наименьшее число после m-ой. Например 12354 m=2 (начинается с нуля) после 2-ого элемента наименьшее число 4, у которого индекс равен 4 (k=4).

3. Меняем местами m-ый  и k-ый элемент.

4. Осталось упорядочить все элементы после m-ого по возрастанию (поскольку они упорядочены по убывания, надо просто повернуть их).

 

Пример

a[4] = {1,2,3,4}, m=2 (a[m]=3), k=3 (a[k]=4). Меняем местами a[m] и a[k]. Получилось {1,2,4,3} и поскольку после m-ого элемента только один элемент повернуть ничего не нужно.

a[4] = {1,2,4,3}, m=1 (a[m] = 2), k=3 (a[k]=3). Меняем местами a[m] и a[k]. Получилось {1,3,4,2}, перевернем все после m-ого индекса получим {1,3,2,4}. И так далее.

 

Решение на C++

Функции для использования

 

#include <iostream> // библиотека ввод/вывод
using namespace std; // именная зона std
int fac(int a) // функция факториала (нужно для подсчета кол.-во перестановок)
{
if(a==1) return 1; 
return a*fac(a-1);
 }

void swap(int *a,int i,int j) // функция для того, чтобы переставить элементы с индексами i и j в массиве a;
{
int t;
t = a[i];
a[i]=a[j];a[j]=t;
}

int get_m(int *a,int N) // функция выбора m, где m индекс первого с конца элемента,
// с которого нарушается порядок убывания
{
int i;
for(i=N-1; i>=1; i--) 
        if(a[i]>a[i-1]) 
             return i-1;  
return 0; }

int get_k(int *a, int fixed_m, short N) // Найти k, где k индекс наименьшего элемента после m-ого. 
{
int temp_index = fixed_m+1;
for (int i=fixed_m+1;i<;N;i++)
        if(a[i]<a[temp_index] && a[i]>a[fixed_m]) temp_index=i;
return temp_index;
}

Тело программы

 

int main()
{
int n, i, j, m,k, temp, kol_vo;
cin >> n; // ввод числа n (длина массива)
kol_vo = fac(n); // кол.-во перестановок
short *c = new short[n]; // массив для хранения перестановок
for(i=0;i<n;i++) c[i]=i+1; // заполнение от 1 до n

for(i = 0; i<kol_vo;i++)
{
	for(j=0;j<n;j++)cout << c[j] << " "; // вывод нынешнюю перестановку на экарн
	cout << endl; // новая строка
m = get_m(c, n); // выбор m
k=get_k(c,m, n); // выбор k
swap(c, m, k); // переставить a[m] и a[k]
if(n-1-m > 1) // если после m-ого есть более 1 элемента
for(short j=0;j<(n-m-1)/2;j++) // перевернуть 
{
tt = c[m+1+j];
c[m+1+j]=c[n-1-j];
c[n-1-j]=tt;
} 

}

delete [] c;   // очистить память 
system("pause"); // задержка экрана
return 0; // выход из программы
}

Примечание

Если имеется символьная строка то можно просто создать массив для индексов например index[] и работать с ним так c[index[i]].

Если что-то было не понятно или вы где-то обнаружили ошибку - пишите комментарий.

На новом сайте pclenta.ru открыта рубрика ([Code]) статей по программированию. В рубрике найдете как уроки для новиков, так и серьезно написанные коды из разных программ и приложений.
Задача: Ввести число и программно определить является ли введенное число числом Фибоначчи.

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

Задачи по C++

Задачи по C++

 

Решение на C++:


#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int number,prev1, prev2, summ, stop;
cin >> number;
int prev1 = 1;
int prev2 = 2;
while(prev2 < number)
{
summ = prev1 + prev2;
prev1 = prev2;
prev2 = summ;
}
if(prev1+prev2 == number) cout << "YES" << endl;
else cout << "NO" << endl;
cin >> stop;
return 0;
}

Первые несколько строк не нуждаются в комментириях.

#include "stdafx.h" //в новых версиях Visual Studio (Win32 Console)
#include <iostream> //библиотека ввода/вывода
using namespace std; //именная зона std
int main() {} //точка входа в приложение
int number,prev1, prev2, summ, stop; // необходимые переменные
// вводимое число (number), первый/второй член последовательности (prev1/prev2)
// сумма двух предыдущих членов (stop)
// stop - чтобы заставить приложение не закрыватся

Для начала введем число командой cin:

 cin >> number; 

Присвоем переменным prev1 и prev2 начальные значения:

 
int prev1 = 1;
int prev2 = 2;
 

Чтобы получить кождый следующий член сумма двух предыдущих тоесть чтобы узнать является ли наше число членом последовательности нужно получить каждый член пока последний не превысит наше число:

 

while(prev2 < number) // цикл работает пока prev2 меньше number 
{
summ = prev1 + prev2; // переменной summ присвоить сумму prev1 и prev2
prev1 = prev2; //prev1 присвоить значение следующего члена (prev2)
prev2 = summ; // prev2 присвоить значение summ
}

Теперь проверим результат:

 
if(prev1+prev2 == number) cout << "YES" << endl; // Если да вывести YES
else cout << "NO" << endl; //или же вывести NO
//теперь вводим перепенную stop, чтобы не дать программе закрытся
cin >> stop;
return 0;

[Crex] Chrome Remote Desktop в alpha режиме.

admin в Октябрь - 30 - 2012

После года ожиданий, наконец, разработчики Google доделали дополнение к браузеру Chrome под названием Chrome Remote Desktop. Как можно догадаться из названия дополнение может удаленно управлять компьютерами, к которым открыт доступ. Конечно, на платформе Windows есть много альтернатив данного приложения, например Team Viewer, Radmin Viewer и т.д., но на платформе приложений Chromium оно единственное в своем роде.

 

Приложение, конечно, работает и на девайсах на базе Chromium OS (Chrome OS), о чем сообщалось в официальном блоге компании.

 

 

Chrome Remote Desktop

Chrome Remote Desktop

 

Chrome Remote Desktop

Chrome Remote Desktop

Chrome Remote Desktop

Chrome Remote Desktop

Chrome Remote Desktop

Chrome Remote Desktop

 

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

 

Приложение, конечно, бесплатное.

Для установки зайдите в Chrome Webstore: http://goo.gl/X75ar

 

*Заметка: отметкой [Crex] (Chrome Extensions) будут отмечаться статьи посещенные приложением на платформе Chrome.

Первая статья в рубрике Интернет Компании [К #1]

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

Qnet (quest net) “лидирующая компания в своей сфере“, которая занимается прямыми продажами в сети и сетевым маркетингом. Сотрудники компании обычные люди, которые занимаются обычными продажами и получают за это много-много денег.

 

На самом деле все немного сложнее.

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

 

В чем заключается обман.

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

 

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

 

Свободный график работы, которую вам гарантируют при поступлении на должность подразумевает 4-5 встреч в день плюс семинары (промывание мозгов и обучение методов продажи) которые длятся иногда по 5-7 часов.

 

Методы продажи которым вас научат

В основе продаж лежит самый простой метод “впаривания”, то есть игра с человеческими комплексами и использование желаний покупателя для убеждения надобности приобретения.

 

Все выше приведенные доводы основаны на обзорах бывших сотрудников и мнениях на сайтах которые составляют списки работодателей.

Чуть больше недели назад на конференции Google IO была представлена новая версия андроид Android 4.1 (Jelly Bean). Сейчас только некоторые устройства поддерживают эту версию ОС. Также планируется обновления для таких гигантов, как Samsung Galaxy S 2, Galaxy S3, по неофициальным данным Sony обновит линию Xperia до Android версии 4.1.

 

Jelly Bean

Jelly Bean

 

Но как же устройства с более слабыми параметрами, которые даже не получили обновление Ice Cream Sandwich (4.0)? Официального ответа на данный вопрос еще нет, но по данным некоторых источников, новые версии ОС для них останутся недоступны.

 

Таким образом владельцы ‘слабых’ смартфонов могут только надеется на неофициальные сборки новых версий андроид таких как CyanogenMod.

 

В Google Play уже много тем и ланчеров с обоями и значками Jelly Bean, которые вы можете установить и хоть как-то почувствовать красоту использования Android 4.1.

 

Одна из них Jelly Bean Go Theme, которая максимально похожа на настоящий. Ниже представлены скриншоты и ссылки для установки.

 

 

 

Тема предназначена для ланчера GO Launcher EX и GO Locker.

Ссылка на Google Play: http://goo.gl/oxILf

Ссылка на форум 4pda: http://goo.gl/9sGB4

Рубрики: Android

Root права на Android.

admin в Июль - 4 - 2012

Наверно все пользователи андроид сталкивались с ситуацией, когда для установки игры или приложения требуются root права, то есть права суперпользователя (superuser).

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

 

ВНИМАНИЕ! Получая root права, вы аннулируете гарантию на обслуживание вашего устройства. Будьте чрезвычайно осторожны в процессе получения прав суперпользователя, в противном случае, при не соблюдении инструкций вы можете нанести устройству неисправимый ущерб. 

 

Получить Root права на устройстве с ОС Android

Получить Root права на устройстве с ОС Android

 

 

Процесс получения прав примерно таков: вы скачиваете zip архив на вашу SD карту (для разных устройств разный архив root’а), затем нужно включить устройство в режиме восстановления(vol up + vol down + power), выбрать пункт “принять обновление с SD карты”, выбрать файл архива и перезагрузить устройство.

 

После успешного root’а появится приложение под названием Superuser или что-то в этом роде.

Рубрики: Без рубрики

Пока любители спорта заняты Евро 2012, любители Google узнают все больше и больше про новейшие изобретения корпорации добра. На данный момент уже представлены много новшеств: планшет Nexus 7, музыкальное устройство Nexus Q и много новинок Chrome и Android платформ.

 

 

Google I\O 2012

Google I\O 2012

 

 

Одна из важнейших обновлений представленных на конференции Google IO была новая версия Android с очередным номером 4.1 – Android Jelly Bean. Именно эту операционную систему использует планшет Google Nexus 7.

 

Также стали известны некоторые детали ранее представленного устройства Project Glass. Цена суперочков будет примерно 1500$, но количество ограничено.

 

Все остальное можете посмотреть на сайте разработчиков Google по ссылке https://developers.google.com/events/io/?

Рубрики: Google

Популярное дополнение MailRuTopBarRemove от SimpleCode, которая удаляет верхнюю строку с ссылками на страницы Mail.ru из социальной сети Одноклассники, получила обновление из за изменений в структуре сайта Одноклассники.ru.

 

 

Удалить топбар Mail.ru

Удалить топбар Mail.ru

 

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

Установить (Google Chrome)

Установить (Mozilla Firefox)

 

 

ВНИМАНИЕ! СТАРАЯ ВЕРСИЯ БОЛЬШЕ НЕ РАБОТАЕТ! ПОЖАЛУЙСТА ОБНОВИТЕ ДОПОЛНЕНИЕ.

 

 

 

В предыдущей статье Как скачать музыку/видео из одноклассников (часть1) я показал как перехватывать музыку из кеша с помощью Chrome. В этой записи речь пойдет больше про видео.

 

Скачать видео из Одноклассники.ru
Скачать видео из Одноклассники.ru

 

Видео на Одноклассники.ru берутся из самых популярных видеосервисов интернета – с Youtube и Rutube.

Как скачивать видео, если оно с Rutube – это отдельная тема, которая будет в третей части этой статьи.

 

Итак скачиваем видео из Одноклассники.ru

 

1. Зайдите на страницу видео, которую хотите скачать. (А)

2. Нажмите правой кнопкой мыши на пустую область страницы, далее просмотр кода элемента(B)

3. Выберите пункт Networks.

4. Обновите страницу не закрывая окно снизу. (C)

5. В поисковой строке Networks (правый угол сверху) введите videoplayback. (D)

6. Если поиск дал результат, значит видео из Youtube, продолжаем нажатием на найденный Videoplayback. (E)

7. Скопируйте HTTP адрес после Request URI: (F)

 

 

 

Загрузка видео из odnoklassniki.ru
Загрузка видео из odnoklassniki.ru

Теперь осталось добавить в конец скопированного адреса &title=video и ввести адрес в обозреватель.

 

К примеру, если вы скопировали адрес http://o-o.preferred.beeline-evn1.v9.lscache4.c.youtube.com/videoplayback?sver=3&key=yt1&range=131……..2Cid%2Cip%2Cip2C913539%2 то в адресную строку введите http://o-o.preferred.beeline-evn1.v9.lscache4.c.youtube.com/videoplayback?sver=3&key=yt1&range=131……..2Cid%2Cip%2Cip2C913539%2&title=video.