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

Фотография

Новые уроки по C++.3 урок.Типы данных

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

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

#1 DenisMD

DenisMD

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

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

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

В данном уроке рассмотрим основные типы данных(целочисленные,вещественные,символьный). И попрактикуемся в решении задач.



#2 Ерболат

Ерболат

    Новичок

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

Отправлено 10 Сентябрь 2013 - 01:22

/*////////////////////////////////////////
Author: Abilkhasanuly Erbolat   //////////
Name: Типы данных               //////////
*/////////////////////////////////////////

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

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

int main()
{
setlocale(LC_ALL , "Russian");

int        a = 12 ;        //4 bytes
char       c = 100;      //1 byte



cout << "a = " << a << " c = \ '" << c << "\'\n";


/*
short      b;//2 bytes
long       c;//4 bytes
long long  d;//8 bytes


a = 23;
b = 12;

cout << "a = " << a << " b = " << b << endl;
cout << "a + b = " << (a+ << endl;
cout << "a - b = " << (a- << endl;
cout << "a * b = " << (a* << endl;
cout << "a / b = " << (a/b) << endl;
cout << "a % b = " << (a% << endl;

_getch();
return 0;

}

ошибка! исправьте пожалуйста! ошибка вот здесь /*/ и /*


Сообщение отредактировал Administrator: 11 Сентябрь 2013 - 23:05
используй виджет Код, а то засоряешь сильно


#3 Administrator

Administrator

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

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

Отправлено 11 Сентябрь 2013 - 23:07

/*////////////////////////////////////////
Author: Abilkhasanuly Erbolat   //////////
Name: Типы данных               //////////
*/////////////////////////////////////////

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

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

int main()
{
setlocale(LC_ALL , "Russian");

int        a = 12 ;        //4 bytes
char       c = 100;      //1 byte



cout << "a = " << a << " c = \ '" << c << "\'\n";


/*
short      b;//2 bytes
long       c;//4 bytes
long long  d;//8 bytes


a = 23;
b = 12;

cout << "a = " << a << " b = " << b << endl;
cout << "a + b = " << (a+ << endl;
cout << "a - b = " << (a- << endl;
cout << "a * b = " << (a* << endl;
cout << "a / b = " << (a/b) << endl;
cout << "a % b = " << (a% << endl;

_getch();
return 0;

}

ошибка! исправьте пожалуйста! ошибка вот здесь /*/ и /*

 

ты глянь на строки с 36-ой по 40-ю, у тебя там а+ и а- и дальше пусто, ты там выражение не полное же написал



#4 ilant

ilant

    Новичок

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

Отправлено 15 Ноябрь 2013 - 16:04

/************************
Author: Георгий Воронов *
Name  : Калькулятор *
Date  : 15.11.13 *
************************/

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

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

int main()
{
setlocale(LC_ALL, "Russian");

int result, fp, dp, ost;
char oper;

cout << "\t\t*******Целочисленный калькулятор*******\n\n";
cout << "Введите выражение: ";

cin >> fp >> oper >> dp;

if (oper == 43)
{
result = fp + dp;
cout << "Результат сложения: " << result;
}
else
if (oper == 45)
{
result = fp - dp;
cout << "Результат вычитания: " << result;
}
else
if (oper == 47)
{
result = fp / dp;
ost = fp % dp;
if (ost != 0)
{
cout << "Результат деления: " << result << endl << "Остаток: " << ost;
}
else
cout << "Результат деления: " << result << endl;
}
else
if (oper == 42)
{
result = fp*dp;
cout << "Результат умножения: " << result;
}


_getch();
return 0;
} 

Калькулятор, проверьте, пожалуйста, хочу сделать так, если остатка нет, то его не выводить


Сообщение отредактировал Administrator: 16 Ноябрь 2013 - 15:06
Код не был заклечён в тег


#5 Administrator

Administrator

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

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

Отправлено 16 Ноябрь 2013 - 15:07

Калькулятор, проверьте, пожалуйста, хочу сделать так, если остатка нет, то его не выводить

 

ну так вы просто уберить 46-48 строки



#6 Artur

Artur

    Новичок

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

Отправлено 16 Ноябрь 2013 - 23:59

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

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

int main(){
setlocale (LC_ALL, "Russian");
    double a=3.14;
    double Square,Hight,Radius;
    cin >> Hight >> Radius ;
double Square=a*(Hight*Hight)*Radius;
cout  << "Площадь." << Square<<endl ;
getch;
return(0);
}

 

Пробовал написать код для вычисления Площади цилиндра.не работает.В чем причина не ясно,в visual studio ничего не подчеркнуто красным....


Сообщение отредактировал Administrator: 17 Ноябрь 2013 - 03:33
Пишите листинг программы в тег


#7 Artur

Artur

    Новичок

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

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

Убрал перед формулой "double"- появился ввод двух переменных.Но подсчет не происходит всеравно.



#8 Administrator

Administrator

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

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

Отправлено 17 Ноябрь 2013 - 03:30

Убрал перед формулой "double"- появился ввод двух переменных.Но подсчет не происходит всеравно.

ну в опервых double в любом случае нужно убрать так как тип переменной Square вы уже задали, во вторых, когда вы вводите два числа cin >> Hight >> Radius ;  вам нужно писать их через пробел и после жать Enter чтобы они присвоились переменным, и еще если вы пишите дробные числа то пишите их не с запятой а с точкой например вот так 545.551, ну я думаю вы поняли. 



#9 Artur

Artur

    Новичок

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

Отправлено 17 Ноябрь 2013 - 10:49

 

 

ну в опервых double в любом случае нужно убрать так как тип переменной Square вы уже задали, во вторых, когда вы вводите два числа cin >> Hight >> Radius ;  вам нужно писать их через пробел и после жать Enter чтобы они присвоились переменным, и еще если вы пишите дробные числа то пишите их не с запятой а с точкой например вот так 545.551, ну я думаю вы поняли

Ввожу цифры через пробел. По окончании работы  в поле комментариев получаю такую вот запись:

 

 

Ошибка.exe': Loaded 'C:\Windows\SysWOW64\msvcp100d.dll', Symbols loaded.
'Ошибка.exe': Loaded 'C:\Windows\SysWOW64\msvcr100d.dll', Symbols loaded.
The program '[5028] Ошибка.exe: Native' has exited with code 0 (0x0).
 
Файл назвал "ошибка".
То есть данные вводятся, и программа завершается корректно(Native' has exited with code 0 (0x0). -это насколько я понимаю из return(0) ;)
Но формула даже не вкючается. Вот в чем вопрос-почему?


#10 Sequoza

Sequoza

    Новичок

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

Отправлено 17 Ноябрь 2013 - 14:24

 

 

 

ну в опервых double в любом случае нужно убрать так как тип переменной Square вы уже задали, во вторых, когда вы вводите два числа cin >> Hight >> Radius ;  вам нужно писать их через пробел и после жать Enter чтобы они присвоились переменным, и еще если вы пишите дробные числа то пишите их не с запятой а с точкой например вот так 545.551, ну я думаю вы поняли

Ввожу цифры через пробел. По окончании работы  в поле комментариев получаю такую вот запись:

 

 

Ошибка.exe': Loaded 'C:\Windows\SysWOW64\msvcp100d.dll', Symbols loaded.
'Ошибка.exe': Loaded 'C:\Windows\SysWOW64\msvcr100d.dll', Symbols loaded.
The program '[5028] Ошибка.exe: Native' has exited with code 0 (0x0).
 
Файл назвал "ошибка".
То есть данные вводятся, и программа завершается корректно(Native' has exited with code 0 (0x0). -это насколько я понимаю из return(0) ;)
Но формула даже не вкючается. Вот в чем вопрос-почему?

 

У меня все работает



#11 Administrator

Administrator

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

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

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

 

 

 

ну в опервых double в любом случае нужно убрать так как тип переменной Square вы уже задали, во вторых, когда вы вводите два числа cin >> Hight >> Radius ;  вам нужно писать их через пробел и после жать Enter чтобы они присвоились переменным, и еще если вы пишите дробные числа то пишите их не с запятой а с точкой например вот так 545.551, ну я думаю вы поняли

Ввожу цифры через пробел. По окончании работы  в поле комментариев получаю такую вот запись:

 

 

Ошибка.exe': Loaded 'C:\Windows\SysWOW64\msvcp100d.dll', Symbols loaded.
'Ошибка.exe': Loaded 'C:\Windows\SysWOW64\msvcr100d.dll', Symbols loaded.
The program '[5028] Ошибка.exe: Native' has exited with code 0 (0x0).
 
Файл назвал "ошибка".
То есть данные вводятся, и программа завершается корректно(Native' has exited with code 0 (0x0). -это насколько я понимаю из return(0) ;)
Но формула даже не вкючается. Вот в чем вопрос-почему?

 

У меня тоже все верно, за исключением этого return(0 писать нужно так return 0;



#12 Artur

Artur

    Новичок

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

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

А может причина быть в вижуале?

 Похожая ерунда и с другим кодом(задание к уроку 4)...



#13 Administrator

Administrator

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

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

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

А может причина быть в вижуале?

 Похожая ерунда и с другим кодом(задание к уроку 4)...

может быть



#14 ZloyBambr

ZloyBambr

    Новичок

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

Отправлено 12 Март 2014 - 14:45

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

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

int main(){
setlocale (LC_ALL, "Russian");
    double a=3.14;
    double Square,Hight,Radius;
    cin >> Hight >> Radius ;
double Square=a*(Hight*Hight)*Radius;
cout  << "Площадь." << Square<<endl ;
getch;
return(0);
}

 

Пробовал написать код для вычисления Площади цилиндра.не работает.В чем причина не ясно,в visual studio ничего не подчеркнуто красным....

 

double Square=a*(Hight*Hight)*Radius; // Это тут для чего? Вы же определили уже тип данных переменной, приведение типов используется по другому, но оно тут и не нужно.
cout << "Площадь." << Square<<endl ;
getch; _getch(); // Раз уж используете функцию, используйте правильно
return(0); return 0;

 

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



#15 nadzor

nadzor

    Новичок

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

Отправлено 20 Декабрь 2014 - 22:22

b6376-clip-90kb.jpg?nocache=1

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


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


int main()
{
setlocale(LC_ALL, "Russian");
int vvod, h, m, s;
cout << "Введите количество секунд :  ";
cin >> vvod;
h = vvod / 3600;
m = (vvod / 60)%60;
s = vvod % 60;
cout << vvod << "  введенных секунд: \n" << h << "  часов \n" << m << " минут \n" << s << " секунд " ;


_getch();
return 0;

Выполнил 1№ задачу 3-го урока. Сначала я, расписал алгоритм действий на листике, а уже после перевел на язык программирования С++



#16 Андрей

Андрей

    Новичок

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

Отправлено 14 Апрель 2015 - 10:54

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


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


int main()
{
setlocale(LC_ALL, "Russian");
int vvod, h, m, s;
cout << "Введите количество секунд :  ";
cin >> vvod;
h = vvod / 3600;
m = (vvod / 60)%60;
s = vvod % 60;
cout << vvod << "  введенных секунд: \n" << h << "  часов \n" << m << " минут \n" << s << " секунд " ;


_getch();
return 0;

Выполнил 1№ задачу 3-го урока. Сначала я, расписал алгоритм действий на листике, а уже после перевел на язык программирования С++

А скобку "}" в конце листинга не поставил))))



#17 adalgeri

adalgeri

    Новичок

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

Отправлено 08 Сентябрь 2015 - 21:53

Привет, Денис. Начал проходить твои уроки. Начал с нуля, раньше не изучал языки программирования. Уроки понятные, хорошие. Веду конспект в двух тетрадях :) Сам конспект + определения, лексика. 

 

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



#18 adalgeri

adalgeri

    Новичок

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

Отправлено 12 Сентябрь 2015 - 21:14

 

В данном уроке рассмотрим основные типы данных(целочисленные,вещественные,символьный). И попрактикуемся в решении задач.

 

Привет, Денис. Начал проходить твои уроки. Начал с нуля, раньше не изучал языки программирования. Уроки понятные, хорошие. Веду конспект в двух тетрадях  :) Сам конспект + определения, лексика. 

 

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



#19 servmv

servmv

    Новичок

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

Отправлено 25 Апрель 2016 - 13:29

Здравствуйте Денис, может Вы и мне поможете, Я с++ начал изучать работая с контролерами, среда немного отличается но суть та же.

у меня такая ситуация я получил от датчика температуры 2 байта.

#define Uint unsigned int
#define Uchar unsigned char
...
Uchar temp[2];
.. получаем данные
Uint temper = (((uint)temp[1] << 8) | (uint)(temp[0]));

согласно спецификации

https://yadi.sk/i/u_1rVXgMrGF3B

1 бит это 0.0625 градуса цельсия

не могу это все в голове собрать, как пересчитать, нужно получить число с точностью 0.1 умноженное на 10,

то есть, если 36.6 то получить 366

 

я делал так:

Uint temper1 = temper >> 4; // на 4 бита в право, отрезаем дробную часть
	if (temper1 < 60){ // данные корректны, температура менее 60 градусов
		temper1 *= 10;
		Uchar temper2 = temper & 15; // логическая операция, удаляем целую часть
		if (temper2 == 2){temper1 += 1;} // а вот тут огород
		if (temper2 == 3){temper1 += 1;}
		if (temper2 == 4){temper1 += 2;}
		if (temper2 == 5){temper1 += 3;}
		if (temper2 == 6){temper1 += 3;}
		if (temper2 == 7){temper1 += 4;}
		if (temper2 == 8){temper1 += 5;}
		if (temper2 == 9){temper1 += 5;}
		if (temper2 == 10){temper1 += 6;}
		if (temper2 == 11){temper1 += 6;}
		if (temper2 == 12){temper1 += 7;}
		if (temper2 == 13){temper1 += 8;}
		if (temper2 == 14){temper1 += 8;}
		if (temper2 == 15){temper1 += 9;}
		return 	temper1;
	}

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

Как бы Вы это реализовали?



#20 Saiko

Saiko

    Новичок

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

Отправлено 16 Ноябрь 2016 - 03:18

Ам.. Немного не такая табличка получилась, как в ответе на дом.задание на видео (Различие по формулам в минутах и часах), но в общем то все правильно считает. Считается ли моя формула тоже рабочей или стоит заменить?
 
//Задача на время
 
#include <iostream>
#include <conio.h>
 
using std::endl; using std::cin; using std::cout;
 
int main() {
setlocale(LC_ALL , "Russian");
 
unsigned Seconds;
double Secondsfree,Minutes,Hours;
 
cout << "\t\tЗдравствуйте.\nЗдесь вы можете преобразовать ваши секунды в минуты и часы.\nУкажите количество преобразуемых секунд:"; cin >> Seconds; 
 
Secondsfree = (Seconds % 60);                   
Hours = (Seconds / 3600);                            
Minutes = (Seconds / 60) - (60 * Hours);       
 
cout << "Количество Минут:" << Minutes << "\nКоличество Часов:" << Hours << "\nОставшиеся секунды:" << Secondsfree;
 
cout << "\n\n\t\tНажмите любую клавишу для выхода." <<endl; _getch(); return 0; }






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