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

непонятно что выводит на печать - C++

Восстановить пароль Регистрация
 
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
16.01.2013, 14:39     непонятно что выводит на печать #1
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
#include <iostream>
#include <cstring>
#include <cctype>
using namespace std;
 
const char TAB='\t';
char Look;
 
void GetChar();
void Error(string s);
void Abort(string s);
void Expected(string s);
void Match(char x);
char GetName();
char GetNum();
void Emit(string s);
void EmitLn(string s);
void Init();
void Expression();
 
int main()
{
    Init();
    Expression();
    system("PAUSE>>0");
    return 0;
}
void Init() {
     GetChar();
}
 
void Expression() {
     string str;
     while (Look != 'Q') {
     if (ispunct(Look)) {
         switch (Look) {
                case '+': str="add ax, "+GetNum(); break;
                case '-': str="sub ax, "+GetNum(); break;               
                default: Expected("Addop");
         }
     }    
     else {
          str="mov ax, "+GetNum();
          EmitLn(str);
     }
     }
}
 
void GetChar() {
     cin>>Look;
}
 
void Error(string s) {
     cout<<"ERROR: "<<s<<".";
}
 
void Abort(string s) {
     Error(s);
     cout<<endl;
     system("pause>>0");
     exit(1);
}
 
void Expected(string s) {
     Abort(s+" Expected");
}
 
void Match(char x) {
     if (Look == x) 
        GetChar();
     else {
          string s="\'";
          s+=x+'\'';
          Expected(s);
          }
}
 
char GetName() {
     if (!isalpha(Look))
        Expected("Name");
     char ch=tolower(Look);
     GetChar();
     return ch;
}
 
char GetNum() {
     if (!isdigit(Look))
        Expected("Integer");
     char ch=tolower(Look);
     GetChar();
     return ch;
}
 
void Emit(string s) {
     cout<<TAB<<s;
}
 
void EmitLn(string s){
     cout<<TAB<<s<<endl;
}
Миниатюры
непонятно что выводит на печать  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2013, 14:39     непонятно что выводит на печать
Посмотрите здесь:

Непонятно что за ошибка. Классы. C++
C++ Арксинус числа выдаёт непонятно что
непонятно что не правильно C++
программа, которая предлагает пользователю ввести два целых числа, получает эти числа и после этого выводит большее на печать C++
C++ Создать функцию, которая выводит на печать и возвращает сумму n элементов ряда
C++ Что выводит массив?
C++ Это обьект, переменная или что? Как то вовсе непонятно
Описать функцию PoslSu(t), которая выводит на печать последнюю строку непустого текстового файла C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
16.01.2013, 14:43     непонятно что выводит на печать #2
Fatal Error ну текст ошибки выводит. Мама не учила исключения использовать?
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
16.01.2013, 17:40  [ТС]     непонятно что выводит на печать #3
Invader_Zim, неа. а в чем ошибка? я код с паскаля перевожу, мои познания в плюсах очень малы

Добавлено через 2 часа 27 минут
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
#include <iostream>
#include <cstring>
#include <cctype>
using namespace std;
 
const char TAB='\t';
char Look;
 
void GetChar();
void Error(string s);
void Abort(string s);
void Expected(string s);
void Match(char x);
char GetName();
char GetNum();
void Emit(string s);
void EmitLn(string s);
void Init();
void Expression();
 
int main()
{
    Init();
    Expression();
    system("PAUSE>>0");
    return 0;
}
void Init() {
     GetChar();
}
 
void Expression() {
     string str;
     if (isdigit(Look))
        str="mov ax, ";//+Look;       ///если написать str="mov ax, "+Look; то вылезет исключение при вводе любого символа... 
     else if (ispunct(Look))
          if (Look == '-')
             str="sub ax, ";//+Look;     и тут тоже
          else Expected("Integer or '-'");
          else Expected("Integer or '-'");
          EmitLn(str);
}
 
void GetChar() {
     cin>>Look;
}
 
void Error(string s) {
     cout<<"ERROR: "<<s<<".";
}
 
void Abort(string s) {
     Error(s);
     cout<<endl;
     system("pause>>0");
     exit(1);
}
 
void Expected(string s) {
     Abort(s+" Expected");
}
 
void Match(char x) {
     if (Look == x) 
        GetChar();
     else {
          string s="\'";
          s+=x+'\'';
          Expected(s);
          }
}
 
char GetName() {
     if (!isalpha(Look))
        Expected("Name");
     char ch=tolower(Look);
     GetChar();
     return ch;
}
 
char GetNum() {
     if (!isdigit(Look))
        Expected("Integer");
     char ch=tolower(Look);
     GetChar();
     return ch;
}
 
void Emit(string s) {
     cout<<TAB<<s;
}
 
void EmitLn(string s){
     cout<<TAB<<s<<endl;
}
что за бред со сложением строки и символа?

Добавлено через 23 минуты
а вот так работает...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Expression() {
     string str;
     if (isdigit(Look)){
        str="mov ax, ";
        str+=+Look;
        }
     else if (ispunct(Look))
          if (Look == '-'){
             str="sub ax, ";
             str+=+Look;
             }  
          else Expected("Integer or '-'");
          else Expected("Integer or '-'");
          EmitLn(str);
}
Yandex
Объявления
16.01.2013, 17:40     непонятно что выводит на печать
Ответ Создать тему
Опции темы

Текущее время: 01:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru