Упростить программу. Избавиться от Goto - Pascal ABC

  1. Нужно, чтобы не было лейбел, но программа не меняла своей сути . ОЧЕНЬ СРОЧНО!!!


textual

Код к задаче: «Упростить программу. Избавиться от Goto - Pascal ABC»

program slogno;
 
var
  s, x: real;
  a, b, h, z, s1, sum: real;
  i, v, k, n, g, c, fiks: integer;
 
 
procedure menu(k: integer);
begin
  writeln('1.Выполнение вычислений с заданным числом повторений');
  writeln('2.Выполнение вычислений с заданной точностью');
  writeln('Введите номер пункта:');
  readln(g);
end;
 
procedure vivod(var sum: real);
begin
  writeln('Sum=', sum);
end;
 
function integral(x: real): real;
begin
  integral := 1 / sqrt(1 + 3 * x + 2 * x * x);
end;
 
procedure povt(var a, b: real; var n: integer; var sum: real);
var
  h, s: real;
  i: integer;
begin
  x := a;
  s := 0;
  sum := 0;
  h := (b - a) / n;
  for i := 1 to n do
  begin
    s := integral(x) * h;
    x := x + h;
    sum := sum + s;
  end;
end;
 
 
procedure tocn(var a, b, s1: real);
var
  sum: real;
var
  i, n: integer;
  f, r: real;
begin
  n := 3;
  s1 := 0;
  f := 0.0001;
  h := (b - a) / n;
  povt(a, b, n, sum);
  while true do
  begin
    n := 2 * n;
    h := (b - a) / n;
    s1 := sum;
    povt(a, b, n, sum);
    if f >= abs(sum - s1) then 
      break;
  end;    
  writeln('S1=', s1:3:5);
end;
 
procedure vibor(var k: integer);
begin
  case g of
    1: povt(a, b, n, sum);
    2: tocn(a, b, s1);
  else writeln('Некоректный ввод')
  end;
end;
 
//Основная программа
begin
  a := 0;
  b := 1;
  n := 44;
  while true do 
  begin
    menu(k);
    vibor(k);
    vivod(sum);
    writeln('Выбрать еще раз?');
    writeln('1 ---Да');
    writeln('0 --- Нет');
    readln(v);
    if v = 0 then 
    begin
      writeln('Программа отработала');
      exit;
    end;
  end;
end.

СДЕЛАЙТЕ РЕПОСТ

8   голосов, оценка 3.500 из 5



Похожие ответы
  1. В программе надо убрать/заменить repeat, упростить программу. Pascal ABC.

  1. Записать в файл все "3-х буквенные" слова, состоящие из букв русского алфавита, Включая букву Ё!

  1. Пожалуйста, помогите))) 5. Разработать алгоритм программы, которая запрашивает у пользователя номер дня недели и выводит его название или сообщает "Ошибка ввода данных".  

  1. а) y(x)= 0,5x * cos2x на промежутке [-12;12]; б) y(x)= 8sinx * sin2x на промежутке [-15;15]. Заранее спасибо.

  1. Для заданных трех строк S1, S2 и S3 определить какая из этих строк удовлетворяет следующему свойству: строка является десятичной записью числа, кратного 9.

  1. Вводится строка слов, разделенных пробелами. Найти самое длинное слово и вывести его на экран. Случай, когда самых длинных слов может быть несколько, не обрабатывать. Например в строке: sfsf sadfsdf sf 111111111111 -+++++++++++ надо найти самое длинное СЛОВО Написала такую программу: