Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Apollo1222
1 / 1 / 0
Регистрация: 10.10.2016
Сообщений: 124
#1

Объясните пожалуйста код - C++

30.11.2016, 19:57. Просмотров 181. Ответов 4

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include"stdafx.h"
#include<string.h>
#include <iostream>
 
using namespace std;
 
const int  MAX = 5;
 
struct polinom
{
    int stepen[30];
    int koifetient[30];
}polinom_list[MAX];
 
void init_list()
{
    register int t;
 
    for (t = 0; t<MAX; ++t) polinom_list[t].stepen[0] = '\0';
}
 
int find_free()
{
    register int t;
 
    for (t = 0; polinom_list[t].stepen[0] && t<MAX; ++t);
    if (t == MAX) return -1;
    return t;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2016, 19:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объясните пожалуйста код (C++):

Объясните пожалуйста код - C++
#include &lt;iostream&gt; template &lt;typename T&gt; struct NameOf {}; #define DEF_TYPENAME(type) template &lt;&gt; \ struct NameOf&lt;type&gt; {\ ...

объясните, пожалуйста, код - C++
есть программа, но не до конца понятно, что она делает... #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;string&gt; #include...

Объясните код пожалуйста - C++
FILE* fp = NULL; char* filename = &quot;m:\\2.txt&quot;; if ((fp = fopen(filename,&quot;r&quot;)) == NULL) cout&lt;&lt;&quot;Unable to open...

объясните пожалуйста код - C++
объясните пожалуйста код, желательно каждую строчку пояснить #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;sstream&gt; #include...

Объясните, пожалуйста, код - C++
bool userAgeIs16 = age == 16; if( userAgeIs16 ) { Console.WriteLine(\&quot;В этом возрасте уже можно водить машину!\&quot;); } ...

Объясните, пожалуйста, данный код - C++
Здравствуйте, объясните пожалуйста построчно данный код. Задача: В одномерном массиве исключить все вхождения заданного числа. Массив...

4
J5
25 / 25 / 6
Регистрация: 22.12.2013
Сообщений: 82
30.11.2016, 20:18 #2
Apollo1222, уточните, какие конкретно вам строки объяснить?
Навскидку:
C++
1
2
3
4
5
struct polinom//объявление структуры с названием полином которая состоит из
{
    int stepen[30];//массива с 30 элементами типа целых чисел
    int koifetient[30];//массива с 30 элементами типа целых чисел (т.е. всего 60, но разных по наименованию)
}polinom_list[MAX];//после объявления структуры данная строка сразу же создает массив из 5 (MAX = 5) элементов типа данной структуры.
1
Lambont
41 / 41 / 22
Регистрация: 23.11.2013
Сообщений: 94
30.11.2016, 20:53 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Apollo1222,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include<string.h>
#include <iostream>
 
using namespace std;
 
// объявление глобальной целочисленной (int) констатнты MAX, кот. равная 5
const int  MAX = 5;
 
struct polinom // определение структуры polinom. Она состоит из:
{
    int stepen[30]; //  целочисленный (int) массив stepen из 30 элементов
    int koifetient[30]; // целочисленный (int) массив koifetient из 30 элементов
// глобальное объявление массива объектов (polinom_list) структуры polinom из 5(MAX) элементов
}polinom_list[MAX];
 
// функция, которая видимо предполагалась для инициализации структуры массива polinom_list...
// но что-то тут очень нездоровое творится =)
void init_list()
{
    // объявление целочисленной локальной переменной t
    // и рекомендация (sic!) по размещению её не в стеке, а в регистре процессора
    // (ИМХО сомневаюсь, что компилятор когда-нибудь в жизни последует этой рекомендации)
    register int t; 
 
// Цикл, который занесёт в первый элемент поля stepen цифру 0  для каждого элмента массива polinom_list
    for (t = 0; t<MAX; ++t) polinom_list[t].stepen[0] = '\0';
}
 
// функция, которая видимо предполагалась для поиска количества ненулевых полей stepen у массива polinom_list...
// но если сопоставить с предыдущей функцией void init_list(), то эта функция всегда будет возврвщать -1
int find_free()
{
    // объявление целочисленной локальной переменной t
    // и рекомендация (sic!) по размещению её не в стеке, а в регистре процессора
    // (ИМХО сомневаюсь, что компилятор когда-нибудь в жизни последует этой рекомендации)
    register int t;
 
    // Цикл, который будет инкрементировать t, пока первый элемент поля stepen равен 0 для polinom_list[t] или если t меньше 5(MAX)
    for (t = 0; polinom_list[t].stepen[0] && t<MAX; ++t);
    //если t равень 5(MAX), то возвращает -1 (видимо в случае ненайденных ненулевых массивов stepen в массиве polinom_list)
    if (t == MAX) return -1;
    // иначе возвращает значение t
    return t;
}
1
J5
25 / 25 / 6
Регистрация: 22.12.2013
Сообщений: 82
30.11.2016, 23:06 #4
Lambont, чего вы так жестоко относительно register?) По поводу присваивания нуля, то скорее присваивание целочисленной переменной конечного нулевого символа, что само по себе странно, как вы заметили.
Цитата Сообщение от Lambont Посмотреть сообщение
for (t = 0; t<MAX; ++t) polinom_list[t].stepen[0] = '\0';
1
Lambont
41 / 41 / 22
Регистрация: 23.11.2013
Сообщений: 94
01.12.2016, 00:22 #5
Цитата Сообщение от J5 Посмотреть сообщение
чего вы так жестоко относительно register?)
Да не, просто подметил, что ключевое слово register практически никогда не использует компилятор, ну по крайней мере в практике он всегда игнорировал, не знаю даже какой такой должен быть случай, когда компилятор последует этому совету
Цитата Сообщение от J5 Посмотреть сообщение
По поводу присваивания нуля, то скорее присваивание целочисленной переменной конечного нулевого символа, что само по себе странно, как вы заметили.
Так '\0'==0 же, например int a = '\0'; откомпилит также, как и int a = 0;, вот я и написал про 0, хотя на вид выглядит, да, странненько. Мне вообще кажется исходя из 2 строки #include<string.h>, что изначально планировалось использовать строки и возможно поля структуры polinom должны были содержать char[] или std::string, а вот до кода донеслось только эхо в виде '\0'
0
01.12.2016, 00:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2016, 00:22
Привет! Вот еще темы с ответами:

Объясните код, пожалуйста, файловый поток - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; using namespace std; void main() { setlocale(LC_ALL, &quot;&quot;); ...

Класс Вектор. объясните пожалуйста код! - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;cstdlib&gt; using namespace std; class TVector { private: double...

Объясните пожалуйста, как конкретно работает код - C++
Программа считывает из файла фамилии, имена, годы рождения и балы студентов, и записывает в другой файл фамилии, начинающейся с букв А и Б...

Объясните пожалуйста код и ход работы программы на С++ - C++
Вот код фрагмента программы: int i; int l=strlen(str); int k=strlen(fsubstr); bool fl=true; for...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.