Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 05.03.2011
Сообщений: 11

Посмотрите код, подскажите что исправить

06.03.2011, 13:11. Показов 1162. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот 4 дня назад начал изучать C++

Учительница по информатике дала задачу:
Вводятся 3 числа. Если положительное - возвести во 2 степень. Если отрницательное - в 4 степень.

Вот что у меня получилось:

gui.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
#include <iostream>
using namespace std;
 
// Название метода взято из WordPress :) Метод выводит "окно" приветствия.
void getHeader()
{
    cout << "Превед, медвед!!!!!!111!!11!!!! :D" << n;
    cout << "Получайте удовольствие! ;)" << n;
}
 
// Этот метод выводит линию в строку... замашка на GUI :)
void getLine()
{
    cout << "________________________________________________________________________________" << n;
}
 
// Этот метод просто выводит пустую строку... точнее символ перевода строки... во как! %)
void getSpace()
{
    cout << n;
}
 
// Этот метод отоброжает канец программы %)
void getEnd()
{
    cout << "Это всё! :P Хорошего дня!" << n;
}
functions.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
// Объявляем функции и методы.
 
// GUI блок.
void getHeader();
void getLine();
void getSpace();
void getEnd();
 
// Остальные методы и функции.
void fuck_a(int);
void fuck_b(int);
void fuck_c(int);
integers.h
C++
1
2
3
4
5
// Объявляем переменные и константы.
const char n = '\n'; // Это символ перевода строки.
const char s = ' '; // А это... пробел :)
 
int result_a, result_b, result_c;
main.cpp
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
#include <iostream>
#include "integers.h"
#include "functions.h"
#include "gui.h"
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL,".1251");
 
    int a, b, c;
 
    getLine();
    getHeader();
    getLine();
 
    cout << "Введите 3 числа:" << n;
    getLine();
 
    // Вводим переменную "а" и обрабатываем ее... как умеем :)
    cout << "a: ";
    cin >> a;
    fuck_a(a);
    getLine();
 
    // Переменная "b".
    cout << "b: ";
    cin >> b;
    fuck_b(b);
    getLine();
    
    // Ну и конечно переменная "c"... куда же без нее %)
    cout << "c: ";
    cin >> c;
    fuck_c(c);
    getLine();
    
    cout << n;
    cout << "Результат в виде одной строки:" << n;
    getLine();
    cout << result_a << s << result_b << s << result_c << n;
    getLine();
    getEnd();
    getSpace();
 
    cout << "Пожалуйста, напишите что-нибудь ;)" << n;
    cin >> a;
 
    return 0;
}
 
void fuck_a(int a)
{
    // Проверяем условие для переменной "a". Если она больше или равна нулю, то возводится во
    // 2 степень. А если отрицательная то в 4 степень.
    
    if (a >= 0)
    {
        cout << "a положительное или нуль. Мы делаем: a ^ 2 | Результат: ";
        a = a * a;
        result_a = a;
        cout << a << n;
        
    }
    else
    {
        cout << "a отрицательноe. Мы делаем: a ^ 4 | Результат: ";
        a = a * a * a * a;
        result_a = a;
        cout << a << n;
    }
}
 
void fuck_b(int b)
{
    // Насилуем переменную "b".
 
    if (b >= 0)
    {
        cout << "b положительное или нуль. Мы делаем: b ^ 2 | Результат: ";
        b = b * b;
        result_b = b;
        cout << b << n;
    }
    else
    {
        cout << "b отрицательное. Мы делаем: b ^ 4 | Результат: ";
        b = b * b * b * b;
        result_b = b;
        cout << b << n;
    }
}
 
void fuck_c(int c)
{
    // Насилуем переменную "c".
 
    if (c >= 0)
    {
        cout << "c положительное или нуль. Мы делаем: c ^ 2 | Результат: ";
        c = c * c;
        result_c = c;
        cout << c << n;
    }
    else
    {
        cout << "c отрицательное. Мы делаем: c ^ 4 | Результат: ";
        c = c * c * c * c;
        result_c = c;
        cout << c << n;
    }
}
Подскажите, где можно что-то улучшить.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.03.2011, 13:11
Ответы с готовыми решениями:

Мультисписок на базе бестиповых указателей (оцените код и подскажите что исправить )
Здравствуйте , Задача стояла реализовать мультисписковую структуру на базе массива бестиповых указателей. Структура примерно выглядит...

Пожалуйста посмотрите код, не пойму, что в окончании
дано действительное число х, натуральное число n. вычислить: 1/x+1/x*(x+1)+...+1 x*(x+1)...(x+n) #include &lt;iostream&gt; #include...

посмотрите код, в чем не правильно! (определить наименьшее неотрицательное целое k такое, что b < 2k)
Для каждого числа b из 20 чисел, вводимых с клавиатуры определить наименьшее неотрицательное целое k такое, что b &lt; 2k. код: ...

14
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
06.03.2011, 13:22
Цитата Сообщение от Си маньяк %) Посмотреть сообщение
// Название метода взято из WordPress Метод выводит "окно" приветствия.
Это не метод, это простая функциия.

Добавлено через 1 минуту
И зачем тут раздельная компиляция, если задача на пару строк.
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
06.03.2011, 13:29
Функции
C++
1
2
3
void fuck_a(int);
void fuck_b(int);
void fuck_c(int);
делают одинаковую работу.
Достаточно одной функции
C++
1
void fuck_all(int);
Описание функции берем почти ваше:
C++
1
2
3
4
5
6
7
void fuck_all(int x)
{
        if (x >= 0)
               cout <<"Ищем квадрат: "<< x*x << '\n';
        else
                cout <<"Ищем 4 степень: "<< x*x*x*x << '\n';
 }
Обращение к функции из main:
C++
1
2
3
4
5
6
7
8
9
10
11
12
.....
cout << "a: ";
cin >> a;
fuck_all(a);
......
cout << "b: ";
cin >> b;
fuck_all(b);
.....
cout << "c: ";
cin >> c;
fuck_all(c);
1
12 / 12 / 2
Регистрация: 10.02.2011
Сообщений: 42
06.03.2011, 13:30
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
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{ 
double A[3];
 
for (int i = 0; i < 3; i++ )
{
   cin>>A[i];
}
 
for (int i = 0; i < 3; i++ )
{
   if ( A[i] >= 0) A[i]= pow (A[i], 2);
   else A[i] = pow ( A[i], 4);
   
   cout>>A[i];
}
 
 
return 0;
 
}
0
40 / 38 / 5
Регистрация: 22.01.2011
Сообщений: 670
06.03.2011, 13:50
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
const char n = '\n'; // Это символ перевода строки.
const char s = ' '; // А это... пробел :)
 
int result_a, result_b, result_c;
 
void getHeader();
void getLine();
void getSpace();
void getEnd();
 
 
// Название метода взято из WordPress :) Метод выводит "окно" приветствия.
void getHeader()
{
        cout << "Превед, медвед!!!!!!111!!11!!!! :D" << n;
        cout << "Получайте удовольствие! ;)" << n;
}
 
// Этот метод выводит линию в строку... замашка на GUI :)
void getLine()
{
        cout << "________________________________________________________________________________" << n;
}
 
// Этот метод просто выводит пустую строку... точнее символ перевода строки... во как! %)
void getSpace()
{
        cout << n;
}
 
// Этот метод отоброжает канец программы %)
void getEnd()
{
        cout << "Это всё! :P Хорошего дня!" << n;
}
 
//Вводятся 3 числа. Если положительное - возвести во 2 степень.
// Если отрницательное - в 4 степень.
 
int funk(int a)
{
        // Проверяем условие для переменной "a". Если она больше или равна нулю, то возводится во
        // 2 степень. А если отрицательная то в 4 степень.
        
        if (a >= 0)
        {
                cout << "a положительное или нуль. Мы делаем: a ^ 2 | Результат: ";
                a = a * a;
        }
        else
        {
                cout << "a отрицательноe. Мы делаем: a ^ 4 | Результат: ";
                a = a * a * a * a;
        }
        cout << a << n;
    return a;
}
 
int main ( )
{
        setlocale (LC_ALL,".1251");
 
        int a, b, c;
 
        getLine();
        getHeader();
        getLine();
 
        cout << "Введите 3 числа:" << n;
        getLine();
 
        // Вводим переменную "а" и обрабатываем ее... как умеем :)
        cout << "a: ";
        cin >> a;
        result_a=funk(a);
        getLine();
 
        // Переменная "b".
        cout << "b: ";
        cin >> b;
        result_b=funk(b);
        getLine();
        
        // Ну и конечно переменная "c"... куда же без нее %)
        cout << "c: ";
        cin >> c;
        result_c=funk(c);
        getLine();
        
        cout << n;
        cout << "Результат в виде одной строки:" << n;
        getLine();
        cout << result_a << s << result_b << s << result_c << n;
        getLine();
        getEnd();
        getSpace();
 
        cout << "Пожалуйста, напишите что-нибудь ;)" << n;
        cin >> a;
 
 
 
    system("pause");
    return 0;
}
Учительнице привет
1
1 / 1 / 0
Регистрация: 05.03.2011
Сообщений: 11
06.03.2011, 13:56  [ТС]
Цитата Сообщение от asics Посмотреть сообщение
Добавлено через 1 минуту
И зачем тут раздельная компиляция, если задача на пару строк.
Да фиг его знает Я если честно до сих пор не до конца понимаю зачем нужны заголовочные файлы. gui.h я копирую во все консольные проекты. functions.h тоже (из-за прототипов функций). integers.h из-за одного символа ('\n'). Может совместить functions.h и integers.h в один заголовочный файл? Например, header.h

И вопрос: если я вынесу setlocale() в header.h из main() ничего плохого не произойдет?
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
06.03.2011, 14:00
Си маньяк %), Я же тебе говорю, забей ты на эти .h файлы(в даный момент), перед тобой стоит задача на пару строк, и здесь использовать хедеры, та даже функции, не целесообразно.(имхо, конечно)
1
1 / 1 / 0
Регистрация: 05.03.2011
Сообщений: 11
06.03.2011, 14:01  [ТС]
Цитата Сообщение от dimon1984 Посмотреть сообщение
... system("pause");...
Вот за это респект! Наверное 2 дня ищу как программу приостановить в конце, чтобы не мелькала.

Училка не причем! Она только на асемблере, паскале и фортране программирует. Просто дала задачу из сборника.
1
1 / 1 / 0
Регистрация: 05.03.2011
Сообщений: 11
06.03.2011, 14:03  [ТС]
Цитата Сообщение от asics Посмотреть сообщение
Си маньяк %), Я же тебе говорю, забей ты на эти .h файлы(в даный момент), перед тобой стоит задача на пару строк, и здесь использовать хедеры, та даже функции, не целесообразно.(имхо, конечно)
Спасибо за совет! Учту.
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
06.03.2011, 14:05
Заголовочные файлы (как и следует из их названия) предназначены для объявление интерфейса модуля (прототипов функций и типов данных, которые он экспортирует). Код, определяющий реализацию (функций, типов), в них помещать не принято. Конечно, сейчас я не говорю про шаблоны С++.
1
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
06.03.2011, 14:06
To dimon1984
У вас будет идти запрос на а,b,c, а подпрограмма int funk(int a) будет их все описывать как "а". Нехорошо...
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
06.03.2011, 14:08
Цитата Сообщение от Си маньяк %) Посмотреть сообщение
Наверное 2 дня ищу как программу приостановить в конце, чтобы не мелькала
https://www.cyberforum.ru/cpp-... 10807.html - тут искать не пробовал ?
1
40 / 38 / 5
Регистрация: 22.01.2011
Сообщений: 670
06.03.2011, 14:08
а - это копия значения в функции
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
06.03.2011, 14:11
Я имею виду элементарный вывод на консоль.
Например, будет идти текст: "b =....."
А потом из вашей подпрограммы: "a положительное или нуль...."
То же самое - для с.
1
1 / 1 / 0
Регистрация: 05.03.2011
Сообщений: 11
06.03.2011, 14:14  [ТС]
Про заголовочные файлы понял Тогда подскажите куда мне вынести все функции из gui.h? В main.cpp?

P.S. - Отказываться от них не хочу

И вот (если сейчас не задам вопрос, то точно забуду): Возможно буду программировать под линукс. А функция getLine(); не будет корректна для него (кол-во символов в строке терминала может быть разным). Как в линуксе (да и если пошла такая пьянка то и в windows) получить текущее кол-во символов в строке терминала\командной строки, чтобы "выровнить линию"?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.03.2011, 14:14
Помогаю со студенческими работами здесь

Подскажите как исправить код
ТЗ: В матрице в строках с отрицательным элементом на главной диагонали найти наибольший элемент строки и минимум среди них Мой...

Подскажите как исправить код
Исправить чтобы дважды не менялось одно и тоже поле #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;windows.h&gt; using namespace...

Подскажите как исправить код
Задача вставить строку после номера введенной строки пользователем Помогите пожалуйста битый час сижу и всё понять не как не могу void...

Вот код, подскажите как исправить ошибку, пожалуйста???
Вот вибивает такие ошибки: 1&gt;c:\users\user\desktop\ооп 6\ооп 6\ооп6.cpp(40) : error C2661: D3:: D3: нет перегруженной функции,...

Исправить код, объяснить, что он делает
#include &lt;iostream&gt; /* run this program using the console pauser or add your own getch, system(&quot;pause&quot;) or input loop */ using...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru