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

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

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

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

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

Почитай Дейтл и Дейтл - Как программировать на С/С++... По С стр 185., по С++ стр. 177... Думаю ты всё поймёшь и вопросов не будет... а те коды что ты написал фигня(работать не будут) или ты их просто так предсавил..
0
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. Ошибки возможны, я неделю как начал учить С++.
0
Vourhey
Почетный модератор
6481 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
06.10.2008, 18:40 #7
Наверное, после выполнения этих программ никто не будет знать, что они выполнились
Пусть учатся.
0
Винни пух
Сообщений: 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 имеется, программа после выполнения вернет ноль.
0
Vourhey
Почетный модератор
6481 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
06.10.2008, 19:00 #10
Даже пустая программа (без всяких return) вернет ноль при нормальном завершении.
В любом случае, надо добавлять вывод на консоль, чтобы было видно, что программа запустилась и вызов функции произошел.
Пусть сами учатся.
0
Виннипух
Сообщений: 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?
0
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
06.10.2008, 21:06 #13
Polugut,Вообще говоря,возможность "забыть "про return предоставляется компилятором. Который за тебя поправит твои ошибки. Формально,в мэйне нужно писать return.Если варианты возврата могут быть разными - это просто хороший тон,в конце вернуть ноль. Да и,опять таки,гарантия.Гарантия переносимости на менее "умные" компиляторы,гарантия того,что результат будет точно таким,каким надо. Не стоит творить себе скользкие места на ровном месте.
1
Vourhey
Почетный модератор
6481 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
06.10.2008, 21:13 #14
Цитата Сообщение от Polugut Посмотреть сообщение
А зачем тогда писать return 0 в main?
Чтобы гарантировать, что 0 вернется. Можешь убрать. Он все равно вернется. Так что это вообще не показатель.
1
Виннипух
Сообщений: 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