Найти ошибку в коде! (c++) #include #include #include using namespace std ; float recur1(int m, float y0, float y1, float y2); float recur2(int m, float y0, float y1, float y2); float recur3(int m, float y0, float y1, float y2); // int main() {int var, //выбор действия m ; //конечное значение номера слагаемого float re1, re2, re3 ; //результаты решения float y0, y1, y2 ; //исходные данные setlocale(lc_all,"russian") ; for(; ; ) {//выбор действия cout < < "\n вид действия: " < < endl ; cout < < " 1 - вычисление суммы по рекуррентной формуле" < < endl ; cout < < " 2 - завершение " < < endl ; cout < < " введите вид действия -> " ; cin > > var ; switch(var) {case 1: //ввод исходных данных cout < < " введите m -> " ; cin > > m ; cout < < " введите y0, y1, y2 -> " ; cin > > y0 > > y1 > > y2 ; re1 = recur1(m, y0, y1, y2) ; re2 = recur2(m, y0, y1, y2) ; re3 = recur3(m, y0, y1, y2) ; //вывод результата cout.precision(3) ; //число знаков после запятой при выводе cout < < " для цикла while результат = " < < re1 < < endl ; cout < < " для цикла do..while результат = " < < re2 < < endl ; cout < < " для цикла for результат = " < < re3 < < endl ; break; default: return 1 ; }//switch }//for } // // //вычисление значения суммы циклом while float recur1(int m, float y0, float y1, float y2) {int i = 0 ; //текущий номер слагаемого float y , //очередное значение y[i] sum = 0 ; //начальное значение суммы sum += log(fabs(1.5 * y0 - 0.2 * y0 + 0.3 * y0*y0 )-1.8) ; i++ ; sum += log(fabs(1.5 * y1 - 0.2 * y1 + 0.3 * y1*y1 )-1.8) ; i++ ; sum += log(fabs(1.5 * y2 - 0.2 * y2 + 0.3 * y2*y2 )-1.8) ; i++ ; while(i < = 2*m-1) {y = y2 + y0 * y0 ; sum += log(fabs(1.5 * y - 0.2 * y + 0.3 * y*y )-1.8) ; y0 = y1 ; y1 = y2 ; y2 = y ; i++ ; } return(sum) ; } // // //вычисление значения суммы циклом do..while float recur2(int m, float y0, float y1, float y2) {int i = 0 ; //текущий номер слагаемого float y , //очередное значение y[i] sum = 0 ; //начальное значение суммы sum += log(fabs(1.5 * y0 - 0.2 * y0 + 0.3 * y0*y0 )-1.8) ; i++ ; sum += log(fabs(1.5 * y1 - 0.2 * y1 + 0.3 * y1*y1 )-1.8) ; i++ ; sum += log(fabs(1.5 * y2 - 0.2 * y2 + 0.3 * y2*y2 )-1.8) ; i++ ; do {y = y2 + y0 * y0; sum += log(fabs(1.5 * y - 0.2 * y + 0.3 * y*y )-1.8) ; y0 = y1 ; y1 = y2 ; y2 = y ; i++ ; } while(i < = 2*m-1) ; return(sum) ; } // //вычисление значения суммы циклом for float recur3(int m, float y0, float y1, float y2) {int i = 0 ; //текущий номер слагаемого float y , //очередное значение y[i] sum = 0 ; //начальное значение суммы sum += log(fabs(1.5 * y0 - 0.2 * y0 + 0.3 * y0*y0 )-1.8) ; i++ ; sum += log(fabs(1.5 * y1 - 0.2 * y1 + 0.3 * y1*y1 )-1.8) ; i++ ; sum += log(fabs(1.5 * y2 - 0.2 * y2 + 0.3 * y2*y2 )-1.8) ; i++ ; for(; i < = 2*m-1; i++) {y = y2 + y0 * y0 ; sum += log(fabs(1.5 * y - 0.2 * y + 0.3 * y*y )-1.8); y0 = y1 ; y1 = y2 ; y2 = y ; } return(sum) ; } //
var s:string; m1,m2,m3:integer;
begin
writeln('- Привет! Я компьютер, а как тебя зовут?');
write('- '); readln(s);
writeln('- ',s,', введи свои оценки по 3 предметам');
write('- '); readln(m1,m2,m3);
writeln('- ',s,', твой средний ', (m1+m2+m3)/3);
end.
Пример:
- Привет! Я компьютер, а как тебя зовут?
- Алёна
- Алёна, введи свои оценки по 3 предметам
- 4 4 4
- Алёна, твой средний 4
2.
var a,b:integer;
begin
write('a = '); readln(a);
b:=(a div 100)*100 + (a mod 10)*10 + (a div 10 mod 10);
writeln('b = ',b);
end.
Пример:
a = 123
b = 132
type
Point=record
x,y:real
end;
Line=record
A,B:Point
end;
Triangle=record
A,B,C:Point;
sa,sb,sc:real; { длины сторон }
end;
procedure GetPoint(PointName:char; var M:Point);
begin
Write('Введите координаты точки ',PointName,'(x,y): ');
Read(M.x,M.y)
end;
function LineLength(A,B:Point):real;
begin
LineLength:=sqrt(sqr(B.x-A.x)+sqr(B.y-A.y))
end;
procedure CreateTriangle(var T:Triangle; var l:boolean);
begin
With T do begin
GetPoint('A',A);
GetPoint('B',B);
GetPoint('C',C);
sa:=LineLength(B,C);
sb:=LineLength(A,C);
sc:=LineLength(A,B);
l:=(sa+sb>sc) and (sa+sc>sb) and (sb+sc>sa)
end
end;
function TriangleIsLikes(T1,T2:Triangle):boolean;
var
k1,k2,k3:real;
begin
k1:=T1.sa/T2.sa; k2:=T1.sb/T2.sb;
if k1=k2 then begin
k3:=T1.sc/T2.sc;
TriangleIsLikes:=k1=k3
end
else
TriangleIsLikes:=False
end;
var
T1,T2:Triangle;
legal:boolean;
begin
Writeln('*** Первый треугольник ***');
CreateTriangle(T1,legal);
if legal then begin
Writeln('*** Второй треугольник ***');
CreateTriangle(T2,legal);
if legal then
if TriangleIsLikes(T1,T2) then Writeln('Треугольники подобны')
else Writeln('Треугольники не подобны')
else Writeln('Треугольник невозможно построить')
end
else Writeln('Треугольник невозможно построить')
end.