Автор Тема: Потребителски "мъдрости"  (Прочетена 9490 пъти)

ctrl0l

  • Участници
  • ***
  • Публикации: 10
    • Профил
Потребителски "мъдрости"
« Отговор #15 -: Nov 22, 2006, 17:37 »
А вие, докато се смеете, всъщност можете ли да кажете има ли и ако има каква е разликата между:
for( i=0; i<5; i++ ) и
for( i=0; i<5; ++i )

За база вземаме езика C и предполагаме, че i е декларирано по-горе.
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Потребителски "мъдрости"
« Отговор #16 -: Nov 22, 2006, 18:18 »
Ако си мислиш, че има разлика след компилирането много се лъжеш. В модерните компилатори имат достатъчно алгоритми за оптимизация.
Да не говорим, че постановката ти не е добре зададена - трябва да се има предвид и типа на процесор, както и флаговете за компилиране.

ПП: Всъщност SOMNIVM по-горе май ти е отговорил.



Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

gizi_

  • Напреднали
  • *****
  • Публикации: 521
  • Distribution: Debian/Lenny, SLES/9-11
  • Window Manager: Gnome 2.22.3
    • Профил
Потребителски "мъдрости"
« Отговор #17 -: Nov 22, 2006, 19:12 »
Аз да ви кажа днес един мой колега в унито какво стана с него.Та значи той си купи преди месец два един usb memory stick 1GB.Обаче днес той взе че отказа да работи и за мой късмет точно на моя лаптоп.Искаше да му прехвърля един файл при което го "ръчнах" в лаптопа обаче той не пожела да го разпознае след което той пробва на своя той е с Windows XP но и при него беше същия ефекта.След което се пробва какво ли не от негова страна но чудото така или иначе не тръгна.Както и да е.При което час по късно ме попита дали моя компютър нещо не му е направил и аз му каза че не за първи път се включва все пак този usb stick на моя лаптоп при което той ми заяви "Да ама ти преди беше със Ubuntu, а сега си с Gnome".Просто думи нямам.Аз така или иначе след този коментар от него страна реших че не е много нужно да му обяснявам.Имайки впредвид че това е човек ползвал известно време линукс по негови думи разбира се.



Активен

gotha

  • Напреднали
  • *****
  • Публикации: 551
    • Профил
    • WWW
Потребителски "мъдрости"
« Отговор #18 -: Nov 22, 2006, 22:13 »
Имам един познат, който е горд потребител на Slackware, поне той така твърди '<img'>
Та имах едно питане във форума преди време, как да кирилизирам KDE, на което той предложи да редактирам сорса
 '<img'>
Не знам как си го представяше да редактирам на ръка цялото KDE, но поне за хората около нас, които си нямаха много идея за какво става въпрос, той изглеждаше много убедителен.
Същия човек (които между другото е "webmaster" ) беше решил да открадне java scripta от един сайт. Аз бях на съседния компютър и го чувам как псува, но не му обръщам внимание. След половин час реших да погледна какво става, той още не можеше да го намери. Оказа се, че админите на сайта са го "скрили" в отделен файл  '<img'>
Активен

blurmind

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Потребителски "мъдрости"
« Отговор #19 -: Nov 23, 2006, 16:00 »
В ISP:

user: Нямам Интернет.
support: Идваме веднага.
...

В дома на user:
user: Ей, сега ще ви покажа само да изляза от mIRC.
support: ?!?!
user: Ето - влизам в abv.bg, пиша си име/парола и ми казва "Грешно име или парола" ... и така е от сутринта !!!
support: ?!?!
support: #@!$@#!%%#@


