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