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

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

Войти
Регистрация
Восстановить пароль
 
Matlabist
2 / 2 / 0
Регистрация: 28.11.2010
Сообщений: 102
#1

Три вопроса от чайника по С++ - C++

06.12.2010, 16:59. Просмотров 830. Ответов 10
Метки нет (Все метки)

Здравствуйте,
1. Как возможно присвоить один массив другому? Или придется перегружать7

2. Как конструкцию в Basic можно переделать в с++

PureBasic
1
2
3
4
5
Select Case s
 Case Is <= 0:  Ko = 1
 Case Is >= 1:  Ko = 0
 Case Else:  Ko = s
End Select
В си оператор выбора выглядит вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int caseSwitch = 1;
switch (caseSwitch)
{
    case 1: 
        Console.WriteLine("Case 1");
        break;
    case 2:
        Console.WriteLine("Case 2");
        break;
    default:
        Console.WriteLine("Default case");
        break;
}
А где можно поставить больше и меньше здесь?

3. Передаю в функцию массив посредством указателя на первый элемент.
Например
void func(float* ar)
{
}
Как теперь работать с этим массивом?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2010, 16:59     Три вопроса от чайника по С++
Посмотрите здесь:

Три задачи для чайника. - C++
Помогите пожалуйста решить пару задач. 1.Определить третью справа цифру натурального числа N 2.Определить три наибольших элемента...

У меня три вопроса - C++
Вопросы такие:1)Как на Visual C++ 2008 произвести переименование папки 2)Как сделать Restart но не своего а чужого приложения.3)Как...

Вопрос чайника - C++
Что означают эти значки (в с++!!!!) : 1) :: 2) -&gt; где они используються и зачем они нужны, скажите простым человеческим...

Вопрос чайника - C++
Когда я выполняю программу #include &lt;iostream&gt; using namespace std; int main() { cout &lt;&lt;&quot;C++&quot;&lt;&lt;endl; return 0; } она...

Книга для чайника - C++
Решил изучить язык программирования С++ я самый настоящий чайник в программирования и выбрал вот это книгу: Дейтел Х., Дейтел П. - Как...

кнопки с++ для чайника:) - C++
Сталкнулся с такой проблемкой.... нужно выполнить задание... Написати програму, яка циклічно запрошує ввести символ та виводить його код....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,911
06.12.2010, 18:01     Три вопроса от чайника по С++ #2
1. Простые массивы присваивать друг другу нельзя(только копировать поэлементно). Гораздо удобнее использовать valarray вместо обычного массива(ну, или vector, в зависимости от того, что вам нужно).
2. Через конструкцию if-else if-else
3. Работать с ar также, как с обычным массивом.
Matlabist
2 / 2 / 0
Регистрация: 28.11.2010
Сообщений: 102
08.12.2010, 18:24  [ТС]     Три вопроса от чайника по С++ #3
1. Если я передаю элемент массива по значению, в конце процедуры с массивом ничего не случится? Просто помню, что если передавать массивы по значению, то в конце процедуры С++ его удаляет. Например:
C++
1
2
3
4
5
6
7
int n=10;
float ar[n];
void func(float x) {
}
int main() {
func(ar[5]);
}
2. Можно ли достать информацию о том вернула ли функция значение или нет, т.е. прошла ли она через return? Или после return она выходит из функции?
Есть функция
C++
1
2
3
4
5
double y(double x) {
    if (x<=0) return 0;
    if (x>=1) return 1;
    if ((x>0)&&(x<1)) return x; 
}
warning C4715: y: значение возвращается не при всех путях выполнения
Почему студиа делает предупреждение?
3. Я пишу:
C++
1
2
int x=10;
cout << “x = ”, x;
Почему он пишет только «x ==» ?
4. Как перегрузить оператор = для массивов?
Black Fregat
1381 / 1011 / 222
Регистрация: 31.05.2009
Сообщений: 4,240
08.12.2010, 19:13     Три вопроса от чайника по С++ #4
Цитата Сообщение от Matlabist Посмотреть сообщение
Если я передаю элемент массива по значению, в конце процедуры с массивом ничего не случится?
Ничего. Передача по значению работает как присваивание - никакой обратной связи с переданным параметром внутри функции нет.

Цитата Сообщение от Matlabist Посмотреть сообщение
Просто помню, что если передавать массивы по значению, то в конце процедуры С++ его удаляет.
Обычные массивы в С/C++ вообще нельзя передавать по значению.

Цитата Сообщение от Matlabist Посмотреть сообщение
Или после return она выходит из функции?
После return она выходит из функции.

Цитата Сообщение от Matlabist Посмотреть сообщение
Почему студиа делает предупреждение?
Она ведь не обязана проверять, покрывают ли условия все возможные варианты. Формально последний оператор может пропустить поток управления на выход функции без возврата значения, что будет ошибкой. Студия ведь только предупреждает, а не фиксирует ошибку.

И почему бы не убрать последний if ? А если уж хочется видеть условие, то его ведь можно и в комментарии привести.
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,911
08.12.2010, 20:10     Три вопроса от чайника по С++ #5
3.
C++
1
std << "x = " << x;
4. Никак. Использовать valarray либо vector.
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,234
Завершенные тесты: 1
08.12.2010, 20:56     Три вопроса от чайника по С++ #6
Цитата Сообщение от Matlabist Посмотреть сообщение
1. Как возможно присвоить один массив другому?
C++
1
2
for(int i=0;i<n;i++)
y[i]=x[i];
Kastaneda
Форумчанин
Эксперт С++
4511 / 2853 / 227
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
08.12.2010, 21:13     Три вопроса от чайника по С++ #7
Цитата Сообщение от Matlabist Посмотреть сообщение
1. Как возможно присвоить один массив другому?
Если без велосипедов, то вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include<cstring>
using std::cout;
int main(){
  int mas1[10];
  int mas2[10];
  for(int i=0;i<10;i++){
    mas1[i]=i;
    cout<<mas1[i]<<std::endl;
   }
  memcpy(mas2,mas1,10*sizeof(int));
    cout<<std::endl<<std::endl;
  for(int i=0;i<10;i++)
    cout<<mas2[i]<<std::endl;   
}
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
08.12.2010, 22:08     Три вопроса от чайника по С++ #8
C++
1
memcpy(mas2,mas1,10*sizeof(int));
C++
1
memcpy(mas2, mas1, sizeof mas1);
PureBasic
1
2
3
4
5
SELECT CASE s
 CASE IS <= 0:  Ko = 1
 CASE IS >= 1:  Ko = 0
 CASE ELSE:  Ko = s
END SELECT
C
1
    int n = (s <= 0) ? 1 : (s >= 1) ? 0 : s;
C
1
2
3
4
5
6
    if (s <= 0)
        n = 1;
    else if (s >= 1)
        n = 0;
    else
        n = s;
Matlabist
2 / 2 / 0
Регистрация: 28.11.2010
Сообщений: 102
12.12.2010, 20:01  [ТС]     Три вопроса от чайника по С++ #9
Благодарю.

Чем отличается

C++
1
double[] Buffer1 = new double[1000];
от

C++
1
double Buffer1[1000];
?


Почему только у меня код

C++
1
double[] Buffer1 = new double[1000];
не работает?
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,189
Завершенные тесты: 1
12.12.2010, 21:05     Три вопроса от чайника по С++ #10
Цитата Сообщение от Black Fregat Посмотреть сообщение
Формально последний оператор может пропустить поток управления на выход функции без возврата значения
Да и не только формально, например, x может быть NaN.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2010, 17:20     Три вопроса от чайника по С++
Еще ссылки по теме:

Задачи для чайника - C++
Всем привет! Недавно начал изучать язык программирования C++, у меня есть Visual Studio 2012, начал уже программировать - знаю уже...

Найти три максимальных и три минимальных значения 10 случайных чисел - C++
помогите написать программку.

Даны три списка потребителей и три массива объёмов электроэнергии - C++
Даны три списка потребителей и три массива объёмов электроэнергии. Напечатать из каждого списка потребителей с минимальным(min) и...

Дано слово. Переставить первые три и последние три буквы - C++
Привет всем. Помогите пожалуйста кто может решить две задачи по C++. Сам пробовал решить_но безуспешно. 1.Дано слово. Переставить...


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

Или воспользуйтесь поиском по форуму:
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,911
13.12.2010, 17:20     Три вопроса от чайника по С++ #11
Цитата Сообщение от Matlabist Посмотреть сообщение
Чем отличается
C++
1
double[] Buffer1 = new double[1000];
от
C++
1
double Buffer1[1000];
?
В первом случае массив динамический, во втором статический(подробнее в книгах для начинающих). Только естесвенно не double[], а double*.
Почему только у меня код
C++
1
double[] Buffer1 = new double[1000];
не работает?
Это и не должно работать(см. выше).
Yandex
Объявления
13.12.2010, 17:20     Три вопроса от чайника по С++
Ответ Создать тему
Опции темы

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