Page 2 of 2
Re: Полезная функция для программирования на Си
Posted: Tue Jun 10, 2014 7:30 pm
by R0bur
ppk-center wrote:Конечно, в идеале это следует реализовывать в виде псевдокода, но моих скудных знаний не хватает даже для функции. Именно поэтому и обратился к вам за помощью!
В идеале "это" следует сначала сформулировать на русском языке.
Re: Полезная функция для программирования на Си
Posted: Tue Jun 10, 2014 8:02 pm
by Kopa
R0bur wrote:В идеале "это" следует сначала сформулировать на русском языке.
Ещё есть вариант полезный к прочтению программистами (бестселлер для общего и не только развития)
Способ мышления Форт. Язык и философия решения задач
у Броуди есть ещё одна переведённая книга уже по основам Форт.
P.S. Англоязычный вариант
Leo Brodie wrote Thinking Forth
Re: Полезная функция для программирования на Си
Posted: Wed Jun 11, 2014 9:12 pm
by ppk-center
Вы не подскажите, как сделать, чтобы условия не заканчивалось после возврата истины? Вот так?
Code: Select all
function ForIf(karray, kcondition) {
kcount = count(karray);
for (i = 0; i < kcount; i++) {
if (kcondition == true) {
karray2[i] = karray[i];
}
else {
karray2[i] = false;
}
return karray2;
}
Re: Полезная функция для программирования на Си
Posted: Wed Jun 11, 2014 10:01 pm
by Asper
ppk-center
C строго типизированный язык. C и JS это разные языки. Теряешь скобки. Все элементы массива должны быть одного типа. Неявные преобразования типов часто бывают источником многих ошибок. Где объявляется karray2? Не ответил на главный вопрос: в чем смысл функции?
Re: Полезная функция для программирования на Си
Posted: Thu Jun 12, 2014 12:49 pm
by ppk-center
Вот самый простой вариант использования почти этой функции
Code: Select all
int karray;
char kcondition[99];
function ForIf(karray, kcondition) {
kcount = count(karray);
int a = 0;
int karray2[9999]; // вот тут нужно оптимизировать
for (i = 0; i < kcount; i++) {
if (kcondition !== karray[i]) {
karray2[a] = karray[i];
a = a + 1;
}
return karray2;
}
// функция выкидывает все её члены, которые равны condition
CleanArray(karray) {
ForIf(karray, "");
}
char MyArray = {"a", ""};
MyArray = CleanArray(MyArray); // вот массив без пустых мест
Re: Полезная функция для программирования на Си
Posted: Thu Jun 12, 2014 1:53 pm
by R0bur
Да. Никаких сомнений больше не остаётся.
Re: Полезная функция для программирования на Си
Posted: Thu Jun 12, 2014 3:38 pm
by e-andrew
Code: Select all
def filter(arr, obj_to_rem): # хотя filter лучше не переопределять
res = []
for x in arr:
if x != obj_to_rem:
res.append(x)
return res
myarr = ['A', 'b', 'C', 'd', 'b', 'a']
print filter(myarr, 'b')
# Output: 'A', 'c', 'd', 'a'
Re: Полезная функция для программирования на Си
Posted: Thu Jun 12, 2014 5:46 pm
by ppk-center
e-andrew wrote:Code: Select all
def filter(arr, obj_to_rem):
res = []
for x in arr:
if x != obj_to_rem:
res.append(x)
return res
myarr = ['A', 'b', 'C', 'd', 'b', 'a'];
print filter(myarr, 'b')
# Output: 'A', 'c', 'd', 'a'
Какой язык?
Re: Полезная функция для программирования на Си
Posted: Thu Jun 12, 2014 5:50 pm
by e-andrew