• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Найти значение квадратного корня. Pascal

  • Автор темы Автор темы NomadZ
  • Дата начала Дата начала

NomadZ

Новые
Регистрация
14 Дек 2017
Сообщения
18
Реакции
0
Баллы
0
Найти значение квадратного корня. Pascal

Здравствуйте, помогите пожалуйста с написанием кода для следующего задания на Pascal'е.
Задача:
 

Вложения

  • яп 2.png.webp
    яп 2.png.webp
    25.7 KB · Просмотры: 264
Здравствуйте, помогите пожалуйста с написанием кода для следующего задания на Pascal'е.
Да пожалуйста.
Не прежде позволю себе несколько слов.
Молодой человек, Вы понимаете, что маршируете к пропасти? Сейчас Вы кажетесь себе очень умным и хитрым, типа "получил задание — вывалил на форумы — дурачки-программисты мне решили — скатал — сдал", да только беда в том, что если Вы сейчас, в феврале, не освоите начала программирования, то в мае будет поздно. Для этого Вам и дают сейчас эти детские задачки. А дальше задания начнут усложняться, и вскоре желающих корпеть за Вас над кодами сильно поубавится. До нуля. И начнётся: "спасите, помогите, отчисляют!!!". Проходили. И не раз.
Так что смотрите, Вам жить.
Код:
Const
 Eps=1E-8;

Var
 A:Array[1..8] of Real;
 i:Integer;

Function Iter1(b:real):Real;
var
 x1,x2,D:real;
begin
 x1:=b;
 D:=1;
 While D>Eps do
  begin
   x2:=(x1+b/x1)/2;
   D:=Abs(x1-x2);
   x1:=x2;
  end;
 Iter1:=x2;
end;

Function Iter2(b:real):Real;
var
 x1,x2,D:real;
begin
 x1:=b;
 Repeat
  x2:=(x1+b/x1)/2;
  D:=Abs(x1-x2);
  x1:=x2;
 Until D<=Eps;
 Iter2:=x2;
end;

Begin
 A[1]:=961;
 A[2]:=1024;
 A[3]:=10.0;
 A[4]:=2.0;
 A[5]:=17.0;
 A[6]:=0.1;
 A[7]:=100;
 A[8]:=9.6;

 Writeln('   A             Res_Iter              Accurate');
 for i:=1 to 4 do
  Writeln(A[i]:7:2,Iter1(A[i]):21:10,Sqrt(A[i]):21:10);
 for i:=5 to 8 do
  Writeln(A[i]:7:2,Iter2(A[i]):21:10,Sqrt(A[i]):21:10);
 Readln
End.
P.S. Я пользуюсь Турбо-Паскалем, там SQRT входит в основной набор функций. Вам, скорее всего (Pascal ABC?) придётся в начале добавить строчку
Uses Math;
 
Спасибо вам, да соглашусь есть такая проблема и ее надо решать.
Ранее получалось кодить, но потом что то упустил и поэтому ,если вас не затруднит, можете ли вы посоветовать материал для дальнейшего изучения и освоения.
 
Спасибо вам, да соглашусь есть такая проблема и ее надо решать.
Ранее получалось кодить, но потом что то упустил и поэтому ,если вас не затруднит, можете ли вы посоветовать материал для дальнейшего изучения и освоения.
Материалов полнО — и в виде бумажных учебников, и в Сети. Но самое главное тут — практика, практика и ещё раз практика! Разбирайтесь с готовыми программами, сами придумывайте себе задания, пишите коды, главное — доводите до конца.
Будем рады ответить на любые конкретные вопросы и помочь с разрешением любых затруднений.
Успехов!
 
Вдогон.
Убрал переменную R — она не нужна (первоначально думал формировать массив результатов применения итераций, потом понял, что проще без него). На общем результате не сказывается.
 
Назад
Сверху