Перейти к содержимому

Фотография

Новые уроки по C++.4 урок.If-Else, Switch

автор денис марков

Сообщений в теме: 17

#1 DenisMD

DenisMD

    Продвинутый пользователь

  • Модераторы
  • 40 сообщений
  • ГородМагнитогорск

Отправлено 16 Июль 2013 - 01:41

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


  • Vadim, Evgeniy и Андрей это нравится

#2 Martar

Martar

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 02 Октябрь 2013 - 17:55

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



#3 Artur

Artur

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений

Отправлено 18 Ноябрь 2013 - 00:35

<

#include <iostream>
#include <cmath>
#include <conio.h>

using std:: cout;
using std:: cin;
using std:: endl;

	int main()
	{
	double  a,b,c, x, x1,x2,D;
	

    cin >>  a, b , c ;

	D=(b*b)-4*(a*c) ;

	if (D>0);
	{
	x1=fabs(b)-(sqrt(D))/(a*a);

	cout << x1 << endl;

	x2=fabs(b)+(sqrt(D))/(a*a);

	cout << x2 << endl;
	}

	if (D=0);

	{
	x=fabs(b)/(a*a);

	cout << x << endl;
	}

	getch;
	return(0);

	}



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

'Урок 4.exe': Loaded 'C:\Users\Артур\Documents\Visual Studio 2010\Projects\Урок 4\Debug\Урок 4.exe', Symbols loaded.
'Урок 4.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll', Cannot find or open the PDB file
'Урок 4.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll', Cannot find or open the PDB file
'Урок 4.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll', Cannot find or open the PDB file
'Урок 4.exe': Loaded 'C:\Windows\SysWOW64\msvcp100d.dll', Symbols loaded.
'Урок 4.exe': Loaded 'C:\Windows\SysWOW64\msvcr100d.dll', Symbols loaded.
Run-Time Check Failure #3 - The variable 'b' is being used without being initialized.


#4 Vadim

Vadim

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений

Отправлено 18 Январь 2014 - 17:46

 

http://www.youtube.c...TiX65gs&index=4

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

 

В этом уроке подключили библиотеку <cmatch>. Я прошел по включенным файлам библиотеке <iostream> и обнаружил, что в одном из подключаемых файлов уже подключается <cmatch>. Попробовал функцию нахождения корня sqrt(), она сработала. Вопрос: Как работают эти файлы если они подключены несколько раз, ускоряется ли обращение если библиотека подключена в шапке?



#5 Administrator

Administrator

    Администратор

  • Администраторы
  • 89 сообщений
  • ГородПенза

Отправлено 18 Январь 2014 - 18:22

 

 

http://www.youtube.c...TiX65gs&index=4

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

 

В этом уроке подключили библиотеку <cmatch>. Я прошел по включенным файлам библиотеке <iostream> и обнаружил, что в одном из подключаемых файлов уже подключается <cmatch>. Попробовал функцию нахождения корня sqrt(), она сработала. Вопрос: Как работают эти файлы если они подключены несколько раз, ускоряется ли обращение если библиотека подключена в шапке?

 

все одинаково работает, никакого ускорение нет



#6 Иван

Иван

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 31 Январь 2014 - 12:12

У вас в программе <<Время в секундах>> ошибка. В 4000 секундах ~ 66 минут, а у вас 6 минут. 9b017b292077.png



#7 Evgeniy

Evgeniy

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 19 Февраль 2014 - 17:22

Мой пример выполнения первого задания из 4 урока. :)  

Скрытый текст


#8 Evgeniy

Evgeniy

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 19 Февраль 2014 - 20:59

Со вторым заданием пришлось повозится,  но у меня всё получилось :rolleyes:

Спасибо Вам, Денис, за уроки :)

P.S. Хочу поделится с вами кодом.

Скрытый текст


#9 Evgeniy

Evgeniy

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 19 Февраль 2014 - 23:07

По третьему заданию не совсем понятно. 

Если оставить блок, который я закоментировал, то результат выполнения будет следующий. case с символом '-' я, конечно же, убирал.

Скрытый текст

 

Сам код.

Скрытый текст


#10 ZloyBambr

ZloyBambr

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений
  • ГородНерезиновск

Отправлено 12 Март 2014 - 15:10

По третьему заданию не совсем понятно. 

Если оставить блок, который я закоментировал, то результат выполнения будет следующий. case с символом '-' я, конечно же, убирал.

Скрытый текст

 

Сам код.

Скрытый текст

if(a == '-') // if сделали пустым и оправили выполнять операторный блок за if.

 

Программа выполняется линейно, т.е. сверху-вниз если мы сами не указываем направления (условия), в данном случае условие завершилось пустотой, попробуйте то же самое с 5-5, закомментировав return 0; и cin.get().



#11 AndreiGS

AndreiGS

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 23 Март 2014 - 12:11

/*//////////////////////////////////
        Квадратное уранение      ///
    Автор: Гобенкол Андрей       ///
*///////////////////////////////////
 
#include <iostream>
#include <conio.h>
#include <cmath>
 
using namespace std;
 
int main()
{
setlocale(LC_ALL, "Russian");
 
cout << "\t****Квадратное уравнение****\n\n";
 
double a, b, c;
 
cout << "Введите послдедовательно a, b и c:\n";
cin >> a >> b >> c;
 
if ((a != 0) && (b == 0) && (c == 0))
{
double x, y;
 
y = a / (-1);
x = sqrt(y);
 
cout << "X = " << x << endl;
}
 
else if ((a != 0) && (b == 0) && (c != 0))
{
double x, y;
 
c = c / (-1);
y = c / a;
x = sqrt(y);
 
cout << "X = " << x << endl;
}
 
else if ((a != 0) && (b != 0) && (c == 0))
{
double x1, x2;
 
x1 = 0;
c = c / (-1);
x2 = c / a;
 
cout << "X1 = " << x1 << endl << "X2 = " << x2 << endl;
}
 
else if ((a != 0) && (b != 0) && (c != 0))
{
double D;
 
D = (b * b) - 4 * a * c;
 
if (D > 0)
{
double x1, x2;
 
x1 = (-b + sqrt(D)) / (2 * a);
x2 = (-b + sqrt(D)) / (2 * a);
 
cout << "X1 = " << x1 << endl << "X2 = " << x2 << endl;
}
 
else if (D == 0)
{
double x;
 
x = (-b) / (2 * a);
 
cout << "X = " << x << endl;
}
else
cout << "Корней нет!" << endl;
}
else  
{
cout << "Ошибка!!!\n";
 
_getch();
return -1;
}
 
_getch();
return 0;
}


#12 Алексей

Алексей

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 14 Сентябрь 2014 - 15:38

Доброго всем времени суток! На мой взгляд в решении квадратного уравнения надо обратить внимание на то, что коэффициент "a" может  быть равен 0. Тогда в программе надо внести строку типа "если а=0 тогда х=-с/b



#13 leader

leader

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 30 Сентябрь 2014 - 03:04

Задание №3. Смотрел выше люди делает, такой код сложный и к тому же сами себя запутывают)) Посмотрите правильно ли я сделал?

Скрытый текст



#14 Evgeniy

Evgeniy

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 11 Октябрь 2014 - 14:05

Скрытый текст

Вот это зачем?



#15 kol101124Y

kol101124Y

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 22 Январь 2016 - 19:31

вот так получается

 

Скрытый текст


#16 MIkayel77

MIkayel77

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 12 Июль 2016 - 04:20

 
  1. /*//////////////////////////////////
  2. Квадратное уранение ///
  3. Автор: Mikayel ///
  4. *///////////////////////////////////
#include "stdafx.h"
#include<iostream>
#include<conio.h>
#include<cmath>
using std::cout;
using std::cin;
using std::endl;
using std::ios_base;
 
int main()
{
setlocale(LC_ALL,"Russian");
cout<<"******Diskreminat******\n";
while (0 < 1)
{
int a, b, c, x;
double D, firstX, secondX;
cout << "Enter 'a' , 'b' , and 'c' \n: ";
cin >> a >> b >> c;
cout << a << " * (x * x) + " << b << " * x + " << c << " = 0 \n";
D = ( b * b )- (4 * a * c);
if (D < 0)
{
cout << " The issue has no solution \n ";
}
else if (D == 0)
{
x = ( - b  ) / 2 * a;
cout << "This issue has a solution : " << x << endl;
}
else if (D > 0)
{
firstX = (-b + sqrt(D)) / 2 * a;
secondX = (-b - sqrt(D)) / 2 * a;
cout << "This issue has two solutions 1.: " << firstX << "2.: " << secondX << endl;
}
}
_getch();
    return 0;
}


#17 Dracaena

Dracaena

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 15 Январь 2017 - 23:55

Возможно, я занудствую, но в уроке, наверное, стоило строку

cout << "У вас " << Ruble;

поместить после проверки первого условия "if(Ruble < 0)". Чтобы не выводило: "У вас Ваше значение отрицательное!"

 

И ещё перед switch надо добавить фукнцию else, иначе при вводе значения от 11 до 19 программа два раза пишет слово "рублей/рубля".

 

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



#18 koshes

koshes

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 18 Июль 2017 - 17:19

#include
#include

using namespace std;

int main()
{

setlocale(LC_ALL,"Russian");

int a,b;
char c;

c = 0;

cout &amp;lt;&amp;lt; "\t\t\tКалькулятор\n";
cout &amp;lt;&amp;lt; "Введите два числа: ";
cin &amp;gt;&amp;gt; a &amp;gt;&amp;gt; b;

cout &amp;lt;&amp;lt; "Выберете действие\n";
cout &amp;lt;&amp;lt; " Умножение " &amp;lt;&amp;lt; " Деление " &amp;lt;&amp;lt; "Сложение " &amp;lt;&amp;lt; "Вычитание " &amp;lt;&amp;lt; endl;
cin &amp;gt;&amp;gt; c;

switch©
{
case '+': cout &amp;lt;&amp;lt; "Ваш ответ: " &amp;lt;&amp;lt; a + b &amp;lt;&amp;lt; endl; break;
case '-': cout &amp;lt;&amp;lt; "Ваш ответ: " &amp;lt;&amp;lt; a - b &amp;lt;&amp;lt; endl; break;
case '*': cout &amp;lt;&amp;lt; "Ваш ответ: " &amp;lt;&amp;lt; a * b &amp;lt;&amp;lt; endl; break;
case '/': cout &amp;lt;&amp;lt; "Ваш ответ: " &amp;lt;&amp;lt; a / b &amp;lt;&amp;lt; endl; break;
default: cout &amp;lt;&amp;lt; "Error " &amp;lt;&amp;lt; endl;
_getch();
return -1;
}
_getch();
return 0;
}


Вроде все работает) Спасибо за уроки!)





Темы с аналогичным тегами автор денис марков