Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Помогите с C++


Рекомендуемые сообщения

Народ кто может объяснить понятнее и помочь разобраться?

Как определить переменную перед её использованием?Что делает оператор присвоения?

Значение переменной nNfactor (кстати уже вычесленное) умножаются на значение переменной nNcelsius(которое было введенно с клавиатуры).Результат делится на 100 и к нему прибавляется 32.Результат всего выражения приводится к целому типу и присваиваится переменной nFahrenheit.

nFahrenheit=nFactor * nCelsius /100+32

Теперь вопрос:Значение переменной nNfactor (кстати уже вычесленное).Как понять вычесленное?Где его вычисляли?nNcelsius(которое было введенно с клавиатуры).Всмыслебыло введенно с клавиатуры?Я никак понять не могу.Объясните плизз.

Понятие переменной Заимствованно из математики.Инструкция вида x = 1 сохраняет значение 1 в переменной x.После такого присвоения математики могут использовать переменную x вместо константы 1,пока не изменят значение x на другое.Здесь объясните подробнее плизз как понять сохраняет значение 1 в переменной x?И как понять после присвоения могут использовать переменню x вместо константы(что такое константа?)Пока не изменять значение x на другое.(здесь вообще ничего не понял объясните как менять значение x и зачем?)

В С++ переменные используются таким же образом.После присвоения х = 1 и до следующего изменения содержимого переменная х становится обозначением числа 1 в программе.При этом говорят что значение х есть 3.Что значить до следующего изменения содержимого,Как его менять?После присвоения(как присвоить?)Значение х есть 3.(Откуда 3 появилась?).

что за переменные ir.t и nValue(Value) ?

что такое Аргументы?Что за переменные Var?В выражениях типа var1 op var2 оператор op бинарный.Что за Op оператор?Или это в книге опечатка?И что значит бинарный??

!

Предупреждение:

Второе предупреждение.

Учись упорядочивать свои мысли, правильно формировать вопросы и искать ответы на элементарные вопросы в книге. Иначе будет премодерация и подобные вопросы просто не пройдут в печать.

Shurr.

Изменено пользователем Shurr
Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 169
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Изображения в теме

Nightwalker:

По-моему, тебе просто надо скачать какой-нибудь учебник по C или C++ для начинающих (топик Литература: C/C++) и прочитать начальные страницы.

Коротко: переменная - блок (кусок) памяти, которой в программе дано какое-то буквенно-цифровое обозначение, например, nFactor. Кроме того, переменной обычно приписывают тип, то есть указывают, какого типа данные будут храниться в этом блоке памяти. Зная тип переменной, компилятор может правильно преобразовывать данные из блока памяти при операциях над над его содержимым. Одно и то же число может представляться в памяти разными кодами - рассчитанными на представление только целых чисел или также чисел с дробной частью, с различной максимальной точностью и т.п. Поэтому в C переменные определяются (объявляются) перед их использованием. Например, строка программы

float nFactor;

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

Оператор - аналог предложения в естественном языке, часть программы, описывающая какое-то более или менее завершенное действие. В отличие от естественного языка, в C и C++ оператор заканчивается не точкой, а знаком ;

Присвоить переменной nFactor значение 1 - значит поместить в блок памяти, обозначаемый в тексте программы как nFactor, код, соответствующий (в принятом в данном компьютере способе кодирования чисел) числу 1. В C и C++ такое действие записывается как

nFactor = 1;

Заметь, что знак "равно" имеет в C немного другой смысл, чем в математике, это не соотношение, а действие.

Как менять значение? Ну, например, так:

nFactor = 3;

Теперь переменная nFactor изменила значение с прежней 1 на 3.

Вычисленное значение - такое, которое было получено вычислением компьютером по введенной формуле, а не задано прямо. Например,

nFactor = 6 / 2;

В ячейку памяти, обозначенную нами как nFactor, снова будет занесен код числа 3, только уже вычисленный компьютером.

Зачем менять значение в том же блоке памяти? Если старое значение больше не нужно, полезно использовать тот же блок памяти для хранения других данных, чтобы уменьшить расход памяти.

"Уже вычисленное" - значит у тебя, что когда-то в одной из предыдущих строк программы мы уже вычислили и занесли значение в эту переменную (то есть в блок памяти с этим обозначением).

