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

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

Войти
Регистрация
Восстановить пароль
 
Егорка47
7 / 6 / 1
Регистрация: 26.10.2010
Сообщений: 249
#1

это элементарно, но я н е понимаю) - C++

22.12.2010, 16:33. Просмотров 855. Ответов 11
Метки нет (Все метки)

ребят,уже целую неделю мне никто не может помочь даже с элементарными функциями!
мне надо до завтра разобраться с лабой!помогите пожалуйста,будьте добры!
вот функция:

C++
1
2
3
4
5
6
bool check_signs(char a,char *signs)
{ int i;
for (i=0;i<strlen(signs);i++){
        if(a==signs[i]) // сравниваем а с итым элементом строки "signs"? зачем?что это значит?
        return false;}
    return true;
что она делает??проверка знаков?каким образом,можете объяснить?)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2010, 16:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос это элементарно, но я н е понимаю) (C++):

Необходимо обойти ошибку в if на проверку месяцев. Не понимаю совершенно как это сделать - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;clocale&gt; #include &lt;Windows.h&gt; #include &lt;locale&gt; using...

Рекурсивная функция элементарно - C++
Помогите пожалуйста сделать след. выражение через рекурсивную функцию: Y=(X^n/2)^2 -&gt; Икс в степени n/2 в квадрате. После всего...

о функциях (элементарно, но я же нуб) - C++
Пишу в компилятор следующее: #include &lt;cstdlib&gt; #include &lt;iostream&gt; int Sum (int a, int b) { std::cout &lt;&lt; &quot;Type a&quot;; ...

знаю что элементарно, но я пока не очень в с++ разбираюсь( - C++
Даны два массива: А3х3 и В3. Определить минималь¬ные элементы в матрицах А и В (mА и mВ). Вычислить С=А*В*mА*mВ.

Элементарно. Но ошибку найти не могу. Вывод имени "Jim" на экран - C++
Напишите операторы, выводящие на экран имя Jim. #include &lt;iostream&gt; using namespace std; int main() { char charvar = 'Jim';...

как соединить b и с в число, если а это число, б это десятки перевернутого числа, с это единицы перевернутого числа вот в это строчке c=a+b,c; - C++
как соединить b и с в число, если а это число, б это десятки перевернутого числа, с это единицы перевернутого числа вот в это строчке...

11
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
22.12.2010, 16:44 #2
C++
1
2
3
4
5
6
7
8
9
bool check_signs(char a,char *signs) //функция, возвращающая булевое значение, 
//принимает в кач-ве параметров char a - символ а типа char, char *signs  - указатель на начало массива
{ int i;
for (i=0;i<strlen(signs);i++) //от 0 до конца массива signs
{
                if(a==signs[i]) // если полученный в кач-ве параметров символ а совпал с i-тым элементом массива signs
                return false;} //возвращаем false, выходим из функции
        return true; //возвращаем true, если прошел весь цикл от 0 до 
        //конца массива signs и символ а ни разу не встретился в массиве signs
2
Егорка47
7 / 6 / 1
Регистрация: 26.10.2010
Сообщений: 249
22.12.2010, 16:46  [ТС] #3
NNN777, спасибо тебе огромное,ты откликнулся на мои молитвы
можешь еще кое что подсказать: что значит булевое значение?
0
XuTPbIu_MuHTAu
Эксперт С++
2226 / 741 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
22.12.2010, 16:46 #4
если в строке signs есть символ a, возвращает false. В противном случае true.
0
Егорка47
7 / 6 / 1
Регистрация: 26.10.2010
Сообщений: 249
22.12.2010, 16:59  [ТС] #5
я понял,спасибо)
можете теперь подсказать разницу в этих 2 функциях?)


C++
1
2
3
4
5
6
7
8
int* arr (int count)
{int *p,i;
    p=(int*)malloc(count*sizeof(int));
    srand((unsigned)time(NULL));
    for(i=0;i<count;i++)
        p[i]=rand();
    return p;
}
и

C++
1
2
3
4
5
void  arr2 (int count,int **p) // <---
{int i;
    *p=(int*)malloc(count*sizeof(int));
    for(i=0;i<count;i++)
        (*p)[i]=rand();}
это две функции которые заполняют массив псевдослучайными числами)
почему во второй мы используем указатель на указатель**р?почему нельзя просто указатель *р??
и можете так же прокомментировать 2 функцию)
0
XuTPbIu_MuHTAu
Эксперт С++
2226 / 741 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
22.12.2010, 17:06 #6
Егорка47, первая функция возвращает указатель,вторая модифицирует существующий.
вызов первой выглядит так

int * p = arr(10);

второй - так

int *p;
arr(10,&p);
0
Егорка47
7 / 6 / 1
Регистрация: 26.10.2010
Сообщений: 249
22.12.2010, 17:22  [ТС] #7
длинный, я с первого раза понимаю)

Добавлено через 2 минуты
Цитата Сообщение от XuTPbIu_MuHTAu Посмотреть сообщение
Егорка47, первая функция возвращает указатель,вторая модифицирует существующий.
вызов первой выглядит так

int * p = arr(10);

второй - так

int *p;
arr(10,&p);
не совсем понятный ответ)для меня..

Добавлено через 1 минуту
точнее я понял про вызов. но я не понял почему 2 звездочки!)
0
Егорка47
7 / 6 / 1
Регистрация: 26.10.2010
Сообщений: 249
22.12.2010, 18:26  [ТС] #8
что не правильно?вы написали тоже самое что и NNN777!
то есть скопировали его комментарии и вставили в свой ответ)
или я не заметил какую то разницу?!
0
Егорка47
7 / 6 / 1
Регистрация: 26.10.2010
Сообщений: 249
22.12.2010, 20:05  [ТС] #9
так что,кто нибудь может объяснить почему мы пишем **р???

C#
1
2
3
4
5
6
7
int* arr (int count)
{int *p,i;
 p=(int*)malloc(count*sizeof(int));// <<-----
 srand((unsigned)time(NULL));
 for(i=0;i<count;i++)
 p[i]=rand();
 return p;
что значит эта строка?? srand((unsigned)time(NULL));????
0
j245
0 / 0 / 0
Регистрация: 17.11.2010
Сообщений: 36
22.12.2010, 20:52 #10
длинный,

ты идиот?

Добавлено через 59 секунд
Егорка47,

srand((unsigned)time(NULL)) это рандомайзер же
0
XuTPbIu_MuHTAu
Эксперт С++
2226 / 741 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
22.12.2010, 20:54 #11
Егорка47, На переменную типа int* - указатель на int - можно тоже объявить указатель. Тип его будет "Указатель на указатель на int" или int**.

Здесь,в функцию передается адрес указателя, и по этому адресу записывается адрес начала массива,который получается вызовом malloc
0
Егорка47
7 / 6 / 1
Регистрация: 26.10.2010
Сообщений: 249
22.12.2010, 21:03  [ТС] #12
я это понимаю!)
вот у меня препод спрашивает почему тут стоит указатель на указатель а не просто указатель на р?
что мне отвечать?

i
C++
1
2
3
4
5
6
7
nt* arr (int count)
{int *p,i;
    p=(int*)malloc(count*sizeof(int));
    srand((unsigned)time(NULL));
    for(i=0;i<count;i++)
        p[i]=rand();
    return p;
}

void arr2 (int count,int **p)
{int i;
*p=(int*)malloc(count*sizeof(int));
for(i=0;i<count;i++)
(*p)[i]=rand();}

и в чем разница этих функций?
0
22.12.2010, 21:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2010, 21:03
Привет! Вот еще темы с ответами:

Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить? - C++
Вот еще один вопрос зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может...

Факториал! Для кого-то это легко, а кто-то вообще это не знает! - C++
Написать определение функции факториал которая возвращает факториал от полученного в качестве аргумента числа. Реализовать на С++ и...

this это адресс объекта, а *this это сам объект. я всё правельно понял? - C++
this это адресс объекта, а *this это сам объект. я всё правельно понял?

Связанный список. Как это делается и зачем это нужно? - C++
Добрый день. Уже который день не могу понять эту тему. Гуглил, но понятнее от этого не стало. Кто-нибудь знает где найти понятный мануал?


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

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

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