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

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

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

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

Pascal. Функции и процедуры

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

Сова

Ученик
Регистрация
28 Окт 2011
Сообщения
10
Реакции
0
Баллы
0
Pascal. Функции и процедуры

:tehnari_ru_837:
:tehnari_ru_235:
Кто чем сможет! Помощь нужна.)
Пользователь вводит два вещественных числа: a и q, а также целое число n. Для вычисления характеристик геометрической прогрессии (a – первый член, q – знаменатель, n – номер искомого члена прогрессии) составить функцию, которая получает введенные числа в качестве параметров. Функция находит n-й член и сумму первых n членов прогрессии и возвращает их в качестве двух других параметров.
Результат, который возвращает сама функция, должен позволять отслеживать следующие случаи (зависящие от значений введенных чисел): неположительный номер n, возрастающая или убывающая прогрессия, все члены прогрессии равны (вырожденный случай).
 
Кто чем сможет! Помощь нужна.)
Ну... если только этим:
Код:
VAR
 a,q,an,Sn:Real;
 n:Integer;

Procedure Progres(a1,q1:real; n1:integer; var an1:real; var Sn1:real);
var i:integer; qn1:real;
begin
 if n1<=0 then an1:=0 else
  begin
   an1:=a1;
   for i:=1 to n1-1 do an1:=an1*q1;
  end;
 If q1=1 then Sn1:=a1*n1 else
  begin
   qn1:=1;
   for i:=1 to n1 do qn1:=qn1*q1;
   Sn1:=a1*(qn1-1)/(q1-1);
  end;
end;

BEGIN
 Write('a= ');
 Readln(a);
 Repeat
  Write('q= ');
  Readln(q);
  If q<=0 then Writeln('Error: q must be >0!');
 Until q>0;
 Write('n= ');
 Readln(n);
 Progres(a,q,n,an,Sn);
 If an=0 then writeln('Error: n<0 or n=0') else
  begin
   Write('Progression is ');
   If Abs(an)>Abs(a) then writeln('increasing') else
   If Abs(an)<Abs(a) then writeln('decreasing') else
   writeln('singular');
   Write('an= ',an:0:3,'     Sn= ',Sn:0:3);
  end;
 Readln
 END.
 
Спасибо... :tehnari_ru_208:
 
Назад
Сверху