Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 24

Работа со структурами

04.06.2013, 15:56. Показов 6280. Ответов 50
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Только изучаю С++ (раньше довольно неплохо программил на Делфи) и столкнулся с вопросом.
Допустим есть две структуры:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct ABC_CONT_STATE
    {                          
        BYTE Symb, Fr;                  
        struct ABC_CONT* Successor;
    } _PACK_ATTR;                   
 
 
static struct ABC_CONT
{                 
    BYTE NmStat, Flag;                   
    WORD SummFreq;                         
    struct ABC_CONT_STATE *Stat;
    struct ABC_CONT* Sufix;                    
} _PACK_ATTR* MaxContext;
 
struct ABC_CONT_STATE * p;
Что означает следующее обращение к переменной "р":

C++
1
p[0].Fr = p[-1].Fr;
И заодно непонятно, что означает инкремент этой переменной:

C++
1
(++p)->Fr; // увеличение на единицу элемента Fr?
или

C++
1
p++; // А тут что увеличивается на единицу, все элементы?
Заранее всем спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.06.2013, 15:56
Ответы с готовыми решениями:

Работа со структурами
struct data_type { int day; int month; int year; }data_birthday; /*нужна ли здесь эта переменная или достаточно вызвать...

Работа с структурами
#include <cstdlib> #include <iostream> using namespace std; struct struc{ char* a; int x; }

Работа со структурами
Всем доброго времени суток! Имеется следующая задача: Написал следующий код: #include <iostream> #include...

50
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 24
06.06.2013, 16:46  [ТС]
Студворк — интернет-сервис помощи студентам
Форумом я точно не ошибся.
А кто сказал, что код простой? Да, он странный. Так поэтому я и задаю вопросы, что если бы это был Делфи, я бы его может и без посторонней помощи разобрал. А тут С++, основные моменты которого я думал, что для себя уяснил. Но когда столкнулся с описанными выше структурами и выражениями, решил обратиться за помощью.
Если я правильно понял из всех философских (и не только) ответов на мой вопрос, то выражение:
C++
1
Stat->NmStat=curr->NmStat+(curr->SummFreq > 11*(curr->NmStat+1));
нужно понимать так:
Pascal
1
Stat.NmStat:=curr.NmStat+(curr.SummFreq or (11*(curr.NmStat+1)));
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
06.06.2013, 16:56
Цитата Сообщение от fominov Посмотреть сообщение
Форумом я точно не ошибся.
Тогда кому этот вопрос?
Цитата Сообщение от fominov Посмотреть сообщение
Правильно ли я понимаю первую операцию (в синтаксисе Делфи)?
Тут кто-то должен знать синтаксис Делфи?
Цитата Сообщение от fominov Посмотреть сообщение
А кто сказал, что код простой?
Сложный и странный - разные вещи.

Цитата Сообщение от fominov Посмотреть сообщение
нужно понимать так:Код Pascal
1 Stat.NmStat:=curr.NmStat+(curr.SummFreq or (11*(curr.NmStat+1)));
Форумом не ошиблись?
0
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 24
06.06.2013, 17:05  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Тут кто-то должен знать синтаксис Делфи?
Форумом не ошиблись?
Следуя Вашей логике я не могу задать этот вопрос и в ветке посвящённой Делфи, потому что такой же как Вы человек ответит: "Тут кто-то должен знать синтаксис С++? Форумом не ошиблись?"

Что мне его в теме РНР задавать?
0
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
06.06.2013, 17:08
У вас
Цитата Сообщение от fominov Посмотреть сообщение
(curr->SummFreq > 11*(curr->NmStat+1)
вернет boolean, а потом вы булеан складываете с curr->NmStat...

Ерунда какая-то
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
06.06.2013, 17:21
Цитата Сообщение от fominov Посмотреть сообщение
Следуя Вашей логике я не могу задать этот вопрос и в ветке посвящённой Делфи, потому что такой же как Вы человек ответит: "Тут кто-то должен знать синтаксис С++? Форумом не ошиблись?"
Логика другая. Правильно ставить вопрос: не то, как это выглядит в синтаксисе Делфи, а что это значит в С++ (как это понимать). Типа: что означает данная конструкция? На любом форуме это поймут правильно.
0
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 24
06.06.2013, 17:23  [ТС]
У меня такое впечатление, что тут многие думают, что я этот код выдумываю.
В интернете есть куча реализаций алгоритма кодирования (сжатия) PPMD на С++. Посмотрите сами и убедитесь.

Добавлено через 2 минуты
Цитата Сообщение от alsav22 Посмотреть сообщение
Логика другая. Правильно ставить вопрос: не то, как это выглядит в синтаксисе Делфи, а что это значит в С++ (как это понимать). Типа: что означает данная конструкция?
Я просто перевожу на Делфи, так как мне этот язык понятен. И переводя код С++ на Делфи, я сразу облегчаю себе понимание алгоритма программы.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
06.06.2013, 17:29
Цитата Сообщение от chizz Посмотреть сообщение
Ерунда какая-то
Код для шифрования, синтаксис шифрованный, и ТС "шифруется". Настоящая криптография!

Добавлено через 1 минуту
Цитата Сообщение от fominov Посмотреть сообщение
Делфи, так как мне этот язык понятен.
Ключевое слово "мне".
Цитата Сообщение от fominov Посмотреть сообщение
И переводя код С++ на Делфи, я сразу облегчаю себе понимание
Ключевое слово "себе". Себе облегчайте на здоровье. Я же не об этом, а о ваших вопросах на этом форуме.
Формум по С++, поэтому зачем спрашивать, так ли это должно выглядить на Делфи или не так?
0
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 24
06.06.2013, 17:45  [ТС]
Опять философия...
Хорошо, забудем про Делфи.
Просто объясните это выражение:
C++
1
Stat->NmStat=curr->NmStat+(curr->SummFreq > 11*(curr->NmStat+1));
Чтобы было наглядно, но не на Делфи (раз он так всех раздражает и о слове делфи здесь написано больше чем дано ответов по коду С++), давайте присвоим переменным определённые (условные) значения:
C++
1
2
curr->NmStat=3;
curr->SummFreq=12;
Какое значение примет Stat->NmStat при таких условиях?

И какое значение при таком условии:
C++
1
2
curr->NmStat=3;
curr->SummFreq=60;
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
06.06.2013, 18:19

Не по теме:

Цитата Сообщение от fominov Посмотреть сообщение
Опять философия...
А куда без неё?
Цитата Сообщение от fominov Посмотреть сообщение
и о слове делфи здесь написано больше чем дано ответов по коду С++
Правильно ставьте вопросы и о Делфи вообще не услышите...
Цитата Сообщение от fominov Посмотреть сообщение
Хорошо, забудем про Делфи.
Наконец-то...



Добавлено через 14 минут
Цитата Сообщение от fominov Посмотреть сообщение
Просто объясните это выражение:
C++
1
Stat->NmStat=curr->NmStat+(curr->SummFreq > 11*(curr->NmStat+1));
Полю Stat->NmStat присваивается сумма поля curr->NmStat и результата выражения (curr->SummFreq > 11*(curr->NmStat+1)).

Добавлено через 10 минут
(curr->SummFreq > 11*(curr->NmStat+1)). Результат этого выражения: к полю curr->NmStat прибавляется 1, результат умножается на 11, полученный результат сравнивается с полем curr->SummFreq, если поле curr->SummFreq больше, то результатом всего выражения будет 1, если нет - 0.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
07.06.2013, 11:11
Все это делает одно и то же:
C++
1
Stat->NmStat=curr->NmStat+(curr->SummFreq > 11*(curr->NmStat+1));
C++
1
(curr->SummFreq>11*(curr->NmStat+1))?Stat->NmStat=curr->NmStat+1:Stat->NmStat=curr->NmStat;
C++
1
2
3
4
5
6
7
8
if( curr->SummFreq > 11*(curr->NmStat+1) )
  {
  Stat->NmStat=curr->NmStat + 1;
  }
else
  {
  Stat->NmStat=curr->NmStat;
  }
C++
1
2
3
4
5
6
7
int variable;
switch( curr->SummFreq > 11*(curr->NmStat+1) )
  {
  case true  : variable = 1; break;
  case false : variable = 0; break;
  }
Stat->NmStat=curr->NmStat + variable;
0
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 24
07.06.2013, 12:52  [ТС]
Всем спасибо! Теперь всё понятно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.06.2013, 12:52

Работа со структурами
У меня есть структура, содержащая фамилии учеников и их оценки по 3 предметам. Как мне посчитать средний балл каждого студента и вывести...

Работа со структурами
вот такая задача: Распечатать список учеников музыкальной школы, которые учатся играть на скрипке. Указать сколько лет они занимаются...

Работа со структурами
Почему-то после того как я ввожу количество студентов программа сама завершается с кодом 0. #include "stdafx.h" ...

Работа со структурами
Организовать файл с указанной структурой в задании 1. Осуществить просмотр данных файла, которые соответствуют критериям отбора...

Работа со структурами
Помогите написать программу подобного рода: Работа со структурами. Программа должна содержать функции, необходимые для выполнения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
51
Ответ Создать тему
Новые блоги и статьи
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru