Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Элементарные программы в С++


Автор: Vitomokol 11.1.2015, 16:19
Уважаемые пользователи, для учебы необходимо написать три программы на три вида алгоритма. Буду очень благодарен, если поможете. 
У меня есть коды, которые я написал сам, но они (та-дам) не работают. Возможно, в них есть элементарные ошибки. Я учусь не в России, и контакт с преподавателем невозможен, она элементарно не знает С++, но требует скриншоты работы программы. Прошу войти в положение и помочь.

1) Составить программу для вычисления значения игрек. 
y=sin(2π+x)+sin(π+2x), где x=a^2-z^2/ a^2+z^2
, при этом значения а и z должны вводится пользователем.

Код

#include <iostream.h>
#include <math.h>
Void main ()
const float pi = 3.14;
{
Int x,a,z;
cout<< "Введите значение a" >> a end;
cout<< "Введите значение z" >> z endl;
x=a*a-z*z/a*a+z*z;
y=sin(2* pi +x)+sin(pi+2*x);
cout <<”x=”<<x<<end;
cout <<”y=”<<y<<endl;
}



2) Вычислить значение игрек. y=х^3-23 если x>0 или 25/x3-23, если x<=0

Код

#include <iostream.h>
Void main ()
{
Int x;
cout<< "Введите значение x" >> x end;
if x>0 
y=pow(x,3)-23;
else
y=25/pow(x,3)-23;
cout <<”y=”<<y<<endl;
}



3) Вычислить все значени игрек. y=arctg((x^2+1)^1/2) При этом значения икса x=-2 x=-1.8 x=-1.6 и так до нуля.

Код

#include <iostream.h>
#include <math.h>
Void main()
{ float x=-2, y, h=0.2;
Do
{ y=atan((sqrt(x*x+1));
Cout<<”x=”<<x<<” y=”y<<y<<endl;
X=x+h}
While (x<=0);
}



Заранее БОЛЬШОЕ спасибо.

Автор: disputant 11.1.2015, 17:02
Ой, как все запущено...

Начнем с того, что C++ чувствителен к регистру. Что переменные объявляются в теле функции, а не где-то между заголовком и телом. Что считывают данные из потока ввода, например, cin smile 

Непонятно, какого уровня стариной вы пользуетесь - типа Борланда 3.1? потому что в более современных компиляторах включается iostream - без .h, и требуется указать, что используется пространство имен std...

Автор: Ukrajinec 11.1.2015, 17:15
Значит так, первая программа и где были твои ошибки:

Код

#include <iostream> //без *.h
#include <math.h>
using namespace std; //этой строчкой ты "включаешь" нужные тебе здесь операторы cout и cin

 int main()
//тут код не пишут
{
    const float pi = 3.14; //а пишут здесь, в середине фигурных скобок
    int y, x, a, z;  //забыл объявить переменную "y". Также тип int(пишется с маленькой буквы) - это целочисельный тип, тоесть
                            //1, 2, 3 и т.д. А так как у тебя в функции присутствует деление, переменные "х" и "у" желательно объявить как тип double - тип с плавающей запятой
    cout << "Enter A: ";  //cout - это оператор вывода на экран(в данном случае), с его помощью ты не считаешь символ с клавиатуры
                                         //представь что cout - это монитор и ты в него стрелками "заталкиваешь" текст, но с монитора ты текст в переменную не можешь "затолкать" верно? "cout<< "Введите значение a" >> a end;"
 
    cin >> a;          //а здесь представь что cin - это клавиатура и з нее ты помещаешь стрелками информацию в переменную. 
    cout << "\nEnter Z: ";
    cin >> z;
    x = a*a - z*z / a*a + z*z;
    y = sin(2 * pi + x) + sin(pi + 2 * x);
    cout << "\nx=" << x << endl;  // тут должен быть оператор endl (END Line - конец строки), его можно также заменить на " \n" (New - как бы НОВАЯ строка)
    cout << "y=" << y << endl;
    return 0;
}


Теперь вторую программу ты можешь и сам выправить и третью тоже только цикл do-while пишется как:
Код

do
{
...
всякий очень умный код
...
} while(i<10) // пока i будет меньше 10, "всякий очень умный код" будет исполнятся

тоесть WHILE должен быть ЗА фигурными скобками, а не внутри.

Автор: Vitomokol 12.1.2015, 16:29
Ukrajinec, большое спасибо. Ты объяснил именно на таком уровне, на котором я способен понимать) Единственное что, как сделать чтобы программа после выведения результата не сразу закрывалась, а по щелчку?

Добавлено @ 16:40
Постарался исправить вторую программу, но при компиляции ругается на строку if x>0. Причем пробовал как с точкой с запятой, так и без неё.

Код

#include <iostream>
using namespace std;
int main()
{
int x,y;
cout << "Enter X: ";
cin >> x; 
if x>0
y=pow(x,3)-23;
else
y=25/pow(x,3)-23;
 cout << "y=" << y << endl;
}


Автор: baldina 12.1.2015, 16:54
Цитата(Vitomokol @  12.1.2015,  16:29 Найти цитируемый пост)
if x>0

Код

if (x>0)


Добавлено через 6 минут и 28 секунд
Цитата(Vitomokol @  12.1.2015,  16:29 Найти цитируемый пост)
#include <iostream>
using namespace std;
int main()
{
int x,y;
cout << "Enter X: ";
cin >> x; 
if x>0
y=pow(x,3)-23;
else
y=25/pow(x,3)-23;
 cout << "y=" << y << endl;
}

Код

#include <iostream>
#include <cmath>
int main()
{
  using namespace std;
  double x;
  cout<<"Enter X: ";
  cin>>x;
  double y=pow(x,3)-23;
  if (x <= 0)
    y=25/y;
  cout<<"y="<<y<<endl;
}

Автор: baldina 12.1.2015, 17:27
Цитата(Vitomokol @  11.1.2015,  16:19 Найти цитируемый пост)
Вычислить все значени игрек. y=arctg((x^2+1)^1/2) При этом значения икса x=-2 x=-1.8 x=-1.6 и так до нуля.

http://ideone.com/2j6ebk

Автор: Vitomokol 12.1.2015, 20:35
Огромное спасибо! Только последнее: как делать, чтобы программа не закрывалась сразу после выведения резултата?

Автор: Ukrajinec 12.1.2015, 23:51
Цитата(Vitomokol @ 12.1.2015,  19:35)
Огромное спасибо! Только последнее: как делать, чтобы программа не закрывалась сразу после выведения резултата?

Есть 2 варианта (ну их не два вообще-то, но эти два самые популярные):

1) в конце пишешь 
char ch;
cin>>ch;
программа будет ожидать пока ты введешь значение ch, и ты сможешь ознакомится с результатом программы
2) на строчке с  return, делаешь брейкпоинт(точку остановки), как это сделать сказать не могу так как в разных компиляторах это делается по своему. Обычно делается клик по левому краю поля напротив строки где должна программа остановится, и там появляется, обычно, красный кружок.  (так делаю я)

Автор: NoviceF 13.1.2015, 17:48
Цитата(Vitomokol @  12.1.2015,  21:35 Найти цитируемый пост)
 как делать, чтобы программа не закрывалась сразу после выведения резултата? 


На мой взгляд, самый логичный и не противоречивый способ - это запускать консольную программу из консоли.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)