Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Совсем запутался с функциями и масивами! Разъясните пожалуйсто... 
V
    Опции темы
Jakeroid
  Дата 21.3.2009, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 15.3.2009

Репутация: нет
Всего: нет



Вот начал учить С++, читаю книгу Д. Стефана "С++ для чайников". Местами очень не понятно.
Вот например как комплятор понимает что int sumSequense функция а допустим int valueArrow - масив? Ведь названия не имеет значения, мог бы назвать их наоборот, так же? Комплятор судит по параметрам(которые в скобках)?

И еще, пытаюсь написать прогу которая будет решать квадратные увравнения.
Вот что накалякал:
Код

#include <stdio.h>
#include <iostream.h>
int main(int arg, char* pszArgs[])
{
    float fA;
    float fB;
    float fC;
    float fD;
    float fX1;
    float fX2;
    cout << "Enter A:\n";
    cin >> fA;
    cout << "Enter B:\n";
    cin >> fB;
    cout << "Enter C:\n";
    cin >> fC;
    fD= 4 * fA * fC - fB * fB;
    if ( fD < 0)
        {
        cout << "Error";
        return 0;
        }
        
        if (fD = 0)
        {
               fX1 = (- fB) / 2 * fA;
               cout << "X=";
               cout << fX1;
               return 0;
               }
        if (fD > 0)
        {               
             fX1 = ((- fB) - fD) / 2 * fA;
             fX2 = ((- fB) + fD) / 2 * fA;
             cout << "X1=";
             cout << fX1;
             cout << "X2=";
             cout << fX2;
               return 0;
             }         
         
         system("\n pause");
        return 0;        
        }



НО есть проблемка: В окно не выводяться fX1 и fX2 прога просто переходит к паузе и все, как исправить?



И еще вопрос, не понял вообще зачем нужен оператор ретурн. В книге написано что он возвращает значения. Куда возвращает? Какой значение? Можно ли указать ему например return fX1?

Это сообщение отредактировал(а) Jakeroid - 21.3.2009, 16:50
PM MAIL   Вверх
andrew_121
Дата 21.3.2009, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(Jakeroid @  21.3.2009,  16:49 Найти цитируемый пост)
как комплятор понимает что int sumSequense функция

Как минимум из-за того что при декларации присутствуют символы () smile 

Цитата(Jakeroid @  21.3.2009,  16:49 Найти цитируемый пост)
а допустим int valueArrow - масив?

Ну valueArrow массивом быть не может. Это просто переменная.

Чтение друг мой...чтение...


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Jakeroid
Дата 21.3.2009, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 15.3.2009

Репутация: нет
Всего: нет



А если так
int ValueArrow[50];
Тогда массив?
PM MAIL   Вверх
Dmi3ev
Дата 21.3.2009, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



Цитата

Вот например как комплятор понимает что int sumSequense функция а допустим int valueArrow - масив?

 smile 
ну ты же по разному пишешь
Код

int a[5];//массив
int a(const int b=5);//функция

для примера...
Цитата

И еще вопрос, не понял вообще зачем нужен оператор ретурн.

 smile 
функция, в данном случае int main(int arg, char* pszArgs[])
возвращает значение int (тип указыватеся перед названием функции), при этом она завершается...
вот ты и пишешь 
return 0;
те вернуть ноль... функция сделала свое дело, вернула целое значение, ей больше не зачем продолжаться как бы...
Цитата

НО есть проблемка: В окно не выводяться fX1 и fX2 прога просто переходит к паузе и все, как исправить?

если прога переходит к паузе значит условие
Цитата

if (fD > 0)

не выполняется, потому как если оно выполнится, то прога не перейдет к этой строке
Цитата

 system("\n pause");

она закончит свою работу после
Код

        if (fD > 0)
        {               
             fX1 = ((- fB) - fD) / 2 * fA;
             fX2 = ((- fB) + fD) / 2 * fA;
             cout << "X1=";
             cout << fX1;
             cout << "X2=";
             cout << fX2;
               return 0;//здесь прога должна завершиться, если условие выполнится...
             }   

поэтому думай, что в твоем алгоритме не так...

Добавлено через 7 минут и 48 секунд
Цитата

if (fD = 0)

ты ваще в курсе что ты написал тут?
если ты сравниваешь с нулем то
Код

if (fD == 0)


Добавлено через 9 минут и 59 секунд
Цитата

fD= 4 * fA * fC - fB * fB;

а это ты чего считаешь, если дискриминант, то у него формула
D=b^2-4ac)))

Добавлено через 13 минут и 21 секунду
Цитата

             fX1 = ((- fB) - fD) / 2 * fA;
             fX2 = ((- fB) + fD) / 2 * fA;

а это что???
 smile 
вот так
Код

             fX1 = ((- fB) - fD) / (2 * fA);
             fX2 = ((- fB) + fD) / (2 * fA);

при чем ты вычитаешь (и прибавляешь) fD, а надо корень из него...
 smile 
может стоит сначала открыть учебник седьмого класса, а потом уж начинать писать программы...


--------------------

PM MAIL   Вверх
Jakeroid
Дата 21.3.2009, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 15.3.2009

Репутация: нет
Всего: нет



Цитата

функция, в данном случае int main(int arg, char* pszArgs[])
возвращает значение int (тип указыватеся перед названием функции), при этом она завершается...
вот ты и пишешь 
return 0;
те вернуть ноль... функция сделала свое дело, вернула целое значение, ей больше не зачем продолжаться как бы...


Вот в книге написано: "int main(int arg, char* pszArgs[])", а что означают параметры int arg - это вызов переменной arg? А char* pszArgs[] вообще не имею понятие что это такое!

Вы извените за глупые вопросы, но мне мало знать, я хочу еще и понимать!
PM MAIL   Вверх
Dmi3ev
Дата 21.3.2009, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



Цитата

а что означают параметры int arg - это вызов переменной arg? А char* pszArgs[] вообще не имею понятие что это такое!

а это параметры, тк это функция main, то ты можешь передавать эти параметры ваще из командной строки...
Цитата

Вы извените за глупые вопросы, но мне мало знать, я хочу еще и понимать! 

читай про функции  и про параметры, как их передавать... а тут еще и указатель задействован... 
короче работы у тебя много...
+ к этому надо почитать про квадратные уравнения...  smile

Добавлено через 2 минуты и 33 секунды
Цитата

Вот начал учить С++, читаю книгу Д. Стефана "С++ для чайников".

выкинь...  smile 

Это сообщение отредактировал(а) Dmi3ev - 21.3.2009, 17:20


--------------------

PM MAIL   Вверх
mes
Дата 21.3.2009, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Jakeroid @  21.3.2009,  16:17 Найти цитируемый пост)
Вы извените за глупые вопросы, но мне мало знать, я хочу еще и понимать! 



в общих чертах, если в декларации 
1. после имени стоят круглые скобки , то значит эта функция : int func(); // функция возвращающая int
2. после имени стоят квадратные скобки, то - массив : int array[23]; //массив из 23 int`oв
3. пeред именем стоит звезда, то значит это указатель  : int *ptr; // указатель на int
вышеприведенное можно комбинировать.

А для подробных знаний, нужен Вам не форум, а книжка, 
как говорится, чтение со вниманием  облегчает понимание smile


Это сообщение отредактировал(а) mes - 21.3.2009, 17:25


--------------------
PM MAIL WWW   Вверх
Jakeroid
Дата 21.3.2009, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 15.3.2009

Репутация: нет
Всего: нет



Цитата

+ к этому надо почитать про квадратные уравнения...  


Знаю я как их решать... Мои ошибки это лиш невнимательность, просто не подумал че написал. А как квадратный корень написать в коде хз...
PM MAIL   Вверх
Dmi3ev
Дата 21.3.2009, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



Цитата

А для подробных знаний, нужен Вам не форум, а книжка, 
как говорится, чтение со вниманием  облегчает понимание

+ учебник математики...

Цитата

А как квадратный корень написать в коде хз... 

Код

float a=4;
float b=sqrt(a);//корень


Это сообщение отредактировал(а) Dmi3ev - 21.3.2009, 17:28


--------------------

PM MAIL   Вверх
Jakeroid
Дата 21.3.2009, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 15.3.2009

Репутация: нет
Всего: нет



Цитата

А для подробных знаний, нужен Вам не форум, а книжка, 
как говорится, чтение со вниманием  облегчает понимание 


Можно на ты, я малый еще для "вы". Хорошо, посоветуй книжку в которой все понятно изложено... Книга это лиш набор символов, я не могу задать ей вопрос, в отличии от живого человека.
PM MAIL   Вверх
Dmi3ev
Дата 21.3.2009, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



Цитата

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

Ну с таким подходом, хз...  smile 
Не прочитал книжку (хотя бы одну), что написал не подумал...  smile 
Что тогда ты от нас хочешь?

Это сообщение отредактировал(а) Dmi3ev - 21.3.2009, 17:30


--------------------

PM MAIL   Вверх
Jakeroid
Дата 21.3.2009, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 15.3.2009

Репутация: нет
Всего: нет



Цитата

+ учебник математики...


Да ладно тебе, придрался. Я вообще вопрос задавал относительно кода. А не правильно ли я считаю D, да и вообще я начал писать прогу не для того что бы решать квадратные уровнения, а что бы учиться писать те самые проги. Контектс тут не важен, мне нужна была темы для опыта.

З.Ы. Стандартная ситуация, нуб в программировании пришел на форум где начинают к ниму придиратьсяsmile Хорошо хоть не забанили и не послали в гугл(В гугле можно многое найти, но гугл это лиш поисковая система).
PM MAIL   Вверх
Dmi3ev
Дата 21.3.2009, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



Просто сейчас мы разговариваем на разных языках...
Все что тебе скажут, будет тебе даже менее ясно, поскольку ты пока даже не в курсе, зачем return... а также не знаешь операторов основных... выучи основы и заходи...


--------------------

PM MAIL   Вверх
Jakeroid
Дата 21.3.2009, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 15.3.2009

Репутация: нет
Всего: нет



Цитата

Что тогда ты от нас хочешь?

Мои вопросы были изложены выше, вы на них ответили. Большое спасибо! От тебя лично(или сколько вас там, судя из слова "нас) я ничего не хочу. Так же я не обязывал тебя заходить в данную тему и отвечать на мои глупые вопросы.
PM MAIL   Вверх
mes
Дата 21.3.2009, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Jakeroid @  21.3.2009,  16:33 Найти цитируемый пост)
Стандартная ситуация, нуб в программировании пришел на форум где начинают к ниму придиратьсяsmile Хорошо хоть не забанили и не послали в гугл(В гугле можно многое найти, но гугл это лиш поисковая система). 

если бы было бы конкретно что то непонятно, тут бы, я уверен, нашлись бы люди, которые помогли бы прояснить неясности,
но пересказывать и обмусоливать то, что написано в книжках и разжеванно практически в каждой тематической книжке никому не охота,
тем более это напрасный труд - раз не прочитано в книжке, значит человеку лень, а значит и на форуме только мельком пробежится.
 smile 

Это сообщение отредактировал(а) mes - 21.3.2009, 17:38


--------------------
PM MAIL WWW   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0590 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.