Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
 Аватар для Delvox
7 / 7 / 1
Регистрация: 09.03.2013
Сообщений: 54

Упрощение кода программы

12.05.2013, 14:28. Показов 2726. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые форумчане!
Решил начать изучать язык Си++, начал с простого также как и при изучении языка Pascal.
Дана следующая задача:

Задача:

Составить программу, нахождения площади пола прямоугольной комнаты по длине и ширине.
1. Постановка задачи
Дано: длина и ширина прямоугольной комнаты
Найти: площадь комнаты

2. Математическая модель
Введём переменные
dl – длина комнаты
sh – ширина комнаты
S – площадь комнаты
S=dl*sh

Программу составил исходя из тех знаний которые у меня имеются + кое-что нашел в интернете.
Вопрос в следующем: Логично ли составлен код программы?, т.е. как его можно упростить и прийти к минимальному виду кода? Заранее спасибо

Код компилируется без ошибок

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h> //Подключаемые библиотеки
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(0, ""); //Для того чтобы в консоле тектс был русский 
 
    int dl, sh, s; //Обьявление переменных
 
    cout<<"Введите длину: "; //Вывод сообщения
      scanf("%d", &dl);      //Считывание числа с клавиатуры в переменную dl
 
    cout<<"Введите ширину: "; 
      scanf("%d", &sh);
 
    s = dl * sh; //Нахождение самой площади посредством умножение длины на ширину
    cout<< s; //Вывод полученного результата в консоль
 
cin.get(); // Для того чтобы консоль сразу после вывода результата не закрылась
cin.get();
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.05.2013, 14:28
Ответы с готовыми решениями:

Упрощение кода
void Polynomials::print(){ // Вывод полинома int i; int k; // признак того, что очередной коэффициент равен 1 int...

Упрощение кода
Всем привет. Есть такой код: enum FTYPE { FALSE, TRUE, DEFAULT }; FTYPE f(); bool n() { while( g() )

Упрощение кода
Хочу написать многофункциональную консольную программу. Код получится громоздкий и запутанный. C++ позволяет как-нибудь обозначать...

9
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
12.05.2013, 15:47
Определитесь наконец с вводом-выводом. Используйте либо cin/cout или scanf/printf. Не нужно смешивать.
1
 Аватар для Delvox
7 / 7 / 1
Регистрация: 09.03.2013
Сообщений: 54
13.05.2013, 03:06  [ТС]
Вот переписанный код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
setlocale(0, ""); //Для того чтобы в консоле тектс был русский
 
int dl, sh, s; //Обьявление переменных
 
cout<<"Введите длину и ширину. \n"; //Вывод сообщения
cin>> dl >> sh; //Считывание чисел с клавиатуры в переменные dl и sh
 
s = dl * sh; //Нахождение самой площади посредством умножение длины на ширину
cout<< s; //Вывод полученного результата в консоль
 
 _getch(); // Для того чтобы консоль сразу после вывода результата не закрылась
}
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
13.05.2013, 08:15
Delvox, упрощать особо некуда, кроме как избавиться от переменной s и избыточных комментариев. Еще не помешает код отформатировать единообразно.
1
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
13.05.2013, 08:31
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
setlocale(0, ""); //Для того чтобы в консоле тектс был русский
 
int dl, sh; //Обьявление переменных
 
cout<<"Введите длину и ширину. \n"; //Вывод сообщения
cin>> dl >> sh; //Считывание чисел с клавиатуры в переменные dl и sh
 
 
cout<< dl * sh; //Вывод  самой площади посредством умножение длины на ширину
 
 _getch(); // Для того чтобы консоль сразу после вывода результата не закрылась
}
1
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
13.05.2013, 09:00
Eagle123,
бесполезные комментарии
например здесь
Цитата Сообщение от Eagle123 Посмотреть сообщение
int dl, sh; //Обьявление переменных
это и так понятно
а что за переменные за что отвечают?
Цитата Сообщение от Eagle123 Посмотреть сообщение
cin>> dl >> sh; //Считывание чисел с клавиатуры в переменные dl и sh
то же самое
не лучше ли написать
вводим длину и ширину
или вообще ничего не писать
строчкой выше все объяснено
лучше писать самодокументруемый код например
C++
1
int Length, Width;
переменные своим именем уже рассказывают зачем они нужны

Добавлено через 4 минуты
Delvox,
к тебе тоже относится
и если пишешь на плюсах так и пиши по плюсовски объявляй переменные где они нужны
например
Цитата Сообщение от Delvox Посмотреть сообщение
s = dl * sh; //Нахождение самой площади посредством умножение длины на ширину
cout<< s; //Вывод полученного результата в консоль
C++
1
2
int s = dl * sh; // находим площадь прямоугольника
cout<< s; //можно не коментьть и так ясно
1
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
13.05.2013, 09:50
C++
int s(int &a int b)
{
    return a*=b;
}
 
int main()
{
    int dl, sh;
 
    cout << "длина : " << endl;
    cin >> dl;
    cout << "ширина : " << endl;
    cin >> sh;
 
    cout << s(dl, sh) << endl;
 
    system("pause");
}
1
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
13.05.2013, 10:45
Цитата Сообщение от programina Посмотреть сообщение
C++
1
2
3
4
int s(int &a int b) 
{ 
   return a*=b; 
}
Совершенно не нужно в данном случае использовать ссылку, да и вообще изменять аргумент.
1
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
13.05.2013, 10:52
Цитата Сообщение от Tulosba Посмотреть сообщение
Совершенно не нужно в данном случае использовать ссылку, да и вообще изменять аргумент.
в данном случае можно воспользоваться калькулятором
1
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
13.05.2013, 11:07
Цитата Сообщение от programina Посмотреть сообщение
в данном случае можно воспользоваться калькулятором
Лучше вообще в уме Но я Вам говорил вполне серьёзно. Передача по ссылке и изменение аргумента здесь ни к чему.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.05.2013, 11:07
Помогаю со студенческими работами здесь

Упрощение кода
Можно ли как нибудь сократить или упростить код? cin&gt;&gt;answer; if ((answer!=&quot;y&quot;) &amp;&amp; (answer!=&quot;n&quot;)) { while...

Упрощение программного кода
Всем здравствуйте а можно ли упростить вот этот код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;locale&gt; #include...

Упрощение кода очереди
Доброго времен суток! Дан код, нужно его упростить или же немного переделать. Сам в этом мало что понимаю. Помогите, пожалуйста, буду...

Упрощение и оптимизация кода (MS VCPP)
Доброго времени суток! Имеется простенький код (все работает) но выглядит ужасно, хотелось бы его упростить и оптимизировать просто...

Упрощение программы
Можно ли как-нибудь упростить эту программу? #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int abs_mas (double*, int); int...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
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 - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru