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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 46, средняя оценка - 4.65
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
#1

Учусь программированию на языке с++ самостоятельно - C++

08.04.2014, 09:56. Просмотров 6589. Ответов 160
Метки нет (Все метки)

Учусь программированию на языке с++ самостоятельно (уроки Дениса Маркова в Ютуб).
После урока с циклами у меня возникли огромные проблемы. Не могу выполнит домашку.
Данный момент изучаю массивы.
Задачи:
1. Найти сумму всех элеметов массива. - С этим как то разобрался с помошю этого форума.
2. Найти нужный элемент в массиве. Вывести его индекс, если в массиве нет такого значение вывести 1.
Вроде бы надо действовать так:
- Создать массив;
- Запомнит элементы массива;
- устроит ввод элемента с консоли для проверки;
- использовать "if else" для вывода единички если элемент не находится в массиве, а если находится вывести индекс.
Вот я не знаю как сохранит в программе элементы массива. Только при вводе с консоли.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
       int main()
{
    setlocale (LC_ALL , "Russian");
    int A[5];
       
    for(int i = 1; i <= 4; i++)
    {  
    cout << "Введите значение" << i <<" эелемента массива:  ";
    while(!(cin >> A[i]))
        cout << "Не верный ввод" << endl;
}
                
       _getch ();
        return 0;
}

А вот сохранит в программе не как. Постоянно выдает ошибку.

Мне не нужен готовый код. Нужна правильное направление.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2014, 09:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Учусь программированию на языке с++ самостоятельно (C++):

сессия.Какой подход к программированию используется на языке С++ - C++
1.Какой подход к программированию используется на языке С++? Основные понятия, семантика, синтаксис 2.Для каких целей используются...

Учусь c ++ - C++
В общем читал статью в учебнике &quot;Умные опеpатоpы&quot;. Дальше идет такая пpогpаммка. #include &lt;iostream&gt; #include&lt;string&gt; Using...

Учусь умножать - C++
Здравствуйте, дорогие обитатели CyberForum :) Есть небольшая просьба, прошу подтолкнуть меня к правильному решению задачи. Изначально...

Какая книга по программированию обьясняет все с математикой и подробно излагает все темы?По программированию? - C++
Не Бьерн Страуструп?А то не нравится мне у Лафоре тип изложения книги,довольно не в мою логику там упирается,да и нравится перестал,уж...

Перегрузка операторов. Учусь. Ошибка - C++
перегрузка операторов.. ЗАДАНИЕ: М2=М1-V – из М1 удалить строки, сумма элементов которых больше суммы элементов V. где V- массив,...

учусь разбирать чужой код - C++
что делает эта функция? static unsigned long foo (char *w) { int c; unsigned long u = 0; while (*w != 0) { if...

160
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
13.04.2014, 21:33  [ТС] #121
DrOffset, Скачал книгу. Полистал не много. Для начало не плохо. Только от один вопрос. Из видеоуроков мне известно что cout отвечает за вывод информации в консоль. На книге это сделано другим путем. С помошю команды void. (выпуск 2001. Скачал и выпуск 2007)
Мне хотелось бы знать. В чем разница. И не первый раз замечаю что в книгах в место using ...::std; перед каждым словом напоминают программе что используется облака имен std. С какой целью?

Добавлено через 5 минут
Думаю это с целю помочь запомнит читателю, какое слово к какой облаке относится.
0
DrOffset
7351 / 4451 / 1009
Регистрация: 30.01.2014
Сообщений: 7,293
14.04.2014, 00:16 #122
Цитата Сообщение от Altair42 Посмотреть сообщение
перед каждым словом напоминают программе что используется облака имен std. С какой целью?
Хороший стиль прививают. Глобальное включение using namespace может приводить к конфликтам имен.

Цитата Сообщение от Altair42 Посмотреть сообщение
С помошю команды void.
Хм. Что-то не то. Страница какая?
0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
14.04.2014, 03:02  [ТС] #123
Цитата Сообщение от DrOffset Посмотреть сообщение
Хороший стиль прививают. Глобальное включение using namespace может приводить к конфликтам имен.
Вот смотрите. На видеоуроках показали что надо только 1 раз добавит каждый объект ( или как их там)ю Но тут добавляется не 1 раз а каждый раз при вводе.

Типа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include < iostream>
int main()
{
int a
.........
std::cout << "Введите одно число...." << std::endl;
 
std::cin >> a;
std::cout << "..........." << std::endl;
...........
return 0;
}
void в выпуске 2001-го года. Но на выпуске 2007-го года уже нет. Там где то на 1 главе после истории и куча того что не стал читать ( стр 30 +-). Просто листал книгу смотреть есть ли такой же код.
То же самое в книгах других авторов.
Код работает норм.

Добавлено через 17 минут
И еще я не заметил чтоб в с++ был оператор goto есть ли такое или аналог? Очень хороший оператор. Заметил только в 1 книге. Но книга была довольно старая (использовали <iostream.h> в место <iostream>. VC++2010 не знает что такое <iostream.h>
0
0x10
2474 / 1647 / 247
Регистрация: 24.11.2012
Сообщений: 4,068
14.04.2014, 06:32 #124
Цитата Сообщение от Altair42 Посмотреть сообщение
Из видеоуроков мне известно что cout отвечает за вывод информации в консоль. На книге это сделано другим путем. С помошю команды void
В таких случаях было бы неплохо привести автора книги, полное название, номер издания, издательство, номер страницы и номер строки, где встречается такая странность. И цитату привести.
А вообще - чем вызвано желание читать такие старые книги?

Цитата Сообщение от Altair42 Посмотреть сообщение
На видеоуроках показали что надо только 1 раз добавит каждый объект ( или как их там)ю Но тут добавляется не 1 раз а каждый раз при вводе.
Уже объяснили почему.
В реальных проектах как правило запрещено использовать using namespace. Добавление отдельных объектов директивой using... Получше, но все равно не очень. На каждый чих писать новую строчку. Если имя пространства имен слишком длинное для постоянного набора, лучше навесить алиас.
Еще тут можно почитать: http://google-styleguide.googlecode....ces#Namespaces

Цитата Сообщение от Altair42 Посмотреть сообщение
И еще я не заметил чтоб в с++ был оператор goto есть ли такое или аналог?
Считай, что такого оператора не существует.
1
DrOffset
7351 / 4451 / 1009
Регистрация: 30.01.2014
Сообщений: 7,293
14.04.2014, 08:38 #125
Цитата Сообщение от Altair42 Посмотреть сообщение
void в выпуске 2001-го года.
Слишком старая книжка, чтобы ее вообще нужно было рассматривать. Смотри новые издания.
Цитата Сообщение от 0x10 Посмотреть сообщение
И еще я не заметил чтоб в с++ был оператор goto есть ли такое или аналог?
Есть, и в книге той должен быть. Но там же должно быть объяснение почему его не стоит использовать. По крайней мере в начале обучения.
Цитата Сообщение от Altair42 Посмотреть сообщение
На видеоуроках показали что надо только 1 раз добавит каждый объект ( или как их там)ю Но тут добавляется не 1 раз а каждый раз при вводе.
На видеоуроках завуалировали проблему, не знаю почему, для простоты объяснений наверное. Вообще, using namespace можно использовать, но локально, например так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include < iostream>
int main()
{
    using namespace std;
    int a
.........
    cout << "Введите одно число...." << endl;
 
    cin >> a;
    cout << "..........." << endl;
...........
    return 0;
}
Однако это все равно не спасет, если так включаются два или больше пространств имен, где существут одинаковые имена. Отсюда рекомендация, указывать пространство имен непосредственно перед именем.В целом это хорошо, хоть и писать нужно больше, т.к. код становится менее подвержен случайным ошибкам. Но еще, конечно, нужно учитывать, что эти рекомендации нужны в первую очередь для реальных проектов, где кода бывает очень много.
0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
14.04.2014, 09:35  [ТС] #126
Цитата Сообщение от DrOffset Посмотреть сообщение
Слишком старая книжка, чтобы ее вообще нужно было рассматривать. Смотри новые издания.
Как бы таке видел и в изданиях 2006.

Цитата Сообщение от DrOffset Посмотреть сообщение
На видеоуроках завуалировали проблему, не знаю почему, для простоты объяснений наверное. Вообще, using namespace можно использовать, но локально, например так:
Код C++

#include < iostream>
int main()
{
using namespace std;
int a
.........
cout << "Введите одно число...." << endl;
cin >> a;
cout << "..........." << endl;
...........
return 0;
}
На видеоуроках объясняли так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include < iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
    using namespace std;
    int a
.........
    cout << "Введите одно число...." << endl;
 
    cin >> a;
    cout << "..........." << endl;
...........
    return 0;
}
0
DrOffset
7351 / 4451 / 1009
Регистрация: 30.01.2014
Сообщений: 7,293
14.04.2014, 09:52 #127
Цитата Сообщение от Altair42 Посмотреть сообщение
Как бы таке видел и в изданиях 2006.
Тогда давай точную цитату кода. Пока это выглядит странно.

Цитата Сообщение от Altair42 Посмотреть сообщение
На видеоуроках объясняли так:
Понятно. Для обучения или при написании кода для себя (т.е. в одно лицо) на самом деле нет особой разницы как делать. Просто мотивация писать std:: далеко небезосновательна, и знать про нее нужно. Но все-таки, даже в этом разделе бывают вопросы связанные с включением namespace, т.е. вероятность налететь на это есть даже у новичков.
0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
14.04.2014, 10:16  [ТС] #128
Установил QTCreator нужны инструкции к нему. Пишу код на с++ не мог компилировать.

Учусь программированию на языке с++ самостоятельно

Нажимаю ф5 - ноль реакции, пережожу Debug - > Start debugging - > далше функция не доступна. Если дело в компиляторе то установлен g++
0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
14.04.2014, 10:27  [ТС] #129
DrOffset, вот код с книги. изданий 2006 удалил уже но код почти идентичен. К стати нормально работает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
include <iostream>
using namespace std;
void readIn() { cout << "readIn()\n"; }
void sort() { cout << "sort()\n"; }
void compact() { cout << "compact()\n"; }
void print() { cout << "print ()\n"; }
int main()
{
readIn();
sort();
compact();
print();
return 0;
}
Добавлено через 4 минуты
DrOffset, получаеться в с++ к именам надо каждый раз обращаться "официально"?
0
DrOffset
7351 / 4451 / 1009
Регистрация: 30.01.2014
Сообщений: 7,293
14.04.2014, 10:53 #130
Цитата Сообщение от Altair42 Посмотреть сообщение
DrOffset, вот код с книги. изданий 2006 удалил уже но код почти идентичен. К стати нормально работает.
Так тут нет никакого оператора void. Тут создали четыре функции (void означает, что функция не возвращает значений), а внутри у них все тот же std::cout. Этот пример иллюстрирует скорее не вывод, а вызов этих функций. А cout внутри используется для визуализации этого вызова на конcоль.

Цитата Сообщение от Altair42 Посмотреть сообщение
получаеться в с++ к именам надо каждый раз обращаться "официально"?
Лично я всегда так и делаю. Уже на автомате и даже не замечаю.

Добавлено через 6 минут
Цитата Сообщение от Altair42 Посмотреть сообщение
Нажимаю ф5
Сперва нужно проект создать. Что-то вроде "консольное приложение без Qt" (точно не помню уже формулировку, но думаю разберешься).
0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
14.04.2014, 17:23  [ТС] #131
Цитата Сообщение от DrOffset Посмотреть сообщение
Сперва нужно проект создать. Что-то вроде "консольное приложение без Qt" (точно не помню уже формулировку, но думаю разберешься).
В принципе код программы можно написать в блокноте потом откомплировать с помошью любого доступного средства. А программы типа VC++ сами вызывают компилиятор.

Я точно не могу сказать как должно быт в линуксе. Я сперва установил g++ это по сути компилиятор c++ потом установил Qt. А с книги узнал что програму можно откомпилировать прямо в терминале (илинукс). Надо просто задействовать комплиятор и указать путь к файлу.

У мея в линуксе проблема с компилиятором не только в с++. Установил Эклипс (для явы) откопал в интернете код для калулятора и инструкции как делать калкулятор в Эклипсе ( чтоб понят как программа работает ). Сделал все по инструкциям но Эклипс не мог найти основную часть кода. А прикол в том что та же программа показывает ту же часть кода как асновной ( зеленый значок с надписью Мейн.

Добавлено через 12 минут
Я читал что для Линукса нет вирусов но я отхватил один. Мышка тыкает куда попало. В преждном сообщение мышка начал тупит как обычно. Через не сколько секунд мне пришлось вырезать из сообщение - "Сперва нужно проект создать. Что-то вроде "консольное приложение без Qt" (точно не помню уже формулировку, но думаю разберешься)." в 3 местах. Обычным глюк мышки не может встаит сообшение несколько раз. В данный момент работает ESET NOD32 (Linux) но не чего не видит.
0
DrOffset
7351 / 4451 / 1009
Регистрация: 30.01.2014
Сообщений: 7,293
14.04.2014, 18:24 #132
Цитата Сообщение от Altair42 Посмотреть сообщение
Я читал что для Линукса нет вирусов но я отхватил один.
Похоже на глюк иксов, а не на вирус... Что за дистрибутив?
Цитата Сообщение от Altair42 Посмотреть сообщение
В принципе код программы можно написать в блокноте потом откомплировать с помошью любого доступного средства.
Да.
В общем Qt Creator хорошая среда, но я бы рекомендовал начать с чего-то вроде Code::Blocks, мне кажется с ней проще будет.
0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
14.04.2014, 18:29  [ТС] #133
Цитата Сообщение от DrOffset Посмотреть сообщение
Похоже на глюк иксов, а не на вирус... Что за дистрибутив?
Ubuntu Mint 16. И да в виндовс мышка реагируеть совсем на оборот. Тормозит и останавливаеться на совсем. Без перезагрузки не как.

Цитата Сообщение от DrOffset Посмотреть сообщение
В общем Qt Creator хорошая среда, но я бы рекомендовал начать с чего-то вроде Code::Blocks, мне кажется с ней проще будет.
В принципе меня не вольнует как проше. Главное чтоб работал. Могу и в терминале компилировать. Но то что программа не может компилировать код бесит.
0
DrOffset
7351 / 4451 / 1009
Регистрация: 30.01.2014
Сообщений: 7,293
14.04.2014, 19:56 #134
Цитата Сообщение от Altair42 Посмотреть сообщение
Но то что программа не может компилировать код
Да может. Просто проект нужно создать... Не просто файл, а проект, а в нем уже файл. Должно быть дерево файлов слева. Судя по скрину, у тебя там пусто, значит проект не создан, а просто файл открыт.
0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
14.04.2014, 20:01  [ТС] #135
Понят. Надо просто разобраться в программе. А как на счет Эклипса?
0
14.04.2014, 20:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2014, 20:01
Привет! Вот еще темы с ответами:

Массивы. Только учусь. Выборка и сортировка - C++
Задание такое. Язык: C Define использовать нельзя!!! С клавиатуры вводятся слова разделенные пробелами. На экран выводятся в...

Решит, вроде легко, но учусь на элементарных! Дайте экстра-класс - C++
Задана последовательность n. Найти количество элементов, кратных 3. Напишите на С++ пожалуйста, с комментариями!!! Если вас не...

GeoTiff - примеры ее использования на языке c , желательно на русском языке - C++
Добрый вечер. Дана курсовая с использованием библиотеки GeoTiff. Подскажите где можно прочитать про нее, и найти примеры ее использования...

Учусь визуальному программированию. Работа в Microsoft Visual C#2010 Express - C#
Для компонента Panel изменить: тип шрифта с помощью компонента TrackBar. При удержании мышки на бегунке должно появляться значение...


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

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

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