Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> функции в с+, в чем разница? 
V
    Опции темы
marka
  Дата 27.3.2006, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 27.3.2006

Репутация: нет
Всего: нет



привет!
вот назрел такой вопрос, что все не могу разобраться в чем отличие написания обычной программы на си для вычесления чего-нибудь и написания для того же функции...
например, написать функцию для решения уравнения ax+b=c и просто как бы ввести все данные с клавы и это посчитать... там просто библиотеки подключаются дополнительно что ли, а тело программы остается таким же???
пожскажите, пожалуйста, простым языком smile
PM MAIL   Вверх
Fin
Дата 27.3.2006, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: 1
Всего: 10



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


--------------------
Пролетал мимо.
PM MAIL   Вверх
marka
Дата 27.3.2006, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 27.3.2006

Репутация: нет
Всего: нет



ну дык на словах так то оно так...
как это отражается на построении программы?

PM MAIL   Вверх
MAKCim
Дата 28.3.2006, 07:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 6
Всего: 207



Цитата

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

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


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Любитель
Дата 28.3.2006, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: нет
Всего: 92



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


--------------------
PM MAIL ICQ Skype   Вверх
marka
Дата 28.3.2006, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 27.3.2006

Репутация: нет
Всего: нет



хм, вот если так считать получается что то вроде...
Код

#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
Язык выбирай в тегах кода.


Это сообщение отредактировал(а) Fixin - 28.3.2006, 15:39
PM MAIL   Вверх
Fin
Дата 28.3.2006, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: 1
Всего: 10



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


--------------------
Пролетал мимо.
PM MAIL   Вверх
Fixin
Дата 28.3.2006, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 5
Всего: 18



Все
Код
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);
}
Но тут преимущества функций не видны.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.