Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 5.00
ВинниПух
Сообщений: n/a
#1

Объявление и вызов функций? - C++

06.10.2008, 15:02. Просмотров 2934. Ответов 16
Метки нет (Все метки)

Из двух книжек ни фига не понял как вызывать эти чёртовы функции, а без них никуда. Помогите пожалуйста.

в этом примере:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream.h>
#include <stdlib.h>
//здесь не пойму как правильно объявить функцию которая посчитает z?
int main(void)
{
int x = 5;
int y = 6;
int z;
//как вызвать эту функцию правильно?
return 0;
}
//функция из которой вернется результат z
{
z = x+y;
return z;
}
И еще пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
//как правильно объявить функцию с координатами(ах,ау)?
int main(void)
{
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "");
int ax = 100;
int ay = 100;
//как правильно вызвать функцию с координатами(ах,ау)?
getch();
closegraph();
return 0;
}
//функция которая нарисует квадрат(ax,ay)
{
bar (ax,ay,ax+10,ay+20);
}
И правильно ли записывать функции(подпрограммы) после main, или удобнее до?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2008, 15:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объявление и вызов функций? (C++):

Объявление, определение и вызов двух функций - C++
//Программа должна включать в себя: объявление, определение и демонстрацию работы через вывозов двух функций : //а) Аргументы:...

Объявление функций внутри других функций - C++
Иногда вижу в некоторых исходниках на c объявление функций, внутри main. Например: main(){ double sum(int max_num); } ...

Итерационные циклы,Определение и вызов функций,Использование библиотечных функций stdio.h - C++
Помогите решить задания: 1.Дано натуральное число n. Найти разность между первой цифрой этого числа и суммой всех остальных. ...

Передача значений функций в главную программу, вызов функций - C++
Здравствуйте! Скорее всего, неправильно передаю значения функциям и в главную программу. Помогите найти ошибку! В итоге выводит...

Неправильное объявление или вызов подпрограмм - C++
Приветствую Вас форумчане, помогите разобраться с кодом, недавно начал изучать с++ - вот решил накропать программку по обработке CDR-файлов...

Явный вызов и объявление статических полей - C++
1) Как сделать невозможным явный вызов деструктора и операторов? class MyClass { private : int _n; public : MyClass(int...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
06.10.2008, 15:07 #2
Прочитай в книжке, про то, что нужно задавать имя функции и возвращаемое значение. Какую функцию ты собрался вызывать? Я не вижу здесь даже их объявления. Ты ни фига не понял, не как их вызывать, а как их объявлять даже. Почитай еще разок...
Lord_Voodoo
Супер-модератор
8584 / 2184 / 61
Регистрация: 07.03.2007
Сообщений: 10,883
Завершенные тесты: 1
06.10.2008, 15:50 #3
Vourhey, слушай, а может они сговорилися все?
ВинниПух, неужели так сложно в книге написано, ведь обычно там куча примеров, не понимаешь эту книгу, найди другую...
Ranofer
2 / 2 / 0
Регистрация: 04.09.2008
Сообщений: 20
06.10.2008, 15:57 #4
Павловская Т.А. "С/С++ Программирование на языке высокого уровня" страничка №74, там популярно и понятно написано как объявлять и вызывать функции и даже приведен один из твоих примеров.
ABTOP
36 / 36 / 2
Регистрация: 09.06.2008
Сообщений: 324
06.10.2008, 16:02 #5
Цитата Сообщение от ВинниПух Посмотреть сообщение
И правильно ли записывать функции(подпрограммы) после main, или удобнее до?
Как тебе удобнее...

Почитай Дейтл и Дейтл - Как программировать на С/С++... По С стр 185., по С++ стр. 177... Думаю ты всё поймёшь и вопросов не будет... а те коды что ты написал фигня(работать не будут) или ты их просто так предсавил..
Polugut
1 / 1 / 0
Регистрация: 04.10.2008
Сообщений: 9
06.10.2008, 18:36 #6
Из двух книжек ни фига не понял как вызывать эти чёртовы функции, а без них никуда. Помогите пожалуйста.

И правильно ли записывать функции(подпрограммы) после main, или удобнее до?
Наверное надо так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
#include <stdlib.h>
 
//здесь  функция которая посчитает z
int SummaZ (int x, int y)
{  
    int z;
    z = x+y;
    return z;
}
 
int main()
{
    int x = 5;
    int y = 6;
    int z;
    z=SummaZ(x, y);
//Вот так и вызывается функция SummZ
return 0;
}
А можно и так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream.h>
#include <stdlib.h>
 
//здесь  объявляется функция которая посчитает z
int SummaZ (int x, int y);
 
int main()
{
    int x = 5;
    int y = 6;
    int z;
    z=SummaZ(x, y);
//Вот так и вызывается функция SummZ
return 0;
};
 
//здесь  сама функция которая посчитает z
int SummaZ (int x, int y)
{  
    int z;
    z = x+y;
    return z;
}
Наверное удобнее функции писать после главной, не забывая их объявить до главной.
P.S. Ошибки возможны, я неделю как начал учить С++.
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
06.10.2008, 18:40 #7
Наверное, после выполнения этих программ никто не будет знать, что они выполнились
Пусть учатся.
Винни пух
Сообщений: n/a
06.10.2008, 18:54 #8
Там где мои комментарии я специально ничего не писал, т.к. не понимаю как правильно объявить функции а затем их вызвать.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream.h>
#include <stdlib.h>
//здесь не пойму как правильно объявить функцию которая посчитает z?
int fff(int x, int y, int z);
 
int main(void)
{
int x = 5;
int y = 6;
int z;
 
//как вызвать эту функцию правильно?
fff(int x,int y, int z)
 
return 0;
}
 
//функция из которой вернется результат z?
int fff(int x, int y, int z);
{
z = x+y;
return z;
}
где ставить ;? как и где объявлять переменные?

скачал Павловскую, попробую очень внимательно изучить.
Но всё равно прошу помочь на этом элементарном примере исправить все ошибки, мне это очень поможет.
Polugut
1 / 1 / 0
Регистрация: 04.10.2008
Сообщений: 9
06.10.2008, 18:55 #9
Цитата Сообщение от Vourhey Посмотреть сообщение
Наверное, после выполнения этих программ никто не будет знать, что они выполнились
Пусть учатся.
Почему никто не будет знать? return 0 имеется, программа после выполнения вернет ноль.
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
06.10.2008, 19:00 #10
Даже пустая программа (без всяких return) вернет ноль при нормальном завершении.
В любом случае, надо добавлять вывод на консоль, чтобы было видно, что программа запустилась и вызов функции произошел.
Пусть сами учатся.
Виннипух
Сообщений: n/a
06.10.2008, 19:02 #11
Наверное надо так:
Спасибо!
А в другом примере как?
Polugut
1 / 1 / 0
Регистрация: 04.10.2008
Сообщений: 9
06.10.2008, 19:31 #12
Функции устроены "просто", отправляеш им переменные, получаешь то, что после return в функции прописано. Если надо получить сумму двух переменных, то надо отправлять две переменные, а не три. Чтоб присвоить переменной z результат работы функции надо так и писать z = fff(x,y) //(= - это присваивание)
писать int fff(int x, int y, int z) с int x... надо только при объявлении и определении, при запуске надо только переменные.

Точка с запятой здесь не ставиться:
C++
1
2
3
4
5
int fff(int x, int y, int z);
{
z = x+y;
return z;
}
И еще, переменные внутри функции не влияют на переменные другой функции, это в разделе про локальные-глобальные переменные.

Я по книге "С++ за 21 день" , Джесс Либерти учусь, там подобные вопросы неплохо объясняются.

P.S. Неплохо бы наверное добавить вывод на экран результата при помощи
C++
1
cout<<z<<endl;
, а то #include <iostream.h> без дела прописано

Пока писал, оказалось уже все ясно.
Второй пример не могу решить, у меня не Борландовский компилятор, и про бибилиотеку #include <graphics.h> не знаю ничего.

Добавлено через 20 минут 49 секунд
Даже пустая программа (без всяких return) вернет ноль при нормальном завершении.
А зачем тогда писать return 0 в main?
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
06.10.2008, 21:06 #13
Polugut,Вообще говоря,возможность "забыть "про return предоставляется компилятором. Который за тебя поправит твои ошибки. Формально,в мэйне нужно писать return.Если варианты возврата могут быть разными - это просто хороший тон,в конце вернуть ноль. Да и,опять таки,гарантия.Гарантия переносимости на менее "умные" компиляторы,гарантия того,что результат будет точно таким,каким надо. Не стоит творить себе скользкие места на ровном месте.
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
06.10.2008, 21:13 #14
Цитата Сообщение от Polugut Посмотреть сообщение
А зачем тогда писать return 0 в main?
Чтобы гарантировать, что 0 вернется. Можешь убрать. Он все равно вернется. Так что это вообще не показатель.
Виннипух
Сообщений: n/a
07.10.2008, 20:55 #15
С графическим примером разобрался, а вот как две глобальные переменные из функции вернуть непойму, помогите на этом примере:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream.h>
#include <stdlib.h>
int globalTwo(int assx, int assy);
int main()
{
int assx = 2;
int assy = 2;
cout << "first ass - " << assx << "\n";
cout << "second ass - " << assy << "\n";
assy,assx = globalTwo(assx, assy);
cout << "after global two, first ass - " << assx << "\n";
cout << "after global two, second ass - " << assy << "\n";
system("PAUSE");
return 0;
}
 
int globalTwo(int assx, int assy)
{  
assx = assx + 4;
assy = assy + 7;
cout << "first ass - " << assx << "\n";
cout << "second ass - " << assy << "\n";
return assy,assx;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2008, 20:55
Привет! Вот еще темы с ответами:

Объявление класса, создание объекта и вызов функции-члена - C++
Всем добрый день! Вот так я объявляю класс. typedef map&lt;string, double&gt; datablock; typedef map&lt;string, string&gt; groupvars; ...

Вызов функций внутри других функций - C++
#include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;iomanip&gt; using namespace std; ...

Объявление структур и функций - C++
Есть множество функций и структур. В структурах имеются конструкторы, функции и перегрузка операторов. Все элементы сильно переплетены...

Объявление нескольких функций в head.h - C++
Помогите разобраться. Ниже приведенный код работает у меня. Но меня мучают сомнения, что помещать несколько функций в заголовочный файл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.10.2008, 20:55
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru