Форум умных людей

Nazva.net => Сайт => Тема начата: Abby от Февраль 27, 2012, 16:58:54



Название: Алгоритмы для ЯП
Отправлено: Abby от Февраль 27, 2012, 16:58:54
Вопрос скорее в том знакомы ли вы с этими средами.


Название: Re: Алгоритмы для ЯП
Отправлено: mayer от Февраль 27, 2012, 17:25:27
Языки программирования я знаю. В  остальном дятел  :wall:


Название: Re: Алгоритмы для ЯП
Отправлено: Sirion от Февраль 27, 2012, 18:54:08
А поцчему Ви спгашиваете?


Название: Re: Алгоритмы для ЯП
Отправлено: Ленка Фоменка от Февраль 28, 2012, 06:00:23
Вопрос скорее в том знакомы ли вы с этими средами.
Со средами знакома...
Но вопрос мне не совсем понятен.... Есть задача - пишешь прогу, которая ее решает... Обычно не заморачивалась над тем, чтобы алгоритм решения задачи был каким-то универсальным... Для меня всегда стояло целью - что бы прога решала конкретную задачу, дабы получить зачет...


Название: Re: Алгоритмы для ЯП
Отправлено: Abby от Февраль 28, 2012, 12:36:22
Вопрос скорее в том знакомы ли вы с этими средами.
Со средами знакома...
Но вопрос мне не совсем понятен.... Есть задача - пишешь прогу, которая ее решает... Обычно не заморачивалась над тем, чтобы алгоритм решения задачи был каким-то универсальным... Для меня всегда стояло целью - что бы прога решала конкретную задачу, дабы получить зачет...
Я старалась выразиться понятнее. Просто алгоритм для определенной среды может свой, к примеру на ассемблере есть моя любимая команда xchg, а в некоторых средах (к сожалению подобной нет, и для выполнения определенной задачи - не хочу расписывать, придется использовать промежуточную переменную, а это уже не одна строка, а три), разная организация меток.
Я к тому, что блок-схема будет одинаковой в любом случае, а алгоритмы разными.
А тема создана для того, чтобы узнать стоило бы создать тему, где можно было бы решать подобные задачи.


Название: Re: Алгоритмы для ЯП
Отправлено: Sirion от Февраль 28, 2012, 14:49:16
Цитировать
а в некоторых средах (к сожалению подобной нет, и для выполнения определенной задачи - не хочу расписывать, придется использовать промежуточную переменную, а это уже не одна строка, а три

public static void xchg(int a, int b){
a = a^b;
b = a^b;
a = a^b;
}
//без дополнительной переменной
public static void main(){
int a = 1;
int b = 2;
xchg(a,b);
//в одну строку
}
/*это не среды кривые, это руки кривые*/


Название: Re: Алгоритмы для ЯП
Отправлено: Abby от Февраль 28, 2012, 15:38:35
Цитировать
а в некоторых средах (к сожалению подобной нет, и для выполнения определенной задачи - не хочу расписывать, придется использовать промежуточную переменную, а это уже не одна строка, а три

public static void xchg(int a, int b){
a = a^b;
b = a^b;
a = a^b;
}
//без дополнительной переменной
public static void main(){
int a = 1;
int b = 2;
xchg(a,b);
//в одну строку
}
/*это не среды кривые, это руки кривые*/
Я Вас тоже люблю


Название: Re: Алгоритмы для ЯП
Отправлено: iPhonograph от Март 16, 2012, 18:41:00
Цитировать
а в некоторых средах (к сожалению подобной нет, и для выполнения определенной задачи - не хочу расписывать, придется использовать промежуточную переменную, а это уже не одна строка, а три

public static void xchg(int a, int b){
a = a^b;
b = a^b;
a = a^b;
}
//без дополнительной переменной
public static void main(){
int a = 1;
int b = 2;
xchg(a,b);
//в одну строку
}
/*это не среды кривые, это руки кривые*/
вместо того, чтобы создавать третью (промежуточную) переменную, вы создали ДВЕ лишних (переданные в функцию параметры превращаются в две дополнительные локальные переменные в стеке)
:)


Название: Re: Алгоритмы для ЯП
Отправлено: ☭-Изделие 20Д от Март 16, 2012, 19:34:17
Увы только АЛГОЛ-60, АЛМИР ну и конечно ФОРТРАН но не турбо, а простой.
На Кобол как то правил программу.


Название: Re: Алгоритмы для ЯП
Отправлено: Sirion от Март 16, 2012, 20:03:23
Цитировать
а в некоторых средах (к сожалению подобной нет, и для выполнения определенной задачи - не хочу расписывать, придется использовать промежуточную переменную, а это уже не одна строка, а три

public static void xchg(int a, int b){
a = a^b;
b = a^b;
a = a^b;
}
//без дополнительной переменной
public static void main(){
int a = 1;
int b = 2;
xchg(a,b);
//в одну строку
}
/*это не среды кривые, это руки кривые*/
вместо того, чтобы создавать третью (промежуточную) переменную, вы создали ДВЕ лишних (переданные в функцию параметры превращаются в две дополнительные локальные переменные в стеке)
:)
да-да, и это не считая дополнительной памяти для хранения самой процедуры и её точки возврата) хороший стиль программирования в наши дни означает бессмысленную трату ресурсов

можно сделать вообще просто:

a=a^b; b=a^b; a=a^b;

в одну строчку же!


Название: Re: Алгоритмы для ЯП
Отправлено: Sirion от Март 16, 2012, 20:04:23
Увы только АЛГОЛ-60, АЛМИР ну и конечно ФОРТРАН но не турбо, а простой.
На Кобол как то правил программу.
какие страшные слова вы говорите)


Название: Re: Алгоритмы для ЯП
Отправлено: iPhonograph от Март 16, 2012, 20:08:10
в современных языках разрешено множественное присваивание:
a,b = b,a


Название: Re: Алгоритмы для ЯП
Отправлено: iPhonograph от Март 16, 2012, 20:10:22
public static void xchg(int a, int b){
a = a^b;
b = a^b;
a = a^b;
}
//без дополнительной переменной
public static void main(){
int a = 1;
int b = 2;
xchg(a,b);
//в одну строку
}
а оно вообще будет работать?
примитивные типы (напр, int) передаются по значению, а не по ссылке
эта функция просто поменяет местами две свои локальные переменные
:)


Название: Re: Алгоритмы для ЯП
Отправлено: iPhonograph от Март 16, 2012, 20:12:36
похоже, в функцию нужно передавать контейнеры, содержащие числа, а не числа


Название: Re: Алгоритмы для ЯП
Отправлено: Sirion от Март 16, 2012, 20:20:06
в современных языках разрешено множественное присваивание:
a,b = b,a
это как-то уж чересчур современно)

кстати, только что узнал, что в джаве в качестве left-value можно использовать условное выражение о_О

(condition ? x : y) = value;


Название: Re: Алгоритмы для ЯП
Отправлено: Sirion от Март 16, 2012, 20:22:55
public static void xchg(int a, int b){
a = a^b;
b = a^b;
a = a^b;
}
//без дополнительной переменной
public static void main(){
int a = 1;
int b = 2;
xchg(a,b);
//в одну строку
}
а оно вообще будет работать?
примитивные типы (напр, int) передаются по значению, а не по ссылке
эта функция просто поменяет местами две свои локальные переменные
:)
кстати, да, гоню
это у меня паскаль в попе заиграл


Название: Re: Алгоритмы для ЯП
Отправлено: iPhonograph от Март 17, 2012, 00:24:31
да, я тоже смотрю - что-то не так
слова "var" не хватает перед именами переменных...