/офф
Ей, ctrl0l, ти само да се заядеш ли се регистрира  ':p'



Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Потребителски "мъдрости"
« Отговор #20 -: Nov 23, 2006, 16:04 »
Много, много хора:
gateway - ['getаwei]
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Потребителски "мъдрости"
« Отговор #21 -: Nov 23, 2006, 17:11 »
Всъщност пропуснах най-свежия въпрос от потребител:
"Какво ми е IQ-то?" ( разбирай IP-то)
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

SOMNIVM

  • Гост
Потребителски "мъдрости"
« Отговор #22 -: Nov 23, 2006, 18:55 »
Цитат (VladSun @ Ноември 23 2006,17:00)
/офф
Ей, ctrl0l, ти само да се заядеш ли се регистрира  ':p'

Може би е доц. Павлова или някой неин колега от катедрата  '<img'>
Активен

divak

  • Напреднали
  • *****
  • Публикации: 831
    • Профил
Потребителски "мъдрости"
« Отговор #23 -: Nov 26, 2006, 04:05 »
Здравейте,
тъй като в този форум има доста студенти ... от ФМИ и ТУ и най-вероятно голяма част от тях са абонати на доста популярен доставчик във Ст. град , са разглеждали форума му, за тези които на са показвам малка част от мъдроста която се лее там :
Примерен код
Добре значи на Дебиан няма мирор на Мегалан, но на лай**то Slackware има? Защо така откъде на къде на Slackware - крайно незащитена, пошла и смешна система ще има. Аз нямам нищо против да инвестирам и да даря PC само и само да има мирор на Дебиан, защото смятам, че не е нормално да има на Слак (който си мисли, че тази система става за нещо да отвори дори речника и да прочете какво значи SLACK), а на Дебиан не (говоря за Мегалан). Според мен Слак е предназчен за ... дори не знам за какво е предначена. А за какво може да се ползва е тема на други дискусии в отдел правене на кексове и сармички... е че и там не става реално. Значи в кариерата си съм имал контакт с няколко SYS ADMINA (пиша с главни защота са цвете) и те ползват Слак. Просто по некърни хора НЯМА! До там мога да дам случай, че 1 от тях (мога да кажа точно кой и други подробности около него но не е това целта) не можа да си оправи ЛОКАЛНО (т.е. пред машината е ) шейпърите защото имало на системата VI, а той не можел да работи на него....., а нямало NANO, PICO. От него съм чувал и най-голямата хвалба за Слак - Като дадеш Full Install наистина е Full. Тук припаднах.Тук е време да спра в думите и да питам защо Слак няма собствена пакетна система а емулира други'<img'> Може би е прекалено добър за своя? Значи вие теглите CD-ta през няколко месеца ... а аз написах оня ден apt-get update && apt-get dist-upgrade и вече съм с Дебиан 4.0, който не е излязъл още! Нямам нищо против да застана срещу всеки привърженик на Слак и да му обясня просто защо Слак не струва и името си ...което дори не е готино. Нямам нищо против и да бъда опроверган ... но няма как да стане! Поздрави на всички Слак-аджии.


също така не на последно място е добре да се погледне

молбата за помощ или по точно отговорите дадени от хората.

Друг просълзяваш бисер :

Цитат
P.S. Ако поста ми ви се струва смеше и адски непълен ще добава само че днес за 1-ви път ми се случва да работя с linux-а ( имах достъп до тоя комп , но съм 99% windows user ) Версия 2.4.26. е

Цитат
Taя версия не върши много работа. По скоро кажи ква е дистрибуцията

Цитат
А как да го вия това ?? ?Коя команда да напиша в промпта или къде да вляза по директорите да го прочета ?

Цитат
Ми трябва да я пише някъде при логин.
ако е в конзола - някъде отгоре
ако е графичен режим - балиго къде

Цитат
Wellcome to linux 2.4.26 (tty1)

и малко по-късно

Lilo 22.5.9


'<img'>  '<img'>  '<img'>

@ctrl0l, дано някой ти отговори ... но се съмнявам '<img'> '<img'>



Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Потребителски "мъдрости"
« Отговор #24 -: Nov 26, 2006, 04:28 »
Цитат (divak @ Ноември 26 2006,04:05)
@ctrl0l, дано някой ти отговори ... но се съмнявам '<img'> '<img'>

/офф

Т'ва п'а к'во беше?
Мисля, че достатъчно ясно съм си написал отговора.
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

SOMNIVM

  • Гост
Потребителски "мъдрости"
« Отговор #25 -: Nov 26, 2006, 05:45 »
Тоя с Дебиан-а май го е било яд, че не може да сваля от локален мирър и си го е изкарал на слака... по доста некомпетентен начин.  Бисера за "виенето" нещо не го разбрах... Да не би да иде реч за "vi"?  '<img'>
Относно питането на ctrl0l, мисля, че отговорът се съдържа в постовете ни, но пак ще повторя, че да е по-ясно: между двете предложени конструкции няма абсолютно никаква разлика.

Отивам да изтрезнявам в съня си... лека нощ... ':zzz:'
Активен

divak

  • Напреднали
  • *****
  • Публикации: 831
    • Профил
Потребителски "мъдрости"
« Отговор #26 -: Nov 26, 2006, 20:29 »
Добре де, да видим сега дали и аз няма да влезна в класацията "мъдрости"

за

for( i=0; i<5; i++ ) и
for( i=0; i<5; ++i )

Примерен код

#include <stdio.h>
int main(void)
{
int i;
for ( i = 0; i < 5; i++ ) {
printf("%d \n", i);
}

for ( i = 0; i < 5; ++i ) {
printf("%d \n", i);
}

return 0;
}



изходите на двата "for"  са еднакви(идентични), защото всъщност е

Примерен код

for ( i = 0; i < 5; ) {
printf("%d \n", i);
i++;
}


и
Примерен код

for ( i = 0; i < 5; ) {
printf("%d \n", i);
++i;
}


А какво е имала предвид доцентката за да каже че са различни ... тема на друг разговор. '<img'> Според мен се е опитвала да покаже разликата между ++i  и i++
Но ... ако променим
Примерен код
for ( i = 0; i < 5; ++i )
на
Примерен код
for ( n = i = 0; i < 5; n = ++i)
и
Примерен код
for ( i = 0; i < 5; i++ )
на
Примерен код
for ( n = i = 0; i < 5; n = i++)

разликате вече е на лице .



Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Потребителски "мъдрости"
« Отговор #27 -: Nov 27, 2006, 00:48 »
i++
по принцип би трябвало да предизвика:
1) създаване на временно копие на i;
2) увеличаване на i с 1
3) връщане на стойността на временното копие на i

