Форум программистов, компьютерный форум CyberForum.ru

Построить конечный автомат из вещественных чисел в 16-речной системе счисления - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массив из структур с двумя целочисленными полями http://www.cyberforum.ru/cpp-beginners/thread1030756.html
Я попытался написать программу, определяющую массив из структур с двумя полями, содержащими 5 элементов. Ввод значений элементов с консоли. А функция должна была вычислять произведение первых полей тех элементов, сумма полей которых четна. Но что то пошло не так=) #include "stdafx.h" #include <stdio.h> #include <iostream> #include <locale> struct one{ int x;
C++ Программа нахождения обратной матрицы Нужно написать программу нахождения обратной матрицы http://www.cyberforum.ru/cpp-beginners/thread1030755.html
Не могу написать программы!(С++) C++
Нужно написать 4 программы, я самостоятельно смог написать только одну, и половину другой)) Одна тема - одно задание. Задания должны быть выложены в виде текста. В виде картинок запрещено
Функция сортировки массива в структуре C++
Помогите пожалуйста в написании функции осуществляющей перестановку строк двухмерного массива: первую и последнюю вторую и предпоследнюю, которая будет включена в структуру. Буду очень признателен. // Итоговая работа #include "stdafx.h" #include <cstdio> #include <cstdlib> #include <iostream> #include<math.h>
C++ посоветуйте литературу, новичку http://www.cyberforum.ru/cpp-beginners/thread1030730.html
:help: знаю, конечно, что в разделе "важно" (но всё-таки один раз живём :beach:) эта тема уже обсуждена, но всё-таки можете посоветовать книгу? Начинаю не с нуля, кое-какой опыт есть :) нужна книга где хорошенько бы объяснялась ,так сказать, грамматика с++, все эти функции напугают кого угодно :)
C++ Обнулить в квадратной матрице элементы, лежащие выше главной и ниже побочной диагонали Как обнулить в квадратной матрице элементы, лежащие выше главной и ниже побочной диагонали. Условный оператор не использовать Каков принцип? подробнее

Показать сообщение отдельно
fkty
1 / 1 / 0
Регистрация: 06.01.2013
Сообщений: 265
24.12.2013, 19:11  [ТС]     Построить конечный автомат из вещественных чисел в 16-речной системе счисления
в чем здесь ошибка?(рекурсия)
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
char ch;//входной символ
float n,n1,result;
int k;
 
void q0();
void q1();
void q2();
void q3();
void q4();
void q5();
void error();
 
int is_digit(char c)
{
  return '0'<=c && c <='9';
}
 
int digit (char c)
{ return (c-'0');
}
 
int is_letter(char c)
{
  return 'A'<=c && c <='F';
}
 
int letter (char c)
{
return c-'A'+10;
}
 
void error()
{
    printf("Error!\n");
    return;
}
 
void q0()
{
    if ((is_digit(ch)) || (is_letter(ch)))
    {
        n=digit(ch);
        ch=getchar();
        q1();
    }
    else
        if (ch== '.')
        {
            ch=getchar();
            q2();
        }
        else
        {
            error();
            return;
        }
}
 
void q1()
{
    if (is_digit(ch))
    {
        n=n*16+digit(ch);
        ch=getchar();
        q1();
    }
    else
        if  (is_letter(ch))
        {
            n=n*16+letter(ch);
            ch=getchar();
            q1();
        }
        else
            if (ch=='.')
            {
                ch=getchar();
                q3();
            }
            else
                if (ch=='/n')
                {
                    result=n;
                    q5();
                }
                else
                {
                    error();
                    return;
                }
 
}
 
void q2()
{
    if ((is_digit(ch)) || (is_letter(ch)))
    {
        k/=16;
        n+=n*k;
        ch=getchar();
        q4();
    }
    else
    {
        error();
        return;
    }
 
}
 
void q3()
{
    if ((is_digit(ch)) || (is_letter(ch)))
    {
        k/=16;
        n1+=n*k;
        ch=getchar();
        q3();
    }
    else
        if (ch=='/n')
        {
            n+=n1;
            result=n;
            q5();
        }
        else
        {
            error();
            return;
        }
 
}
 
void q4()
{
    if ((is_digit(ch)) || (is_letter(ch)))
    {
        k/=16;
        n+=n*k;
        ch=getchar();
        q4();
    }
    else
        if (ch=='/n')
        {
            result=n;
            q5();
        }
        else
        {
            error();
            return;
        }
}
 
void q5()
{
    return;
}
 
void main()
{
    k=1;
    result=0;
    n1=0;
    n=0;
    ch=getchar();//указание на первый символ
    q0();
    printf("result=%d",result);
    getch();
    return;
}
 
Текущее время: 15:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru