4 / 4 / 1
Регистрация: 09.08.2009
Сообщений: 232
1

Программа работает не так как заявлено, нужен комментарий.

11.08.2009, 00:24. Показов 1042. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет. Ещё одна проблемка. Списал ещё одну прогу у Дэвиса, продолжаю учить по его книге. Программу дополнил командой удержания панели после вычислений, кириллическим отображением и #include <iostream> using namespace std;. На этот раз обошлось без errors, но программа не производит заявленных операций, а сразу закрывается после попытки внести данные. Я так понимаю, что программа считает, что она уже всё сделала после запуска. Подскажите пож, что я не так написал?


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
//BranchDemo - введите два числа.
//Если первый аргумент больше,
//выполняем операторы первой ветви,
//если меньше - второй
 
#include <conio.h>
#include <stdio.h>
#include <iostream>
using namespace std;
 
#include <windows.h>
char  bufRus[256];
 
char* Rus(const char* text)
{
      CharToOem(text, bufRus);
      return bufRus;
      }
 
int main (int argc, char* pszArgs[])
{
    //вводим первый аргумент...
    int arg1;
    cout << Rus("Введите arg1: ") <<endl;
    
    //...второй
    int arg2;
    cout << Rus("Введите arg2: ") <<endl;
    
    //Оператор условного перехода, принятие решения
    if (arg1 > arg2)
    {
             cout << Rus("аргумент 1 больше чем аргумент 2\n") <<endl;
             }
             else
             {
                 cout << Rus("аргумент 1 не больше, чем аргумент 2\n") <<endl;
                 }
getch();
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.08.2009, 00:24
Ответы с готовыми решениями:

Защитить свой протокол от изменений так, чтобы нельзя было незаметно изменить его. Объект CAPICOM.HashedData (нужен комментарий)
Предполагается, что при записи протокола работы скрипта используется подписывание каждой строки...

Программа работает не совсем так, как нужно
import java.io.*; public class Pr2{ public static void main(String args) throws...

Программа работает неправильно (не так, как хотелось бы)
Здравствуйте! Есть задача: &quot;Определите, можно ли вычеркнуть из данного массива одно число так,...

Программа под отладчиком работает не так как без отладчика. Магия?
Ситуёвина такова, что прога правильно работает под отладчиком, но неправильно без него. Вот код:...

8
UNIX-way
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
11.08.2009, 00:29 2
C++
1
2
3
//вводим первый аргумент...
int arg1;
cout << Rus("Введите arg1: ") <<endl;
И где тут ввод?
Вот так:
C++
1
2
3
4
//вводим первый аргумент...
int arg1;
cout << Rus("Введите arg1: ") <<endl;
cin >> arg1;//собственно ввод аргумента
Аналогично и со вторым аргументом.
А getch(); лучше заменить на system("PAUSE");
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
11.08.2009, 00:31 3
+ ко второму посту выкинуть stdio.h и conio.h
0
4 / 4 / 1
Регистрация: 09.08.2009
Сообщений: 232
11.08.2009, 00:54  [ТС] 4
stdio.h и conio.h, это тоже относится к старым компиляторам, как и <iostream.h>?
А sistem("PAUSE") писал не в том регистре, потому и не работало, кажется ясн.

Добавлено через 18 минут 6 секунд
С cin я понял, какие функции выполняет stdio.h и conio.h?
Прога работает - спасибо! Но только в таком виде:
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
//BranchDemo - введите два числа.
//Если первый аргумент больше,
//выполняем операторы первой ветви,
//если меньше - второй
#include <stdio.h> 
#include <conio.h>
#include <iostream>
using namespace std;
 
#include <windows.h>
char  bufRus[256];
 
char* Rus(const char* text)
{
      CharToOem(text, bufRus);
      return bufRus;
      }
 
int main (int argc, char* pszArgs[])
{
    //вводим первый аргумент...
    int arg1;
    cout << Rus("Введите arg1: ") <<endl;
    // Ввод аргумента
    cin >>arg1; 
    
    //...второй
    int arg2;
    cout << Rus("Введите arg2: ") <<endl;
    cin >>arg2;
    
    //Оператор условного перехода, принятие решения
    if (arg1 > arg2)
    {
             cout << Rus("аргумент 1 больше чем аргумент 2\n") <<endl;
             }
             else
             {
                 cout << Rus("аргумент 1 не больше, чем аргумент 2\n") <<endl;
                 }
getch();
return 0;
}
т.е. только с getch(); и #include <stdio.h>
#include <conio.h>.
Почему лучше sistem("PAUSE")?

Добавлено через 49 секунд
Блин в код смайлы налезли(
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
11.08.2009, 00:58 5
stdio.h - из языка С, а не С++, conio.h - используется в старых компиляторах. cin содержится в iostream. Какой средой пользуешся?
0
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
11.08.2009, 01:01 6
Выкинь Дэвиса! Возьми Страуструпа.
0
4 / 4 / 1
Регистрация: 09.08.2009
Сообщений: 232
11.08.2009, 01:18  [ТС] 7
M128K145, Dev C++, новый.

Добавлено через 3 минуты 9 секунд
Gravity, таки да, Дэвис устарел судя по устаревшим операторам, которые он использует. Как книга называется, Страуструпа?

Добавлено через 6 минут 34 секунды
39 C:\Documents and Settings\I159\Мои документы\C++\BranchDemo_1.0.cpp `sistem' undeclared (first use this function) . Вот такое мне компилятор пишет. Как ввести sistem? Я понимаю, что вверху чего-то не хватает, потому как при таких раскладах две ошибки объявляет.
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
//BranchDemo - введите два числа.
//Если первый аргумент больше,
//выполняем операторы первой ветви,
//если меньше - второй
#include <iostream>
using namespace std;
 
#include <windows.h>
char  bufRus[256];
 
char* Rus(const char* text)
{
      CharToOem(text, bufRus);
      return bufRus;
      }
 
int main (int argc, char* pszArgs[])
{
    //вводим первый аргумент...
    int arg1;
    cout << Rus("Введите arg1: ") <<endl;
    // Ввод аргумента
    cin >>arg1; 
    
    //...второй
    int arg2;
    cout << Rus("Введите arg2: ") <<endl;
    cin >>arg2;
    
    //Оператор условного перехода, принятие решения
    if (arg1 > arg2)
    {
             cout << Rus("аргумент 1 больше чем аргумент 2\n") <<endl;
             }
             else
             {
                 cout << Rus("аргумент 1 не больше, чем аргумент 2\n") <<endl;
                 }
sistem("PAUSE");
return 0;
}
0
121 / 121 / 14
Регистрация: 14.03.2009
Сообщений: 462
11.08.2009, 01:23 8
ну так system, а не sistem
кстати внутри ковычек в систем регистр значения не имеет
0
4 / 4 / 1
Регистрация: 09.08.2009
Сообщений: 232
11.08.2009, 01:32  [ТС] 9
))) ппц! EnzoMatrix, спасибо))) (за английский)

Добавлено через 2 минуты 25 секунд
Да, и system("PAUSE") ПОАДЕКВАТНЕЕ работает.
0
11.08.2009, 01:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.08.2009, 01:32
Помогаю со студенческими работами здесь

Программа интерпритации чисел в их названия работает немного не так, как задумано
Добрый день. Занимаюсь по Страусу. Вот упражнение: &quot;Создайте вектор, хранящий десять строковых...

Прочитать символы из файла, используя eof() (программа работает не так, как ожидается)
Здравствуйте, мне нужно прочитать символы из файла(желательно с пробелами). Использую eof(), но...

Объяснить, почему программа для подсчёта скобок в тексте работает не так, как ожидается
я ввожу текст в блокноте с скобками, мне нужно подсчитать количество скобок в программе, но у меня...

Почему при вводе элементов массива, программа прекращает работу или работает не так, как ожидается?
При вводе элементов массива, программа прекращает работу или не правильно работает. Например если...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru