Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] C++ помогите написать программу (http://forum.oszone.net/showthread.php?t=243033)

Hatalllka1 20-09-2012 09:17 1991895

C++ помогите написать программу
 
Помогите пожалуйста написать 2 легкие программки...:)
1. Длина отрезка в дюймах (1 дюйм=2.54см). Перевести значение длины в метрическую систему, т.е. выразить ее в метрах, сантиметрах и миллиметрах. Так, например, 21 дюйм = 0 м 53 см 3,4 мм.

2. Даны три действительных числа. Выбрать из них те, которые принадлежат интервалу (1, 3). Или вывести сообщение, что таких чисел нет.

Iska 20-09-2012 09:23 1991897

Какие конкретные затруднения у Вас возникают при написании этих «двух лёгких программок»?

Hatalllka1 20-09-2012 09:32 1991903

для кого-то они легкие:)
1.сломался ноут, поэтому не могу воспользоваться visual basic, а написать нужно до вторника
2.я только начала учить язык, если бы visual могла бы хоть проверять программу на работоспособность...

Iska 20-09-2012 09:57 1991907

Цитата:

Цитата Hatalllka1
1.сломался ноут, поэтому не могу воспользоваться visual basic, а написать нужно до вторника »

1. Машина всегда ломается очень вовремя и кстати, поверьте.
2. Не пользуйтесь VB — пользуясь им, Вы не напишете программы на С/С++. Пользуйтесь VC.
3. До вторника у Вас ещё масса времени, просто не откладывайте на последний день.

Цитата:

Цитата Hatalllka1
я только начала учить язык, если бы visual могла бы хоть проверять программу на работоспособность... »

1. Все когда-то начинали.
2. VC — может. Скомпилируйте программу и запустите её. Можно это делать как непосредственно, так и из среды разработки (что гораздо проще).

vea180 20-09-2012 22:48 1992284

Хотя сам только учусь, но хочется помочь девушке. Программки написаны на с++ в Visual Studio

1)
Код:

#include<cmath>
#include<iostream>
using namespace std;
double modf(double num, double *i);
void con(double a){
        double d; int t,n;
        a=a*2.54;
modf(a,&d);
if(d>=100){
n=(int)d%100;
t=int(d/100);
cout<<"В метричной системе это "<<t<<" метров ";
cout<<n<<" сантиметров ";}
else
cout<<"В метричной системе это 0 метров "<<d<<" сантимеров ";
cout<<modf(a,&d)<<" мелиметров"<<endl;

}
       

int main()
{setlocale(0,"rus");
double x;
cout<<"Введите длину отрезка в дюймах"<<endl;
cin>>x;
con(x);



cin.get();
cin.get();
        return 0;
}

2) Если я правильно понял условия
Код:

#include<iostream>
using namespace std;
bool check(int f){
        if(f>=1&&f<=3)
                return true;
        else
                return false;}
       
int main()
{setlocale(0,"rus");
int a,b,d,n=0;
cout<<"Введите три числа"<<endl;
cin>>a>>b>>d;
cout<<'\n';
if(check(a)) cout<<a<<' ';
else n++;
if(check(b)) cout<<b<<' ';
else n++;
if(check(d)) cout<<d<<' ';
else n++;
switch(n){
        case 1:
                cout<<"Одна цыфра не в интервале"<<endl;
                break;
        case 2:
                cout<<"Две цыфры не в интервале"<<endl;
                break;
        case 3:
                cout<<"Все цыфры не в интервале"<<endl;
                break;}

cin.get();
cin.get();
        return 0;
}


torauma 21-09-2012 14:49 1992559

Цитата:

Цитата vea180
Если я правильно понял условия »

Неправильно. Задача выбрать числа, а не посчитать их количество.
Вот решение в MinGW Developer Studio
Код:

#include <iostream>

using std::cin;
using std::cout;
using std::endl;

const int digCount = 3;
const float min = 1;
const float max = 3;
int main()
{
        bool isFind = false;
        float a[digCount];
        for (int i = 0; i < digCount; i++)
        {
                cout << "Введите " << i + 1 << " число: ";
                cin >> a[i];
        };
        for (int j = 0; j < digCount; j++)
        {
                if ((a[j] > min) && (a[j] < max))
                {
                        if (!isFind)
                        {
                                cout << "В интервал (" << min << "," << max <<") попали следующие числа: ";
                                isFind = true;
                        };
                        cout << a[j] << " ";
                };
        };
        if (!isFind) cout << "Ниодно число не попало в интервал.";
        return 0;
}


vea180 22-09-2012 14:55 1993030

torauma,
У вас более профессиональная программа с применением массива. Хотя смысл задачи я понял неправильно согласен.
Ваш пример немного упростил . функционал не пострадал. :)


Код:

#include<iostream>
using namespace std;

       
int main()
{

int min = 1;
int max = 3;

        bool isFind = false;
        float a[3];
        for (int i = 0; i < 3; i++)
        {
                cout << "Введите " << i + 1 << " число: ";
                cin >> a[i];
        }
        for (int j = 0; j < 3; j++)
        {
                if ((a[j] > min) && (a[j] < max))
                {
                                        if(!isFind){
                        cout << "В интервал (" << min << "," << max <<") попали следующие числа: ";
                                          isFind = true;}
                        cout << a[j] << " ";
                       
                }
 
        }
        if (!isFind) cout << "Ниодно число не попало в интервал.";

       
        return 0;
}

Думаю модификатор const в этой задачке не нужен.

torauma 22-09-2012 22:13 1993294

Цитата:

Цитата vea180
Думаю модификатор const в этой задачке не нужен. »

Если так рассуждать, то он вообще не нужен. Однако, если какое то значение не изменяется на протяжении программы, то его принято определять как константу. Не стоит пренебрегать такими, казалось бы, незначительными правилами. Их соблюдение помогает сделать программу более читаемой и избежать дополнительных ошибок.

Цитата:

Цитата vea180
У вас более профессиональная программа с применением массива. »

Более профессиональная не столько из-за применения массива, сколько из-за смысла его применения. Если в задаче изменить числовые данные (например, 10 чисел и интервал (0.5, 8.6)), то будет достаточно изменить значения констант, а алгоритм останется прежним. Кстати, вы благополучно убрали такую возможность жестко задав длину массива.

P.S. Посмотрите на верх формы ответа. Видите там значки инструментов форматирования? Среди них есть значек #. Воспользуйтесь им когда в следующий раз решите разместить на форуме текст программы.

Iska 23-09-2012 01:49 1993361

Цитата:

Цитата torauma
Однако, если какое то значение не изменяется на протяжении программы, то его принято определять как константу. »

Не «не изменяется», а «не должно изменяться».

Hatalllka1 23-09-2012 10:08 1993402

спасибо большое!:)

Лена Лебедева 04-02-2014 16:36 2302597

помогите пожалуйста!
1)Значение f(k) заключено между значениями t1= -a - √(b+m), t2=√(a+b+m),но не равно нулю.
2)Дана матрица из 2 столбцов и 10 строк.Первый элемент каждой строки представляет абсциссу,второй ординату из 10 точек плоскости.Отпечатать расстояния от начала координат для тех точек,которые принадлежат кругу с заданным радиусом, и число таких точек.

Iska 04-02-2014 17:02 2302622

Лена Лебедева, Вы принципиально не хотите читать Правила Форума? В таком случае я не поленюсь привести Вам их здесь, выделив относящее непосредственно к Вашему вопросу:
Цитата:

Правила форума «Программирование»
  1. Правила форума Программирование являются дополнением к Общим Правилам Конференции, действуют только в этом разделе и обязательны для соблюдения всеми участниками данного раздела.
  2. Создавая темы в форуме, выберите правильную категорию. Если Вы пишете на C\C++, .Net, Win32 API и т.д. выберите соответствующую категорию. Если вы затрудняетесь определить категорию, прочтите это - Перед прочтением - съесть
  3. Убедитесь что заголовок темы информативен. Все темы с названиями: «помогите, горю, срочно, решите лабу» и т.д. будут перемещены в Уголок Ленивого Программиста.
  4. Всегда оформляйте ваш код тегами [сode] - . Читабельность кода залог того что Вашей проблемой заинтересуются. Не соблюдение этого правила повлечёт перенос темы в раздел Тест-форум.
  5. Опишите свой вопрос максимально ясно, перечислите варианты которые Вы уже испробовали, если среда разработки выдаёт какие-либо информативные сообщения (ошибки, предупреждения), приведите их, можно скриншотом.
  6. Вопросы, в которых нет кода и следов ваших размышлений над поставленной задачей также будут перенесены в закрытую тему - Уголок Ленивого Программиста
  7. Если Вам помогли решить проблему, отметьте тему решённой.

Ах, да — дублирование вопроса тоже не приветствуется.


Время: 00:27.

Время: 00:27.
© OSzone.net 2001-