Перевести код с Pascal - C (СИ) (75573)
Формулировка задачи:
помогите пожалуйста,нужно перевести программу на си)
uses crt;
function Sq(x:real;n:integer):real;
var yi:real;
begin
if n=0 then Sq:=x/2
else Sq:=(Sq(x,n-1)+x/Sq(x,n-1))/2;
end;
var x:real;
n:integer;
begin
repeat
write('Введите значение x>=0 x=');
readln(x);
until x>=0;
repeat
write('Введите n от 0 до 10 n=');
readln(n);
until n in [1..10];
writeln('Квадратный корень=',Sq(x,n):0:3);
end.Решение задачи: «Перевести код с Pascal»
textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
double Sq(double x, double n)
{
if (n==0) return x/2;
else return (Sq(x, n-1)+x/Sq(x, n-1))/2;
}
int main()
{
double x;
int n;
system("chcp 1251 > nul");
do {
printf("Введите значения x>=0:\nx = ");
scanf("%lf",&x);
} while (x<=0);
do {
printf("\nВведите n от 0 до 10:\nn = ");
scanf("%d",&n);
} while ((n<=0) || (n>=11));
printf("\nКвадратный корень = ",Sq(x,n));
system("pause");
return 0;
}
Объяснение кода листинга программы
- Переменная
xиспользуется для хранения значения числа, которое вводится пользователем. - Переменная
nиспользуется для хранения значения числа, которое вводится пользователем. - Функция
Sqвычисляет квадратный корень числа. - В функции
mainиспользуется циклdo-while, чтобы пользователь мог ввести корректные значенияxиn. - Пользователю предлагается ввести значение
xв циклеdo-while, который продолжается до тех пор, пока не будет введено неотрицательное число. - Пользователю предлагается ввести значение
nв циклеdo-while, который продолжается до тех пор, пока не будет введено число от 1 до 10. - Вызывается функция
Sqс аргументамиxиn, и результат выводится на экран. - Цикл
do-whileзавершается, и программа завершается.