Константа - число ( в простейшем случае). Например, у нас 6 и 2 - константы. А можно было написать

A1 = 6; A2 = 2; nFactor = A1 / A2;

Тогда бы у нас для вычисления значения nFactor использовались две переменные, а не константы.

Дальше объяснять не буду, а то получится учебник. Замечу только, что в твоей книжке слово "оператор" используют (не совсем правильно) и для обозначения операций, то есть, например, по твоей книге +, -, /, * - примеры обозначений бинарных операторов (на самом деле - операций). Бинарный означает "использующий два данных". А, например, изменение знака (например, в операторе A3 = - nFactor) - унарная операция (по твоей книге - также и унарный оператор). А обозначения Op и Var у тебя в книге используются как обозначения "какого-нибудь" оператора или переменной. Например, Op может быть в конкретных командах +, -, /, * и т.д.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

А какую ти книгу можешь посоветовать начать изучать в которой все расжованно подробнно?

p.s что за переменная nFactor?ir.t и nValue(Value)

Ссылка на комментарий
Поделиться на другие сайты

Книг по си есть очень много советовать бесмысленно. Азы объяснены во всех книгах для начинающих (на них обычно НЕ пишут для хакеров, опытных программеров и т.п.). Посторайся найти книгу в которой указаны коды ошибок и перечисленны все функции. Это обычно выносится в приложение, которые в конце книги.

А ежлив надо совсем азы то для начала можно воспользоваться электронными книгами. Некоторые книги по си.

Ссылка на комментарий
Поделиться на другие сайты

Nightwalker:

что за переменная nFactor?ir.t и nValue(Value)
Что касается переменной nFactor, это имя пробегало на форуме в примере из какого-то популярного учебника в топике C++ ?, там есть более подробное объяснение.

Относительно других переменных - откуда мне знать? Во-первых, я не вижу программу. Во-вторых, какого ответа ты ожидаешь? Кто-то дал в своей программе переменным эти имена, а мог дать любые другие. Имена дает программист, какие ему нравятся.

Ссылка на комментарий
Поделиться на другие сайты

А можешь обяснить что значит у бинарних операторов приоретет?И что значит слово унарний и интерграл?

Ссылка на комментарий
Поделиться на другие сайты

Nightwalker:

Унарный

Унарный значит одинарный (уно - один на латинском языке). Унарные операции - те, которым нужно для работы только одно данное (как говорят, один операнд). Например, возведение в квадрат, извлечение квадратного корня, изменение знака, синус, десятичный логарифм. Бинарные используют два операнда, примеры уже приводил. Тернарные - три, например, в C есть тернарная операция "если.. то.. иначе..", записываемая как .. ? .. : .., например, оператор

B = A > 5 ? 2 : 3;

присвоит B значение 2, если A > 5, и 3, если A не больше 5.

Приоритет

Каждая операция имеет свой приоритет, то есть "уровень срочности выполнения". Он определяет, какие операции в выражении делаются сначала, а какие - потом. Операции с бОльшим приоритетом в выражении (формуле) выполняются первыми, а с меньшим - потом. (Как там у Стругацких? "Я вне очереди!" - "Так это и есть очередь внеочередников..."). Например, операции умножения и деления имеют приоритет выше, чем операции сложения и вычитания. Поэтому в выражении 5+3*2 сначала будет выполнено умножение 3*2, а потом уже сложение. Если надо изменить соответствующий приоритетам операций порядок выполнения операций в выражении, используют скобки.

Интерграл

Что такое интерграл, я не знаю, и скорее всего, не знает никто. Вероятно, ты имел в виду интеграл. Это такая функция из высшей математики. Высшая математика на уровне изучения в институте отличается от элементарной в основном тем, что в ней изучаются еще пара действий дополнительно к парам сложение-вычитание и умножение-деление. Это действия дифференцирование и интегрирование. Говоря попросту, интеграл - это площадь фигуры, заданной какой-то формулой. Как умножение можно свести к сложению, интегрирование можно свести к умножению и сложению.

Ссылка на комментарий
Поделиться на другие сайты

Народ объясните плизз как понимать что логические операторы могут возвращать значения:true(истина) и false (ложь)Как понимать истина и ложь?

Да и напишите плизз понятнее значения логических операторов.

== равенство;истиннобкогда значение левого аргумента совпадает со значением правого.

