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

Не могу понять как работает программа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не сравниваются строки http://www.cyberforum.ru/cpp-beginners/thread780417.html
Сегодня мне понадобилось вызвать программу с аргументом команднйо строки я посмотрел пример на http://www.cplusplus.com/forum/beginner/35344/ и попробовал написать так же: #pragma once #include "stdafx.h" #include "binder.h" #include "logger.h" #include <string>
C++ Указатели и динамические массивы. Использование указателей в качестве аргументов функций Из целочисленного массива Х(N) все нечетные элементы записать в массив Y(k). Удалить из каждого массива все простые двузначные числа. Найти, как изменилось количество простых чисел в каждом массиве после удаления. В программе написать функции: формирования массива Y, удаления элемента, определения количества простых чисел в массиве. Если можно, то напишите комментарии к строкам (что данная... http://www.cyberforum.ru/cpp-beginners/thread780398.html
C++ Ошибка: нарушение прав доступа при чтении
Помогите решить ошибку, если отдельно вызывать функции double det(macierz *A,macierz*B,int u) void kramer(macierz A,macierz *B) в мейне, то все прекрасно работает, как только задействую цыкл for выскакивает ошибка. Скрин прилагаеться #include <iostream> #include <math.h> #include <vector>
C++ Конструктор и деструктор
На сколько сильно они нужны и можно ли обойтись без них? Что будет если их не описывать? Что такое утечки памяти? Память забивается только на время выполнения программы или дольше?
C++ Не работают функции inport и outport http://www.cyberforum.ru/cpp-beginners/thread780338.html
Всем здравствуйте. Пишу код который должен будет выполняться под 16-битной DOS. Пишу его в Borland C++ 5.02. Подключаю "dos.h" в котором задефайнены функции inport и outport. При компиляции происходит ошибка "Error:Call to undefined function 'outport' " (тоже самое с inport). В хедере dos.h само собой нет описания этих функций, только определения, но какую тогда библиотеку требуется подключить?
C++ Используя только элементарные арифметические операции, определить сумму и произведение членов последовательности, которые кратны К Ув.пользователи, помогите решить задачку (С + + или Visual C + +). Данные целые положительные числа N, К, a1, ..., aN. Используя только элементарные арифметические операции (+, -, *, /), определить сумму и произведение членов последовательности a1, ..., aN, которые кратны К. Массивы не использовать. Заранее благодарен! подробнее

Показать сообщение отдельно
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
07.02.2013, 00:53     Не могу понять как работает программа
Цитата Сообщение от VD17 Посмотреть сообщение
Бльшое спасибо за все. Я хотел сделать вот так но не получилось.Я только начал учиться.
Добавлено через 54 секунды
А так я все понял.Хотел просто разобраться во всем, как и что работает. Хочу стать таким же квалифицированным как и вы.Спасибо.
я не знаю в чём вы там пишите и по каким книжкам учитесь...
я вообще C++ изучаю меньше месяца, но точно скажу, что в стандарте языка такого нет, что вы тут понаписали... что за среда вообще?

теперь к вашему коду, обратите внимание на эти строчки:

C++
1
2
3
4
5
6
7
8
9
for (int i = 0; i < sizeOfArray; i++)
                            {
                            cout << "В массиве храняться"
                                 << " следующие значения:\n";
                            }
                            {
                            cout.width(3);
                            cout  << i << ": " << integerArray[i] << endl;
                            {
здесь i разрушится после
C++
1
2
3
4
5
for (int i = 0; i < sizeOfArray; i++)
                            {
                            cout << "В массиве храняться"
                                 << " следующие значения:\n";
                            }
всё...
тут
C++
1
2
3
4
                            {
                            cout.width(3);
                            cout  << i << ": " << integerArray[i] << endl;
                            {
уже никакой i нет...
сперва поймите этот момент, о чём я писал в предыдущем посте...

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

вот набросал вам программу чтобы это понять, посмотрите на её вывод, порассуждайте над ней, чтобы понять что такое области видимости переменных, прежде чем рваться дальше

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
#include <iostream>
#include <string>
 
using namespace std;
 
int main ()
{
    int i = 0; // объявлем i как число, равное 0
    cout << i << endl; // да, это так...
    {
        cout << i << endl; // да, всё ещё так
        int i = 10; // перегужаем i как тоже число, но = 10
        cout << i << endl; // хорошо, это 10
        {
            string i = "asd"; //а перегрузим i как строку asd
            cout << i << endl; // получилось )
        }
        // ТУТ НАША ПЕРЕГУЗКА i как строка приказала долго жить:
        cout << i << endl; // снова число 10
        // т.к. область видимости i как строки была уничтожена по выходу за }
        // почему? потому что она была определена в { до этого и её область
        // видимости была только до след закрывающей } этой скобки
        //снова закроем
    }
    // посмотрим что имеем
    cout << i << endl;// так... и 10-ка куда-то делась... вернулись к первеначальному 0
    // по аналогии почему разрушился string порассуждайте куда делось 10 )))
}
 
Текущее время: 00:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru