Во многих случаях после объявления структур объявляются указатели на них, и обращение к элементам структуры происходит не через точку, а через стрелку. Сами же структуры и массивы структур в этих случаях обычно порождаются операторами new и убиваются операторами delete.
Одна из немногих домашек, которые я сделал ))) #include using namespace std; struct three{ int visota,shirina; float listja,vozrast; }; int main(int argc, char** argv) { three Dub; Dub.visota = 20; Dub.shirina = 5; Dub.listja = 2032.12; Dub.vozrast = 70.4; cout
Для тех, кто не понял, чем отличается структура от класса. В классах можно создать не только атрибуты, но и методы. В структуре вы, как бы создаёте свой тип данных со своими атрибутами. Простите, если объяснил непонятным языком)
Позвольте вас поправить. В С++ класс и структура практически идентичны, за одним исключением - секция по умолчанию в структуре считается как public, а в классе - как private. А так, в структуру запросто можно добавить свои методы, операторы и строить иерархии структур. Однако, опытные программисты рекомендуют использовать структуры только для простых типов данных, а всё более-менее сложное размещать в классах. Хотите узнать об этом больше - заходите ко мне!
Спасибо вам за уроки! Всё доходчиво объясняете. Как всегда на высоте! Кстати у меня есть небольшое видео про свою игру "Run for the Gold". Если понравится выпущу видео как буду создавать лабиринт!
Вот дз: // Search question and answer system #include #include using namespace std; struct tree { int vozrast; float visota; float ohvat; }; int main() { tree dub; dub.vozrast=156; dub.visota=27; dub.ohvat=1; tree bereza; bereza.vozrast=16; bereza.visota=4.2; bereza.ohvat=0.15; tree sosna; sosna.vozrast=54; sosna.visota=14.7; sosna.ohvat=0.64; cout
Я только сегодня узнал, что можно описать структуру таким образом: struct students { char surname[32]; int number; bool sex; void output(FILE *fout) { if (ftell(fout)) fputs("------------------- ", fout); fprintf(fout, "Surname: %s Number: %d Sex: %s ", surname, number, sex ? "Female" : "Male"); } void setname(const char s[]) { strncpy(surname, s, 32); } }; P.S. Насколько же я стар, что только сегодня узнал, что методы тоже можно определить в структуре.
+Гоша Дударь кстати спасибо, большенство того, что ты снимаешь я видел, но между делом включаю видео, слушаю и удается подчеркнуть для себя новое. Спасибо за видео !
Result. Tree 1 height = 20.54 Tree 1 width = 2.4 Tree 1 age = 200 Tree 1 name Gosha Tree 2 height = 20.5 Tree 2 width = 1.3 Tree 2 age = 1000 Tree 2 name Daniel Tree 3 height = 20.76 Tree 3 width = 2 Tree 3 age = 432 Tree 3 name Beryozka Tree 4 height = 54.53 Tree 4 width = 4.7 Tree 4 age = 134 Tree 4 name Ananimus Press any key to continue . . .
#include #include #include using namespace std; struct Name { string name; }; struct Age { int age; }; struct Tree { int height; int weight; Age vozrast; Name name; }; int main() { setlocale(LC_ALL, "RUS"); int a, b, c; string d; cout > a; cout > b; cout > c; cout > d; Tree one; one = { a, b, c, d, }; cout
Доброго времени суток. При первой попытке вывода результата, ошибка - требуется определение или имя тэга. Использую Microsoft Visual Studio Community. 16.4.1. Подскажи как победить?) Подчеркивает auto в строке struct auto;
Скажите пожалуйста, в чём у меня ошибка? Задача из универа, визуал студиа корректно решает задачку, но препод говорит, что-то не правильно. Определите пользовательскую структуру данных, которая будет хранит цену, т.е. в структуре будет два поля: rubles и kopecks. Затем напишите функцию на языке программирования С++, которая будет возвращать сумму двух аргументов, имеющих тип определенной выше структуры. #include #include using namespace std; struct cena { int ruble; int kopeck; }; void funk1 (int x, int y, int z, int p) { setlocale(LC_CTYPE, "Russian"); int n=x+y; int e=z+p; if(e>=100) { n++; e=e-100; } cout
#include "stdafx.h" #include #include using namespace std; struct Tree { char name; int yaer; int vst; int shir; }; int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); Tree One = {'tA',5,100,30 }; Tree Two = {'tB',10,200,60 }; Tree Tre = {'tC',15,300,120 }; Tree For = {'tD',20,500,240 }; cout
оо я пока смотрел у меня такой мощный вопрос встал, о возможности и способах сериализации структур. Вроде бы их можно толкать через сокеты (читал исходники nginx) но очень интересно прям стало есть ли какие то рантайм методы с помощью которых можно было бы перечислить элементы экземпляра объекта(структуры) и запихать их на пример в JSON. подозреваю, что может существовать, что то типа for ( prop in object) { ... } но я хз я только учусь )))
Я рекомендую использовать "старую" версию С++, и не использовать большую часть из новых стандартов (С++11, С++17). Например, гугл в своём код-стайле использует максимум С++11. Заходи ко мне, и ты узнаешь ПОЧЕМУ лучше не использовать сложные нововведения в языке.
не нужно создавать массив символов просто пишешь: string color; а потом когда оформляешь пишешь в двойных кавычках , ну вот типо эттого club chelsi={11,"red", 165}; и все выведется
Привет Гоша, пишу с 2к19)))) Было не лишнем показать struct + typedef и с указателями Пример: typedef struct name { std::string names; int age; }n; int main() { typedef strcut name; n *document; document->names = "names"; document->age = 13; } Тут могут быть ошибки так как я давно не юзал.... СОРРИ ЗА НИК xD
Уот мое ДЗ )) Тип данных однотипный, но тут не в этом же суть, верно?) #include using namespace std; struct Options{ int year; float leaves; float height; }; struct Date { int year; float leaves; float height; Options Oak; }; struct Auto { int year; float leaves; float height; Date Palm; }; int main(int argc, const char * argv[]) { Auto Oak = { 154, 43567, 32.34 }; Auto Palm = { 67, 24324, 27.3, }; Auto Birch = { 48, 83294, 35.4 }; cout
#include #include using namespace std; struct Auto { float the_weight; float speed; string color; int wheels; }; int main (int argc, const char * argv []) { Auto SIDAN = {1088,60,"Green",4 }; cout
А почему у меня на name and color выдалось только первая и последняя буква? struct Teck{ int width; int height; float date; char color; char name; }; struct Medate{ int age; float growth; char name; }; int main(int argc, const char * argv[]) { //писать обязательно Teck Dub; Dub.width = 2000; Dub.height = 1000000; Dub.date = 19.99; Dub.color = 'red'; Dub.name = 'aca'; cout
я не знаток, но во второй структуре тебе не надо указывать тип данных переменной из первой, то есть в struct Medate у тебя должно быть не char name; , а что-то типа Teck identif; В дальнейшем будешь обращаться к нейму вот так Medate.identif.name... как-то так
struct PRICE { PRICE operator=(PRICE &price) { strcpy_s(this->tovar, price.tovar); strcpy_s(this->magazin, price.magazin); this->stoimost = price.stoimost; return *this; } char tovar[64]; char magazin[64]; int stoimost; }; увидел такой пример структуры и не понял PRICE operator=(PRICE &price) { strcpy_s(this->tovar, price.tovar); strcpy_s(this->magazin, price.magazin); this->stoimost = price.stoimost; return *this; } вот эту структуру можете объяснить
И чем же это удобно? все равно в мейне мы пишем кучу текста типа: shkoda.color = 'r' так почему бы сразу не писать char shkoda_color ='r' ??? п.с. 2:50 если синий то Г (гей)
Преймущиетво в том, что удобней передовать массив структур в другую функцию. Допустим у Вас есть массив структур работников с полями 1)их возраст 2)должность 3)зарплата 4) ФИО. Вам нужно отсортировать их по имени(допустим). Отдельно передовать каждого работника - не удобно и неправильно. Для этого можно просто передать сам массив( а если быть точнее, о указатель на него), и уже напрямую работать с ним.
Ну вот у Вас есть, допустим массив целых чисел(int). Он заполнен в хаотичном порядке и Вы хотите его отсортировать. Для этого Вам нужно воспользоваться функцией сортировки написаной Вами или воспользоваться библиатечной функцией qsort. Чтоб ими воспользоваться Вам необходимо передать информацию и массиве как параментры в саму функцию. Тоже самое касается структурных массивов. Опять таки, допустим у Вас есть массив структур, элементы которой содержут в себе информацию о работнике: 1)ФИО(массив char'ов) ; 2)возраст(int); 3) Зарплату(int). Этот массив у вас заполнен и Вы хотите, допустим, определить сколько работников получают зарплату свыше 10000 рублей при помощи Вами написаной функции. Для этого Вы в неё передаёте указатель на массив и его кол-во элементов. В функции циклом проходитесь по массиву, сравнивая поле зарплаты текущехо элемента с число 10000. Если сравнение "истина" - добовляете к счётчику(который в начале объявили и инициализировали нулём) + 1 и идёте дальше по массиву; в случае "лошь" просто дальше проходитесь по массиву. Выполняете цикл, до тех пор, пока не пройдётесь по всем сотрудникам. После завершения функции возвращаете счётчик. P.S. Что б было легче вникнуть, возможно стоит пройтись по темам: массивы, структуры, функии и циклы. На сколько помню, на этом канале есть данные темы в отдельных видео.
Не знаю актуально ещё или нет но ты объявляешь переменную типа float с именем width а потом уже обращаешься к записи в структуру переменной с именем breadth
А зачем структуры, если есть классы? в чем преимущество структуры перед классом, до этого я изучал только джаву и не вижу вообще, зачем эта структура нужна, лучше сразу использовать класс
Если мне память не изменяет, то все структурные типы и локальные переменные, так же как и адреса возвратов из функций, хранятся в стеке, а ссылочные типы (массивы, экземпляры классов и т.д) хранятся в куче. А обращение к элементам из стека производится гораздо быстрее, чем из кучи. В этом и преймущество. Я не знаю джаву, но допустим в C# в структурах можно создавать методы, конструкторы, реализовывать интерфесы... И хоть есть некоторые ограничения (нельзя наследоваться и т.д), но когда нужно описать что-что не очень большое, это очень круто (хранение в стеке). Ну как-то так...
ну да, основное различие между структурой и классом ты привел в начале, но это справедливо для с#, но не для c++. В с++ ты можешь создать экземпляр структуры в хипе и экземпляр класса на стеке. Как кстати и массив и локальные переменные простых типов можно создать на стеке, а можно и в хипе. программист сам решает где ему что создавать за исключением контейнеров stl, например, std::vector - ты их можешь создать на стеке, но сами элементы контейнера могут быть в хипе. std::string же решает где хранить данные на стеке или в хипе, если мы создали ее на стеке, в зависимости от длины строки: при небольшой длине - он записывает ее в стек, при большей - в хип. И наследоваться от структур можно, короче ты не угадал ни в одном из пунктов, которые привел :)
Гоша Спасибо тебе реально!!! Ты классный учитель
+
он просто читает статью-книгу
@@BakusPLAY007 Зато он разжевывает и даёт всё это в понятном виде.
Спасибо огромное,очень доступным языком все рассказано:)
очень понятно, в голове укладывается информация и общая картина
მადლობა. ძალიან მაგარი ახსნილია.
Spasiba balshoi ochen xaroshi urok 100% ni.
Индум
Отличный урок, супер, доступно, понятно, доходчиво! СПАСИБО!
Во многих случаях после объявления структур объявляются указатели на них, и обращение к элементам структуры происходит не через точку, а через стрелку. Сами же структуры и массивы структур в этих случаях обычно порождаются операторами new и убиваются операторами delete.
В шоке с этих программистов :). "Делаем точно также только по другому". А так хорошие видео получаются.
спасибо за уроки! как по с++ так и юнити!
Спасибо за понятное объяснение темы)
Самые понятные уроки у тебя! Спасибо.
10:20 прям уровень of my English
struct Tree {
float height;
float width;
char *name;
int year;
};
int main() {
setlocale(LC_CTYPE, "rus");
int a;
Tree Birch;
Birch.height = 6.3;
Birch.width = 29.51;
Birch.name="Берёза";
Birch.year = 13;
Tree Ash;
Ash.height = 15.1;
Ash.width = 75;
Ash.name = "Ясень";
Ash.year = 34;
Tree Larch;
Larch.height = 4;
Larch.width = 13.6;
Larch.name = "Лиственница";
Larch.year = 15;
Tree Oak;
Oak.height = 8.62;
Oak.width = 84.15;
Oak.name = "Дуб";
Oak.year = 33;
cout
подписчик PrO S рекурсия. Main вызвала сама себя и всё повторилось.
а почему мы пишем *name? *name это что вообще? динамический массив символов?
динамический массив
чето не работает нихуя
И тут гдз
Ура! домашка!
Если ты так крикнешь после урока в школе тебе конец
И от отличников тоже
Да видос классный! лайк бахнул
Не знаю кто что там говорил про Гошу Дударя, но он объясняет лучше других!
Спасибо за видос. Очень помог!
Ничеси, машина создана в 1999, а скорость ее максимальная 315 км/ч :)
ну так этож не наш автопром xD
1927 году до 328 км/час разгонялись
Самолёты?
быстрая шкода)))
@@OnlyDing0 мотоблоки
Спасибо!!! помогли!!
Спасибо огромное, домашнее задание очень полезно!
Понял что Структура настолько крутая штуковина что можно даже
Auto velosipedazazazaz;
и присобачить к велосипеду хоть 20 колёс и космическую скорость.
Обожаю
*Очень полезно! Спасибо большое*
Спасибо за урок!Домашка:
#include
#include
using namespace std;
struct tree{
float height;
float width;
int quantity_of_leaves;
};
int main()
{
setlocale(LC_ALL, "rus");
tree oak;
oak.height = 5.12;
oak.width = 1.5;
oak.quantity_of_leaves = 5000;
tree akacia = {5.1, 1, 2500};
tree birch = {4.5, 0.7, 4000};
cout
А что это программа для чего она помогает найти ширину длину дуба?
А что насчёт имени дерева? В видео автор объяснил как ввести переменную символа в структуру ( на примере красного цвета r), но не строки. Есть идеи?
Вышка вообще найс!! Тут урок краток и полезен, я начинаю любить с++
Видно что эта тема тебе ближе, ты её жизненей рассказваешь, применяешь небось очень часто в обиходе, в играх так ваще нужная вещь
Одна из немногих домашек, которые я сделал )))
#include
using namespace std;
struct three{
int visota,shirina;
float listja,vozrast;
};
int main(int argc, char** argv) {
three Dub;
Dub.visota = 20;
Dub.shirina = 5;
Dub.listja = 2032.12;
Dub.vozrast = 70.4;
cout
спасибо, очень помогло!
Про бинарные деревья расскажешь?
#include "stdafx.h"
#include
#include
using namespace std;
struct wood
{
float height;
float width;
int year;
string name;
};
int main()
{
int a;
setlocale(LC_ALL, "rus");
wood dub = {7, 50, 150, "Дуб"};
wood lipa = {4, 20, 60, "Липа"};
wood ber = {5, 10, 100, "Береза"};
wood el = {10, 60, 300, "Ель"};
cout > a;
switch(a){
case 1:
{
cout
Для тех, кто не понял, чем отличается структура от класса. В классах можно создать не только атрибуты, но и методы. В структуре вы, как бы создаёте свой тип данных со своими атрибутами. Простите, если объяснил непонятным языком)
Позвольте вас поправить. В С++ класс и структура практически идентичны, за одним исключением - секция по умолчанию в структуре считается как public, а в классе - как private. А так, в структуру запросто можно добавить свои методы, операторы и строить иерархии структур. Однако, опытные программисты рекомендуют использовать структуры только для простых типов данных, а всё более-менее сложное размещать в классах. Хотите узнать об этом больше - заходите ко мне!
Дякую за відео
было бы неплохо показать вариант с циклом. поскольку в более реальных примерах, данные вводятся через клавиатура или с файла...
Спасибо вам за уроки! Всё доходчиво объясняете. Как всегда на высоте!
Кстати у меня есть небольшое видео про свою игру "Run for the Gold". Если понравится выпущу видео как буду создавать лабиринт!
Всем стало понятно, что у тебя машина марки Шкода) Или ауди =))
может позволить)
заработал же)
Ну будь у него Шкода, он бы знал, как пишется Шкода)
@@FilthyGoose Марка Шкода пишется так: Škoda. Но я могу его понять - не станет же он лезть в таблицу символов из-за какой-то буквы.
@@Кирилл-е3л9т в таких случаях пишут без диакритики: Skoda
У меня файл source.cpp созданный в visual studio при открытии в Xcode кирилицу открывает кряказяброй. Юникод в норме. В чем проблема?
#include
#include
#include
using namespace std;
//структура
struct Tree
{
int year;//vozrast
float vysota;
float shirina;
string name;
};
int main()
{
setlocale(LC_CTYPE, "rus");
Tree dub = {1990,25,40,"sana"};
Tree clen;
Tree bereza;
bereza.name = "salamandra";
bereza.shirina = 23.43;
bereza.vysota = 123.34;
bereza.year = 1970;
Tree elka = {1850,23.53,45,"slam"};
cout > clen.year;
cout
Гоша, можешь помочь.Как в структуру записать строку с клавиатуры с пробелами в Visual Studio 2017?
Ну ручками. Как ещё писать.
Вот дз:
// Search question and answer system
#include
#include
using namespace std;
struct tree {
int vozrast;
float visota;
float ohvat;
};
int main()
{
tree dub;
dub.vozrast=156;
dub.visota=27;
dub.ohvat=1;
tree bereza;
bereza.vozrast=16;
bereza.visota=4.2;
bereza.ohvat=0.15;
tree sosna;
sosna.vozrast=54;
sosna.visota=14.7;
sosna.ohvat=0.64;
cout
очень крутое обьяснение
Класс
Гоша - молодец!
А что значит строчка в скобках после int main, подскажите пожалйста
Я только сегодня узнал, что можно описать структуру таким образом:
struct students {
char surname[32];
int number;
bool sex;
void output(FILE *fout) {
if (ftell(fout)) fputs("-------------------
", fout);
fprintf(fout, "Surname: %s
Number: %d
Sex: %s
", surname, number, sex ? "Female" : "Male");
}
void setname(const char s[]) {
strncpy(surname, s, 32);
}
};
P.S. Насколько же я стар, что только сегодня узнал, что методы тоже можно определить в структуре.
Гоша, видел? Ты в tproger(сообщество вк с ~ 300к подписчиков), в точнее твои уроки по #
Да, точно :) Но они уже не в первый раз меня там выставляют, это как минимум уже 3 раз :)
+Гоша Дударь )
+Гоша Дударь кстати спасибо, большенство того, что ты снимаешь я видел, но между делом включаю видео, слушаю и удается подчеркнуть для себя новое. Спасибо за видео !
не подскажите как закинуть год из другой структуры в Auto audi(из данного видео урока)?
#include
using namespace std;
struct tree {
double t_height;
double t_width; // высота и ширина деревьев
int t_age; // возраст деревьев
char *t_name; // имя деревьев
};
int main() {
tree tree_1;
tree_1.t_height = 20.54;
tree_1.t_width = 2.4;
tree_1.t_age = 200;
tree_1.t_name = "Gosha";
tree tree_2;
tree_2.t_height = 20.5;
tree_2.t_width = 1.3;
tree_2.t_age = 1000;
tree_2.t_name = "Daniel";
tree tree_3;
tree_3.t_height = 20.76;
tree_3.t_width = 2;
tree_3.t_age = 432;
tree_3.t_name = "Beryozka";
tree tree_4;
tree_4.t_height = 54.53;
tree_4.t_width = 4.7;
tree_4.t_age = 134;
tree_4.t_name = "Ananimus";
cout
Result.
Tree 1 height = 20.54
Tree 1 width = 2.4
Tree 1 age = 200
Tree 1 name Gosha
Tree 2 height = 20.5
Tree 2 width = 1.3
Tree 2 age = 1000
Tree 2 name Daniel
Tree 3 height = 20.76
Tree 3 width = 2
Tree 3 age = 432
Tree 3 name Beryozka
Tree 4 height = 54.53
Tree 4 width = 4.7
Tree 4 age = 134
Tree 4 name Ananimus
Press any key to continue . . .
#include
#include
#include
using namespace std;
struct Name {
string name;
};
struct Age {
int age;
};
struct Tree {
int height;
int weight;
Age vozrast;
Name name;
};
int main()
{
setlocale(LC_ALL, "RUS");
int a, b, c;
string d;
cout > a;
cout > b;
cout > c;
cout > d;
Tree one;
one = { a, b, c, d, };
cout
#include
using namespace std;
struct Tree {
int height;
float weight;
char name;
int age;
};
int main() {
system("color b");
char q;
cout q;
Tree firsttree;
firsttree.height = 20;
firsttree.weight = 5.3;
firsttree.name = 'b';
firsttree.age = 40;
Tree secondtree = { 40, 9.7, 'd',50 };
Tree thirdtree = { 7, 2, 'y',3 };
Tree fourthtree = { 54, 12.4, 't',12 };
if (q == 'b') {
cout
Выложу сюда для галочки, шоб было.
#include "stdafx.h"
#include
#include
#include
#include
#include
#include
using namespace std;
struct tree {
int age;
float weight;
string name;
float height;
};
int main(int argc, const char * argv[])
{
setlocale(LC_ALL, "rus");
tree dub;
dub.age = 134;
dub.height = 45;
dub.name = "Владимир";
dub.weight = 3;
tree bereza;
bereza.age = 15;
bereza.height = 4;
bereza.name = "Белоснежка";
bereza.weight = 0.56;
tree klen;
klen.age = 34;
klen.height = 12;
klen.name = "Добрыня";
klen.weight = 2;
tree iva;
iva.age = 17;
iva.height = 7;
iva.name = "Мудрёная";
iva.weight = 1.25;
int num;
cout
#include
#include
using namespace std;
struct Tree {
float hight;
float width;
char name;
int age;
};
int main()
{
Tree Oak;
Oak.hight = 7.2;
Oak.width = 5.1;
Oak.name = 'd';
Oak.age = 30;
Tree Linden;
Linden.hight = 4;
Linden.width = 1.3;
Linden.name = 'l';
Linden.age = 15;
Tree Birch;
Birch.hight = 10;
Birch.width = 0.5;
Birch.name = 'b';
Birch.age = 4;
Tree Maple;
Maple.hight = 5.2;
Maple.width = 2.3;
Maple.name = 'k';
Maple.age = 3;
cout
Доброго времени суток. При первой попытке вывода результата, ошибка - требуется определение или имя тэга. Использую Microsoft Visual Studio Community. 16.4.1. Подскажи как победить?) Подчеркивает auto в строке struct auto;
Победил, заменив auto на tachka
создал курсы валют на дату 18.08.2017(если неправильно извините).
#include
#include
#include
#include
#include "stdio.h"
#include
#include
using namespace std;
// курсы валют с помощью структуры
struct course {
float grivna;
float dollar;
float czeck_krone;
float rouble;
};
int main(int argc, char *argv[])
{
course rouble;
rouble.grivna = 2.4;
rouble.dollar = 60.013;
rouble.czeck_krone = 2.7;
rouble.rouble = 1;
course dollar = {0.04, 0.04, 0,02};
course grivna = {25.5, 1.08, 0,4};
course czeck_krone = {0.92, 22.2, 0,37};
int currency;
cout currency;
if (currency == 1) {
cout
почему у тебя в структуре то 3 то 4 переменных? мне кажется это не совсем верно
спасибо
Скажите пожалуйста, в чём у меня ошибка? Задача из универа, визуал студиа корректно решает задачку, но препод говорит, что-то не правильно. Определите пользовательскую структуру данных, которая будет хранит цену, т.е. в структуре будет два поля: rubles и kopecks. Затем напишите функцию на языке программирования С++, которая будет возвращать сумму двух аргументов, имеющих тип определенной выше структуры.
#include
#include
using namespace std;
struct cena
{
int ruble;
int kopeck;
};
void funk1 (int x, int y, int z, int p)
{
setlocale(LC_CTYPE, "Russian");
int n=x+y;
int e=z+p;
if(e>=100)
{
n++;
e=e-100;
}
cout
#include
using namespace std;
struct tree{
int height;
int width;
int age;
char country;
};
int main(){
// Oak
tree oak={50,10,700,'U'};
cout
Когда ты создаёшь машину в структуре с двумя колёсами и осознаёшь, что это мотоцикл
NICE!!!
Если синий то "g".
Тем временем blue: Я ВАМ ЧТО ШУТКА КАКОЙ НАХЕР КЛЕЙ(glue)?
#include "stdafx.h"
#include
#include
using namespace std;
struct Tree {
char name;
int yaer;
int vst;
int shir;
};
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Tree One = {'tA',5,100,30 };
Tree Two = {'tB',10,200,60 };
Tree Tre = {'tC',15,300,120 };
Tree For = {'tD',20,500,240 };
cout
#include
#include
using namespace std;
struct tree
{
float high;
float width;
string name;
int age;
};
tree ar_tree[4];
void imput()
{
cout > i;
i -= 1;
cout > ar_tree[i].high;
cout > ar_tree[i].width;
cout > ar_tree[i].name;
cout > ar_tree[i].age;
}
void output()
{
for (int i = 0; i < 4; ++i)
{
cout
оо я пока смотрел у меня такой мощный вопрос встал, о возможности и способах сериализации структур. Вроде бы их можно толкать через сокеты (читал исходники nginx) но очень интересно прям стало есть ли какие то рантайм методы с помощью которых можно было бы перечислить элементы экземпляра объекта(структуры) и запихать их на пример в JSON. подозреваю, что может существовать, что то типа for ( prop in object) { ... } но я хз я только учусь )))
Структура - колесо, машина - класс
какой стандарт c++ нужео использовать?
Я рекомендую использовать "старую" версию С++, и не использовать большую часть из новых стандартов (С++11, С++17). Например, гугл в своём код-стайле использует максимум С++11. Заходи ко мне, и ты узнаешь ПОЧЕМУ лучше не использовать сложные нововведения в языке.
#include
using namespace std;
struct Auto{
int wheels;
float speed;
char color;
};
int main()
{
Auto shkoda;
shkoda.color= 'r';
shkoda.speed= 314.23;
shkoda.wheels= 4;
Auto audi={4, 300.23, 'b'};
cout
Можно ли создать структуру, чтобы ее компонентами были строки символов?
можно, параметры структур могут быть массивами и матрицами.
А почему в строчке:
shkoda.color = 'r';
Нужно вводить только одну букву, то есть нельзя например ввести вместо r слово red
BATman char это один символ, если надо написать слово, создавай массив символов или используй строку
Спасибо
не нужно создавать массив символов просто пишешь: string color;
а потом когда оформляешь пишешь в двойных кавычках , ну вот типо эттого club chelsi={11,"red", 165}; и все выведется
А это не одно и тоже как атрибуты в html?
количество листьев? Удивило больше, чем скорость машины из 1999, хахах, но спасибо за урок
xD я тоже заметил
А как добавить в структуру строки? char только для одного символа!
Владимир Дракула это жуть даже массив туда не лезет какого-то, использовал просто строки типа string name
char[ ] (в скобках любое число символов)
02:30 создали спид
Продался шкоде ))
Привет Гоша, пишу с 2к19))))
Было не лишнем показать struct + typedef и с указателями
Пример:
typedef struct name
{
std::string names;
int age;
}n;
int main()
{
typedef strcut name;
n *document;
document->names = "names";
document->age = 13;
}
Тут могут быть ошибки так как я давно не юзал....
СОРРИ ЗА НИК xD
Уот мое ДЗ ))
Тип данных однотипный, но тут не в этом же суть, верно?)
#include
using namespace std;
struct Options{
int year;
float leaves;
float height;
};
struct Date {
int year;
float leaves;
float height;
Options Oak;
};
struct Auto {
int year;
float leaves;
float height;
Date Palm;
};
int main(int argc, const char * argv[]) {
Auto Oak = { 154, 43567, 32.34 };
Auto Palm = { 67, 24324, 27.3, };
Auto Birch = { 48, 83294, 35.4 };
cout
Бедный cout.
|error: expected primary-expression before '.' token|
строка : cout
Сделал не про деревья, а телефоны)
#include "stdafx.h"
#include
#include
#include
using namespace std;
struct Phone
{
float price;
float stest;
char color;
int year;
};
int main()
{
setlocale(LC_ALL, "Russian");
int very_cost;
Phone Xiaomi;
Xiaomi.price = 15.999;
Xiaomi.stest = 65.867;
Xiaomi.color = 'red';
Xiaomi.year = 2018;
Phone Meizu;
Meizu.price = 7.999;
Meizu.stest = 45.780;
Meizu.color = 'blue';
Meizu.year = 2017;
Phone Iphone{ 29.998,278.450,'grey',2017 };
float arr[3] = { Xiaomi.price, Meizu.price, Iphone.price };
float max = arr[1];
for (int i = 0; i < 3; i++)
{
if (max < arr[i])
{
max = arr[i];
}
}
float min = arr[1];
for (int i = 0; i < 3; i++)
{
if (min > arr[i])
{
min = arr[i];
}
}
cout
#include
#include
using namespace std;
struct Auto {
float the_weight;
float speed;
string color;
int wheels;
};
int main (int argc, const char * argv []) {
Auto SIDAN = {1088,60,"Green",4 };
cout
Ключевым словом struct создают структуры данных в языке Си, а слово class создаёт тоже самое, только в С++. "Учитэл")))
Вот мое ДЗ:
#include "stdafx.h"
#include
using namespace std;
struct soldier {
float strength = 100;
float education = 100;
float speed = 1-99;
};
int main(int argc, const char * argv[])
{
soldier Max;
Max.education = 100;
Max.speed = 100;
Max.strength = 100;
cout
8 минута уже 3 ролик рекламы а так в целом классно
ЕЕЕЕ, я смог...
#include
#include
#include
using namespace std;
struct Tree {
int year;
float height;
float weight;
};
int main()
{
setlocale(LC_CTYPE,"rus");
Tree one;
one.year = 3;
one.height = 8.38;
one.weight = 2.01;
Tree two;
two.year = 8;
two.height = 13.23;
two.weight = 3.34;
Tree three;
three.year = 1;
three.height = 3.00;
three.weight = 0.90;
Tree four;
four.year = 10;
four.height = 15.29;
four.weight = 5.25;
// Height
cout « "Высота дерева №1 =" « one.height « "
" « "Высота дерева №2 =" « two.height « "
" « "Высота дерева №3 =" « three.height « "
" « "Высота дерева №4 =" « four.height « endl;
// Year
cout « "
" « "Возраст дерева №1 =" « one.year « "
" « "Возраст дерева №2 =" « two.year « "
" « "Возраст дерева №3 =" « three.year « "
" « "Возраст дерева №4 =" « four.year « endl;
// Weight
cout « "
" « "Ширина дерева №1 =" « one.weight « "
" « "Ширина дерева №2 =" « two.weight « "
" « "Ширина дерева №3 =" « three.weight « "
" « "Ширина дерева №4 =" « four.weight « endl;
}
синий - g))
#include
#include
using namespace std;
int main(int argc, const char * argv[]) {
struct tree {
float length;
float height;
int age;
string name;
};
tree dub {3.5 , 20 , 28 , "George" };
tree klen {2.2 , 30 , 30 , "Vladimir"};
tree bereza {3 , 10 , 50 , "Klava"};
tree elka {1 , 7 , 100 , "Zoya"};
cout der;
if (der == 'd')
cout
братан в какой проге пишеш? название плз
xCode вроде.
Viscle studio (если не получилось то Visle studio или Vicle studio )
Ulirich Zzibo Visual Studio. И она для Windows
А почему у меня на name and color выдалось только первая и последняя буква?
struct Teck{
int width;
int height;
float date;
char color;
char name;
};
struct Medate{
int age;
float growth;
char name;
};
int main(int argc, const char * argv[]) { //писать обязательно
Teck Dub;
Dub.width = 2000;
Dub.height = 1000000;
Dub.date = 19.99;
Dub.color = 'red';
Dub.name = 'aca';
cout
я не знаток, но во второй структуре тебе не надо указывать тип данных переменной из первой, то есть в struct Medate у тебя должно быть не char name; , а что-то типа Teck identif; В дальнейшем будешь обращаться к нейму вот так Medate.identif.name... как-то так
а, ну и тип переменных ЧАР - это символ, символ - одна буква, а ты пишешь слова. И слова пишутся в двойных ковычках "Вот так", а символы в одерных 'В'
сколько шкода заплатила тебе за эту рекламу?
Судя по всему ОЧЕНЬ много,раз шкода 1999 года выпуска гоняет со скоростью 315 км/ч
О нет, продался, реклама шкоды 0_0
есил бы он правильно фирму написал)
синий - это b
struct PRICE {
PRICE operator=(PRICE &price)
{
strcpy_s(this->tovar, price.tovar);
strcpy_s(this->magazin, price.magazin);
this->stoimost = price.stoimost;
return *this;
}
char tovar[64];
char magazin[64];
int stoimost;
};
увидел такой пример структуры и не понял
PRICE operator=(PRICE &price)
{
strcpy_s(this->tovar, price.tovar);
strcpy_s(this->magazin, price.magazin);
this->stoimost = price.stoimost;
return *this;
} вот эту структуру
можете объяснить
Очень похоже на объекты JavaScript
Это js похож на c++, а не наоборот
И чем же это удобно? все равно в мейне мы пишем кучу текста типа: shkoda.color = 'r' так почему бы сразу не писать char shkoda_color ='r' ??? п.с. 2:50 если синий то Г (гей)
Преймущиетво в том, что удобней передовать массив структур в другую функцию. Допустим у Вас есть массив структур работников с полями 1)их возраст 2)должность 3)зарплата 4) ФИО. Вам нужно отсортировать их по имени(допустим). Отдельно передовать каждого работника - не удобно и неправильно. Для этого можно просто передать сам массив( а если быть точнее, о указатель на него), и уже напрямую работать с ним.
чет сложно, или пример не особо удачный
Ну вот у Вас есть, допустим массив целых чисел(int). Он заполнен в хаотичном порядке и Вы хотите его отсортировать. Для этого Вам нужно воспользоваться функцией сортировки написаной Вами или воспользоваться библиатечной функцией qsort. Чтоб ими воспользоваться Вам необходимо передать информацию и массиве как параментры в саму функцию. Тоже самое касается структурных массивов. Опять таки, допустим у Вас есть массив структур, элементы которой содержут в себе информацию о работнике: 1)ФИО(массив char'ов) ; 2)возраст(int); 3) Зарплату(int). Этот массив у вас заполнен и Вы хотите, допустим, определить сколько работников получают зарплату свыше 10000 рублей при помощи Вами написаной функции. Для этого Вы в неё передаёте указатель на массив и его кол-во элементов. В функции циклом проходитесь по массиву, сравнивая поле зарплаты текущехо элемента с число 10000. Если сравнение "истина" - добовляете к счётчику(который в начале объявили и инициализировали нулём) + 1 и идёте дальше по массиву; в случае "лошь" просто дальше проходитесь по массиву. Выполняете цикл, до тех пор, пока не пройдётесь по всем сотрудникам. После завершения функции возвращаете счётчик.
P.S. Что б было легче вникнуть, возможно стоит пройтись по темам: массивы, структуры, функии и циклы. На сколько помню, на этом канале есть данные темы в отдельных видео.
#include
using namespace std;
struct tree {
float height;
float width;
};
int main()
{
tree bereza;
bereza.height = 20;
bereza breadth = 1;
cout
Не знаю актуально ещё или нет но ты объявляешь переменную типа float с именем width а потом уже обращаешься к записи в структуру переменной с именем breadth
ky
10:50
Машина 1999 года выпуска гоняет со скоростью 315 км/ч
....
уже в конце 80-х выпустили ferrari с максималкой 325. К концу 90-х уже 400 практически набирали...
@@reachest834 Ок ясно
skoda а не shkoda))
Skoda
А зачем структуры, если есть классы? в чем преимущество структуры перед классом, до этого я изучал только джаву и не вижу вообще, зачем эта структура нужна, лучше сразу использовать класс
Если мне память не изменяет, то все структурные типы и локальные переменные, так же как и адреса возвратов из функций, хранятся в стеке, а ссылочные типы (массивы, экземпляры классов и т.д) хранятся в куче. А обращение к элементам из стека производится гораздо быстрее, чем из кучи. В этом и преймущество. Я не знаю джаву, но допустим в C# в структурах можно создавать методы, конструкторы, реализовывать интерфесы... И хоть есть некоторые ограничения (нельзя наследоваться и т.д), но когда нужно описать что-что не очень большое, это очень круто (хранение в стеке). Ну как-то так...
ты отвечаешь про с++ ,но пишешь про c# :)
Ami00, не, с c# я просто пример привел :) Основное отличие я описал в начале
ну да, основное различие между структурой и классом ты привел в начале, но это справедливо для с#, но не для c++. В с++ ты можешь создать экземпляр структуры в хипе и экземпляр класса на стеке. Как кстати и массив и локальные переменные простых типов можно создать на стеке, а можно и в хипе. программист сам решает где ему что создавать за исключением контейнеров stl, например, std::vector - ты их можешь создать на стеке, но сами элементы контейнера могут быть в хипе. std::string же решает где хранить данные на стеке или в хипе, если мы создали ее на стеке, в зависимости от длины строки: при небольшой длине - он записывает ее в стек, при большей - в хип. И наследоваться от структур можно, короче ты не угадал ни в одном из пунктов, которые привел :)
Как передать структуру в функцию?
указываешь в параметрах ф-ции переменную типа нужной структуры:
void Function (Auto shkoda) {
//блок команд;
}
понятно,спасибо
Schkoda, так сказатб
The
Сразу видно, автор любитель ВАГОВ))
Сорі я в танку а шо за програма в якій він програмує
0