:::: MENU ::::
Browsing posts in: Програмиране

Visual Basic 6.0 – все още в училищата ?!?!

Отделих около 1 час от 30-те ми минути за сън .. о да .. наистина се получава отрицателна стойност 😀 .. за да обоснова защо нямам никакво намерение да се откажа от Visual Basic 2010 /.net/ …. и да се примеря с VB 6.0, който само би увредил изградените ми навици .. уча в МГ “Баба Тонка”, гр. Русе, и определено ни губят времето с изучаване на напълно безсмислени неща !!! .. Оооо, сигурно си мислите че е поредното мърморене на ученик , но не е така .. Образователната система би трябвало да има само един единствен приоритет – да обогатява и развива знанията ни като същевременно ни прави конкурентно способни ! Хах , не се залъгвайте това в МГ не се получава .. може да сме многоо …… мхм …. но сме консервативни …. квото е било преди 10 години тва ще бъде още 10 деситилетия ! ..

/Написаното по-долу е един вид отговор след поредния отказ да ми бъде проверена задачата за която се трудих цели 2 учебни часа от възможни три … нещастниците с VB 6.0  се бъхтиха 15 минути да намерят готовия си вариант на друг компютър и да си я копират .. 😀 Та съдържа обръщения и т.н. все едно говоря на някой /


VB  6.0 must die

  1. Край на официалната подръжка през 2008 след  5 години нормален съпорт и 5 extended support. През 2005 Microsoft излиза с твърдението, че изоставя VB 6.0
  2. Първия VB .NET излиза през 2002 година
  3. VB 6.0 излиза през 1998 година и получава последния си SP през 2005 година.
  4. MS Bulgaria … при опит да получиш подръжка си „приятно“ изненадан, че най-старата версия VS / VB е 2003. Някаква подръжка за 6.0 може да се получи ако преди изтичането на ext. Support е сключен договор …
  5. Търсейки други училища, които изучават VB 6.0 попаднах само на едно
  6. В университетите се изучават .NET версии на MS IDE
  7. Училищата които предлагат обучение подобно на нашето отдавна са мигрирали на VB 2005  или по-ново; въпреки че разликите между 2005, 2008 и 2010 са минимални и не представлява почти никаква трудност преминаването от една версия на друга (нарастващо)
  8. .NET е фреймуорк предлагащ много готови и изтествани ресурси, функции и т.н. които не съществуват в VB 6.0.
  9. MSDN се предлага само за .NET версии. MSDN предлага най-точната, подробна и актуална информация за синтаксиса на всеки един език от VS.
  10. MSDN е единствения начин VS да бъде изучен
  11. MSDN стимулира учениците да търсят решение на проблемите а не да чакат наготово да им бъде смляно всичко … просто трябва да се потърси малко и ще се намери отговор на проблема. Използвал съм го много пъти за да направя „подобни“ функционалности очаквани от VB 6.0 версии на програми  …
  12. .NET предлага улеснени методи за извършване  на много неща .. ярък пример е подреждането на числа .. което става на няколко реда а не чрез 1000 проверки .. представете си че подреждаме не 3-4 числа ми 100 .. колко проверки ще ни накарате да направим при положение че това може да стане автоматично .. по-оптимизирано, точно и бързо ???
  13. Всеки VB .NET има Express edition, който е напълно безплатен и достатъчен за обучение или любителска работа
  14. Копирайки VB 6.0  на флашки не се ли нарушават авторските права на MS .. едва ли VB 6.0  е безплатен по принцип .. докато .NET версиите предлагат Express Editions , които са free
  15. На 12 годишна кола (VB 6.0) дори да й сложиш нови гуми (Windows 7) от нов Lexus …. колата няма да заприлича на lexus-а чиито гуми ползва … няма начин да се създаде нещо използваемо и конкурентно на състезания с VB 6.0. Не Ви ли се смеят когато представите програма на VB 6.0 .. всъщност не … тези които ходят на състезания си правят програмите на VB 2005 / 2008 – виждал съм ги ? А защо на другите губите времето при положение че явно признавате приимуществата на .NET  ???
  16. Google search:
    1. Visual Basic 6.0 -> 7 милиона резултата;
    2. Visual Basic 2005 – 17 милиона
    3. Visual Basic 2008 – 35 милиона
    4. Visual Basic 2010 – 70 милион
  17. Намерете си работа с Visual Basic 6.0 в някоя компания създаваща софтуер ?
  18. Значителни подобрения по ООП модела .. по логични лексикално наименувани функции
  19. .NET всяка версия с все по интуитивен интерфейс .. Intelli-sense (autocomplete) .. много по-развит и подобрен отколкото в сухия VB 6.0
  20. Преспокойно мога да си копирам готовите задачи от някой компютър . да направя 5-6 модификации и за 20 минути да съм готов .. а останалите 2 часа и кусур да си бъркам в носът, а правя ли го ??? Как да го правя при положение че повечето сигурно не са чували че има по-ново от VB 6.0 .. Тоест .. Ако дадена програма работи то тя си работи .. няма какво толкова да й се гледа “дизайна” и “properties” на елементите о_0 .. има си highlighters за код … ако трябва нещо да се провери набързо даден алгоритъм … пък и като пращам имейли мисля че наблягам на основните моменти които са интересни по кода ..
  21. Try catch finally throw – все думички непознати за VB 6.0 ; Как в VB 6.0  се имплементира въобще catch-ване на изключения .. ако в поле за цифра напиша стоо букви .. в .NET всяко изключение може да се контролира и обработва много по финно !
  22. Много повече контроли за по-интелигентни «форм дизайни» …. защо трябва да наслагвам сто бутона и инпута при положение че мога да ги групирам в панели, които да показвам скривам, позиционирам върху формата ..  Много по-добър “menu editor” -> въобще няма такъв директно си едитваш по менюто; Image container в който се зареждат необходимите картинки в „масив“ и се използват където трябва;  Лесни за използване Print, Preview, Save, Save As & so on dialogs ….  Готови About прозорци .. Splash forms  ..
  23. Създаване на програми които въпреки високото си натоварване могат да работят на новия хардуер .. multi tread … 32&64 bits … free threading
  24. Amazon Book Store: – дори откъм литература и избор сме максимално ощетени ..
    1. VB 6.0 -> 770 книги
    2. VB .NET -> 2330 (това ориентировачно значи 2003+2005+2008+2010 като може някои да са пропуснати)
  25. За сега VB 6.0 някакси работи на Windows 7 ?  а след първия SP .. или след  втория .. дали ще продължи ?
  26. Изучаването на VB 6.0 води до изграждането на грешни представи за реалния … VB-то от днешни дни … навици, знания, виждания над езика … недай си  боже някой да реши да работи наистина сериозно с VB .NET / 2010 … ще има определен период на приспособяване .. учене на нови неща и “забравяне” на нещата “учени” в училище … Ползвам VB бегло от версия 2005 (беше ми интересно) .. през версия 2008 в училище .. миналата година и сега вече 2010 след като излезе официално .. и преминаването между тях е почти безпроблемно .. много са малко нещата които биха създали проблем със несъвместимостта …. А всеки мой ученик гледа VB .NET като индианец – все едно му показваш нещо напълно ново .. и то си е така .. :X ..
  27. Нямайки съпорт от MS … VB 6.0 => вече не се предлагат изпити за сертифициране за използване на IDE-то и версията на езика .. тоест никак неможе да докажеш че имаш някакви знания … не че въобще ти трябва тоя език .. не че е приложим .. но още едно доказателство  колко стар и непотребен е ..
  28. Приключвайки дефакто курса на обучения върху VB 6.0 … всеки знае едно нищо което не може да приложи нито в работна среда, нито в университет … нито никъде .. липсват основни навици и принципи … познание за MSDN  и други .. ?!?! … може би след 30 години в курсове по архаични програмни езици ??? Две години учим .. и все дъфчим някакви контроли; … Целия VB  най-важното е как да използваме палитрата с картинки; .. ООП, патърни, бази данни … манипулиране на процеси, настройки .. някой трикове о_0 … тъй де .. все важни неща които в VB 6 ги няма ..  все едно обучавате PHP 4 … при положение че е актуален PHP 5.3 с нови features и несъвместим ООП модел …

Възможни са фактологични, функционални и т.н. грешки .. НО в общи линии смятам че съм на прав път в разсъжденията си .. коментирайте 🙂


Спам бот защита за коментари и регистрации

Много интересна тема и много популярна тъй като над 80% от писмата, които се изпращат са спам. Но и голяма част от коментарите, които се оставят също са спам.

Основното решение на проблема със спамботовете при коментарите и регистрациите е използването на capcha (картинка с произволно генериран текст, който трябва да се въведе от потребителя. Това от една страна е умно, но от друга страна се затруднява потребителя, който го мързи да гледа .. обикновено, а ако обърка се изнервя :). Друг минус е фактът, че повечето ботове вече са се научили да преодоляват простичките капчи. Нека се замислим какво немогат повечето ботове .. дори googlebot-а, който е на високо ниво и се използва за полезни цели -> нямат javascript  .. немогат да се справят с него .. нямат и events  каквито би могъл един потребител с мишка и клавиатура да има. Ето защо използвам алтернативен метод за филтриране на спам ботовете – комбинация от javascript events + ajax.

Всичко е много просто.

  1. Създаваме си стандартна форма за коментари, но вместо субмит бутон слагаме спан, див или друг инлайн елемент, който стилизираме като бутон и слагаме примерен текст “Аз не съм бот”.
    Пример:

    1. <span class="submit" id="activateButtonid">Аз не съм бот</span>
  2. Създаваме js функция. Тя извиква php файл, който съдържа в себе си истинския submit бутон от рода на:
    1. span class=”st0″>"path/to/file.inc.php""""activateButtonid"‘none’"sthshow"‘POST’"Content-type", "application/x-www-form-urlencoded");
    2.              xmlHttp_4.setRequestHeader("Content-length", parameters.length);
    3.              xmlHttp_4.setRequestHeader("Connection", "close");
    4.              xmlHttp_4.send(parameters);
    5.         }
    6. }
    7.  
  3. Съдържание на “path/to/file.inc.php”:
    1. span class=”st0″>’activateComments’‘<input type="submit" name="add_comm" id="add_comm" value="Коментирай" />’
  4. Слагаме onmouseover атрибут на form елемента:
    1. onmouseover="activateComments();"

    Това ни гарантира, че при преминаване на мишката върху формата ще се зареди реалния субмит бутон. За по-сигурно може да се направи confirm javascript прозорец, но той може да издразни потребителя.

  5. Използваме също така един input=hidden:
    1. <input type="hidden" name="chicabomb" id="chicabomb" value="forbotswithlove" />
    2.  
  6. Слагаме onsubmit атрибут на form елемента, с който използваме input=hidden:
    1. onsubmit="if(bot_check==0){return false;}else{document.getElementById(‘chicabomb’).value=’humanbeing’; return true;}"
  7. При обработката с php проверяваме дали $_POST[‘chicabomb’] == ‘humanbeings’ и $_SESSION[‘activateComments’] == 1 (на всяко презареждане се задава статично = 0), ако не е – коментара се игнорира.

Лесно може да се пригоди и за регистрационни форми.

Предполагам, че този метод има някакви слабости, но засега се справя доста успешно с “филтрирането” на всички бот коментари на сайтовете, на които се използва. Ще се радвам, ако някой го използва или помогне в подобряването му 🙂


WEBLOZ ’10 – Национално състезание по уеб дизайн и интернет програмиране “WEBLOZ” – впечатления

Тази година реших физически да се явя на моето любимо състезание по уеб програмиране в Лозница. Още в самото начало когато започна кампанията за записването и всички етапи стана ясно, че тази година нивото и организацията ще са на много високо ниво.

Подготовката а това състезание започна още преди националното по компютърни мрежи. След него обаче отсъствах една седмица за да мога да направя максимално много от функционалността по сайта, с който се явявах, а именно “Система за недвижими имоти”. За съжаление неуспях напълно да завършва предвидените функционалностти , но всички основни неща се реализираха 🙂 .

В петък (2010-04-23) тръгнах от нас в 10 часът и към 10:15 бях на автогарата. Тогава г-ж Симеонова и Митьо се бяха попритиснили далои ще дойда навреме, въпреки че автобусът тръгваше в 10:30. Тръгнахме успешно, но нз колко точно пътувахме до Разград. От там взехме таксита до хотел Островчето .. някъде около 10 лв излезе едното такси (пътувахме в 3 таксита щото бяхме бая народ).

Хотел Островчето беше много повече от това, което очаквах. Беше си лукс отвсякъде. Магнитни карти за вратите .. телевизор .. розетка за нет . басейн, игрище, ресторант и т.н. .. беше много добре направено 🙂 . Регистрирахме се и почнахме да си почиваме … почивамееее е много меко казано, защото в последния момент фиксвах някои работи , за да инсталирам напълно работещ проект на компютъра, от койт ще се представя. Те другите бая се бавиха така че имах достатъчно време. Даже фикснахме един цсс бъг по телефона .. директно включване със симо, че нещо бая се забатачихме :).

След като откриха състезанието и се навечеряхме с Митьо се затворихме в стаята и започнахме да творим какво ще презентираме :). Доста добре се получи – аз си нахвърлях страница и половина ключови думи и дори успяхме в комбинация с тренировки и бързо говорене да се вместим в 10-те минути :). По едно време сме заспали гледайки последния филм с джеймс бонд.

Събота (2010-04-24) беше представянето. Бях много напрегнат и ми изсъхна устата още преди да изляза да говоря, а докато говорех аха да ми се напукат устните 😀 😀 😀  … Аз си изговорих 10-те минути точно кактого бяхме тренирали, а не като другите които ползваха повече от 10 минути, но тъй като имахме добричко жури , не ги прекъсваха. Зададоха ми няколко простички въпроса и се отървахме … аз полу умрял а Митьо 100% жив :D. Излязохме да пушим, а след това се върнахме в стаята където заспахме като претрепани. Спали сме до края на представянията .. точно време за лекции. Аз в първите лекции невлязох  тъй като имах работа, но влязох по случайност в най-интересната. Аутентикация и ауторизация. Оказа се че повето методи знам какво представляват и как се ползват теоритично, НО ме мързи в червата да ги прилагам. Единствено Challenge Response беше неизвестното нещо. По отношение на електронния подпис, имах познанията от cisco академията където имаше информация за двата вида криптиране: симетрично и асимитрично … особеностите им 😉

На закриването се бяхме набутали най-отзад в единяи ъгъл. На мен ми беше ясно че няма да сме сред първите трима , не за друго ми щото съм Аз .. и аз не може да съм на 1,2,3 място е тъй .. просто късмет .. дори да имам всички шансове ще стане някой издънка и няма да успея .. илииии просто нямам качествата. Митьо от друга страна беше оптимист за първото място , но се оказа далеч от истината 🙂 .. Тогава ни беше ясно само едно: не сме в първите три позиции. на предния ред .. точно срещу наще столове седнаха едни момичета … амааа баяяяяяяяяяяяяяяяяяяя момичета бяха .. хих .. ля ля .

На вечерята бяхме със Симеонова и представителя на РУ на една маса. В общи линии поговорихме си .. посмяхме се .. понахранихме се :D. След като другите си тръгнаха аз останах на масата на журито за да поговоря със Стоян Францов, който се оказа че ползва CodeIgniter. Като цяло не мислех вечерта да говоря с него, но той ме покани след леката намеса на Симеонова 🙂 ..  Тогава не го питах нищо конкретно, но ми беше интересно да слушам за какво си говорят 🙂

Прибрах се в стаята и какво да правя .. какво да правя .. до 2:30 стоях и проучвах Challenge Response  .. FormIgniter … phpDocumentor и т.н. все неща, които смятах да ползвам вече. Бях си легнал с лаптопа на леглото като кабелите стигаха до ръбовете на леглото .. в един момент съм заспал .. в друг момент се събуждам и гледам лаптопа на земята .. явно съм го ритнал съвсем несъзнателно 😀  ..  беше паднал на земята като разтворена книга, но за радост ThinkVantage Active Protection е неутрализирал вибрациите и дефакто няма никакви поражения върху хард диска. 🙂

Станахме за екскурзията. Аз първата година бях ходил, но и тая година реших .. няма лошо .. без това нищо непомня 😀  .. Там висяхме бая време докато чакаме да влезем в могилата и през това време успях вече да задам конкретни въпроси към 2/3 от журито – получих и конкретни отговори 🙂 . В могилата разгледахме за 15-20 минути и се отправихме към хотела. Точно преди да тръгнем пристигна автобус с дечурлига … малки дребоси, които викаха.

На закриването .. нищо интересно. Ние нямахме никакви награди така че дори не се натисках да бъда в залата и да гледам 🙂 . До 12 опразнихме хотела и зачакахме едно автобусче да ни закара до автогара Разград. Там чакахме 2-3 часа докато хванем автобус .. цялата група .. 😀  ..  Специално за нас пуснаха едно микробусче, в което да се натъпчем 😀  ..   И така . .след известно пътуване се прибрахме 🙂


Как се премества WordPress блог на друг домейн ?

Това го прочетох в един друг блог, но мисля че може да ми бъде полезно завбъдеще или  на някой читател затова ще го преведа в по-съкратен вариант.

Всичко се започва с копирането на файловете на новия хостинг и прехвърляте базата данни. Променяте настройките за връзка в wp-config.php с базата данни.

След това за да промените url-то на блога и всички вътрешни линкове (линкове до други страници в блога ви, които сте поставили в постовете си) трябва да изпълните следните заявки:

  1. span class=”st0″>’http://www.old-domain.com’, ‘http://www.new-domain.com’‘home’‘siteurl’‘http://www.old-domain.com’,‘http://www.new-domain.com’‘http://www.old-domain.com’, ‘http://www.new-domain.com’);

След изпълнението на тези заявки, които трябва да се преработят според домейните, блогът трябва да работи нормално както преди. Ако имате някакви проблеми моля да оставите някой друг коментар по въпроса 🙂


Тъпо домашно по Инфо 2

//Задача 12

#include<iostream.h>

main()
{
int x=0,y=0;
cin>>x;

if((-1 <= x) && (x<=1))
{
y=1-x;
}
else
{
y=0;
}

cout<<y;

return 0;
}

//######################################

//Задача 13

#include<iostream.h>

main()
{
int x=0,y=0;
cin>>x;

if(x < 7)
{
y = x – 10;
}
else if(10 < x)
{
y = x +16;
}
else
{
y = 1 – x;
}

cout<<y;

return 0;
}

//######################################

//Задача 14

#include<iostream.h>

#define S6F 41
#define S6T 44
#define IDF 22
#define IDF 28

main()
{
unsigned char x=0,y=0,xx=0,yy=0; //xx-> 1 Северна Шир; 2 – Южна /// yy – 1-Изт; 2  западнаа
cin>>x>>xx>>y>>yy;

if((((x => S6F) && (x<=S6T) && xx == 1) && ((y => IDF) && (y<=IDT) && yy == 1))
{
cout<<“In”;
}
else
{
cout<<“out”;
}

return 0;
}

//######################################

//Задача 15

#include<iostream.h>

main()
{
cout<<“Условието е написано ‘перфектно’ и немога да разчета/разбера/ взаимоотношенията между различните градуси.. Иначе задача би станала лесно с един switch() за контролна конструкция и няколко if-а .. “;

return 0;
}

//######################################

//Задача 16

#include<iostream.h>

main()
{
int x=0,y=0,z=0,min=0,max=0;
cin>>x>>y>>z;

min = x;
max = x;
if(y > max) max = y;
if(y < min) min = y;
if(z > max) max = z;
if(z < min) min = z;

cout<<(min+max)/2;

return 0;
}

//######################################

//Задача 17

#include<iostream.h>

main()
{
float x=0,A=0,B=0;
cin>>A>>B;

x=(-B)/A;

cout<<x;

return 0;
}

//######################################

//Задача 18.1

#include<iostream.h>

main()
{
float x=0,A=0,B=0;
cin>>A>>B;

if(A > 0)
{
x=B/A;
cout<<“x<“<<x;
}
else
{
x=B/A;
cout<<“x>”<<x;
}

return 0;
}

//######################################

//Задача 18.2

#include<iostream.h>

main()
{
float x=0,A=0,B=0;
cin>>A>>B;

if(A > 0)
{
x=B/A;
cout<<“x>”<<x;
}
else
{
x=B/A;
cout<<“x<“<<x;
}

return 0;
}

//######################################

//Задача 18.3

#include<iostream.h>

main()
{
float x=0,A=0,B=0;
cin>>A>>B;

if(A > 0)
{
x=B/A;
cout<<“x<=”<<x;
}
else
{
x=B/A;
cout<<“x>=”<<x;
}

return 0;
}

//######################################

//Задача 19

#include<iostream.h>
#include<math.h>

main()
{
float x=0,y=0,z=0,D=0,A=1,B=0,C=0,c1=0,c2=0;
cin>>x>>y>>z>>A>>B>>C;

D=B*B-4*A*C;

if(D>0)
{
c1=(-B+sqrt(D))/2*A;
c2=(-B-sqrt(D))/2*A;
}
else if(D==0)
{
c1=-(B/2*A);
c2=c1;
}
else
{
c1=0;
c2=0;
}

if(x==c1 || x==c2)
{
cout<<“Корен: “<<x<<“\n”;
}

if(y==c1 || y==c2)
{
cout<<“Корен: “<<y<<“\n”;
}

if(z==c1 || z==c2)
{
cout<<“Корен: “<<z<<“\n”;
}

return 0;
}

//######################################

//Задача 20

#include<iostream.h>

main()
{
float x=0,y=0,A=1,B=0,C=0,x1=0,y1=0,x2=0,y2=0,tmp=0,tmp1=0,tmp2=0;
cin>>x>>y>>z>>A>>B>>C;

tmp=A*x+B*y+C;
tmp1=A*x1+B*y1+C;
tmp2=A*x2+B*y2+C;

if(tmp==0)
{
cout<<“x & y sa koreni\n”;
}
if(tmp1==0)
{
cout<<“x1 & y1 sa koreni\n”;
}
if(tmp2==0)
{
cout<<“x2 & y2 sa koreni\n”;
}

return 0;
}

//######################################

//Задача 21

#include<iostream.h>

main()
{
int x=0,a=0,b=0,c=0,d=0;
cin>>x;

a=x/1000;
b=(x/100)%10;
c=(x/10)%10;
d=x%10;

if((a==b) && (c==d))
{
cout<<“Brym Brym (sun)”;
}
else
{
cout<<“Error! 😛 (rofl) looser :P”;
}

return 0;
}

//######################################

//Задача 22

#include<iostream.h>

main()
{
unsigned char month=0,days=0;
unsigned int year=0;
cin>>month>>year;

switch(month)
{
case 2:
if((year%4 == 0) || (year%400 == 0))
{
days=29;
}
else
{
days=28;
}
break;

case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;

case 4:
case 6:
case 9:
case 11:
days=30;
break;

default:
cout<<“Looser (finger)”;
}

cout<<days;

return 0;
}

//######################################

//Задача 23

#include<iostream.h>

main()
{
unsigned char max_day=0, now_month=0, now_day=0;
unsigned int now_year=0, next_year=0;
cin>>now_day>>now_month>>now_year;

switch(now_month)
{
case 2:
if((now_year%4 == 0) || (now_year%400 == 0))
{
max_day=29;
}
else
{
max_day=28;
}
break;

case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
max_day=31;
break;

case 4:
case 6:
case 9:
case 11:
max_day=30;
break;

default:
cout<<“Looser (finger)”;
}

now_day++;
if(now_day <=max_day)
{
//Nothing o_0 😀
}
else
{
now_month++;
if(now_month <=12)
{
now_day=1;
}
else
{
now_year++;
now_month=1;
now_day=1;
}
}

cout<<“Next “<<now_year<<“-“<<now_month<<“-“<<now_day;

return 0;
}

//######################################

//Задача 24

#include<iostream.h>

main()
{
unsigned char max_day=0, now_month=0, now_day=0;
unsigned int now_year=0, next_year=0;
cin>>now_day>>now_month>>now_year;

now_day–;
if(now_day >= 1)
{
//Nothing o_0 😀
}
else
{
now_month–;
if(now_month >= 1)
{
switch(now_month)
{
case 2:
if((now_year%4 == 0) || (now_year%400 == 0))
{
now_day=29;
}
else
{
now_day=28;
}
break;

case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
now_day=31;
break;

case 4:
case 6:
case 9:
case 11:
now_day=30;
break;

default:
cout<<“Looser (finger)”;
}
}
else
{
now_year–;
now_month=12;
now_day=31;
}
}

cout<<“Next “<<now_year<<“-“<<now_month<<“-“<<now_day;

return 0;
}

//######################################

//Задача 25

#include<iostream.h>

main()
{
int x1,x2,x3,x4,y1,y2,y3,y4;
cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4;

if((y1==y2) && (y4==y3) && (x1==x4) && (x2==x3))
{
cout<<“Prav e prav e”;
}
else
{
cout<<“Kriv e kriv .. tctc … 😛 “;
}

return 0;
}

//######################################

//Задача 26

#include<iostream.h>

main()
{
cout<<“Кво ще рече взаимно положение на точка .. 😕  o_0 o_0 o_0”;

return 0;
}


Pages:12