++i
по принцип би трябвало да предизвика:
1) увеличаване на i с 1
2) връщане на стойността на i

 Т.е. имаме 1 операция повече в първия случай (за това забавяне говореше SOMNIVM).
 НО ... това важи за случаите, когато оптимизаторът на компилатора НЕ се намесва. Хубавото е че, в 99% от случаите, при които няма разлика м/у изпълнението на двата случая, оптимизаторът избира винаги втория.
 С други думи, за описания в нашия случай for цикъл, винаги ще имаме ASM код, който би се получил при използване на ++i, т.е. по-ефективен код.
 НО ... всичко това зависи от вида на процесора, за който компилираме и оптимизациите на ниво "архитектура", които са създадени за тези два случая. Освен това оптимизацията би могла да бъде изключена чрез флаговете на компилатора и тогава наистина ще има разлика в изходния код.

ПП: А, какво е имала предвид доцентката - и това си написах ясно '<img'>
Лошото в случая беше, че аз единствен от цялата зала си позволих да го коментирам - другите си мълчаха по овчи (а съм сигурен, че в тази зала имаше хора разбиращи повече от мен) - но това е тема на друг разговор.
Хубавото е, че доцентката си призна грешката без увъртания - малко преподаватели в МЕИ биха го направили.



Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

sdr

  • Напреднали
  • *****
  • Публикации: 655
    • Профил
Потребителски "мъдрости"
« Отговор #28 -: Nov 27, 2006, 12:36 »
За да прекратим безсмислените спорове за ++и и и++ '<img'> правим следния експеримент:

Примерен код

sdr@sdr ~ $ cat test.c
int main  () {
        int x=123;
        int i;
        for ( i = 0; i < 5; i++ ) {
                x+=i;
        }
        return x;
}
sdr@sdr ~ $ gcc -S test.c
sdr@sdr ~ $ cat test.s
        .file   "test.c"
        .text
