Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задача:выбор необходимого действия 
:(
    Опции темы
EVSpip
Дата 13.11.2007, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 12.11.2007

Репутация: нет
Всего: нет



Суть:
Создать меню выбора,где нажатию 1 будет соответствовать решение квадратного уравнения;2 решение системы(x=at-dsin(tэлемент первого массива) y=a-dcos(tэлемент 2го массива) где вводятся a,d,N('элементов массива) и построение графика этих уравнений(не имею представления)3 выход.
Код
#include<iostream.h>
#include<cmath>
void main()
{
    char key;
    
cout<<"viberite neobxodimoe deystvie \n";
cout<<" nagmite 1 dla resheniya kvadratnogo uravneniya \n";
cout<<" nagmite 2 dla resheniya sistemy x=at-dsint\n";
cout<<"                                 y=a-dcost\n"; 
cout<<" nagmite 3 dla vixoda \n";
cin>>key;
switch (key)
{case 1:


{
    float a,b,c,d;
    double x1,x2;
    char key;
    do
    {
    cout<<"vvedite a=";
    cin>>a;
    cout<<"vvedite b=";
    cin>>b;
    cout<<"vvedite c=";
    cin>>c;
        d=b*b-4*a*c;
        if(a==0 && b==0 && c==0)
        {
        cout<<"x=luboe 4islo  \n";
        }
        else if(a==0&&b!=0&&c!=0)

            {
            x1=-c/b;
                cout<<"x= "<<x1 << "\n";
            }
        else if (a!=0&&b==0&&c!=0)
            if(c<0&&a>0||c>0&&a<0)
            {
                x1=sqrt(-c/a);
                x2=-sqrt(-c/a);
                cout<<"x1="<<x1 << "\n";
                cout<<"x2="<<x2 << "\n";
            }
            else    
                {
                    cout<<"net resheniya,povtorite vvod \n";
                    continue;
                }
                                                  
        else    if(c==0)
                {
                  x1=-b/a;
                    cout<<"x1=0 \n"<<"x2= "<<x1 <<"\n";
                }
        if(c!=0 && a!=0 && b!=0)
        {
        {
            if(d<0)
            {
                cout<<"d="<<d<<"\n";
                cout<<"d=otricatelen"<<"\n";
                cout<<"net resheniya,povtorite vvod \n";
                                         continue;
            }
            else if(d==0)
            {
                cout<<"d="<<d<<"\n";
                x1=-b/(2*a);
                cout<<"x= "<<x1<<"\n" ;
            }
     else    if(d>0)
            {
                cout<<"d="<<d<<"\n";
                x1=(-b+sqrt(d))/(2*a);
                x2=(-b-sqrt(d))/(2*a);
                cout<<"x1="<<x1<<"\n";
                cout<<"x2="<<x2<<"\n";
                }                                                
                            }
                            }
    cout<<"vixod?[y/n] \n";
    cin>>key;
    }
    while (key!='y');}
} ;
case 2:


    {
int a,d,n,x,y,i,j;
    {    cout<<"vvedite a=";
            cin>>a; 
        cout<<"vvedite d=";
             cin>>d;
        cout<<"vvedite n=";
            cin>>n;
    
            
        
int t0[10];
for(int i=0;i<n;++i);
  x=(a*(*i)-(d*sin(*i));
int t1[10];
for (int j=0;j<n;++j);
y=a-(d*cos(*j));
cout<<"x="<<x << "\n";
cout<<"y="<<y << "\n";
}
};
case 3:{cout<<"vixod";
    break;};
default:cout<<"4itaem menu vnimatel'no";
    continue;
    }}

с case 2 выдает ошибку
выдает ошибку в массиве точнее в вытаскивании элемента.
выдает ошибку break'a и continue..
просмотри поправьте я не могу добиться smile 
PM MAIL   Вверх
FREEDEV
Дата 13.11.2007, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 6.3.2007
Где: Украина->Одесс а

Репутация: нет
Всего: 3



Это зачем тут

while (key!='y');}
--------------------
Microsoft Windows Visla ©
PM MAIL   Вверх
LostSoul
Дата 13.11.2007, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.5.2007

Репутация: нет
Всего: нет



Да и кстати, case 1: Для char-a это не совсем 1. Надо или 49+1 или '1'

Это сообщение отредактировал(а) LostSoul - 13.11.2007, 00:32
PM MAIL   Вверх
EVSpip
Дата 13.11.2007, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 12.11.2007

Репутация: нет
Всего: нет



Цитата(FREEDEV @ 13.11.2007,  00:27)
Это зачем тут

while (key!='y');}

спс
7 to lost с континуе ток верно осталось закончить

Это сообщение отредактировал(а) EVSpip - 13.11.2007, 00:38
PM MAIL   Вверх
LostSoul
Дата 13.11.2007, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.5.2007

Репутация: нет
Всего: нет



Код

x=(a*(*i)-(d*sin(*i));

что означает (*i) 
может просто a*i ?

Добавлено через 2 минуты и 30 секунд
Код

// uih.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


#include<iostream>
#include<cmath>
using namespace std;
void main()
{
    char key;   
    cout<<"viberite neobxodimoe deystvie \n";
    cout<<" nagmite 1 dla resheniya kvadratnogo uravneniya \n";
    cout<<" nagmite 2 dla resheniya sistemy x=at-dsint\n";
    cout<<"                                 y=a-dcost\n"; 
    cout<<" nagmite 3 dla vixoda \n";
    cin>>key;
    int exit=0;
    while(exit!=5)
        switch (key)
        {
            case '1':
                float a,b,c,d;
                double x1,x2;
                char key;
                do
                {
                cout<<"vvedite a=";
                cin>>a;
                cout<<"vvedite b=";
                cin>>b;
                cout<<"vvedite c=";
                cin>>c;
                    d=b*b-4*a*c;
                    if(a==0 && b==0 && c==0)
                    {
                    cout<<"x=luboe 4islo  \n";
                    }
                    else if(a==0&&b!=0&&c!=0)
                        {
                        x1=-c/b;
                            cout<<"x= "<<x1 << "\n";
                        }
                    else if (a!=0&&b==0&&c!=0)
                        if(c<0&&a>0||c>0&&a<0)
                        {
                            x1=sqrt(-c/a);
                            x2=-sqrt(-c/a);
                            cout<<"x1="<<x1 << "\n";
                            cout<<"x2="<<x2 << "\n";
                        }
                        else    
                            {
                                cout<<"net resheniya,povtorite vvod \n";
                                continue;
                            }
                                                              
                    else    if(c==0)
                            {
                              x1=-b/a;
                                cout<<"x1=0 \n"<<"x2= "<<x1 <<"\n";
                            }
                    if(c!=0 && a!=0 && b!=0)
                    {
                        if(d<0)
                        {
                            cout<<"d="<<d<<"\n";
                            cout<<"d=otricatelen"<<"\n";
                            cout<<"net resheniya,povtorite vvod \n";
                                                     continue;
                        }
                        else if(d==0)
                        {
                            cout<<"d="<<d<<"\n";
                            x1=-b/(2*a);
                            cout<<"x= "<<x1<<"\n" ;
                        }
                 else    if(d>0)
                        {
                            cout<<"d="<<d<<"\n";
                            x1=(-b+sqrt(d))/(2*a);
                            x2=(-b-sqrt(d))/(2*a);
                            cout<<"x1="<<x1<<"\n";
                            cout<<"x2="<<x2<<"\n";
                            }                                                
                                        }
                cout<<"vixod?[y/n] \n";
                cin>>key;
                } while (key!='y');
                exit=5;
                break;
            case '2':
                {
                    int a,d,n,x,y,i,j;
                    cout<<"vvedite a=";
                        cin>>a; 
                    cout<<"vvedite d=";
                         cin>>d;
                    cout<<"vvedite n=";
                        cin>>n; 
                    int t0[10];
                    for(int i=0;i<n;++i);
                      x=(a*i)-(d*sin((double)i));
                    int t1[10];
                    for (int j=0;j<n;++j);
                    y=a-(d*cos((double)j));
                    cout<<"x="<<x << "\n";
                    cout<<"y="<<y << "\n";
                    exit=5;
                    break;
                }
                
            case '3':
                cout<<"vixod";
                break;
            default:
                cout<<"4itaem menu vnimatel'no";
                exit=0;
                
        }

}


Это компилится

Добавлено через 6 минут и 20 секунд
Сори, еще забыл
Код

 for(int i=0;i<n;++i);
                      x=(a*i)-(d*sin((double)i));
                    int t1[10];
                    for (int j=0;j<n;++j);
                    y=a-(d*cos((double)j));

Точку с запятой убери после обоих форов
PM MAIL   Вверх
EVSpip
Дата 13.11.2007, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 12.11.2007

Репутация: нет
Всего: нет



Что ж передо мной стоит задача номер 2а выполнить код так чтобы результат вычислений был еще записан в txt файл.Описание ошибок которые мне надо править под кодом.
Код
#include<iostream>
#include<cmath>
using namespace std;
void main()
{
    char key;   
    cout<<"viberite neobxodimoe deystvie \n";
    cout<<" nagmite 1 dla resheniya kvadratnogo uravneniya \n";
    cout<<" nagmite 2 dla resheniya sistemy x=at-dsint\n";
    cout<<"                                 y=a-dcost\n"; 
    cout<<" nagmite 3 dla vixoda \n";
    cin>>key;
    int exit=0;
   do
        switch (key)
        {
            case '1':
                float a,b,c,d;
                double x1,x2;
                char key;
                do
                {
                cout<<"vvedite a=";
                cin>>a;
                cout<<"vvedite b=";
                cin>>b;
                cout<<"vvedite c=";
                cin>>c;
                    d=b*b-4*a*c;
                    if(a==0 && b==0 && c==0)
                    {
                    cout<<"x=luboe 4islo  \n";
                    }
                    else if(a==0&&b!=0&&c!=0)
                        {
                        x1=-c/b;
                            cout<<"x= "<<x1 << "\n";
                        }
                    else if (a!=0&&b==0&&c!=0)
                        if(c<0&&a>0||c>0&&a<0)
                        {
                            x1=sqrt(-c/a);
                            x2=-sqrt(-c/a);
                            cout<<"x1="<<x1 << "\n";
                            cout<<"x2="<<x2 << "\n";
                        }
                        else    
                            {
                                cout<<"net resheniya,povtorite vvod \n";
                                continue;
                            }
                                                              
                    else    if(c==0)
                            {
                              x1=-b/a;
                                cout<<"x1=0 \n"<<"x2= "<<x1 <<"\n";
                            }
                    if(c!=0 && a!=0 && b!=0)
                    {
                        if(d<0)
                        {
                            cout<<"d="<<d<<"\n";
                            cout<<"d=otricatelen"<<"\n";
                            cout<<"net resheniya,povtorite vvod \n";
                                                     continue;
                        }
                        else if(d==0)
                        {
                            cout<<"d="<<d<<"\n";
                            x1=-b/(2*a);
                            cout<<"x= "<<x1<<"\n" ;
                        }
                 else    if(d>0)
                        {
                            cout<<"d="<<d<<"\n";
                            x1=(-b+sqrt(d))/(2*a);
                            x2=(-b-sqrt(d))/(2*a);
                            cout<<"x1="<<x1<<"\n";
                            cout<<"x2="<<x2<<"\n";
                            }                                                
                                        }
                cout<<"vixod?[y/n] \n";
                cin>>key;
                } 
                while (key!='y');
               
                break;
        
            case '2':
                { char kv;
                    int t0[10],t1[10];
                    double x[10],y[10];
                    int a,d,n,i,j;
                    FILE *fp;
                    do
                    { 
                        fp=fopen("rez.txt.","w");
                          if (!fp)
                          {
                              printf("Error\n");
                          }
                          else
                          {
                              printf("Idet zapis'\n");
                              cout<<"\n"<<"Reshenie systemi:\n"<<"\n"
                                  <<"x=a*t0-d*sint0\n"<<"y=a-d*cost1\n"
                                  <<"\n"
                                  <<"\n"

                                <<"vvedite a=\n";
                                       cin>>a; 
                                cout<<"vvedite d=\n";
                                       cin>>d;
                                cout <<"vvedite n=\n";
                                       cin>>n; 
                                cout<<"vvedite n zna4eniy t0:";
                                    for (int i=0;i<n;++i)

                                    {
                                        cin>>t0[i];
                                    }
                                         
                                    cout<<"vvedite n zna4eniy t1:";
                                    for (int j=0;j<n;++j)
                                        
                                        int t0[10];
                                        {
                                            cin>>t1[j];
                                        }
                                        {for (int i=0;i<n;++i)
                                         {
                                             x[i]=((a*t0[i])-(d*sin(t0[i])));
                                            cout<<"x["<<i<<"]="<<x[i]<<"\n";
                                            fprintf(fp,"x%i=%f\n",i,x[i]);
                                        }}
                                    
                                        {for (int j=0;j<n;++j)
                                        {   
                                           y[j]=(a-(d*cos(t1[j])));
                                           cout<<"y["<<j<<"]="<<y[j]<<"\n";
                                           fprintf(fp,"y%i=%f\n",j,y[j]);
                                        }}
                                        fclose(fp);
                                        if (fclose(fp)!=EOF)
                                        {
                                            printf("Error");
                                        }
                    }
                          cout<<"prodolgit'?[y/n]\n";
                          cin>>kv;
                    }
                    while(kv=='y');
                break;
                }
                     
                
                
            case '3':
                cout<<"vixod";
                return;
            default:
                cout<<"4itaem menu vnimatel'no";
                
                return;
                
        }
}

Однако есть следующий ошибки
Если выбран блок меню 1 то после правильного выполнения уравнения должно выкидывать на меню,у меня программа вообще закрывается...
При выполнении 2го пункта читает нужное количество X а Y тока первое
В файл вообще не записывает,необходимо записывание которое будет не обнулять а дописывать новые значения.
Из пункта 2 вообще не выходит никуда.Нужно обратно на меню.
Пробнул исправить потерял скобку.((
Default должен выводить на меню у меня же просто закрывает

Укажите на места где у меня ошибки и как их можно вылечить)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0541 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.