Арифметическая и геометрическая прогрессия(меню на экране и выбор действий).
Программа вычисляющая n-й член арифметической или геометрической прогрессии(в зависимости от выбора в меню), а также сумму первых членов арифметической или геометрической прогрессии(в зависимости от выбора в меню). Сделана через процедуры. Всем на здоровье!
program progressia;
var
choice: integer;
procedure progres;
var
a1, n, k, r: real;
begin
writeln('введите первый член прогрессии');
readln(a1);
writeln('введите количество суммируемых членов');
readln(n);
writeln('введите шаг');
readln(r);
if r > 0 then
writeln('последовательность возрастающая');
if r = 0 then
writeln('последовательность стационарна');
if r < 0 then
writeln('последовательность убывающая');
k := (2 * a1 + (n - 1) * r) / 2;
k := k * n;
writeln('сумма первых ', n, ' членов равна ', k);
writeln('для продолжения нажмите enter');
readln;
end;
procedure geo;
var
b1, q, n, s: real;
begin
writeln('введите первый член прогрессии');
readln(b1);
writeln('введите знаменатель прогрессии');
readln(q);
writeln('введите количество суммируемых членов');
readln(n);
if b1 = 0 then
begin
writeln('первый член прогрессии не должен быть равен 0');
readln;
if q = 0 then
writeln('знаменатель прогрессии не должен быть равен 0');
readln;
end
else
begin
s := b1 * (exp(ln(q) * n) - 1);
s := s / (q - 1);
writeln('Сумма ',n,' первых членов геометрической прогрессии равна ', s);
writeln('для продолжения нажмите enter');
readln;
end;
end;
procedure shit;
var
a1, n, k, r: real;
begin
writeln('введите первый член прогрессии');
readln(a1);
writeln('введите шаг');
readln(r);
writeln('введите (n-й) член прогрессии который необходимо найти');
readln(n);
k:=a1+((n-1)*r);
writeln('n=',k);
writeln('для продолжения нажмите enter');
readln;
end;
procedure shit2;
var
b1, q, n, s: real;
begin
writeln('введите первый член прогрессии');
readln(b1);
writeln('введите знаменатель прогрессии');
readln(q);
writeln('введите (n-й) член прогрессии который необходимо найти');
readln(n);
s:=b1*exp(ln(q) *(n-1));
writeln('n=',s);
writeln('для продолжения нажмите enter');
readln;
end;
procedure menu;
begin
writeln('1.вычислить сумму первых n членов арифм. прогрессии');
writeln('2.вычислить (n-й) член арифметической прогрессии');
writeln('3.вычислить сумму n первых членов геометрической прогрессии');
writeln('4.вычислить (n-й) член геометрической прогрессии');
writeln('5.завершить работу');
writeln;
writeln('введите цифру');
end;
begin
repeat
menu;
readln(choice);
case choice of
1: progres;
2:shit;
3: geo;
4:shit2
end;
until choice = 5;
end.
автор: Таку Максим
Комментарии:
Нету комментариев для вывода...