|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
09.12.2011, 19:53 | #1 (permalink) |
Новичок
Регистрация: 28.10.2011
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Pascal. Функции и процедуры
Кто чем сможет! Помощь нужна.) Пользователь вводит два вещественных числа: a и q, а также целое число n. Для вычисления характеристик геометрической прогрессии (a – первый член, q – знаменатель, n – номер искомого члена прогрессии) составить функцию, которая получает введенные числа в качестве параметров. Функция находит n-й член и сумму первых n членов прогрессии и возвращает их в качестве двух других параметров. Результат, который возвращает сама функция, должен позволять отслеживать следующие случаи (зависящие от значений введенных чисел): неположительный номер n, возрастающая или убывающая прогрессия, все члены прогрессии равны (вырожденный случай). |
09.12.2011, 19:53 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Найдены схожие с вашей темы, можете их посмотреть Двумерные массивы и процедуры PASCAL Процедуры, функции |
09.12.2011, 22:02 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ну... если только этим:
Код:
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. |
10.12.2011, 01:39 | #3 (permalink) |
Новичок
Регистрация: 28.10.2011
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо...
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|