Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 13:56 26.04.24 
Компютри и Интернет
   >> Perl
*Кратък преглед

Страници по тази тема: 1 | 2 | (покажи всички)
Тема Eдна закачка  
Автор zdrsoft (непознат )
Публикувано21.06.07 16:48



Здравейте
една закачка от мен :)

Например имате две целочислени променливи:

$a = 35;

$b = 48;

Напишете размяна на двте стойности в променливите, без да ползвате допълнителна променлива.

Успех





Тема Пояснение: Математическо или езиково решение?нови [re: zdrsoft]  
Автор martyr (мчк)
Публикувано21.06.07 17:05



Ето езиковото (еУементаУно):


#!/usr/bin/perl -w
my $a = 35;
my $b = 48;
print "$a $b\n";
($a, $b) = ($b, $a);
print "$a $b\n";




Тема Re: Eдна закачканови [re: zdrsoft]  
Автор PxL (непознат )
Публикувано21.06.07 17:21



php -r '$a=35;$b=48;printf("\nOld a=%d\nb=%d\n",$a,$b);$a=$b^$a;$b=$b^$a;$a=$a^$b;printf("\nNew a=%d\nb=%d\n",$a,$b);';

perl -e '$a=35;$b=48;printf("\nOld a=%d\nb=%d\n",$a,$b);$a=$b^$a;$b=$b^$a;$a=$a^$b;printf("\nNew a=%d\nb=%d\n",$a,$b);';

Редактирано от PxL на 21.06.07 17:24.



Тема Re: Eдна закачканови [re: zdrsoft]  
Автор bira_more (бира)
Публикувано22.06.07 00:34



 

my $a=35;
my $b=48;
print STDERR "A=$a B=$b\n";
$a+=$b;
$b=$a-$b;
$a=$a-$b;
print STDERR "A=$a B=$b\n";

Е на Мартир решението е много по елегантно ама ....

Bеer? Mоre?



Тема Re: Eдна закачканови [re: zdrsoft]  
Автор supremacy (phantom)
Публикувано24.06.07 00:43



swap na vars stava po edin nachin za silnite ezici (ne stava duma za chikii kato php i t.n.)

ruby -e 'a = 1; b = 2; a,b = b,a; print a," ", b'
python -c 'a = 1; b = 2; a,b = b,a; print a, b'
perl -e '$a = 1; $b = 2; ($a,$b) = ($b,$a); print "$a $b"' #blagodarenie na galfona Larry Wall trqbva da se ukaje kontekst (adski "umno")



Тема Re: Eдна закачканови [re: zdrsoft]  
Автор PxL (непознат )
Публикувано25.06.07 14:21



На PHP може да /изглежда/ нормално ;)
php -r '$a=1; $b=2; list($a,$b)=array($b,$a); print "$a $b";'


пп Според мен имаше се в предвид алтернативни методи за всеки език, тъй като е в още няколко раздела тази тема

Редактирано от PxL на 25.06.07 14:30.



Тема Re: Eдна закачканови [re: PxL]  
Авторzdrsoft (Нерегистриран)
Публикувано20.08.07 18:22



Не идеята беше да се даде само математическо решение с прости операции.



Тема Re: Eдна закачканови [re: zdrsoft]  
Автор пpocтo1чoвek (разпътник)
Публикувано23.08.07 16:23



Тогава решението по-горе с ксоровете е твойта идея, или онова с ваденето. Любопитен е въпросът, кое е най-бързо. Иначе на някакъв асемблер е най-гъзарско. Най-общо разменяш 2 думи (променливи) в паметта - Лоудваш двете клетки в два регистъра и после сторваш наобратно. Това е само мемори-аксес и нито една аритметическа операция. Верно, че на фона на модерните процесори аритметическите операции са незначими спрямо латентноста на паметите и ботъл-нека ти е колко уейт-стейта ще изциклиш. Но пък я си представи, че ЦПУ-то е некакъв умрел евтин ПИК и от теб се очаква да го накараш да "прави мусака, да шета и да пере едновременно"....



Тема Re: Eдна закачканови [re: пpocтo1чoвek]  
Автор bira_more (бира)
Публикувано23.08.07 18:18



Е поне разбрах какво ползва тъщата вместо мозък :)

Bеer? Mоre?




Тема Re: Eдна закачканови [re: zdrsoft]  
Авторзakaчлив (Нерегистриран)
Публикувано16.10.07 14:58



Забравих стойностите, затова:
$a = 10;
$b = 20;
$a = $a + $b;
$b = $a - $b; // $b = 10
$a = $a - $b; // $a = 20




Страници по тази тема: 1 | 2 | (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.