0 / 0 / 0
Регистрация: 22.09.2015
Сообщений: 18

Разбор программы

23.09.2015, 11:19. Показов 1091. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
25
26
27
28
29
30
31
32
33
34
35
#include<iostream>
using namespace std;
 
void func1();
void func2();
 
int f;
 
int main()
{
    int i;
 
    for(i=0; i<10; i++)
    {
        f = i*2; 
        func1();                     \\Строчка
    }
    
    return 0;
}
 
void func1()
{
    cout << "f: " << f;
    cout << '\n';
    func2();                 \\Строчка
}
 
void func2()
{
    int f;
    for(f = 0; f < 3; f++)
        cout<< '.';
        system("pause");
}
Имея данный код, не могли бы вы объяснить значение наличия строчек func1(); и func2();(отмечено слэшами). Да и вообще суть каждой строчки, потому как не въезжаю, зачем так много фигурных скобок, т.е для чего они нужны и почему имея вроде бы 2 переменных это i и f мы объявляем вначале 3 переменные. Заранее спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.09.2015, 11:19
Ответы с готовыми решениями:

разбор программы
друзья хотел бы попросить помощи с одной программой, в программировании не разбираюсь по єтому пришел к вам на форум. Есть программа одно...

Разбор программы
После недели освоения cuda и разбора программ,наткнулся на урок по куда,прилагается программа перемножения матриц,собственно код: //...

разбор программы
Друг написал прогу, но комментарии к ней не сделал, поэтому не понятно. Помогите разобраться с программой. Вот условие: Создать класс...

6
 Аватар для Ника))
43 / 43 / 20
Регистрация: 08.12.2010
Сообщений: 342
23.09.2015, 11:37
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
25
26
27
28
29
30
31
32
33
34
35
36
37
#include<iostream>
using namespace std;  //включаем старый тип данных для того что бы работал
//потоковый вывод cout
 
void func1(); //2 прототипа функции т.к. если их не указать main() их не увидит 
void func2();//т.к. они расположенны ниже него
 
int f;  // глобальная переменная
 
int main()
{
    int i;  // локальная переменная
 
    for(i=0; i<10; i++)  // цикл
    {
        f = i*2;   // умножение на 2 
        func1();                     // вызов функции идет сюда =>>>
    }
    
    return 0;  // возвращаемое значение символизирует выход из программы
}
 
void func1()  // <========вот сюда
{
    cout << "f: " << f;  // вывод f
    cout << '\n';   // символ перехода стоки
    func2();                //вызывается функция 2 идет сюда ==>
}
 
void func2() // <== вот сюда
{
    int f;  // при объявлении локальной переменной в функции она существует только в данной функции
// хотя раз она объявленна как глобальная (такое же имя) не рекомендуется создавать такую же локальную
    for(f = 0; f < 3; f++)
        cout<< '.';  // цикл на вывод точки
        system("pause");  // системная пауза (ожидает какого нить щелчка для продолжения сделано что бы ты увидел результат)
}
1
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
23.09.2015, 11:47
Ника)), все более-менее нормально,но от себя добавлю пару уточнений:

C++
1
using namespace std;
- использование пространства имен std. Там находятся все стандартные компоненты(например,как std::cout)

Возвращаемое значение из функции main - точно такое-же возвращаемое значение,как и в любой другой функции,только обрабатывает его система(или другая программа,вызывающая эту).

Локальная переменная "перекрывает" глобальную.
system("pause") - отправка системе команды pause.
1
0 / 0 / 0
Регистрация: 22.09.2015
Сообщений: 18
23.09.2015, 13:10  [ТС]
Спасибо большое, все очень понятно)
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
23.09.2015, 20:46
Puareto, вот:
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <iostream>     // подключаем заголовочный файл iostream для того,
                        // чтобы можно было использовать объект cout
 
using namespace std;    // подключаем пространство имён std
 
//объявление функции func1():
void func1();   // прототип функции func1()
/*
Прототип нужен для компилятора, чтобы он (компилятор) знал, сколько аргументов
будет передано в функцию (в нашем случае ни одного) и  какого типа будут эти
аргументы, каков будет тип возвращаемого значения (в нашем случае void).
void (англ.) - "пустой".
*/
 
//объявление функции func2():
void func2();   // прототип функции func1()
 
