LINUX.ORG.RU

не пойму что за ошибка.

 


0

1
#include <iostream>
#include <cmath>

using namespace std;

int main()
{
 do {
 float a, b, c, D, x1, x2;
 char g;
 cout << "Введите a, b, c. \n"
      << "a="; cin >> a;
 cout << "b="; cin >> b;
 cout << "c="; cin >> c;

 if( (D=b*b-4*a*c)>=0 ){
  x1=(-b+sqrt(D))/(2*a);
  x2=(-b-sqrt(D))/(2*a);
cout << "D=b*b-4*a*c="<< D << endl
     << "x1=(-b+sqrt(D))/(2*a)=" << x1 << endl
     << "x2=(-b-sqrt(D))/(2*a)=" << x2 << endl;
 }
 else {cout << "Решений нет." << endl;}
 cout << "Вы хотите продолжить(Y/N)?" << endl;
 cin >> g;
 }
 while(g !='n');
return 0;
}



serg.cpp: In function ‘int main()’:
serg.cpp:27:8: error: ‘g’ was not declared in this scope
  while(g !='n');
        ^


Последнее исправление: rybis (всего исправлений: 6)

Это

char g;
надо вынести за пределы do { ... } while (...). Что объявлено внутри пары фигурных скобок, вне их не видно.

xaizek ★★★★★
()

while в do...while не видит иннер скоуп.

anonymous
()

char g; нужно вынести перед do { ... }

mix_mix ★★★★★
()

А случай с a==0 где?

luke ★★★★★
()

Внимание вопрос: зачем задавать вопрос на ЛОР, если компилятор тебе четко и ясно описал в чем твоя проблема?

Quickern ★★
()
Ответ на: комментарий от rybis

В каком классе? Рановато может быть. Но если интересно, читай про «КомплЕксные числа».

P.S. Вопрос: «в каком классе,» — тут задан без сарказма. Тут прямой смысл, а то мало ли, обидится кто...

Quickern ★★
()
Последнее исправление: Quickern (всего исправлений: 1)

выкинь свой спп. в джавеЕЕ есть класс для этого. Читай про томкат и спринг, третий раздел.

anonymous
()
Ответ на: комментарий от Quickern

Я в 11. Буду на программиста поступать хочу на с++ писать. Знаю но мне не понятно почему я не мог ее определить внутри цикла

rybis
() автор топика
Ответ на: комментарий от rybis

Потому что ты использовал ее снаружи (в while). А она существует только внутри.

В 11 про комплексные числа пора бы уже знать, вообще-то. Ну, хотя бы слышать должен был, что так можно. Тем более, если хочешь стать программистом (читай математиком).

Quickern ★★
()
Последнее исправление: Quickern (всего исправлений: 1)
Ответ на: комментарий от rybis

Ты именно C++ хочешь, или тебе все-равно и хочется научиться минимальным знаниям в программировании вообще?

Это важный вопрос. C++ — это объекты, шаблоны и прочее. Тут сложно что-то посоветовать. Вооружаешься Страуструпом, книгами по графике какими-нибудь (Qt, например. Доки и примеров на первое время хватит), придумываешь клевый проект себе и реализуешь его. 1) Забросишь с меньшей вероятности, так как будет интересно. 2) Будешь понимать что и как на интуитивном уровне.

Решать задачи — зачастую код вообще не отличается от C-шного (тут все просто, ищи любые олимпиадные задачи. Есть, даже, что-то вроде онлайн олимпиад). Советую попробовать поосилять Кормена, но тут может быть сложновато.

Выбирай, какой подход больше нравится. Идеально — олба одновременно.

Quickern ★★
()
Ответ на: комментарий от Quickern

Я уже две недели читаю книгу объектно ориентированное программирование в с++ 4-ое издание. Мне нравиться эта книги, очень хорошо написано уже половину прочел. И понял что почти ничего не запомнил потому что почти не тренировался. Там есть задания но на почти все нет решения.

Хочу написать программу для Android или компьютера где ты например выбираешь фигуру,например треугольник прямоугольный, нажимаешь на один катет и выставляешь число, и на другой катет и выставляешь число, а на гипотенузу ставишь вопрос. Программа выщитывает сторону и оформляет типо как в школе это обычно делают со всеми пояснениями как нашел эту сторону. Так же с углом с площадью и можно даже как нибудь тригонометрию вписать.

rybis
() автор топика
Ответ на: комментарий от rybis

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

Ставь Qt creator, читай, что такое Qt и начинай реализовывать. Ищи, что-либо, если не знаешь как реализовать. Все ответы в гугле есть. Закончишь — уже будешь что-то уметь.

Все это, конечно, параллельно с дальнейшим осознаванием, что есть ООП. Ну и алгоритмы не забывай.

Quickern ★★
()
Ответ на: комментарий от rybis

Изобразить что-то похожее всегда можно, конечно. Еще и цветами можно поиграться достаточно просто. Но мне, когда я был в 11 классе, с реальной графикой было возиться гораздо интереснее, честно говоря. Тут уж, конечно, от человека зависит.

Quickern ★★
()
Последнее исправление: Quickern (всего исправлений: 2)
Ответ на: комментарий от anonymous

Да ладно, он скучный и читать его бессмысленно и не новичку. Ну а как справочник, то какая разница?

Quickern ★★
()
Последнее исправление: Quickern (всего исправлений: 1)
Ответ на: комментарий от rybis

Qt как пример. Qt creator — это что-то вроде IDE для C++ с Qt. Сам никогда не использовал, но мне кажется должно быть удобно для новичка.

Quickern ★★
()
char g;
do {
 float a, b, c, D, x1, x2;
andreyu ★★★★★
()
Ответ на: комментарий от rybis

Я уже две недели читаю книгу объектно ориентированное программирование в с++ 4-ое издание. Мне нравиться эта книги, очень хорошо написано уже половину прочел. И понял что почти ничего не запомнил потому что почти не тренировался. Там есть задания но на почти все нет решения.

Вся соль этой книги в контрольных вопросах (иногда не самых удачных) и заданиях после каждой главы. Они индикатор того, насколько ты понял прочитанный материал. Если появляются проблемы с упражнением, значит ты что-то упустил, следует вернуться назад и перечитать главу. Задания необходимо делать все без исключения, так как в последующих главах часто требуется дорабатывать или изменять код, который ранее нужно было написать. Если и повторное прочтение не помогает - гугли, спрашивай на форуме, но ни в коем случае не пропускай непонятное. Хотя, должен сказать, в книге довольно много опечаток, неточностей и корявого перевода, это особенно заметно в последних главах (где-то с 10й главы переводчики решили особо не париться).

Nietzsche
()
Ответ на: комментарий от rybis

На linux есть псевда графика примерно как в dos. Кружки линии и все такое?

Можно взять что-то типа SFML/SDL2/Allegro, но если это нужно только для того, чтобы заменить консольную графику из книги Лафоре, то я бы посоветовал забить. Если я не ошибаюсь, то в упражнениях она требуется только раз (из более чем 100 упражнений), в 11й главе, где нужно доработать симулятор лошадиных скачек. Я обошелся там текстовым интерфейсом, т.е. выводил сообщения о том, какая лошадь лидирует, кто набирает скорость, кто финишировал и с каким результатом.

Nietzsche
()
Ответ на: комментарий от Nietzsche

Спасибо за советы. Я хотел 1 раз просто прсчесть а второй с выполнением заданий и записать что не запомнил чтобы учить. Что мне нравится в среде программистов что все помогаю друг другу. Есть даже такая прекрасная и бесплатная система как Linux.

rybis
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.