.globl main
        .type   main, @function
main:
        leal    4(%esp), %ecx
        andl    $-16, %esp
        pushl   -4(%ecx)
        pushl   %ebp
        movl    %esp, %ebp
        pushl   %ecx
        subl    $16, %esp
        movl    $123, -12(%ebp)
        movl    $0, -8(%ebp)
        jmp     .L2
.L3:
        movl    -8(%ebp), %eax
        addl    %eax, -12(%ebp)
        incl    -8(%ebp)
.L2:
        cmpl    $4, -8(%ebp)
        jle     .L3
        movl    -12(%ebp), %eax
        addl    $16, %esp
        popl    %ecx
        popl    %ebp
        leal    -4(%ecx), %esp
        ret
        .size   main, .-main
        .ident  "GCC: (GNU) 4.1.1 (Gentoo 4.1.1-r2)"
        .section        .note.GNU-stack,"",@progbits
sdr@sdr ~ $


след което правим

Примерен код

sdr@sdr ~ $ cat test1.c
int main  () {
        int x=123;
        int i;
        for ( i = 0; i < 5; ++i ) {
                x+=i;
        }
        return x;
}
sdr@sdr ~ $ gcc -S test1.c
sdr@sdr ~ $ cat test1.s
        .file   "test1.c"
        .text
.globl main
        .type   main, @function
main:
        leal    4(%esp), %ecx
        andl    $-16, %esp
        pushl   -4(%ecx)
        pushl   %ebp
        movl    %esp, %ebp
        pushl   %ecx
        subl    $16, %esp
        movl    $123, -12(%ebp)
        movl    $0, -8(%ebp)
        jmp     .L2
.L3:
        movl    -8(%ebp), %eax
        addl    %eax, -12(%ebp)
        incl    -8(%ebp)
.L2:
        cmpl    $4, -8(%ebp)
        jle     .L3
        movl    -12(%ebp), %eax
        addl    $16, %esp
        popl    %ecx
        popl    %ebp
        leal    -4(%ecx), %esp
        ret
        .size   main, .-main
        .ident  "GCC: (GNU) 4.1.1 (Gentoo 4.1.1-r2)"
        .section        .note.GNU-stack,"",@progbits
sdr@sdr ~ $


и понеже ни мързи да се пулим:
Примерен код

sdr@sdr ~ $ diff test1.c  test.c
4c4
<       for ( i = 0; i < 5; ++i ) {
---
>       for ( i = 0; i < 5; i++ ) {
sdr@sdr ~ $ diff test1.s  test.s
1c1
<       .file   "test1.c"
---
>       .file   "test.c"
sdr@sdr ~ $


И аре стига с глупостите '<img'>
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Потребителски "мъдрости"
« Отговор #29 -: Nov 27, 2006, 18:09 »
@SDR
Добре е да обърнеш малко внимание на писанията ми (т.нар. "глупости"), защото ако не работиш с "native" типове променливи, то тогава postincerment и preincrement операторите не се оптимизират автоматично ( поне доколкото ми е известно ) и в определени случаи можеш наистина да имаш спад на производителността поради неефективен код.
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
"Grub" sled preinstalacia na Windows
Настройка на програми
merman 1 11027 Последна публикация May 25, 2003, 11:27
от wandererbg
HDD ext3 recover, "Stellar Phoenix Linux" ??
Настройка на хардуер
help40 3 11791 Последна публикация Sep 20, 2012, 21:51
от Acho
"paskal case" / "camel case"
Общ форум
Apache 3 13946 Последна публикация Aug 11, 2006, 10:01
от ivak
Проблем с "struct cdev" и "struct semaphore"
Общ форум
halturata 22 20922 Последна публикация Aug 14, 2007, 17:31
от tarator
Проблем с "reboot", "halt" и т.н.
Настройка на програми
turboshark 5 13810 Последна публикация Sep 22, 2007, 00:13
от turboshark