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

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

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

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

06.12.2010, 16:59. Просмотров 838. Ответов 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)
{
}
Как теперь работать с этим массивом?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2010, 16:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Три вопроса от чайника по С++ (C++):

Три задачи для чайника. - 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++, у меня есть Visual Studio 2012, начал уже программировать - знаю уже...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
06.12.2010, 18:01 #2
1. Простые массивы присваивать друг другу нельзя(только копировать поэлементно). Гораздо удобнее использовать valarray вместо обычного массива(ну, или vector, в зависимости от того, что вам нужно).
2. Через конструкцию if-else if-else
3. Работать с ar также, как с обычным массивом.
0
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. Как перегрузить оператор = для массивов?
0
Black Fregat
1381 / 1011 / 222
Регистрация: 31.05.2009
Сообщений: 4,240
08.12.2010, 19:13 #4
Цитата Сообщение от Matlabist Посмотреть сообщение
Если я передаю элемент массива по значению, в конце процедуры с массивом ничего не случится?
Ничего. Передача по значению работает как присваивание - никакой обратной связи с переданным параметром внутри функции нет.

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

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

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

И почему бы не убрать последний if ? А если уж хочется видеть условие, то его ведь можно и в комментарии привести.
0
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
08.12.2010, 20:10 #5
3.
C++
1
std << "x = " << x;
4. Никак. Использовать valarray либо vector.
0
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,245
Завершенные тесты: 1
08.12.2010, 20:56 #6
Цитата Сообщение от Matlabist Посмотреть сообщение
1. Как возможно присвоить один массив другому?
C++
1
2
for(int i=0;i<n;i++)
y[i]=x[i];
0
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 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;   
}
0
accept
4822 / 3243 / 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;
0
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];
не работает?
0
Somebody
2789 / 1603 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
12.12.2010, 21:05 #10
Цитата Сообщение от Black Fregat Посмотреть сообщение
Формально последний оператор может пропустить поток управления на выход функции без возврата значения
Да и не только формально, например, x может быть NaN.
1
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
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];
не работает?
Это и не должно работать(см. выше).
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2010, 17:20
Привет! Вот еще темы с ответами:

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

Три ученика и три языка. Определить кто на каком программирует. - C++
Решите задачи на C++(в виде кода программы) 3.Три ученика (Коля, Петя и Сережа) умеют писать программы на трех языках программирования...

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.12.2010, 17:20
Ответ Создать тему
Опции темы

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