int f;  // глобальная переменная целочисленного типа (int - от англ. "integer")
 
int main()  // главная функция (тип возвращаемого значения int)
{   // открывающая фигурная скобка (начало тела функции main)
    
    int i;  // объявление переменной целочисленного типа
 
    // цикл for:
    for(i = 0; i < 10; i++) // переменная i используется в качестве счётчика
    {   // начало тела цикла for
        f = i * 2;  // инициализация переменной (присвоение значения)
        func1();    // вызов функции func1()                   
    }   // конец тела цикла for
/*
Перед выполнением цикла счётчику (переменной i) присваивается значение 0
(счётчик обнуляется). На каждой итерации (на каждом витке) цикла проверяется
условие i < 10. Если условие истинно, то цикл продолжается, иначе цикл
прекращается. После каждого витка счётчик инкрементируется (увеличивается на 1).
*/    
    return 0;   // оператор return возвращает операционной системе значение 0
                // (признак того, что программа отработала без ошибок)
    
}   // закрывающая фигурная скобка (конец тела функции main)
 
void func1()    // определение (реализация) функции func1
{   // начало тела функции func1
    cout << "f: " << f; // с помощью объекта cout выводим на консоль строковый
                        // литерал (то, что в кавычках) и значение глобальной
                        // переменной f
    cout << '\n';   // управляющая последовательность \n - специальная хреновина,
                    // позволяющая перевести курсор на новую строку
    
    func2();    //   вызов функции func2() 
    
}   // конец тела функции func1
 
void func2()    // определение (реализация) функции func2
{   // начало тела функции func2
    int f;  // объявление локальной переменной целочисленного типа
/*
Теперь в функции func2 будет своя (локальная) переменная int f, а глобальная
переменная int f, которая была объявлена в 18 строке кода, будет скрыта (для
функции func2 глобальная f как бы перестанет существовать, потому что локальная
f её собой скроет).
*/
    
    // цикл for:
    for(f = 0; f < 3; f++)
        cout << '.';
/*
Здесь у цикла for нет фигурных скобок - телом цикла является один единственный
оператор - cout << '.';
Этот же цикл можно было бы записать и с фигурными скобками (смысл останется
тот же самый):
 
    for(f = 0; f < 3; f++)
    {
        cout << '.';
    }
 
*/    
 
    system("pause");    // отправка системе команды pause (чтобы окно консоли
                        // не закрылось сразу же по завершении программы и
                        // пользователь смог прочитать то, что было выведено
                        // на экран
    
}   // конец тела функции func2
0
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,856
23.09.2015, 20:58
Цитата Сообщение от gru74ik Посмотреть сообщение
C++
1
2
3
4
system("pause");    // отправка системе команды pause (чтобы окно консоли
                        // не закрылось сразу же по завершении программы и
                        // пользователь смог прочитать то, что было выведено
                        // на экран
какое такое закрытие консоли? если мы в функции
тупо ждет нажатие клавиши и не выходит из функции
чтобы узнать следующее число нужно нажать на клавишу
10 раз интересно когда пользователь комп разобъет
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
24.09.2015, 05:46
Цитата Сообщение от ValeryS Посмотреть сообщение
какое такое закрытие консоли? если мы в функции
тупо ждет нажатие клавиши и не выходит из функции
чтобы узнать следующее число нужно нажать на клавишу
10 раз интересно когда пользователь комп разобъет
ОК
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.09.2015, 05:46
Помогаю со студенческими работами здесь

Разбор кода программы
сделали контрольную и защитить не не могу. помогите разобрать что значит код, пожалуйста. реализация LZ метода сжатия кто может...

Разбор кода программы
Здравствуйте! Помогите пожалуйста написать программу (на Bison+Flex), которая будет сканировать текстовый документ и выводить информацию об...

Разбор алгоритма программы
Здравствуйте, у меня есть программа, вычисляющая факториал заданного числа. #include &quot;stdafx.h&quot; #include...

Разбор алгоритма программы
Здравствуйте, у меня есть программа, вычисляющая факториал заданного числа. #include &quot;stdafx.h&quot; #include...

Разбор программы(сортировка)
Как объяснить принцип работы (выделенного) кода. Не могу до конца разобрать какие действия проводит данная программа поэтапно. ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru