Другие языки программирования и технологии
Помогите откорректировать код в C++
Вот код (задание в нём): // Пробный_код.cpp: определяет точку входа для консольного приложения. // /*Задание: Написать программу вывода таблиц по формулам через 1 градус в три колонки (х изменяется от 0 до Alfa). Alfa, A, B - переменные, которые вводит пользователь.*/ #include "stdafx.h" #include "math.h" #include "windows.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { SetConsoleOutputCP(1251);// Russian in console int Alfa, A, B; float C, D, X, Y, E; cout<<"Задание: функция Y = tan(x)+arcsin(A/B)\n\n"; //Ввод данных; cout<<"Введите значение для Alfa: "; cin>>Alfa; cout<<"\nВведите значение для A: "; cin>>A; cout<<"\nВведите значение для B: "; cin>>B; //Основной код: if (B!=0) { for (X=0; E=A/B; X<=Alfa; D=3.14/180/*Перевод в радианы*/; X++); { Y=tan(X*D)+asin(E); cout<<"X = "<<(float)X<<"\t"; cout<<"Y = "<<(float)Y<<"\t"; } } system("pause"); return 0; } Выдаёт: warning C4244: =: преобразование "int" в "float", возможна потеря данных warning C4552: <=: оператор не имеет результата; требуется оператор с побочным действием warning C4305: =: усечение из "double" к "float" error C2143: синтаксическая ошибка: отсутствие ")" перед ";" error C2059: синтаксическая ошибка: ) P.S. Я ещё не особо владею языком, критика приемлема.
#include <iostream>
#include <conio.h>
#include <math.h>
#include <locale>
#define PI 3.141592653589793238462643
#define GRAD 0.005555555555555555555556
using namespace std;
void main()
{
setlocale(LC_CTYPE, "Russian_Russia.1251");
do
{
int Alfa, a, b, x = 1;
double d, y;
do
{
cout << " Задание: функция Y = tan(X) + arcsin(A/B)\n\n";
cout << " Введите значение для Alfa: ";
cin >> Alfa;
cout << "\n Введите значение для A: ";
cin>>a;
cout << "\n Введите значение для B: ";
cin >> b;
d = GRAD * PI;
if (b == 0 || a > b)
{
cout << "\n Недопустимый аргумент функции arcsin!";
_getch();
system("cls");
continue;
}
else
{
for (x; x <= Alfa; x++)
{
if (x == 90 || x == 270)
{
cout << endl << " X = "<< x << "\t" << " Недопустимый аргумент функции tg";
}
else
{
y = tan(x * d) + asin((double)a / b);
cout << endl << " X = "<< x << "\t " << "Y = "<< y;
}
}
}
_getch();
x = 0;
}
while(x != 0);
system("cls");
}
while(true);
}
#include <conio.h>
#include <math.h>
#include <locale>
#define PI 3.141592653589793238462643
#define GRAD 0.005555555555555555555556
using namespace std;
void main()
{
setlocale(LC_CTYPE, "Russian_Russia.1251");
do
{
int Alfa, a, b, x = 1;
double d, y;
do
{
cout << " Задание: функция Y = tan(X) + arcsin(A/B)\n\n";
cout << " Введите значение для Alfa: ";
cin >> Alfa;
cout << "\n Введите значение для A: ";
cin>>a;
cout << "\n Введите значение для B: ";
cin >> b;
d = GRAD * PI;
if (b == 0 || a > b)
{
cout << "\n Недопустимый аргумент функции arcsin!";
_getch();
system("cls");
continue;
}
else
{
for (x; x <= Alfa; x++)
{
if (x == 90 || x == 270)
{
cout << endl << " X = "<< x << "\t" << " Недопустимый аргумент функции tg";
}
else
{
y = tan(x * d) + asin((double)a / b);
cout << endl << " X = "<< x << "\t " << "Y = "<< y;
}
}
}
_getch();
x = 0;
}
while(x != 0);
system("cls");
}
while(true);
}
float меняй на double смело!
цикл for замени на while
сделай отступы на блоках кода.. .
цикл for замени на while
сделай отступы на блоках кода.. .
for (X=0; E=A/B; X<=Alfa; D=3.14/180/*Перевод в радианы*/; X++);
X описан как float, а Alfa как int - отсюда первые две ошибки
Начальные условия в цикле задаются через запятую, а не через точку с запятой: for(X=0,E=A/B,D=3.14/180;X<=Alfa;X++){
...тело цикла
}
в строке с for точка с запятой в конце строки не нужна!
X описан как float, а Alfa как int - отсюда первые две ошибки
Начальные условия в цикле задаются через запятую, а не через точку с запятой: for(X=0,E=A/B,D=3.14/180;X<=Alfa;X++){
...тело цикла
}
в строке с for точка с запятой в конце строки не нужна!
Скачай программу NotePad, и смотри там ошибки)
после for ; - это абсурд. В таком случае цикл не будет ничего не выполнять кроме действий в заголовке. И они вызывают сомнения
for -> for (инициализация; условие продолжения; действие)
у тебя слишком много действий в форе. хочешь при инициализации или после итерации делать не одно действие - воспользуйся операцией запятая.
for -> for (инициализация; условие продолжения; действие)
у тебя слишком много действий в форе. хочешь при инициализации или после итерации делать не одно действие - воспользуйся операцией запятая.
насчет варна 4244. Эм, явная ошибка в строке for (X=0; E=A/B; X<=Alfa; D=3.14/180/*Перевод в радианы*/; X++);. Конкретней - в E=A/B; (при делении отбрасывается часть, после запятой (ибо обе переменных типа int). Приведи тип переменной А к вещественному типу, т. е. E=(double)A/B (B приводить не нужно, приведется автоматом)
Похожие вопросы
- Помогите с кодом на c++
- Помогите написать код на C++
- Помогите написать код на C++
- Помогите написать код на C++
- Помогите, лёгкий код C++
- Помогите испрвить код Переписать первые элементы каждой строки матрицы a(n*m), больше некоторого числа C, в массив b .
- Исправление кода на C++
- Помогите исправить код так, чтобы работал! :) (C#)
- помогите закончить код C++
- помогите переписать код с паскаля на c++