!= Неравенство;противоположно равенству

>=,<= больше или равно,меньше или равно;истинно,если истинной является > или ==(соответственно < или ==)

&& И;истиннобесли аргументы и слева и справа являются истиной

|| ИЛИ;истинно,если или левый или правый аргумент являются истинной

! НЕ;истинно,если его аргумент принимает ложное значение.

P.s Что такое аргументы и операнда?

Ссылка на комментарий
Поделиться на другие сайты

Nightwalker:

Как понимать истина и ложь?
"Возьмем это странное слово "опять", зачем мы его произносим,

Когда мы свободно могли бы сказать о-шесть, и о-семь, и о-восемь?.."

(Винни-Пух)

"Истина" (true) и "Ложь" (false) - просто названия чисел булевской алгебры, иначе называемой алгеброй логики.

В булевской алгебре используются всего два числа, число с условным обозначением "Истина" - показывающее, что какое-то высказывание верно, и число с условным обозначением "Ложь" - показывающее, что высказывание неверно. А правила операций в ней построены так, чтобы соответствовали правилам обычной логики. Например, ложь и истина вместе все же остаются ложью. Соответственно "Ложь" && "Истина" тоже даст значение "Ложь". Операция && называется также операцией "И" (не путать с Операцией "Ы"! :sm(100): ), операцией AND, логическим умножением или конъюнкцией. Вместо названий булевских чисел "Истина" и "Ложь" часто также применяются названия "логическая 1" и "логический 0".

В языке C считается, что код ячейки с "логической 1" совпадает с кодом числа 1, а код "логического 0" - с кодом числа 0, и обозначения true и false не используются, вместо них пишут просто 1 и 0. А в C++ сейчас считается, что как именно представляются логическая 1 и логический 0 в компьютере - дело конкретного компилятора, и логическая 1 может не соответствовать числу 1, а вместо логической 1 и логического 0 пишут не 1 и 0, а true и false.

Есть много операций, выдающих как результат одно из этих логических чисел. Например, операция == вырабатывает значение логическая 1 (или, называя по-другому, "Истина"), если оба операнда равны друг другу (ну, к примеру, 3==6/2). Аналогично и другие логические операции вырабатывают в качестве результата логическую 1 или логический 0, например, 5<2 выдаст логическое число "Ложь".

Операнды - это то, к чему применяется операция. В предыдущих примерах операндами служат обычные числа, только значения, выдаваемые операциями - логические числа.

Кстати, булевская алгебра используется не только в языке C. Даже у нас на форуме при запросе на поиск ты можешь соединять искомые слова логическими операциями, например, запрос - слон AND мышь - найдет тебе все сообщения, в которых встречаются и слово "слон", и слово "мышь".

Аргумент - то же, что и операнд, но в другой форме записи, когда для описания действий с данными применяются не операции, а функции. Операции и функции делают одно и то же, но отличаются оформлением, формой записи. Например, вычисление суммы можно задать в виде функции Sum(5,3), где Sum - обозначение функции, делающей то же, что и операция +, то есть складывающей свои аргументы, в данном случае 5 и 3. Аргументы - имена переменных или выражения - помещаются в скобках за именем функции и разделяются запятыми.

Если тебе все это кажется сложным, то лучше начни с более простого языка, например, с Pascal.

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

Кстати, есть еще понятия формального аргумента - в описании функции, например, Sum(A,B) - тут функция имеет два формальных аргумента A и B, и фактического аргумента, то есть подставляемого вместо формального при использовании функции, например, в Sum(2,6+4) используются два фактических аргумента 2 и 6+4.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Nightwalker:

А пример можете кинуть??
А разве их нет в учебниках? Спрашивай то, чего в учебниках нет или непонятно...

Логика часто используется, ведь программирование - это объяснение компьютеру, как бы ты решал эту задачу сам. Особенно если проверяешь какие-то условия - попала ли точка в заданную область, съест ли кошка мышку, поражен ли корабль в "Морском бое" и т.п.

А так, чтобы не пришлось долго объяснять, что именно нужно проверить... ну, например, проверка того, что год с номером y високосный:

int y; cin >> y; if (y % 400 == 0 || y % 4 == 0 && y % 100 != 0) cout << "This year is leap!" << endl;

Тут в операторе if стоит логическое выражение, проверяющее, что год високосный.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

Nightwalker:

Совсем просто (программистам меня не бить за сглаживание углов :g: ):

Переменная - это обозначение для какого-то данного: числа, буквы, строки.

Оператор - часть программы, заканчивающаяся точкой с запятой (в C, C++, Pascal, но в других языках бывают другие знаки).

Например,

Mjau1=5;

это оператор, в котором переменной Mjau1 присваивается значение 5, то есть в дальнейшем вместо числа 5 можно использовать обозначение Mjau1.

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

Пример на C++:

int Mjau1, Mjau2; // объявляем, что в программе будут использоваться две переменные Mjau1 и Mjau2 для обозначения каких нибудь двух целых чисел cin >> Mjau1; // программа ждет ввода числа с клавиатуры и, когда его введут, называет это число Mjau1 Mjau2 = Mjau1 + 1; // программа прибавляет к числу, обозначающемуся Mjau1, единицу и называет получившееся число Mjau2 cout << Mjau2; // программа выводит получившееся число на экран

P.S. Названия переменных мне подсказала крутившаяся рядом кошка ;) .

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

Подскажите пожалуйста, как сделать, чтобы объект cout мог выводить кирилицу ?

cout << "Введите значение" << "\n";

Не удобно писать транслитом

Vvedite znachenie

:)

Ссылка на комментарий
Поделиться на другие сайты

Народ кто может объяснить понятнее и помочь разобраться?

Как определить переменную перед её использованием?Что делает оператор присвоения?

Значение переменной nNfactor (кстати уже вычесленное) умножаются на значение переменной nNcelsius(которое было введенно с клавиатуры).Результат делится на 100 и к нему прибавляется 32.Результат всего выражения приводится к целому типу и присваиваится переменной nFahrenheit.

nFahrenheit=nFactor * nCelsius /100+32

Теперь вопрос:Значение переменной nNfactor (кстати уже вычесленное).Как понять вычесленное?Где его вычисляли?nNcelsius(которое было введенно с клавиатуры).Всмыслебыло введенно с клавиатуры?Я никак понять не могу.Объясните плизз.

Понятие переменной Заимствованно из математики.Инструкция вида x = 1 сохраняет значение 1 в переменной x.После такого присвоения математики могут использовать переменную x вместо константы 1,пока не изменят значение x на другое.Здесь объясните подробнее плизз как понять сохраняет значение 1 в переменной x?И как понять после присвоения могут использовать переменню x вместо константы(что такое константа?)Пока не изменять значение x на другое.(здесь вообще ничего не понял объясните как менять значение x и зачем?)

В С++ переменные используются таким же образом.После присвоения х = 1 и до следующего изменения содержимого переменная х становится обозначением числа 1 в программе.При этом говорят что значение х есть 3.Что значить до следующего изменения содержимого,Как его менять?После присвоения(как присвоить?)Значение х есть 3.(Откуда 3 появилась?).

что за переменные ir.t и nValue(Value) ?

что такое Аргументы?Что за переменные Var?В выражениях типа var1 op var2 оператор op бинарный.Что за Op оператор?Или это в книге опечатка?И что значит бинарный??

Я тоже новичёк в этом деле , использую литературу "С++ для чайников" Стефана Р. Девиса книга мне пока достаточно легко даётся,

пример програмки о которой ты пишешь есть и в его книге в самом начале с первых страниц , после прочтения которых у меня подобных вопросов

невозникало , лишь по тому что перерыл приличное количество книг начиная с Таненбаума " Архитектура компьютера".

В голове была настоящяя каша да ещё и книги разные бывают , для когото понятны а для когото несовсем.

И вот как только взялся за вышеназванную книгу всё стало более мение понятно.

У большенства самоучек есть враг по имени "лень", с которым не просто боротся тут главное стремление.

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

Удачи.

:(

Ссылка на комментарий
Поделиться на другие сайты

#include <windows.h>#include <iostream>//описваем ф-циюchar* Rus(const char* text);//ф-ция mainvoid main(){  cout<<Rus("Тест")<<endl;}char bufRus[256];char* Rus(const char* text){  CharToOem(text, bufRus);  return bufRus;}

Вот нашел пример кода, на приминение русских символов в консоли. Но не совсем понял, как это получается...

Расшифруйте пожалуйста, кто знает.

Ссылка на комментарий
Поделиться на другие сайты

Можете объяснить, что означают след строки и как они получились ?

char* Rus(const char* text);

..........

char bufRus[256];

char* Rus(const char* text)

{

CharToOem(text, bufRus);

return bufRus;

}

Ссылка на комментарий
Поделиться на другие сайты

char* Rus(const char* text);

- спецификация функции, т. е. ее объявление (прототип).

char bufRus[256];

- объявляется массив переменных типа char, который в данном контексте используется как строка.

char* Rus(const char* text){CharToOem(text, bufRus);return bufRus;}

- реализация функции (то, как она выполняется). Функция OemToChar переводит текст, переданный в функцию, (text) в строку с другой кодировкой.

Ссылка на комментарий
Поделиться на другие сайты

Доброго времени суток. Имеется програмка

#include <iostream.h>#include <math.h>#include <windows.h>char* Rus(const char* text);int main(int){	double P, S, V, m, x, A, result; cout << Rus("-----------------------------------------------") << endl;cout << Rus("Лабораторная работа №2.					   |") << endl;cout << Rus("Линейные процессы, математические функции.	| ") << endl;cout << Rus("Выполнил: ст-т гр. XXXXX					  |") << endl;cout << Rus("			   Бондарев А.А.						|") << endl;cout << Rus("-----------------------------------------------") << endl;cout << Rus("Введите значения переменных") << endl;cout << "" << endl;cout << "P =\t ";	cin >> P;cout << "S =\t ";	cin >> S;cout << "V =\t ";	cin >> V;cout << "m =\t ";	cin >> m;cout << "x =\t ";	cin >> x;cout << "A =\t ";	cin >> A; result = sqrt(P*m*2*x / V*(x-1) * (pow((S/P),2/x) - pow((S/P),(x+1)/x))) * A;cout << "result = " << result << endl;return 0;}char bufRus[256];char* Rus(const char* text){  CharToOem(text, bufRus);  return bufRus;}

Строки

cout << Rus("-----------------------------------------------") << endl;

cout << Rus("Лабораторная работа №2. |") << endl;

cout << Rus("Линейные процессы, математические функции. | ") << endl;

cout << Rus("Выполнил: ст-т гр. XXXXX |") << endl;

cout << Rus(" Бондарев А.А. |") << endl;

cout << Rus("-----------------------------------------------") << endl;

cout << Rus("Введите значения переменных") << endl;

cout << "" << endl;

можно назвать шапкой...

Необходимо организовать функцию в виде подключаемого .h файла. Что бы при подключении указать номер лабораторки, и он автоматически заменился в шапке... Или еще как нибудь. В общем принцип подобный, организация любая. Помогите плиз идеями и кодом. :)

Ссылка на комментарий
Поделиться на другие сайты

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

В заголовочном файле, например, 1.h, определяем константу, выводимую в шапке, и нужную функцию. В файле 2.h -другую константу и функцию. И т.д. Какой заголовочный файл - 1.h, 2.h... - укажем при подключении, таким и скомпилируется.

Например,

#include <iostream>#include "1.h"#include <stdio.h> using namespace std;main(){int p; p=t(); cout<<m<<endl; cout<<p<<endl; getchar(); }

Заголовочный файл 1.h будет выглядеть, к примеру, так:

int m=5; int t(){return 9;}

Программа выведет значение переменной, определенной в заголовочном файле, и использует функцию из него. Будет выдано:

5

9

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

hi1

Есть два числа, необходимо выбрать из них болшее - ну это понятно как сделать...

А если скажем, чисел не 2 а 100. Не будешь же каждую пару забивать условием в выражение if...

как быть ? :)

Ссылка на комментарий
Поделиться на другие сайты

Как раз для этого, то есть для перебора, изобретены массивы.

int m[100],k; k=m[0]; for(i=1;i<100;i++)if(k<m)k=m;

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

Ссылка на комментарий
Поделиться на другие сайты

Такой вопросик:

Есть несколько программ К примеру, одна считает корни квадратного уравнения, вторая высчитывает площадь поверхности куба и т.д.

Как сделать программку которая будет запрашивать ввод цифры 1, 2 и т.д. Например, ввожу 1 и у меня запускается программа, считающая корни уравнения, ввожу 2 - запускается программа, считающая площадь поверхности куба и т .д ?

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу



×
×
  • Создать...