Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > функции в с+


Автор: marka 27.3.2006, 22:09
привет!
вот назрел такой вопрос, что все не могу разобраться в чем отличие написания обычной программы на си для вычесления чего-нибудь и написания для того же функции...
например, написать функцию для решения уравнения ax+b=c и просто как бы ввести все данные с клавы и это посчитать... там просто библиотеки подключаются дополнительно что ли, а тело программы остается таким же???
пожскажите, пожалуйста, простым языком smile

Автор: Fin 27.3.2006, 22:19
Если у тебя есть часто повторяюшиеся действия связанные логически, то нужно писать функции.
Например:
Есть массив данных. Для работы с ним можно написать функции "Добавить элемент", "Удалить элемент", "Поиск элемента", "Сортировать массив"
Прелесть структурного программирования поймеш, когда начнеш писать большие (более 500 строк) программы.

Автор: marka 27.3.2006, 23:03
ну дык на словах так то оно так...
как это отражается на построении программы?

Автор: MAKCim 28.3.2006, 07:40
Цитата

как это отражается на построении программы?

самым прямым образом
если у тебя какое-то дествие повторяется 1000 раз ты будешь каждый раз набирать код заново? Для этого и существкют ф-ии

Автор: Любитель 28.3.2006, 13:25
Очень часто удобно даже просто разбивать программу на блоки. Так более видна структура. А это собственно и есть то, что давным давно окрестили структурным программированием

Автор: marka 28.3.2006, 15:24
хм, вот если так считать получается что то вроде...
Код

#include <stdio.h>
void main ()

{
  int c,a,b,x;
  printf ("vvedite a=%c");
  scanf ("%d",&a);
  printf ("vvedite b=%c");
  scanf ("%d",&b);
  printf ("vvedite x=%c");
  scanf ("%d",&x);
  c=a*x+b;
  printf ("c=%d",c);
}


а каким образом переделать это в функцию?)


M
Fixin
Язык выбирай в тегах кода.

Автор: Fin 28.3.2006, 15:36
marka, Это слишком мелкий пример. Тут даже не развернещся. Напиши более серьезную программу. Например игру крестики-нолики. Сразу поймеш прелесть функций.

Автор: Fixin 28.3.2006, 15:48
Все
Код
printf ("vvedite a=%c");    // тут у тебя ошибка: %c - ненужно.
  scanf ("%d",&a);
Заменяем на
Код
GetNum(int* num, char* name)
{
  printf ("vvedite %s= ", name);    
  scanf ("%d",num);
}
, получаем,
Код
#include <stdio.h>    
GetNum(int* num, char* name)
{
  printf ("vvedite %s= ", name);    
  scanf ("%d", num);
}

void main ()    
{    
  int c,a,b,x; 
  GetNum(&a, "a");
  GetNum(&x, "x");
  GetNum(&b, "b");
  c=a*x+b;    
  printf ("c=%d",c);
}
Но тут преимущества функций не видны.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)